glGetSeparableFilter

Aus DGL Wiki
Version vom 10. April 2006, 16:33 Uhr von Dj3hut1 (Diskussion | Beiträge) (an manpages angepasst)

Wechseln zu: Navigation, Suche

glGetSeparableFilter


Name

glGetSeparableFilter - holt separable Convolution-Faltungskernbilder.


Delphi-Spezifikation

procedure glGetSeparableFilter(target : TGLenum; format : TGLenum;
                               _type : TGLenum; row : PGLvoid; 
                               column : PGLvoid; span : PGLvoid);


Parameter

target Der abzufragende separable Filter. Muss GL_SEPARABLE_2D sein.
format Gewünschtes Format des Ausgabebildes. Erlaubt sind die Parameter GL_RGB, GL_RGBA, GL_BGR, GL_BGRA, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE und GL_LUMINANCE_ALPHA.
_type Datentyp der Komponenten des Ausgabebildes. Erlaubte symbolische Konstanten sind : GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2 und GL_UNSIGNED_INT_2_10_10_10_REV.
row Zeiger auf Speicher für das Zeilenfilterbild.
column Zeiger auf Speicher für das Spaltenfilterbild.
span Zeiger auf Speicher für das Spannenfilterbild (zur Zeit unbenutzt).


Beschreibung

glGetSeparableFilter liefert die zwei eindimensionalen Faltungskern-Bilder für den aktuellen separablen 2D-Convolution-Filter. Das Zeilenbild ist in row platziert und das Spaltenbild ist in column platziert, laut den Spezifikationen in format und _type. (In der momentanen Implementation wird span in keiner Art und Weise beeinflusst.) Keine Pixeltransferoperation (gesetzt mit glPixelTransfer) werden auf die Bilder verarbeitet, aber die relevanten Pixelspeicher-Modes (gesetzt mit glPixelStore) werden angewendet.

Farbkomponenten, die in format vorkommen, aber nicht im internen Format der Filter auftauchen, werden als 0 zurückgegeben. Die Zuweisungen der internen Farbkomponenten an die Komponenten von format sind wie folgt :

Interne Komponente Ergebniskomponente
Rot Rot
Grün Grün
Blau Blau
Alpha Alpha
Helligkeit Rot
Intensität Rot


Hinweise

glGetSeparableFilter ist erst ab GL Version 1.2 oder höher nutzbar.

glGetSeparableFilter ist nur verfügbar, wenn GL_ARB_imaging von glGetString mit dem Argument GL_EXTENSIONS zurückgeliefert wird.

Wenn ein Fehler durch die Funktion ausgelöst wird, werden keine Veränderungen am Inhalt von params durchgeführt.

Für row und column sollte zum Empfang der Daten genügend Speicher allokiert werden. Die Grösse des Speichers ist abhängig von den Parametern format, _type und der Größe des Filters, welche via glGetConvolutionParameter mit den Parametern GL_CONVOLUTION_WIDTH (für die Länge von row) und GL_CONVOLUTION_HEIGHT (für die Länge von column) ermittelt werden kann.

Nicht-separable 2D-Filter müssen mit glGetConvolutionFilter geholt werden.


Fehlermeldungen

GL_INVALID_ENUM wird generiert, wenn target nicht GL_SEPARABLE_2D ist.

GL_INVALID_ENUM wird generiert, wenn format oder type ein ungültiger Wert übergeben wurde.

GL_INVALID_OPERATION wird generiert wenn glGetSeparableFilter innerhalb eines glBegin-glEnd Blocks aufgerufen wird.

GL_INVALID_OPERATION wird generiert wenn

  • type einen der folgenden Werte hat:
    • GL_UNSIGNED_BYTE_3_3_2
    • GL_UNSIGNED_BYTE_2_3_3_REV
    • GL_UNSIGNED_SHORT_5_6_5
    • GL_UNSIGNED_SHORT_5_6_5_REV
und
  • format nicht GL_RGB ist.

GL_INVALID_OPERATION wird generiert wenn

  • type einen der folgenden Werte hat:
    • GL_UNSIGNED_SHORT_4_4_4_4
    • GL_UNSIGNED_SHORT_4_4_4_4_REV
    • GL_UNSIGNED_SHORT_5_5_5_1
    • GL_UNSIGNED_SHORT_1_5_5_5_REV
    • GL_UNSIGNED_INT_8_8_8_8
    • GL_UNSIGNED_INT_8_8_8_8_REV
    • GL_UNSIGNED_INT_10_10_10_2
    • GL_UNSIGNED_INT_2_10_10_10_REV
und
  • format weder GL_RGBA noch GL_BGRA ist.



Siehe auch

glConvolutionFilter, glGetConvolutionFilter, glGetConvolutionParameter, glSeparableFilter2D