Condividi tramite


funzione glPixelStoref

Imposta le modalità di archiviazione dei pixel.

Sintassi

void WINAPI glPixelStoref(
   GLenum  pname,
   GLfloat param
);

Parametri

Pname

Nome simbolico del parametro da impostare. Sei dei parametri di archiviazione influiscono sul modo in cui i dati pixel vengono restituiti alla memoria client e sono quindi significativi solo per i comandi glReadPixels . Ecco quali sono:

Parametro di archiviazione Descrizione
GL_PACK_SWAP_BYTES Se true, l'ordinamento di byte per componenti di colore multibyte, componenti di profondità, indici di colore o indici stencil viene invertito. Ovvero, se un componente a quattro byte è costituito da byte b 0 , b1 , b 2 , b 3 , viene archiviato in memoria come b3 , b 2 , b 2 , b 1 , b0 se GL_PACK_SWAP_BYTES è true. GL_PACK_SWAP_BYTES non ha alcun effetto sull'ordine di memoria dei componenti all'interno di un pixel, solo sull'ordine di byte all'interno di componenti o indici. Ad esempio, i tre componenti di un pixel di formato GL_RGB vengono sempre archiviati con il primo rosso, il secondo verde e il terzo blu, indipendentemente dal valore di GL_PACK_SWAP_BYTES.
GL_PACK_LSB_FIRST Se true, i bit vengono ordinati all'interno di un byte dal minimo significativo al più significativo; in caso contrario, il primo bit in ogni byte è quello più significativo. Questo parametro è significativo solo per i dati bitmap.
GL_PACK_ROW_LENGTH Se maggiore di zero, GL_PACK_ROW_LENGTH definisce il numero di pixel in una riga. Se il primo pixel di una riga viene posizionato nella posizione p in memoria, la posizione del primo pixel della riga successiva viene ottenuta ignorando equazione che mostra la posizione del primo pixel della riga successiva in GL_PACK_ROW_LENGTH. [newline] componenti o indici, dove n è il numero di componenti o indici in un pixel, l è il numero di pixel in una riga (gl-pack-row-length se è maggiore di zero, l'argomento di larghezza della routine pixel in caso contrario), un è il valore dell'allineamento gl-pack e s è la dimensione, in byte, di un singolo componente (se< unas, allora è come se un = s). nel caso di valori a 1 bit, la posizione della riga successiva viene ottenuta ignorando l'equazione che mostra la posizione della riga successiva in GL_PACK_ROW_LENGTH.
componenti o indici. Il componente di parola in questa descrizione fa riferimento ai valori non indicizzati rossi, verdi, blu, alfa e profondità. Il formato di archiviazione GL_RGB, ad esempio, include tre componenti per pixel: primo rosso, quindi verde e infine blu.
GL_PACK_SKIP_PIXELS e
GL_PACK_SKIP_ROWS
Questi valori vengono forniti come praticità per il programmatore; non forniscono alcuna funzionalità che non può essere duplicata semplicemente incrementando il puntatore passato a glReadPixels. L'impostazione di GL_PACK_SKIP_PIXELS su i equivale ad aumentare il puntatore in base a i n componenti o indici, dove n è il numero di componenti o indici in ogni pixel. L'impostazione di GL_PACK_SKIP_ROWS su j equivale ad aumentare il puntatore in base a componenti o indici j k , dove k è il numero di componenti o indici per riga, come calcolato sopra nella sezione GL_PACK_ROW_LENGTH.
GL_PACK_ALIGNMENT Specifica i requisiti di allineamento per l'inizio di ogni riga pixel in memoria. I valori consentiti sono 1 (allineamento byte), 2 (righe allineate a byte numerati), 4 (allineamento di parole) e 8 (righe iniziano sui limiti di doppia parola).

Gli altri sei parametri di archiviazione influiscono sul modo in cui i dati pixel vengono letti dalla memoria client. Questi valori sono significativi per glDrawPixels, glTexImage1D, glTexImage2D, glBitmap e glPolygonStipple. Ecco quali sono:

Parametro di archiviazione Descrizione
GL_UNPACK_SWAP_BYTES Se true, l'ordinamento di byte per componenti di colore multibyte, componenti di profondità, indici di colore o indici stencil viene invertito. Ovvero, se un componente a quattro byte è costituito da byte b 0 , b1 , b 2 , b 3 , viene archiviato in memoria come b3 , b 2 , b1 , b0 se GL_UNPACK_SWAP_BYTES è true. GL_UNPACK_SWAP_BYTES non ha alcun effetto sull'ordine di memoria dei componenti all'interno di un pixel, solo sull'ordine di byte all'interno di componenti o indici. Ad esempio, i tre componenti di un pixel di formato GL_RGB vengono sempre archiviati con il primo, il verde e il terzo blu, indipendentemente dal valore di GL_UNPACK_SWAP_BYTES.
GL_UNPACK_LSB_FIRST Se true, i bit vengono ordinati all'interno di un byte dal minimo significativo al più significativo; in caso contrario, il primo bit in ogni byte è quello più significativo. Questo valore è significativo solo per i dati bitmap.
GL_UNPACK_ROW_LENGTH Se maggiore di zero, GL_UNPACK_ROW_LENGTH definisce il numero di pixel in una riga. Se il primo pixel di una riga viene posizionato nella posizione p in memoria, la posizione del primo pixel della riga successiva viene ottenuta ignorando equazione che mostra la posizione del primo pixel della riga successiva in GL_UNPACK_ROW_LENGTH. [newline] componenti o indici, dove n è il numero di componenti o indici in un pixel, l è il numero di pixel in una riga (gl-pack-row-length se è maggiore di zero, l'argomento di larghezza della routine pixel in caso contrario), un è il valore dell'allineamento gl-pack e s è la dimensione, in byte, di un singolo componente (se< unas, allora è come se un = s). nel caso di valori a 1 bit, la posizione della riga successiva viene ottenuta ignorando l'equazione che mostra la posizione della riga successiva in GL_UNPACK_ROW_LENGTH.
componenti o indici. Il componente di parola in questa descrizione fa riferimento ai valori non indicizzati rossi, verdi, blu, alfa e profondità. Il formato di archiviazione GL_RGB, ad esempio, include tre componenti per pixel: primo rosso, quindi verde e infine blu.
GL_UNPACK_SKIP_PIXELS e
GL_UNPACK_SKIP_ROWS
Questi valori vengono forniti come praticità per il programmatore; non offrono funzionalità che non possono essere duplicati semplicemente incrementando il puntatore passato a glDrawPixels, glTexImage1D, glTexImage2D, glTexImage2D, glBitmap o glPolygonStipple. L'impostazione di GL_UNPACK_SKIP_PIXELS su i equivale ad aumentare il puntatore in base a i n componenti o indici, dove n è il numero di componenti o indici in ogni pixel. L'impostazione di GL_UNPACK_SKIP_ROWS su j equivale ad aumentare il puntatore in base a componenti o indici j k , dove k è il numero di componenti o indici per riga, calcolati sopra nella sezione GL_UNPACK_ROW_LENGTH.
GL_UNPACK_ALIGNMENT Specifica i requisiti di allineamento per l'inizio di ogni riga pixel in memoria. I valori consentiti sono 1 (allineamento byte), 2 (righe allineate a byte numerati), 4 (allineamento di parole) e 8 (righe iniziano sui limiti di doppia parola).

param

Valore impostato su pname .

Valore restituito

Questa funzione non restituisce un valore.

Commenti

La funzione glPixelStore imposta le modalità di archiviazione dei pixel che influiscono sull'operazione dei successivi glDrawPixels e glReadPixels, nonché sull'unpacking di modelli poligono stipple (vedere glPolygonStipple), bitmap (vedere glBitmap) e modelli di trama (vedere glTexImage1D, glTexImage2D, glTexSubImage1D e glTexSubImage2D).

La tabella seguente fornisce il tipo, il valore iniziale e l'intervallo di valori validi per ognuno dei parametri di archiviazione che possono essere impostati con glPixelStore.

Pname Tipo Valore iniziale Intervallo valido
GL_PACK_SWAP_BYTES Boolean false true o false
GL_PACK_SWAP_BYTES Boolean false true o false
GL_PACK_ROW_LENGTH integer 0 [0,?)
GL_PACK_SKIP_ROWS integer 0 [0,?)
GL_PACK_SKIP_PIXELS integer 0 [0,?)
GL_PACK_ALIGNMENT numero intero 4 1, 2, 4 o 8
GL_UNPACK_SWAP_BYTES Boolean false true o false
GL_UNPACK_LSB_FIRST Boolean false true o false
GL_UNPACK_ROW_LENGTH integer 0 [0,?)
GL_UNPACK_SKIP_ROWS integer 0 [0,?)
GL_UNPACK_SKIP_PIXELS integer 0 [0,?)
GL_UNPACK_ALIGNMENT numero intero 4 1, 2, 4 o 8

La funzione glPixelStoref può essere usata per impostare qualsiasi parametro di pixel store. Se il tipo di parametro è Boolean e se param è 0,0, il parametro è false; in caso contrario, è impostato su true. Se pname è un parametro di tipo integer, param viene arrotondato all'intero più vicino.

Analogamente, la funzione glPixelStorei può essere usata anche per impostare uno dei parametri dell'archivio pixel. I parametri booleani sono impostati su false se param è 0 e true in caso contrario. Il parametro param viene convertito in virgola mobile prima di essere assegnato a parametri con valori reali.

Le modalità di archiviazione pixel vengono applicate quando glDrawPixels, glReadPixels, glTexImage1D, glTexImage2D, glBitmap o glPolygonStipple viene inserito in un elenco di visualizzazione che controlla l'interpretazione dei dati di memoria. Le modalità di archiviazione pixel applicate quando viene eseguito un elenco di visualizzazione non sono significative.

Le funzioni seguenti recuperano informazioni correlate a glPixelStore:

glGet con argomento GL_PACK_SWAP_BYTES

glGet con argomento GL_PACK_LSB_FIRST

glGet con argomento GL_PACK_ROW_LENGTH

glGet con argomento GL_PACK_SKIP_ROWS

glGet con argomento GL_PACK_SKIP_PIXELS

glGet con argomento GL_PACK_ALIGNMENT

glGet con argomento GL_UNPACK_SWAP_BYTES

glGet con argomento GL_UNPACK_LSB_FIRST

glGet con argomento GL_UNPACK_ROW_LENGTH

glGet con argomento GL_UNPACK_SKIP_ROWS

glGet con argomento GL_UNPACK_SKIP_PIXELS

glGet con argomento GL_UNPACK_ALIGNMENT

Requisiti

Requisito Valore
Client minimo supportato
Windows 2000 Professional [solo app desktop]
Server minimo supportato
Windows 2000 Server [solo app desktop]
Intestazione
Gl.h
Libreria
Opengl32.lib
DLL
Opengl32.dll

Vedi anche

glBegin

glBitmap

glDrawPixels

glEnd

glPixelMap

glPixelTransfer

glPixelZoom

glPolygonStipple

glReadPixels

glTexImage1D

glTexImage2D