glPixelTransferi-Funktion

Die Funktionen glPixelTransferf und glPixelTransferi legen die Pixelübertragungsmodi fest.

Syntax

void WINAPI glPixelTransferi(
   GLenum pname,
   GLint  param
);

Parameter

pname

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

Pname type Anfangswert Gültiger Bereich
GL _ MAP _ COLOR Boolean false TRUE/FALSE
GL _ MAP _ STENCIL 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-TIEFENSKALA 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 der nachfolgenden Befehle glCopyPixels, glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glDrawPixels, glReadPixels, glTexImage1D, glTexImage2D, glTexSubImage1Dund glTexSubImage2D auswirken. Die von den Pixelübertragungsmodi angegebenen Algorithmen arbeiten mit Pixeln, nachdem sie aus dem Framepuffer (glReadPixels und glCopyPixels) gelesen 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 geführt hat. Die Pixelspeichermodi (glPixelStore)steuern das Entpacken von Pixeln, die aus dem Clientspeicher gelesen werden, und die Komprimierung von Pixeln, die wieder in den Clientspeicher geschrieben werden.

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

Die Pixelübertragungsvorgänge, die für die vier grundlegenden Pixeltypen ausgeführt werden, sind wie folgt:

Pixeltyp Pixelübertragungsvorgang
Color Jede der vier Farbkomponenten wird mit einem Skalierungsfaktor multipliziert und dann einem Verzerrungsfaktor 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 zu GL GREEN BIAS _ _ _ hinzugefügt. Die blaue Komponente wird mit GL BLUE SCALE multipliziert _ und dann GL BLUE BIAS _ _ _ hinzugefügt. Die Alphakomponente wird mit GL ALPHA SCALE multipliziert _ und dann zu GL ALPHA BIAS _ _ _ hinzugefügt. Nachdem alle vier Farbkomponenten skaliert und voreingenommen sind, wird jede an den Bereich [ 0,1 ] klammern. Alle Farbskala- und Biaswerte werden mit glPixelTransfer angegeben.
Wenn GL _ MAP _ COLOR true ist, wird jede Farbkomponente durch die 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 selbst _ _ _ indiziert _ _ _ _ _ _ _ _ ersetzt. 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 automatisch _ indiziert _ _ _ _ _ _ _ ersetzt. Die blaue Komponente wird durch GL PIXEL MAP B TO B SIZE skaliert _ und dann durch den Inhalt von GL PIXEL MAP _ B TO _ B selbst _ indiziert _ _ _ _ _ _ _ ersetzt. 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, die _ selbst indiziert _ _ _ _ _ _ _ _ _ ist. Alle aus den Karten entnommenen Komponenten werden dann an den Bereich [ 0,1 ] angerückt. 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 Komponenten, die aus den Karten stammen, werden dann an den Bereich [ 0,1 ] klammern. 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