glBeginConditionalRender: Unterschied zwischen den Versionen
(glBegin/EndConditionalRender) |
K (→Siehe auch) |
||
Zeile 67: | Zeile 67: | ||
− | [[Kategorie: GL]] | + | [[Kategorie: GL|BeginConditionalRender]] |
− | [[Kategorie: GL3]] | + | [[Kategorie: GL3|BeginConditionalRender]] |
Aktuelle Version vom 21. Februar 2014, 17:45 Uhr
Inhaltsverzeichnis
glBeginConditionalRender, glEndConditionalRender
Name
glBeginConditionalRender, glEndConditionalRender - Umschließen eine Abfolge an Befehlen, welche auf Basis eines Query-Objektes verworfen werden können.
Delphi-Spezifikation
procedure glBeginConditionalRender(id : GLuint; mode : GLenum); procedure glEndConditionalRender;
Parameter
id | Name des Query-Objektes, dessen Resultat zur Auswertung genutzt werden soll. |
---|---|
mode | Bestimmt die Interpretation des Query-Resultats. Erlaubt sind die folgenden vier symbolischen Konstanten:
GL_QUERY_WAIT, GL_QUERY_NO_WAIT, GL_QUERY_BY_REGION_WAIT und GL_QUERY_BY_REGION_NO_WAIT. |
Beschreibung
glBeginConditionalRender und glEndConditionalRender beginnen und beenden bedingtes Rendern auf Basis des in id übergebenen Query-Objektes. Der Parameter mode bestimmt, ob auf das Resultat der Query (falls noch nicht vorhanden) gewartet werden soll und ob Resultate von Zeichenoperationen in Bereichen des Framebuffers, welche nicht zum Query-Resultat beigetragen haben, verworfen werden sollen. Ist der GL_SAMPLES_PASSED-Wert der Query Null, oder der GL_ANY_SAMPLES_PASSED-Wert GL_FALSE, so werden sämtliche glDraw*- und glClear/glClearBuffer-Befehle im bedingen Rendern verworfen.
In Abhängigkeit von mode wird die Query wie folgt genutzt:
mode | Beschreibung |
---|---|
GL_QUERY_WAIT | Ist das Resultat der Query id nicht vorhanden, so wartet OpenGL bis das Resultat verfügbar ist (kann die Pipeline blockieren). |
GL_QUERY_NO_WAIT | Ist das Resultat der Query id nicht vorhanden, so kann OpenGL den bedingten Render-Block ohne zu warten bedingungslos ausführen. |
GL_QUERY_BY_REGION_WAIT | Wie GL_QUERY_WAIT, allerdings kann OpenGL Resultate des bedingten Renderns verwerfen, wenn diese in Bereichen des Framebuffers liegen, die nicht zum Resultat der Query id beigetragen haben. |
GL_QUERY_BY_REGION_NO_WAIT | Wie GL_QUERY_NO_WAIT, allerdings kann OpenGL Resultate des bedingten Renderns verwerfen, wenn diese in Bereichen des Framebuffers liegen, die nicht zum Resultat der Query id beigetragen haben. |
Hinweise
Bedingtes Rendern ist erst ab Version 3.0 verfügbar (oder mittels Extension GL_NV_conditional_render (Befehle mit Suffix 'NV')).
GL_ANY_SAMPLES_PASSED ist erst ab Version 3.3 verfügbar.
Fehlermeldungen
GL_INVALID_VALUE wird generiert wenn id nicht der Name eines existierenden Query-Objektes ist.
GL_INVALID_ENUM wird generiert wenn mode einen ungültgen Wert hat.
GL_INVALID_OPERATION wird generiert wenn glBeginConditionalRender während aktivem bedingten Rendern aufgerufen wird oder wenn glEndConditionalRender aufgerufen wird, ohne dass bedingtes Rendern aktiv ist.
GL_INVALID_OPERATION wird generiert wenn das Ziel der Query id nicht GL_SAMPLES_PASSED oder GL_ANY_SAMPLES_PASSED.
GL_INVALID_OPERATION wird generiert wenn das Query-Objekt id aktiv ist.