glPixelTransferf-Funktion

Die Funktionen glPixelTransferf und glPixelTransferi legen Pixelübertragungsmodi fest.

Syntax

void WINAPI glPixelTransferf(
   GLenum  pname,
   GLfloat param
);

Parameter

pname

Der symbolische Name des zu setzenden Pixelübertragungsparameters. Die folgende Tabelle enthält den Typ, den Anfangswert und den Bereich gültiger Werte für jeden der Pixelübertragungsparameter, die mit glPixelTransfer festgelegt werden.

Pname type Anfangswert Gültiger Bereich
GL _ MAP _ COLOR Boolean false TRUE/FALSE
GL _ _ MAP-SCHABLONE Boolean false TRUE/FALSE
GL _ INDEX _ SHIFT integer 0 (8,8)
GL _ INDEX _ OFFSET integer 0 (8,8)
GL _ RED _ SCALE integer 1.0 (8,8)
GL _ GREEN _ SCALE float 1.0 (8,8)
GL _ BLUE _ SCALE float 1.0 (8,8)
GL _ ALPHA _ SCALE float 1.0 (8,8)
GL _ DEPTH _ SCALE float 1.0 (8,8)
GL _ RED _ BIAS float 0,0 (8,8)
GL _ GREEN _ BIAS float 0,0 (8,8)
GL _ BLUE _ BIAS float 0,0 (8,8)
GL _ ALPHA _ BIAS float 0,0 (8,8)
GL _ DEPTH _ BIAS float 0,0 (8,8)

param

Der Wert, auf den pname festgelegt ist.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Bemerkungen

Die glPixelTransfer-Funktion legt Pixelübertragungsmodi fest, die sich auf den Betrieb nachfolgender glCopyPixels-, glCopyTexImage1D-, glCopyTexImage2D-, glCopyTexSubImage2D-, glDrawPixels-, glReadPixels-, glTexImage1D-, glTexImage2D-, glTexSubImage1D-und glTexSubImage2D-Befehle auswirken. Die algorithmen, die von Pixelübertragungsmodi angegeben werden, arbeiten mit Pixeln, nachdem sie aus dem Framepuffer gelesen (glReadPixels und glCopyPixels) oder aus dem Clientspeicher entpackt wurden (glDrawPixels, glTexImage1D und glTexImage2D). Pixelübertragungsvorgänge erfolgen in der gleichen Reihenfolge und auf die gleiche Weise, unabhängig vom Befehl, der zum Pixelvorgang führte. Pixelspeichermodi (glPixelStore) steuern das Entpacken von Pixeln, die aus dem Clientspeicher gelesen werden, und das Packen von Pixeln, die in den Clientspeicher zurückgeschrieben werden.

Pixelübertragungsvorgänge verarbeiten vier grundlegende Pixeltypen: Farbe, Farbindex, Tiefe und Schablone. Farbpixel besteht aus vier Gleitkommawerten mit nicht angegebenen Mantisse- und Exponentengrößen, die so skaliert werden, dass 0,0 die Intensität 0,0 und 1,0 die volle Intensität darstellt. Farbindizes umfassen einen einzelnen Festpunktwert mit nicht angegebener Genauigkeit rechts vom Binärpunkt. Tiefenpixel umfassen einen einzelnen Gleitkommawert mit nicht angegebenen Mantisse- und Exponentengrößen, die so skaliert werden, dass 0,0 den minimalen Tiefenpufferwert darstellt, und 1,0 stellt den maximalen Tiefenpufferwert dar. Schließlich bestehen Schablonenpixel aus einem einzelnen Festpunktwert mit nicht angegebener Genauigkeit rechts vom Binärpunkt.

Für die vier grundlegenden Pixeltypen werden folgende Pixelübertragungsvorgänge ausgeführt:

Pixeltyp Pixelübertragungsvorgang
Color Jede der vier Farbkomponenten wird mit einem Skalierungsfaktor multipliziert und dann einem Biasfaktor hinzugefügt. Das heißt, die rote Komponente wird mit GL RED SCALE multipliziert und dann GL RED BIAS hinzugefügt. Die grüne Komponente wird mit GL GREEN SCALE multipliziert und dann GL GREEN BIAS hinzugefügt. Die blaue Komponente wird mit GL BLUE SCALE multipliziert und dann GL BLUE BIAS hinzugefügt, und die Alphakomponente wird mit GL ALPHA SCALE multipliziert und dann _ GL ALPHA _ _ _ _ _ BIAS _ _ _ _ _ _ _ _ _ _ hinzugefügt. Nachdem alle vier Farbkomponenten skaliert und verzerrt wurden, wird jede an den Bereich [ 0,1 geklammert. ] Alle Farbskala- und Biaswerte werden mit glPixelTransfer angegeben.
Wenn GL MAP COLOR true ist, wird jede Farbkomponente nach der Größe der entsprechenden Farbzuordnung skaliert und dann durch den Inhalt dieser Karte ersetzt, die von der skalierten Komponente indiziert _ _ wird. Das heißt, die rote Komponente wird von GL PIXEL MAP R TO R SIZE skaliert und dann durch den Inhalt von GL PIXEL MAP R TO R ersetzt, der allein _ _ _ indiziert _ _ _ _ _ _ _ _ ist. Die grüne Komponente wird von GL PIXEL MAP G TO G SIZE skaliert und dann durch den Inhalt von GL PIXEL MAP G TO G ersetzt, der _ _ allein _ indiziert _ _ _ _ _ _ _ _ ist. Die blaue Komponente wird von GL PIXEL MAP B TO B SIZE skaliert und dann durch den Inhalt von GL PIXEL MAP B TO B ersetzt, der allein _ _ _ indiziert _ _ _ _ _ _ _ _ ist. Die Alphakomponente wird von GL PIXEL MAP A TO A SIZE skaliert und dann durch den Inhalt von GL PIXEL MAP A TO A ersetzt, der selbst _ _ _ indiziert _ _ _ _ _ _ _ _ ist. Alle Komponenten aus den Zuordnungen werden dann an den Bereich [ 0,1 geklammert. ] GL _ MAP COLOR wird mit _ glPixelTransfer angegeben. Der Inhalt der verschiedenen Zuordnungen wird mit glPixelMap angegeben.
Farbindex Jeder Farbindex wird von GL INDEX SHIFT-Bits nach links verschoben, wobei alle _ _ Bits, die über die Anzahl der vom Festkommaindex übertragenen Bruchbits hinausgehen, mit Nullen gefüllt werden. Wenn GL _ INDEX _ SHIFT negativ ist, wird die Verschiebung nach rechts verschoben, wieder 0 (null). GL _ INDEX OFFSET wird dann dem Index _ hinzugefügt. GL _ INDEX SHIFT und GL INDEX OFFSET werden mit _ _ _ glPixelTransfer angegeben.
Ab diesem Punkt weicht der Vorgang je nach erforderlichem Format der resultierenden Pixel ab. Wenn die resultierenden Pixel in einen Farbindexpuffer geschrieben werden sollen oder im GL COLOR INDEX-Format in den Clientspeicher zurückgelesen _ _ werden, werden die Pixel weiterhin als Indizes behandelt. Wenn GL _ MAP _ COLOR true ist, wird jeder Index durch 2 ^ n 1 maskiert, wobei n GL PIXEL MAP I TO I SIZE ist _ und dann durch den Inhalt von GL PIXEL _ MAP I TO _ I durch _ den _ _ _ _ _ _ _ maskierten Wert indiziert wird. GL _ MAP COLOR wird mit _ glPixelTransfer angegeben. Der Inhalt der Indexzuordnung wird mit glPixelMap angegeben.
Wenn die resultierenden Pixel in einen RGBA-Farbpuffer geschrieben oder in einem anderen Format als GL COLOR INDEX in den Clientspeicher zurückgelesen werden, werden die Pixel aus Indizes in _ _ Farben konvertiert, indem auf die vier Karten GL _ PIXEL MAP I TO _ _ _ _ R, GL PIXEL MAP I _ _ TO _ _ _ G, GL PIXEL MAP I TO B und GL PIXEL MAP I TO _ A _ _ _ _ _ _ _ _ _ verwiesen wird. Vor der Dereferenzierung wird der Index durch 2 n 1 maskiert, wobei n GL _ PIXEL MAP I TO R SIZE für die rote _ _ _ _ _ Karte, GL PIXEL MAP I _ TO G SIZE für die grüne _ _ _ _ _ Karte, GL PIXEL MAP _ I TO B SIZE für die blaue Karte und GL PIXEL _ MAP I TO A _ SIZE für _ die _ _ _ _ _ _ _ _ Alphakarte ist. Alle aus den Karten entnommenen Komponenten werden dann an den Bereich [ 0,1 ] angerückt. Der Inhalt der vier Zuordnungen wird mit glPixelMap angegeben.
Tiefe Jeder Tiefenwert wird mit GL _ DEPTH _ SCALE multipliziert, zu GL DEPTH BIAS hinzugefügt _ und dann an den Bereich _ [ 0,1 ] gebunden.
Schablone Jeder Index wird genau wie ein Farbindex in GL _ INDEX _ SHIFT-Bits verschoben und dann zu GL _ INDEX OFFSET _ hinzugefügt. Wenn GL _ MAP _ STENCIL true ist, wird jeder Index durch 2n 1 maskiert, wobei n GL PIXEL MAP S TO S SIZE ist _ und dann durch den Inhalt von GL PIXEL MAP S TO S durch _ _ den _ _ _ _ _ _ _ _ maskierten Wert indiziert wird.

Die glPixelTransferf-Funktion kann verwendet werden, um einen beliebigen Pixelübertragungsparameter festzulegen. Wenn der Parametertyp boolesch ist, impliziert 0.0 FALSE, und jeder andere Wert impliziert TRUE. Wenn pname ein ganzzahliger Parameter ist, wird param auf die nächste ganze Zahl gerundet.

Ebenso kann glPixelTransferi auch verwendet werden, um einen der Pixelübertragungsparameter festzulegen. Boolesche Parameter werden auf FALSE festgelegt, wenn param 0 und andernfalls TRUE ist. Der Parameter param wird in Gleitkomma konvertiert, bevor er realwertigen Parametern zugewiesen wird.

Wenn ein glDrawPixels-, glReadPixels-, glCopyPixels-, glTexImage1D-oder glTexImage2D-Befehl in einer Anzeigeliste platziert wird (siehe glNewList und glCallList),werden die einstellungen für den Pixelübertragungsmodus angewendet, wenn die Anzeigeliste ausgeführt wird. Sie können sich von den Einstellungen unterscheiden, als der Befehl in die Anzeigeliste kompiliert wurde.

Die folgenden Funktionen rufen Informationen im Zusammenhang mit glPixelTransfer ab:

glGet mit argument GL _ MAP _ COLOR

glGet mit argument GL _ MAP _ STENCIL

glGet mit argument GL _ INDEX _ SHIFT

glGet mit Argument GL _ INDEX _ OFFSET

glGet mit argument GL _ RED _ SCALE

glGet mit argument GL _ RED _ BIAS

glGet mit argument GL _ GREEN _ SCALE

glGet mit argument GL _ GREEN _ BIAS

glGet mit argument GL _ BLUE _ SCALE

glGet mit argument GL _ BLUE _ BIAS

glGet mit argument GL _ ALPHA _ SCALE

glGet mit argument GL _ ALPHA _ BIAS

glGet mit argument GL _ DEPTH _ SCALE

glGet mit argument GL _ DEPTH _ BIAS

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Gl.h
Bibliothek
Opengl32.lib
DLL
Opengl32.dll

Weitere Informationen

glBegin

glCallList

glCopyPixels

glDrawPixels

glEnd

glNewList

glPixelMap

glPixelStore

glPixelZoom

glReadPixels

glTexImage1D

glTexImage2D