glLogicOp

Aus DGL Wiki
Wechseln zu: Navigation, Suche

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