glCopyConvolutionFilter

Aus DGL Wiki
Version vom 7. April 2006, 12:10 Uhr von Dj3hut1 (Diskussion | Beiträge) (neu erstellt)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

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