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 [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
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_ROWSQuesti 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 [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
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_ROWSQuesti 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 |
|
Libreria |
|
DLL |
|