glCopyConvolutionFilter
Inhaltsverzeichnis
glCopyConvolutionFilter
Name
glCopyConvolutionFilter - Lädt einen Convolution-Filter aus dem Framebuffer.
Delphi-Spezifikation
procedure glConvolutionFilter1D(target : TGLenum; internalformat : TGLenum; x : TGLint; y : TGLint; width : TGLsizei) procedure glConvolutionFilter2D(target : TGLenum; internalformat : TGLenum; x : TGLint; y : TGLint; width : TGLsizei, height : TGLsizei)
Parameter
target | Gibt den Zielfilter an. Muss für glCopyConvolutionFilter1D als GL_CONVOLUTION_1D und für glCopyConvolutionFilter2D als GL_CONVOLUTION_2D gesetzt sein. |
---|---|
internalformat | Format, in das die Daten aus dem Framebuffer konvertiert werden sollen. Möglich Werte sind : GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_RGB, GL_R3_G3_B2, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12 und GL_RGBA16. |
x, y | Gibt die Fenster-Koordinaten der linken, unteren Ecke des zu kopierenden Pixel-Rechtecks an. |
width | Gibt die Breite des zu kopierenden Pixel-Rechtecks an. |
height | Gibt bei glCopyConvolutionFilter2D die Höhe des zu kopierenden Pixel-Rechtecks an. |
Beschreibung
Dieser Befehl kopiert einen eindimensionalen (mit glCopyConvolutionFilter1D) oder zweidimensionalen (mit glCopyConvolutionFilter2D) Convolution-Filter aus dem aktuellen Framebuffer, definiert mit GL_READ_BUFFER.
Das Bildschirm-bezogene Pixelrechteck mit der unteren linken Ecke bei (x, y), der Länge von width und der Höhe von height definiert den Filterbereich.
internalformat gibt das interne Format des Filters vor. Wird GL_LUMINANCE oder GL_INTENSITY angegeben, so wird die rote Pixel-Komponente benutzt, um den Wert für den Convolution-Filter zu bestimmen.
Die Pixel in dem Rechteck werden genau so bearbeitet, wie wenn glCopyPixels aufgerufen worden wäre, nur dass der Vorgang vor der finalen Konvertierung gestoppt wird. An diesem Punkt werden alle Pixel-Werte an den [0, 1]-Bereich angepasst und dann in das interne Filterformat konvertiert, um im Filter-Array gespeichert zu werden.
Wenn sich einige der Pixel, die in der Zeile des aktuellen GL_READ_BUFFER angegeben werden, außerhalb des Bildschirms befinden, sind die Werte für diese Pixel undefiniert.
Hinweise
glCopyConvolutionFilter1D und glCopyConvolutionFilter2D sind ab OpenGL Version 1.2 verfügbar.
Fehlermeldungen
GL_INVALID_ENUM wird generiert, wenn target nicht GL_CONVOLUTION_1D oder GL_CONVOLUTION_2D ist. (entsprechend der benutzten Funktion)
GL_INVALID_ENUM wird generiert, wenn internalformat ungültige Werte übergeben wurden.
GL_INVALID_VALUE wird generiert, wenn die Parameter width und height kleiner als 0 oder größer als die jeweilig maximal zulässigen Werte sind. Mittels glGetConvolutionParameter (mit target GL_CONVOLUTION_1D und Parameter GL_MAX_CONVOLUTION_WIDTH oder GL_CONVOLUTION_2D und Parameter GL_MAX_CONVOLUTION_WIDTH oder GL_MAX_CONVOLUTION_HEIGHT) können diese Werte abgefragt werden.
GL_INVALID_OPERATION wird generiert, wenn glCopyConvolutionFilter1D oder glCopyConvolutionFilter2D innerhalb eines glBegin-glEnd Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGetConvolutionFilter
glGetConvolutionParameter
Siehe auch
glConvolutionFilter1D, glConvolutionFilter2D, glConvolutionParameter, glGetConvolutionFilter, glGetConvolutionParameter, glSeparableFilter2D