funzione glTexImage2D
La funzione glTexImage2D specifica un'immagine di trama bidimensionale.
Sintassi
void WINAPI glTexImage2D(
GLenum target,
GLint level,
GLint internalformat,
GLsizei width,
GLsizei height,
GLint border,
GLint format,
GLenum type,
const GLvoid *pixels
);
Parametri
-
target
-
Trama di destinazione. Deve essere GL_TEXTURE_2D.
-
level
-
Numero di dettaglio del livello. Il livello 0 è il livello dell'immagine di base. Il livello n è l'n immagine di riduzione mipmap.
-
internalformat
-
Numero di componenti di colore nella trama. Deve essere 1, 2, 3 o 4 o una delle costanti simboliche seguenti: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12 o GL_RGBA16.
-
width
-
Larghezza dell'immagine della trama. Deve essere 2 n + 2(bordo) per un numero intero n.
-
height
-
Altezza dell'immagine della trama. Deve essere 2*m* + 2(bordo) per un numero intero m.
-
confine
-
Larghezza del bordo. Deve essere 0 o 1.
-
format
-
Formato dei dati pixel. Può presupporre uno dei nove valori simbolici.
Valore Significato - GL_COLOR_INDEX
Ogni elemento è un singolo valore, un indice di colore. Viene convertito in punto fisso (con un numero non specificato di 0 bit a destra del punto binario), spostato a sinistra o a destra a seconda del valore e del segno di GL_INDEX_SHIFT e aggiunto a GL_INDEX_OFFedizione Standard T (vedere glPixelTransfer). L'indice risultante viene convertito in un set di componenti colore utilizzando le tabelle GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B e GL_PIXEL_MAP_I_TO_A e bloccate nell'intervallo [0,1]. - GL_RED
Ogni elemento è un singolo componente rosso. Viene convertito in virgola mobile e assemblato in un elemento RGBA collegando 0,0 per verde e blu e 1.0 per alpha. Ogni componente viene quindi moltiplicato per il fattore di scala con segno GL_c_SCALE, aggiunto al GL_c_BIAS di distorsione con segno e bloccato all'intervallo [0,1] (vedere glPixelTransfer). - GL_GRedizione Enterprise N
Ogni elemento è un singolo componente verde. Viene convertito in virgola mobile e assemblato in un elemento RGBA collegando 0,0 per rosso e blu e 1.0 per alpha. Ogni componente viene quindi moltiplicato per il fattore di scala con segno GL_c_SCALE, aggiunto al GL_c_BIAS di distorsione con segno e bloccato all'intervallo [0,1] (vedere glPixelTransfer). - GL_BLUE
Ogni elemento è un singolo componente blu. Viene convertito in virgola mobile e assemblato in un elemento RGBA collegando 0,0 per rosso e verde e 1,0 per alfa. Ogni componente viene quindi moltiplicato per il fattore di scala con segno GL_c_SCALE, aggiunto al GL_c_BIAS di distorsione con segno e bloccato all'intervallo [0,1] (vedere glPixelTransfer). - GL_ALPHA
Ogni elemento è un singolo componente rosso. Viene convertito in virgola mobile e assemblato in un elemento RGBA collegando 0,0 per rosso, verde e blu. Ogni componente viene quindi moltiplicato per il fattore di scala con segno GL_c_SCALE, aggiunto al GL_c_BIAS di distorsione con segno e bloccato all'intervallo [0,1] (vedere glPixelTransfer). - GL_RGB
Ogni elemento è un triplo RGB. Viene convertito in virgola mobile e assemblato in un elemento RGBA collegando 1.0 per alfa. Ogni componente viene quindi moltiplicato per il fattore di scala con segno GL_c_SCALE, aggiunto al GL_c_BIAS di distorsione con segno e bloccato all'intervallo [0,1] (vedere glPixelTransfer). - GL_RGBA
Ogni elemento è un elemento RGBA completo. Viene convertito in virgola mobile. Ogni componente viene quindi moltiplicato per il fattore di scala con segno GL_c_SCALE, aggiunto al GL_c_BIAS di distorsione con segno e bloccato all'intervallo [0,1] (vedere glPixelTransfer). - GL_BGR_EXT
Ogni pixel è un gruppo di tre componenti in questo ordine: blu, verde, rosso.
GL_BGR_EXT fornisce un formato che corrisponde al layout di memoria delle bitmap indipendenti dal dispositivo Windows (DIB). Le applicazioni possono quindi usare gli stessi dati con le chiamate di funzione di Windows e le chiamate di funzione OpenGL pixel.- GL_BGRA_EXT
Ogni pixel è un gruppo di quattro componenti in questo ordine: blu, verde, rosso, alfa. GL_BGRA_EXT fornisce un formato che corrisponde al layout di memoria delle bitmap indipendenti dal dispositivo Windows (DIB). Le applicazioni possono quindi usare gli stessi dati con le chiamate di funzione di Windows e le chiamate di funzione OpenGL pixel. - GL_LUMINANCE
Ogni elemento è un singolo valore di luminanza. Viene convertito in virgola mobile e quindi assemblato in un elemento RGBA replicando il valore di luminanza tre volte per rosso, verde e blu e associando 1,0 per alfa. Ogni componente viene quindi moltiplicato per il fattore di scala con segno GL_c_SCALE, aggiunto al GL_c_BIAS di distorsione con segno e bloccato all'intervallo [0,1] (vedere glPixelTransfer). - GL_LUMINANCE_ALPHA
Ogni elemento è una coppia di luminanza/alfa. Viene convertito in virgola mobile e quindi assemblato in un elemento RGBA replicando il valore di luminanza tre volte per rosso, verde e blu. Ogni componente viene quindi moltiplicato per il fattore di scala con segno GL_c_SCALE, aggiunto al GL_c_BIAS di distorsione con segno e bloccato all'intervallo [0,1] (vedere glPixelTransfer). -
type
-
Tipo di dati dei dati pixel. Vengono accettati i valori simbolici seguenti: GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT e GL_FLOAT.
-
Pixel
-
Puntatore ai dati dell'immagine in memoria.
Valore restituito
Questa funzione non restituisce un valore.
Codici di errore
I codici di errore seguenti possono essere recuperati dalla funzione glGetError.
Nome | Significato |
---|---|
|
target non era un GL_TEXTURE_2D. |
|
il formato non è una costante di formato accettata. Vengono accettate solo costanti di formato diverse da GL_STENCIL_INDEX e GL_DEPTH_COMPONENT. Per un elenco dei valori possibili, vedere la descrizione del parametro di formato . |
|
il tipo non era una costante di tipo . |
|
il tipo era GL_BITMAP e il formato non era GL_COLOR_INDEX. |
|
level è minore di zero o maggiore di log2 max, dove max è il valore restituito di GL_MAX_TEXTURE_SIZE. |
|
internalformat non era 1, 2, 3 o 4. |
|
width o height è minore di zero o maggiore di 2 + GL_MAX_TEXTURE_SIZE oppure non può essere rappresentato come 2 n + 2(bordo) per un valore intero pari a n. |
|
bordo non era 0 o 1. |
|
La funzione è stata chiamata tra una chiamata a glBegin e la chiamata corrispondente a glEnd. |
Osservazioni:
La funzione glTexImage2D specifica un'immagine di trama bidimensionale. Il texturing esegue il mapping di una parte di un'immagine di trama specificata in ogni primitiva grafica per cui è abilitata la formattazione del testo. Il texturing bidimensionale è abilitato e disabilitato tramite glEnable e glDisable con l'argomento GL_TEXTURE_2D.
Le immagini di trama vengono definite con glTexImage2D. Gli argomenti descrivono i parametri dell'immagine di trama, ad esempio altezza, larghezza, larghezza del bordo, numero di livello di dettaglio (vedere glTexParameter) e numero di componenti di colore forniti. Gli ultimi tre argomenti descrivono il modo in cui l'immagine è rappresentata in memoria. Questi argomenti sono identici ai formati pixel usati per glDrawPixels.
I dati vengono letti da pixel come sequenza di byte firmati o senza segno, short o long o valori a virgola mobile a precisione singola, a seconda del tipo. Questi valori vengono raggruppati in set di uno, due, tre o quattro valori, a seconda del formato, per formare gli elementi. Se il tipo è GL_BITMAP, i dati vengono considerati come una stringa di byte senza segno (e il formato deve essere GL_COLOR_INDEX). Ogni byte di dati viene considerato come otto elementi a 1 bit, con l'ordinamento dei bit determinato da GL_UNPACK_LSB_FIRST (vedere glPixelStore). Per una descrizione dei valori accettabili per il parametro di tipo, vedere glDrawPixels.
Un'immagine di trama può avere fino a quattro componenti per elemento trama, a seconda dei componenti. Un'immagine di trama a un componente usa solo il componente rosso del colore RGBA estratto dai pixel. Un'immagine a due componenti usa i valori R e A. Un'immagine a tre componenti usa i valori R, G e B. Un'immagine a quattro componenti usa tutti i componenti RGBA.
La formattazione del testo non ha alcun effetto in modalità indice colori.
L'immagine di trama può essere rappresentata dagli stessi formati di dati dei pixel in un comando glDrawPixels , ad eccezione del fatto che non è possibile usare GL_STENCIL_INDEX e GL_DEPTH_COMPONENT. Le modalità glPixelStore e glPixelTransfer influiscono esattamente sulle immagini di trama nel modo in cui influiscono su glDrawPixels.
Un'immagine di trama con altezza o larghezza zero indica la trama Null. Se la trama Null viene specificata per il livello di dettaglio 0, è come se la formattazione del testo fosse disabilitata.
Le funzioni seguenti recuperano informazioni correlate a glTexImage2D:
glIsEnabled con argomento GL_TEXTURE_2D
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato |
Windows 2000 Professional [solo app desktop] |
Server minimo supportato |
Windows 2000 Server [solo app desktop] |
Intestazione |
|
Libreria |
|
DLL |
|