glGetSeparableFilter: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Funktionsverweis verändert)
(an manpages angepasst)
Zeile 3: Zeile 3:
 
<br>
 
<br>
 
== Name ==
 
== Name ==
'''glGetSeparableFilter''' - Abfrage des separablen [[Convolution-Filter|Convolution-Filters]].
+
'''glGetSeparableFilter''' - holt separable Convolution-Faltungskernbilder.
  
 
<br>
 
<br>
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
  procedure '''glGetSeparableFilter'''(''target'' : TGLenum; ''format'' : TGLenum; ''_type'' : TGLenum;
+
  procedure '''glGetSeparableFilter'''(''target'' : TGLenum; ''format'' : TGLenum;
                                ''row'' : PGLvoid; ''column'' : PGLvoid; ''span'' : PGLvoid);
+
                                ''_type'' : TGLenum; ''row'' : PGLvoid;  
 +
                                ''column'' : PGLvoid; ''span'' : PGLvoid);
  
 
<br>
 
<br>
Zeile 17: Zeile 18:
 
|-
 
|-
 
! ''format''  
 
! ''format''  
| Gewünschtes Format der Werte. 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'''.
+
| 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''  
 
! ''_type''  
| Typ, mit dem die zu holenden Daten gespeichert werden sollen. 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'''.
+
| 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''  
 
! ''row''  
| Zeiger auf Speicher, in der die Spalten-Daten des separablen Filters abgelegt werden sollen.
+
| Zeiger auf Speicher für das Zeilenfilterbild.
 
|-
 
|-
 
! ''column''  
 
! ''column''  
| Zeiger auf Speicher, in der die Zeilen-Daten des separablen Filters abgelegt werden sollen.
+
| Zeiger auf Speicher für das Spaltenfilterbild.
 
|-
 
|-
 
! ''span''  
 
! ''span''  
| Bisher ungenutzter Parameter. Sollte vorerst Null-Wert enthalten.
+
| Zeiger auf Speicher für das Spannenfilterbild (zur Zeit unbenutzt).
 
|}
 
|}
  
Zeile 35: Zeile 36:
  
 
== Beschreibung ==  
 
== Beschreibung ==  
'''glGetSeparableFilter''' liefert den aktuell gesetzten separablen Convolution-Filter über die Zeiger ''row'' und ''column'' zurück. ''target'' gibt das Ziel des gewünschten Filters an und muss auf '''GL_SEPARABLE_2D''' gesetzt werden. ''format'' und ''type'' geben das Format und den Typ des gewünschten Filters an und sind äquivalent zu den entsprechenden Parametern von [[glGetTexImage]].  
+
'''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.
  
''row'' enthält dabei die Spaltenwerte und ''column'' die Zeilenwerte des Filters.
+
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 :
 +
 
 +
<div align="center">
 +
{| {{Prettytable_B1}}
 +
! Interne Komponente
 +
! Ergebniskomponente
 +
|-
 +
| Rot
 +
| Rot
 +
|-
 +
| Grün
 +
| Grün
 +
|-
 +
| Blau
 +
| Blau
 +
|-
 +
| Alpha
 +
| Alpha
 +
|-
 +
| Helligkeit
 +
| Rot
 +
|-
 +
| Intensität
 +
| Rot
 +
|}
 +
</div>
  
 
<br>
 
<br>
 
== Hinweise ==
 
== 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.
 
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.
 
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.
  
 
<br>
 
<br>
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
'''GL_INVALID_ENUM''' wird generiert wenn ''target'', ''format'' oder ''type'' ein ungültiger Wert übergeben wurde.<br>
+
'''GL_INVALID_ENUM''' wird generiert, wenn ''target'' nicht '''GL_SEPARABLE_2D''' ist.<br>
'''GL_INVALID_OPERATION''' wird generiert wenn '''glGetSeparableFilter''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.
+
 
 +
'''GL_INVALID_ENUM''' wird generiert, wenn ''format'' oder ''type'' ein ungültiger Wert übergeben wurde.<br>
 +
 
 +
'''GL_INVALID_OPERATION''' wird generiert wenn '''glGetSeparableFilter''' innerhalb eines [[glBegin]]-[[glEnd]] Blocks aufgerufen wird.<br>
 +
 
 +
'''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.
 +
 
  
 
<br>
 
<br>

Version vom 10. April 2006, 16:33 Uhr

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