Condividi tramite


funzione glPixelStorei

Imposta le modalità di archiviazione pixel.

Sintassi

void WINAPI glPixelStorei(
   GLenum pname,
   GLint  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 pertanto sono significativi solo per i comandi glReadPixels . Sono i seguenti.

Parametro di archiviazione Descrizione
GL_PACK_SWAP_BYTES Se true, l'ordinamento dei 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 b0 , b 1 , b2 , b3 , viene archiviato in memoria come b3 , b2 , b1 , 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 nell'ordine dei 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 meno 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 width della routine pixel in caso contrario), è il valore di gl-pack-alignment e s è la dimensione, in byte, di un singolo componente (se uno<s, allora è come se un = s). nel caso di valori a 1 bit, la posizione della riga successiva viene ottenuta ignorando Equazione che mostra la posizione della riga successiva in GL_PACK_ROW_LENGTH.
componenti o indici. Il componente della parola in questa descrizione fa riferimento ai valori non indicizzati rosso, verde, 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 per praticità al 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 a incrementare il puntatore di 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 a incrementare il puntatore in base a componenti o indici j k , dove k è il numero di componenti o indici per riga, come illustrato sopra nella sezione GL_PACK_ROW_LENGTH.
GL_PACK_ALIGNMENT Specifica i requisiti di allineamento per l'inizio di ogni riga in pixel in memoria. I valori consentiti sono 1 (allineamento byte), 2 (righe allineate a byte pari), 4 (allineamento delle parole) e 8 (righe iniziano su limiti di parole doppie).

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 dei 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 b0 , b1 , b2 , b3 , viene archiviato in memoria come b3 , b2 , 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 nell'ordine dei 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_UNPACK_SWAP_BYTES.
GL_UNPACK_LSB_FIRST Se true, i bit vengono ordinati all'interno di un byte dal meno significativo al più significativo; in caso contrario, il primo bit in ogni byte è quello più significativo. Questa operazione è significativa 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 width della routine pixel in caso contrario), è il valore di gl-pack-alignment e s è la dimensione, in byte, di un singolo componente (se uno<s, allora è come se un = s). nel caso di valori a 1 bit, la posizione della riga successiva viene ottenuta ignorando Equazione che mostra la posizione della riga successiva in GL_UNPACK_ROW_LENGTH.
componenti o indici. Il componente della parola in questa descrizione fa riferimento ai valori non indicizzati rosso, verde, 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 per praticità al programmatore; non forniscono alcuna funzionalità che non può essere duplicata semplicemente incrementando il puntatore passato a glDrawPixels, glTexImage1D, glTexImage2D, glBitmap o glPolygonStipple. L'impostazione di GL_UNPACK_SKIP_PIXELS su i equivale a incrementare il puntatore di 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 a incrementare il puntatore in base a componenti o indici j k , dove k è il numero di componenti o indici per riga, come illustrato in precedenza nella sezione GL_UNPACK_ROW_LENGTH.
GL_UNPACK_ALIGNMENT Specifica i requisiti di allineamento per l'inizio di ogni riga in pixel in memoria. I valori consentiti sono 1 (allineamento byte), 2 (righe allineate a byte pari), 4 (allineamento delle parole) e 8 (righe iniziano su limiti di parole doppie).

param

Valore su cui è impostato 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é l'decompressione dei modelli poligono stipple (vedere glPolygonStipple), le bitmap (vedere glBitmap) e i 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