glGetSeparableFilter
Inhaltsverzeichnis
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
- type einen der folgenden Werte hat:
- 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
- type einen der folgenden Werte hat:
- und
- format weder GL_RGBA noch GL_BGRA ist.
Siehe auch
glConvolutionFilter, glGetConvolutionFilter, glGetConvolutionParameter, glSeparableFilter2D