glBindBuffer: Unterschied zwischen den Versionen
Flo (Diskussion | Beiträge) K |
Flo (Diskussion | Beiträge) K |
||
Zeile 8: | Zeile 8: | ||
== Name == | == Name == | ||
− | '''glBindBuffer''' - Bindet einen benannten | + | '''glBindBuffer''' - Bindet einen benannten Puffer an ein Ziel. |
Zeile 23: | Zeile 23: | ||
{| border="1" rules="all" | {| border="1" rules="all" | ||
! ''target'' | ! ''target'' | ||
− | | | + | | Das Ziel an das der Puffer gebunden wird |
|- | |- | ||
! ''buffer'' | ! ''buffer'' |
Version vom 1. Mai 2006, 09:29 Uhr
(Mehr Informationen/weitere Artikel) {{{1}}} |
Inhaltsverzeichnis
TODO
- Parametertypen ueberpruefen. Sind C/C++ Typen bisher.
glBindBuffer
Name
glBindBuffer - Bindet einen benannten Puffer an ein Ziel.
Delphi-Spezifikation
procedure glBindBuffer(target : enum; ... buffer : uint)
Parameter
target | Das Ziel an das der Puffer gebunden wird |
---|---|
buffer | Ein OpenGL Name (eine natürliche Zahl. Die Zahl 0 ist für GL reserviert) |
Beschreibung
Im Ausgangszustand ist der reservierte Name 0 gebunden an ARRAY_BUFFER.
Vertex Daten Arrays werden im Speicher des Clients gespeichert. Manchmal ist es aus performance Gruenden erforderlich die Daten im Speicher des Servers zu speichern. GL Puffer Objekte erlauben es den Clienten mit diesem Speicher zu arbeiten. (daher: Speicher anzufordern, zu initialisieren und davon rendern)
Ein neues Buffer Objekt wird erzeugt in dem man einen nichtgenutzen Namen(Zahl aus IN mit 0) an ARRAY_BUFFER bindet. Einen solchen Namen erhält man in dem man glGenBuffers aufruft.
Der Speicher des neuen Puffers ist mit 0 initialisiert. Jeder Puffer bietet noch eine Reihe von Einstellungen, welche folgender Tabelle zu entnehmen sind:
Name | Type | Startwert | erlaubte Werte |
---|---|---|---|
BUFFER_SIZE | integer | 0 | jede positive Zahl |
BUFFER_SIZE | enum | STATIC_DRAW | STREAM_DRAW, STREAM_READ, STREAM_COPY, STATIC_DRAW, STATIC_READ, STATIC_COPY, DYNAMIC_DRAW, DYNAMIC_READ, DYNAMIC_COPY |
BUFFER_SIZE | integer | 0 | jede positive Zahl |
BUFFER_ACCESS | enum | READ_WRITE | READ_ONLY, WRITE_ONLY, READ_WRITE |
BUFFER_MAPPED | boolean | FALSE | TRUE, FALSE |
BUFFER_MAPPED | boolean | FALSE | TRUE, FALSE |
BUFFER_MAP_POINTER | void* | NULL | address |
Es ist möglich ein existierenden Puffer mit glBindBuffer zu binden. Falls dies erfolgreich verläuft wird keine Einstellung des Puffers geändert und jegliche vorherige Bindung zum Puffer ist kaputt.
Operationen auf das gebunde Ziel, beeinflussen das Puffer Objekt solange es gebunden ist. Durch Abfragen des gebunden Zielen erhält man Informationen über den Status des Puffer Objektes.
Hinweise
Erst in OpenGL Version 1.5 Verfügbar!
Fehlermeldungen
- GL_INVALID_ENUM wird generiert wenn target einen ungueltigen Wert hat.
Siehe auch
glDeleteBuffers, glGenBuffers, glBufferData, glBufferSubData, glMapBuffer, glUnmapBuffer