glLogicOp: Unterschied zwischen den Versionen
DGLBot (Diskussion | Beiträge) K (GlLogicOp wurde nach glLogicOp verschoben) |
Flash (Diskussion | Beiträge) (→Siehe auch) |
||
Zeile 122: | Zeile 122: | ||
[[Kategorie:GL|LogicOp]] | [[Kategorie:GL|LogicOp]] | ||
+ | [[Kategorie:GL1.0]] |
Aktuelle Version vom 16. April 2007, 00:24 Uhr
Inhaltsverzeichnis
glLogicOp
Name
glLogicOp - Bestimmt eine logische Pixeloperation für das Rendern.
Delphi-Spezifikation
procedure glLogicOp(opcode: TGLenum);
Parameter
opcode | Wählt eine Logische Operation. Folgende symbolische Konstanten werden acceptiert: GL_CLEAR, GL_SET, GL_COPY, GL_COPY_INVERTED, GL_NOOP, GL_INVERT, GL_AND, GL_NAND, GL_OR, GL_NOR, GL_XOR, GL_EQUIV, GL_AND_REVERSE, GL_AND_INVERTED, GL_OR_REVERSE, und GL_OR_INVERTED. |
---|
Beschreibung
Sind logische Operationen aktiviert bestimmt glLogicOp eine Logische Operation welche den neuen Farbindex mit dem Farbindex an der entsprechenden Stelle im Framebuffer kombiniert. Logische Operationen werden mittels glEnable/glDisable und dem Token GL_LOGIC_OP aktiviert bzw. deaktiviert.
opcode ist eine symbolische Konstante (siehe Tabelle). Bei der Erklärung der Operationen ist s (source - "Quelle") die neu eintreffende Farbe und d (destination - "Ziel") der Index im Framebuffer. Zur Erklärung enthält die Tabelle Delphi sowie standard C Operatoren. Wie die Bit-Operatoren vermuten lassen, werden die Logischen Operationen unabhängig auf jedes Bitpaar der Quell- und Zeilindizes angewandt.
opcode | Ergebnis (Delphi) | Ergebnis (standard C) |
---|---|---|
GL_CLEAR | 0 | 0 |
GL_SET | 1 | 1 |
GL_COPY | s | s |
GL_COPY_INVERTED | not s | !s |
GL_NOOP | d | d |
GL_INVERT | not d | !d |
GL_AND | s and d | s & d |
GL_NAND | not( s and d) | !( s & d ) |
GL_OR | s or d | s | d |
GL_NOR | not (s or d ) | !( s | d ) |
GL_XOR | s xor d | s ^ d |
GL_EQUIV | not ( s xor d ) | !( s ^ d ) |
GL_AND_REVERSE | s and (not d) | s & !d |
GL_AND_INVERTED | (not s) and d | !s & d |
GL_OR_REVERSE | s or (not d) | s | !d |
GL_OR_INVERTED | (not s) or d | !s | d |
Hinweise
Logische Pixeloperationen werden nicht auf RGBA Farbpuffer angewandt.
Wenn mehr als ein Farbindexpuffer zum Zeichnen aktiviert ist, werden die Operationen unabhängig voneinander auf jeden Puffer angewandt wobei als Ziel der entsprechende Puffer gewählt wird. (siehe glDrawBuffer)
opcode muss einer der 16 oben aufgeführten Werte sein. Andere Werte führen zu einen Fehler.
Fehlermeldungen
GL_INVALID_ENUM wird generiert wenn opcode ein ungültiger Wert übergeben wurde.
GL_INVALID_OPERATION wird generiert wenn glLogicOp innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGet mit Token GL_LOGIC_OP_MODE
glIsEnabled mit Token GL_LOGIC_OP.
Siehe auch
glAlphaFunc, glBlendFunc, glDrawBuffer, glEnable, glStencilOp