glMapBuffer: Unterschied zwischen den Versionen
Flo (Diskussion | Beiträge) (Artikel erstellt. (Informationen aus den OpenGL Spezifikationen entnommen)) |
K (→Siehe auch) |
||
(4 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
Zeile 16: | Zeile 16: | ||
{| border="1" rules="all" | {| border="1" rules="all" | ||
! ''target'' | ! ''target'' | ||
− | | Einer der folgenden Werte: GL_ARRAY_BUFFER | + | | Einer der folgenden Werte: '''GL_ARRAY_BUFFER''' oder '''GL_ELEMENT_ARRAY_BUFFER''' |
|- | |- | ||
! ''access'' | ! ''access'' | ||
| Gibt an wie auf die Daten im Client Speicherplatz dann zugegriffen werden kann. Mögliche Werte sind: GL_READ_ONLY, GL_WRITE_ONLY, oder GL_READ_WRITE | | Gibt an wie auf die Daten im Client Speicherplatz dann zugegriffen werden kann. Mögliche Werte sind: GL_READ_ONLY, GL_WRITE_ONLY, oder GL_READ_WRITE | ||
|} | |} | ||
− | |||
− | |||
== Beschreibung == | == Beschreibung == | ||
Zeile 28: | Zeile 26: | ||
''glMapbuffer'' überträgt den Bufferinhalt in den Adressraum des Clients und gibt die Adresse des Buffers im Client-Adressraum zurück. Falls der Vorgang fehlschlägt wird NULL (bei C++) zurückgegeben. Diese zurückgegebene Adresse kann dazu benutzt werden den Buffer zu verändern. Jedoch sollte man diese Adresse '''nicht''' an andere OpenGL Funktionen übergeben(etwa um den Inhalt einer Textur festzulegen). | ''glMapbuffer'' überträgt den Bufferinhalt in den Adressraum des Clients und gibt die Adresse des Buffers im Client-Adressraum zurück. Falls der Vorgang fehlschlägt wird NULL (bei C++) zurückgegeben. Diese zurückgegebene Adresse kann dazu benutzt werden den Buffer zu verändern. Jedoch sollte man diese Adresse '''nicht''' an andere OpenGL Funktionen übergeben(etwa um den Inhalt einer Textur festzulegen). | ||
− | Bevor der Buffer wieder genutzt werden kann, muss [[ | + | Bevor der Buffer wieder genutzt werden kann, muss [[glUnmapBuffer]] aufgerufen werden. |
− | |||
== Hinweise == | == Hinweise == | ||
Zeile 39: | Zeile 36: | ||
* '''GL_OUT_OF_MEMORY''' wird generiert, wenn der Vorgang aus anderen Gründen fehlschlägt. | * '''GL_OUT_OF_MEMORY''' wird generiert, wenn der Vorgang aus anderen Gründen fehlschlägt. | ||
+ | == Siehe auch == | ||
+ | [[glBindBuffer]], [[glBufferData]], [[glBufferSubData]], [[glDeleteBuffers]], [[glGenBuffers]], [[glGetBufferParameter]], [[glGetBufferPointerv]], [[glGetBufferSubData]], [[glIsBuffer]], [[glUnmapBuffer]] | ||
[[Kategorie:GL|MapBuffer]] | [[Kategorie:GL|MapBuffer]] | ||
+ | [[Kategorie:GL1.5|MapBuffer]] | ||
+ | [[Kategorie:GL3|MapBuffer]] |
Aktuelle Version vom 21. Februar 2014, 18:18 Uhr
Inhaltsverzeichnis
glMapBuffer
Name
glMapBuffer - Der Buffer wird in den Speicherplatz des Clients übertragen.
Delphi-Spezifikation
function glMapBuffer(target : TGLenum; ... access : TGLenum) : PGLvoid
Parameter
target | Einer der folgenden Werte: GL_ARRAY_BUFFER oder GL_ELEMENT_ARRAY_BUFFER |
---|---|
access | Gibt an wie auf die Daten im Client Speicherplatz dann zugegriffen werden kann. Mögliche Werte sind: GL_READ_ONLY, GL_WRITE_ONLY, oder GL_READ_WRITE |
Beschreibung
glMapbuffer überträgt den Bufferinhalt in den Adressraum des Clients und gibt die Adresse des Buffers im Client-Adressraum zurück. Falls der Vorgang fehlschlägt wird NULL (bei C++) zurückgegeben. Diese zurückgegebene Adresse kann dazu benutzt werden den Buffer zu verändern. Jedoch sollte man diese Adresse nicht an andere OpenGL Funktionen übergeben(etwa um den Inhalt einer Textur festzulegen).
Bevor der Buffer wieder genutzt werden kann, muss glUnmapBuffer aufgerufen werden.
Hinweise
Bitte beachten, dass wenn man sich nicht an die mit Parameter access angegeben Speicherzugriffsregeln hält, OpenGL keine Fehlermeldung generiert. Statt dessen kann es passieren, das die Ausführung des Befehles extrem langsam ist, oder das Program sich beendet.
Fehlermeldungen
- GL_INVALID_OPERATION wird generiert, wenn der Buffer schon in den Client Speicherplatz übertragen wurde.
- GL_OUT_OF_MEMORY wird generiert, wenn der Vorgang aus anderen Gründen fehlschlägt.
Siehe auch
glBindBuffer, glBufferData, glBufferSubData, glDeleteBuffers, glGenBuffers, glGetBufferParameter, glGetBufferPointerv, glGetBufferSubData, glIsBuffer, glUnmapBuffer