Funzione glTexImage1D

La funzione glTexImage1D specifica un'immagine di trama unidimensionale.

Sintassi

void WINAPI glTexImage1D(
         GLenum  target,
         GLint   level,
         GLint   internalformat,
         GLsizei width,
         GLint   border,
         GLint   format,
         GLenum  type,
   const GLvoid  *pixels
);

Parametri

target

Trama di destinazione. Deve essere GL_TEXTURE_1D.

level

Numero di dettaglio del livello. Il livello 0 è il livello dell'immagine di base. Level n è l'n immagine di riduzione mipmap.

internalformat

Specifica il 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_RGB, GL_R3_G3_B2, 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. L'altezza dell'immagine della trama è 1.

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
GL_INVALID_ENUM
target non era un GL_TEXTURE.
GL_INVALID_ENUM
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 .
GL_INVALID_ENUM
il tipo non era una costante di tipo .
GL_INVALID_ENUM
il tipo era GL_BITMAP e il formato non era GL_COLOR_INDEX.
GL_INVALID_VALUE
level è minore di zero o maggiore di log2max, dove max è il valore restituito di GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
internalformat non era 1, 2, 3 o 4.
GL_INVALID_VALUE
width è 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.
GL_INVALID_VALUE
bordo non era 0 o 1.
GL_INVALID_OPERATION
La funzione è stata chiamata tra una chiamata a glBegin e la chiamata corrispondente a glEnd.

Osservazioni:

La funzione glTexImage1D specifica un'immagine di trama unidimensionale. 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 unidimensionale è abilitato e disabilitato tramite glEnable e glDisable con l'argomento GL_TEXTURE_1D.

Le immagini di trama vengono definite con glTexImage1D. Gli argomenti descrivono i parametri dell'immagine di trama, ad esempio 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).

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 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 glTexImageID:

glGetTexImage

glIsEnabled con l'argomento GL_TEXTURE_1D

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

glCopyPixels

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage1D

glCopyTexSubImage2D

glDrawPixels

glEnd

glFog

glGetTexImage

glIsEnabled

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage2D

glTexSubImage1D

glTexSubImage2D

glTexParameter