glGetMinmax: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(neu erstellt)
 
K (Bot: konvertiere/korrigiere <BR>)
 
(Eine dazwischenliegende Version von einem anderen Benutzer wird nicht angezeigt)
Zeile 1: Zeile 1:
 
= glGetMinmax =
 
= glGetMinmax =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
'''glGetMinmax''' - Holt die minimalen und maximalen Farbwerte eines Bildes oder einer Textur.
+
'''glGetMinmax''' - Liefert die minimalen und maximalen Farbwerte eines Bildes oder einer Textur.
 
<br>
 
<br>
  
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
  
  procedure '''glGetMinmax'''(''target'' : TGLenum; ''reset'' : TGLboolean; ''format'' : TGLenum;
+
  procedure '''glGetMinmax'''(''target'' : TGLenum; ''reset'' : TGLboolean;
                      ''_type'' : TGLenum; ''values'' : PGLvoid);  
+
                      ''format'' : TGLenum; ''_type'' : TGLenum;
 +
                      ''values'' : PGLvoid);  
 +
 
  
<br>
 
  
 
== Parameter ==
 
== Parameter ==
Zeile 20: Zeile 22:
 
|-
 
|-
 
! ''reset''  
 
! ''reset''  
| Ist dieser Wert '''GL_TRUE''', werden die Minimal- und Maximalwerte des Minmax-Puffers gelöscht.
+
| Falls '''GL_TRUE''', werden alle Einträge in der Minmax-Tabelle, die tatsächlich zurückgeliefert werden, auf ihre initialen Werte gesetzt. (Andere Einträge bleiben unverändert.) Falls '''GL_FALSE''', bleibt die Minmax-Tabelle unverändert.
 
|-
 
|-
 
! ''format''  
 
! ''format''  
| Bestimmt, von welchen Farbkomponenten die Minimal- und Maximalwerte abgefragt werden sollen. Mögliche Werte sind '''GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE''' oder '''GL_LUMINANCE_ALPHA'''.
+
| Das Format der Daten, die mit ''values'' zurückgegeben werden. Mögliche Werte sind '''GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE''' oder '''GL_LUMINANCE_ALPHA'''.
 
|-
 
|-
 
! ''_type''  
 
! ''_type''  
Zeile 29: Zeile 31:
 
|-
 
|-
 
! ''values''  
 
! ''values''  
| Zeiger auf Minmax-Array, in das die Werte geschrieben werden sollen.
+
| Zeiger auf Speicher für die zurückgegebenen Werte.
 
|}
 
|}
  
<br>
+
 
 +
 
  
 
== Beschreibung ==  
 
== Beschreibung ==  
'''glGetMinmax''' fragt den Zustand der aktuellen Minmax-Tabelle ab. Mit ''format'' und ''_type'' wird bestimmt, welche Farbkomponenten in welchem Format im Minmax-Array ''values'' auftreten.
+
'''glGetMinmax''' gibt die angehäuften Minimal- und Maximalpixelwerte (berechnet auf einer Per-Komponenten-Basis) in einem eindimensionalen Bild der Länge zwei zurück. Die erste Menge an Rückgabewerten sind die Minima und die zweite Menge an Rückgabewerten sind die Maxima. Das Format der Rückgabewerte wird durch ''format'' und ihr Typ durch ''_type'' festgelegt.
Dabei werden zuerst alle minimalen und danach alle maximalen Werte abgespeichert.
 
  
Ist z.B. ''format'' gleich '''GL_RGB''', so befinden sich in ''values'' zuerst die minimalen Werte der roten, der grünen und der blauen Farbkomponente, gefolgt von den maximalen Werten.
+
Keine Pixeltransferoperationen (gesetzt mit [[glPixelTransfer]]) werden für die Rückgabewerte ausgeführt, aber Pixelspeicher-Modes (gesetzt mit [[glPixelStore]]), die auf eindimensionalen Bilder anwendbar sind, werden ausgeführt. Farbkomponenten, die im definierten Format abgefragt werden, aber die nicht im internen Format der Minmax-Tabelle enthalten sind, werden als 0 zurückgegeben. Die Zuweisung von internen Farbkomponenten an die abgefragten Komponenten durch ''format'' sind wie folgt :
 +
 
 +
<div align="center">
 +
{| {{Prettytable_B1}}
 +
! Interne Komponente
 +
! Ergebniskomponente
 +
|-
 +
| Rot
 +
| Rot
 +
|-
 +
| Grün
 +
| Grün
 +
|-
 +
| Blau
 +
| Blau
 +
|-
 +
| Alpha
 +
| Alpha
 +
|-
 +
| Helligkeit
 +
| Rot
 +
|}
 +
</div>
  
Es können nur die Farbkomponenten abgefragt werden, die auch berechnet wurden.
+
Falls ''reset'' '''GL_TRUE''' ist, werden die Minmax-Tabelleneinträge, die den Rückgabewerten entsprechen, auf ihre initialen Werte gesetzt. Minimal- und Maximalwerte, die nicht zurückgegeben werden, werden nicht verändert, auch wenn ''reset'' '''GL_TRUE''' ist.
Welche Komponenten bei der Minmax-Operation berechnet werden, wird mit dem Parameter ''internalformat'' der Funktion [[glMinmax]] festgelegt.
 
  
Mit ''reset'' kann bestimmt werden, ob nach der Abfrage der Werte, diese im internen Puffer zurückgesetzt werden sollen. Ist dieser Parameter '''GL_TRUE''', so werden alle Minimalwerte auf die maximal mögliche Representation und die Maximalwerte auf die minmal mögliche Representation gesetzt.
 
Bei '''GL_FALSE''' werden keine Werte modifiziert.
 
  
Damit die minimalen und maximalen Werte eines Bildes oder einer Textur in der [[Imaging-Pipeline]] überhaupt berechnet werden, muss diese Operation vorher mit [[glEnable]]('''GL_MINMAX''') aktiviert werden.
 
  
<br>
 
  
 
== Hinweise ==
 
== Hinweise ==
Zeile 55: Zeile 74:
 
'''glGetMinmax''' ist nur verfügbar, wenn '''GL_ARB_imaging''' im Rückgabewert von [[glGetString]] enthalten ist bei einem Aufruf mit dem Parameter '''GL_EXTENSIONS'''.
 
'''glGetMinmax''' ist nur verfügbar, wenn '''GL_ARB_imaging''' im Rückgabewert von [[glGetString]] enthalten ist bei einem Aufruf mit dem Parameter '''GL_EXTENSIONS'''.
  
<br>
+
 
 +
 
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
 
'''GL_INVALID_ENUM''' wird generiert wenn ''target'' nicht '''GL_MINMAX''' ist.<br>
 
'''GL_INVALID_ENUM''' wird generiert wenn ''target'' nicht '''GL_MINMAX''' ist.<br>
Zeile 84: Zeile 104:
 
:* ''format'' weder '''GL_RGBA''' noch '''GL_BGRA''' ist.
 
:* ''format'' weder '''GL_RGBA''' noch '''GL_BGRA''' ist.
  
<br>
+
 
 +
 
  
 
== Siehe auch ==
 
== Siehe auch ==

Aktuelle Version vom 22. April 2006, 19:21 Uhr

glGetMinmax

Name

glGetMinmax - Liefert die minimalen und maximalen Farbwerte eines Bildes oder einer Textur.

Delphi-Spezifikation

procedure glGetMinmax(target : TGLenum; reset : TGLboolean;
                      format : TGLenum; _type : TGLenum;
                      values : PGLvoid); 


Parameter

target Muss GL_MINMAX sein.
reset Falls GL_TRUE, werden alle Einträge in der Minmax-Tabelle, die tatsächlich zurückgeliefert werden, auf ihre initialen Werte gesetzt. (Andere Einträge bleiben unverändert.) Falls GL_FALSE, bleibt die Minmax-Tabelle unverändert.
format Das Format der Daten, die mit values zurückgegeben werden. Mögliche Werte sind GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE oder GL_LUMINANCE_ALPHA.
_type Datentyp der Werte, welche in values zurück gegeben werden. Die folgenden symbolischen Konstanten werden akzeptiert: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, 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, 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
values Zeiger auf Speicher für die zurückgegebenen Werte.



Beschreibung

glGetMinmax gibt die angehäuften Minimal- und Maximalpixelwerte (berechnet auf einer Per-Komponenten-Basis) in einem eindimensionalen Bild der Länge zwei zurück. Die erste Menge an Rückgabewerten sind die Minima und die zweite Menge an Rückgabewerten sind die Maxima. Das Format der Rückgabewerte wird durch format und ihr Typ durch _type festgelegt.

Keine Pixeltransferoperationen (gesetzt mit glPixelTransfer) werden für die Rückgabewerte ausgeführt, aber Pixelspeicher-Modes (gesetzt mit glPixelStore), die auf eindimensionalen Bilder anwendbar sind, werden ausgeführt. Farbkomponenten, die im definierten Format abgefragt werden, aber die nicht im internen Format der Minmax-Tabelle enthalten sind, werden als 0 zurückgegeben. Die Zuweisung von internen Farbkomponenten an die abgefragten Komponenten durch format sind wie folgt :

Interne Komponente Ergebniskomponente
Rot Rot
Grün Grün
Blau Blau
Alpha Alpha
Helligkeit Rot

Falls reset GL_TRUE ist, werden die Minmax-Tabelleneinträge, die den Rückgabewerten entsprechen, auf ihre initialen Werte gesetzt. Minimal- und Maximalwerte, die nicht zurückgegeben werden, werden nicht verändert, auch wenn reset GL_TRUE ist.



Hinweise

glGetMinmax ist ab OpenGL Version 1.2 verfügbar.

glGetMinmax ist nur verfügbar, wenn GL_ARB_imaging im Rückgabewert von glGetString enthalten ist bei einem Aufruf mit dem Parameter GL_EXTENSIONS.


Fehlermeldungen

GL_INVALID_ENUM wird generiert wenn target nicht GL_MINMAX ist.
GL_INVALID_ENUM wird generiert wenn format keinen zugelassenen Wert hat.
GL_INVALID_ENUM wird generiert wenn type keinen zugelassenen Wert hat.
GL_INVALID_OPERATION wird generiert wenn glGetMinmax 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

glMinmax, glResetMinmax, glGetMinmaxParameter