glRenderMode: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Version Hochgeladen)
K (Kategorisierung)
 
(9 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glRenderMode =
 
= glRenderMode =
  
<br>
+
 
 +
 
 
== glRenderMode ==
 
== glRenderMode ==
----
 
 
'''glRenderMode''' - Bestimmt den Rasterisierungsmodus (rasterization mode).
 
'''glRenderMode''' - Bestimmt den Rasterisierungsmodus (rasterization mode).
  
<br>
+
 
 +
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
----
+
function '''glRenderMode'''(''mode'' : GLenum) : GLint;
'''function''' glRenderMode(''mode'' : GLenum) : GLint;
+
 
 +
 
 +
 
  
<br>
 
 
== Parameter ==
 
== Parameter ==
----
+
{| border="1" rules="all"
<table border=1 rules=all>
+
| '''''mode'''''
<tr>
+
|Gibt den Rasterisierungsmodus an. Drei Werte werden akzeptiert:<br>
<td>''mode''</td>
+
'''GL_RENDER, GL_SELECT''' und '''GL_FEEDBACK'''.
<td>Gibt den Rasterisierungsmodus an. Drei Werte werden akzeptiert:<br>
+
|}
'''GL_RENDER, GL_SELECT''' und '''GL_FEEDBACK'''.</td>
 
</tr>
 
</table>
 
  
 
'''Standartwert''' ist '''GL_RENDER'''.
 
'''Standartwert''' ist '''GL_RENDER'''.
  
<br>
+
 
 +
 
 
== Beschreibung ==  
 
== Beschreibung ==  
----
+
Der Funktion '''glRenderMode''' wird eine Variable, ''mode'', übergeben. Diese kann einen der folgenden Werte annehmen:
Der Funktion '''glRenderMode''' wird eine Variable, ''mode'', übergeben. Diese kann einen der folgenden Werte annehmen: <br>
 
  
 
'''GL_RENDER'''<br>
 
'''GL_RENDER'''<br>
Rendermodus. [[Primitive]] werden rasterisiert, daraus werden [[Fragment |Pixelfragmente]] gemacht welche in den [[Framebuffer]] geschrieben werden.<br>
+
:''Rendermodus''
Dieser Modus ist der normale "Zeichenmodus" und und gleichzeitig der Standard.
+
:[[Primitive]] werden rasterisiert, daraus werden [[Fragment |Pixelfragmente]] gemacht welche in den [[Framebuffer]] geschrieben werden.<br>
 +
:Dieser Modus ist der normale "Zeichenmodus" und gleichzeitig der Standard.
 +
 
 +
'''GL_SELECT'''
 +
 
 +
:''Selektions Modus''
 +
:Es werden keine [[Fragment |Pixelfragmente]] produziert und es werden auch keine Änderungen am [[Framebuffer]] durchgeführt.
 +
 
 +
:Anstelle dessen werden 4 Werte pro sichtbarem [[Primitive]]n in einen [[glSelectBuffer|Selektionspuffer]] geschrieben. Dieser Puffer muss schon vor dem Aufruf dieser Funktion erstellt worden sein.
 +
 
 +
:Die vier Werte, die man pro Primitiven erhält sind:
 +
:# Anzahl der Namen auf dem Stack
 +
:# Kleinster Z-Wert des getroffenen Objektes
 +
:# Größter Z-Wert des getroffenen Objektes
 +
:# Name des Objektes
 +
 
 +
 
 +
'''GL_FEEDBACK'''
 +
 
 +
:''Feedback Modus''
 +
:Es werden weder [[Fragment |Pixelfragmente]] produziert noch Änderungen am [[Framebuffer]] durchgeführt.
 +
 
 +
:Alle sichtbaren Vertexe werden in einem [[glFeedbackBuffer|Rückgabe Puffer]] geschrieben. Dieser Puffer muss schon vor dem Aufruf dieser Funktion erstellt worden sein.
  
'''GL_SELECT'''<br>
+
Der Rückgabewert der Funktion glRenderMode richtet sich nach dem Rendermodus, welcher '''vor''' ihrem Aufruf aktiv war:
Selektions Modus. Es werden keine [[Fragment |Pixelfragmente]] produziert und es werden auch keine Änderungen am [[Framebuffer]] durchgeführt. <br>
 
Anstelle dessen wird ein record mit den Namen der [[Primitive]], die gezeichnet worden wären, wenn der Rendermodus '''GL_RENDER''' gewesen wäre, in einem Selection Buffer zurück geliefert. Dieser muss bereits existieren bevor der Selektions Modus aktiviert wird. (siehe [[glSelectBuffer]])
 
  
'''GL_SELECT'''<br>
+
'''Normaler Rendermodus'''
Feedback Modus. Es werden keine [[Fragment |Pixelfragmente]] produziert und es werden auch keine Änderungen am [[Framebuffer]] durchgeführt. <br>
 
Anstelle dessen werden die Koordinaten und Attribute der Vertexe, die gezeichnet worden wären, wenn der Rendermodus '''GL_RENDER''' gewesen wäre, in einem Feedback Buffer zurück geliefert. Dieser muss bereits existieren bevor der Feedback Modus aktiviert wird. (siehe [[glFeedbackBuffer]])
 
  
Der Rückgabewert der '''glRenderMode'''-Funktion ist abhängig von Rendermodus zum Zeitpunkt des Aufrufs der Funktion, nicht vom Übergabeparameter ''mode''.<br>
+
:Null
Die Werte die in den verschiedenen Modi zurückgeliefert werden sind:
 
  
'''GL_RENDER'''<br>
+
'''Selektions Modus'''
Null
 
  
'''GL_SELECT'''<br>
+
:Die Anzahl der getroffenen Objekte, die in den Selectionbuffer geschrieben wurden.
Die Anzahl der getroffenen Objekte die in den Selectionbuffer geschrieben wurden.
 
  
'''GL_FEEDBACK'''<br>
+
'''Feedback Modus'''
Die Anzahl der Werte (nicht Vertexe) die in den Feedback Buffer geschrieben wurden.
 
  
<br>
+
:Die Anzahl der Werte (nicht Vertexe), die in den Feedbackpuffer geschrieben wurden.
== Hinweise ==
 
----
 
Wenn Sie mehr Informationen über Selektions- und Feedbackoperationen haben wollen, finden Sie diese bei [[glSelectBuffer]] und [[glFeedbackBuffer]].
 
  
 
Wenn ein Fehler ausgelöst wird, liefert '''glRenderMode''' unabhängig vom Rendermodus Null ("0") zurück.
 
Wenn ein Fehler ausgelöst wird, liefert '''glRenderMode''' unabhängig vom Rendermodus Null ("0") zurück.
  
<br>
+
 
 +
 
 +
 
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
----
+
'''GL_INVALID_ENUM''' wird generiert, wenn ''mode'' ein ungültiger Wert übergeben wird.
GL_INVALID_ENUM wird generiert wenn ''mode'' ein ungültiger Wert übergeben wird.
+
 
 +
'''GL_INVALID_OPERATION''' wird generiert, wenn [[glSelectBuffer]] aufgerufen wird, solange der Rendermodus '''GL_SELECT''' ist, oder wenn '''glRenderMode''' mit dem Argument '''GL_SELECT''' aufgerufen wird, bevor nicht '''glSelectBuffer''' mindestens einmal aufgerufen wurde.
 +
 
 +
'''GL_INVALID_OPERATION''' wird generiert, wenn [[glFeedbackBuffer]] aufgerufen wird, solange der Rendermodus '''GL_FEEDBACK''' ist, oder wenn '''glRenderMode''' mit dem Argument '''GL_FEEDBACK''' aufgerufen wird, bevor nicht '''glFeedbackBuffer''' mindestens einmal aufgerufen wurde.
  
GL_INVALID_OPERATION wird generiert wenn [[glSelectBuffer]] aufgerufen wird, solange der Rendermodus '''GL_SELECT''' ist, oder wenn '''glRenderMode''' mit dem Argument '''GL_SELECT''' aufgerufen wird bevor nicht '''glSelectBuffer''' mindestens einmal aufgerufen wurde.
+
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glRenderMode''' in einem [[glBegin]]-[[glEnd]]-Block aufgerufen wird.
  
GL_INVALID_OPERATION wird generiert wenn [[glFeedbackBuffer]] aufgerufen wird, solange der Rendermodus '''GL_FEEDBACK''' ist, oder wenn '''glRenderMode''' mit dem Argument '''GL_FEEDBACK''' aufgerufen wird bevor nicht '''glFeedbackBuffer''' mindestens einmal aufgerufen wurde.
 
  
GL_INVALID_OPERATION wird generiert wenn '''glRenderMode''' in einem [[glBegin]]-[[glEnd]] Block aufgerufen wird.
 
  
<br>
 
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
----
+
[[glGet]] mit Token [[glGet#GL_RENDER_MODE|GL_RENDER_MODE]]
[[glGet]] mit Token GL_RENDER_MODE
+
 
 +
 
  
<br>
 
 
== Siehe auch ==
 
== Siehe auch ==
----
+
[[glSelectBuffer]],[[glFeedbackBuffer]], [[glInitNames]], [[glLoadName]], [[glPassThrough]], [[glPushName]]
[[glFeedbackBuffer]], [[glInitNames]], [[glLoadName]], [[glPassThrough]], [[glPushName]], [[glSelectBuffer]]
+
 
 +
== Links ==
 +
 
 +
DGL-Tutorial [http://www.delphigl.com/script/do_show.php?name=selection&action=2 selection]
 +
 
 +
[[Kategorie:GL|RenderMode]]
 +
[[Kategorie:GL1.0|RenderMode]]

Aktuelle Version vom 1. August 2011, 14:26 Uhr

glRenderMode

glRenderMode

glRenderMode - Bestimmt den Rasterisierungsmodus (rasterization mode).


Delphi-Spezifikation

function glRenderMode(mode : GLenum) : GLint;



Parameter

mode Gibt den Rasterisierungsmodus an. Drei Werte werden akzeptiert:

GL_RENDER, GL_SELECT und GL_FEEDBACK.

Standartwert ist GL_RENDER.


Beschreibung

Der Funktion glRenderMode wird eine Variable, mode, übergeben. Diese kann einen der folgenden Werte annehmen:

GL_RENDER

Rendermodus
Primitive werden rasterisiert, daraus werden Pixelfragmente gemacht welche in den Framebuffer geschrieben werden.
Dieser Modus ist der normale "Zeichenmodus" und gleichzeitig der Standard.

GL_SELECT

Selektions Modus
Es werden keine Pixelfragmente produziert und es werden auch keine Änderungen am Framebuffer durchgeführt.
Anstelle dessen werden 4 Werte pro sichtbarem Primitiven in einen Selektionspuffer geschrieben. Dieser Puffer muss schon vor dem Aufruf dieser Funktion erstellt worden sein.
Die vier Werte, die man pro Primitiven erhält sind:
  1. Anzahl der Namen auf dem Stack
  2. Kleinster Z-Wert des getroffenen Objektes
  3. Größter Z-Wert des getroffenen Objektes
  4. Name des Objektes


GL_FEEDBACK

Feedback Modus
Es werden weder Pixelfragmente produziert noch Änderungen am Framebuffer durchgeführt.
Alle sichtbaren Vertexe werden in einem Rückgabe Puffer geschrieben. Dieser Puffer muss schon vor dem Aufruf dieser Funktion erstellt worden sein.

Der Rückgabewert der Funktion glRenderMode richtet sich nach dem Rendermodus, welcher vor ihrem Aufruf aktiv war:

Normaler Rendermodus

Null

Selektions Modus

Die Anzahl der getroffenen Objekte, die in den Selectionbuffer geschrieben wurden.

Feedback Modus

Die Anzahl der Werte (nicht Vertexe), die in den Feedbackpuffer geschrieben wurden.

Wenn ein Fehler ausgelöst wird, liefert glRenderMode unabhängig vom Rendermodus Null ("0") zurück.



Fehlermeldungen

GL_INVALID_ENUM wird generiert, wenn mode ein ungültiger Wert übergeben wird.

GL_INVALID_OPERATION wird generiert, wenn glSelectBuffer aufgerufen wird, solange der Rendermodus GL_SELECT ist, oder wenn glRenderMode mit dem Argument GL_SELECT aufgerufen wird, bevor nicht glSelectBuffer mindestens einmal aufgerufen wurde.

GL_INVALID_OPERATION wird generiert, wenn glFeedbackBuffer aufgerufen wird, solange der Rendermodus GL_FEEDBACK ist, oder wenn glRenderMode mit dem Argument GL_FEEDBACK aufgerufen wird, bevor nicht glFeedbackBuffer mindestens einmal aufgerufen wurde.

GL_INVALID_OPERATION wird generiert, wenn glRenderMode in einem glBegin-glEnd-Block aufgerufen wird.


Zugehörige Wertrückgaben

glGet mit Token GL_RENDER_MODE


Siehe auch

glSelectBuffer,glFeedbackBuffer, glInitNames, glLoadName, glPassThrough, glPushName

Links

DGL-Tutorial selection