glGetConvolutionFilter

Aus DGL Wiki
Wechseln zu: Navigation, Suche

glGetConvolutionFilter

Name

glGetConvolutionFilter - Abfrage des momentanen 1D- oder 2D-Convolution-Filters.


Delphi-Spezifikation

procedure glGetConvolutionFilter(target: TGLenum; format: TGLenum;
                                 _type: TGLenum; image: PGLvoid);


Parameter

target Filter, der abgefragt werden soll. Akzeptierte Werte sind GL_CONVOLUTION_1D und GL_CONVOLUTION_2D.
format Pixelformat des Filterkernels. 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 für Pixelwerte des Filterkernels. Erlaubt sind die Parameter 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.
image Zeiger auf Speicher, in der die Daten des Filterkernels geladen werden sollen.



Beschreibung

glGetConvolutionFilter gibt den aktuellen 1D- oder 2D-Convolution-Faltungskern als Bild zurück. Das ein- oder zweidimensionale Bild wird in image platziert, abhängig von den Definitionen in format und _type. Keine Pixeltransferoperationen (gesetzt mit glPixelTransfer) werden auf dieses Bild ausgeführt, aber es werden die relevanten Pixelspeichermodes angewendet (gesetzt mit glPixelStore).

Farbkomponenten, die sich in format, aber nicht im internen Format des Filter befinden, werden als 0 zurückgegeben. Die Zuweisungen von 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

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

Der aktuelle separable 2D-Filter muss mit glGetSeparableFilter statt mit glGetConvolutionFilter abgefragt werden.

Für image 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 und GL_CONVOLUTION_HEIGHT ermittelt werden kann.


Fehlermeldungen

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

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

GL_INVALID_OPERATION wird generiert, falls _type eine der folgenden symbolischen Konstanten ist : GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, oder GL_UNSIGNED_SHORT_5_6_5_REV und das Format nicht GL_RGB ist.

GL_INVALID_OPERATION wird generiert, falls type eine der folgenden symbolischen Konstanten ist : 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 oder GL_UNSIGNED_INT_2_10_10_10_REV und das Format weder GL_RGBA noch GL_BGRA ist.


Siehe auch

glConvolutionFilter1D, glConvolutionFilter2D, glConvolutionParameter, glGetSeparableFilter, glGetConvolutionParameter