funzione glTexSubImage1D

La funzione glTexSubImage1D specifica una parte di un'immagine di trama unidimensionale esistente. Non è possibile definire una nuova trama con glTexSubImage1D.

Sintassi

void WINAPI glTexSubImage1D(
         GLenum  target,
         GLint   level,
         GLint   xoffset,
         GLsizei width,
         GLenum  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 è l'immagine di base. Il livello n è l'n immagine di riduzione mipmap.

xoffset

Offset di texel nella direzione x all'interno della matrice di trame.

width

Larghezza dell'immagine secondaria della trama.

format

Formato dei dati pixel. Questo parametro può presupporre uno dei valori simbolici seguenti.

Valore Significato
GL_COLOR_INDEX
Ogni elemento è un singolo valore, un indice di colore. Viene convertito in formato a virgola fissa (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 formato a virgola mobile e assemblato in un elemento RGBA associando 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 formato a 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 formato a 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 alfa. Viene convertito in formato a 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 formato a 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_LUMINANCE
Ogni elemento è un singolo valore di luminanza. Viene convertito in formato a virgola mobile e quindi assemblato in un elemento RGBA replicando il valore di luminanza tre volte per rosso, verde e blu e 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_LUMINANCE_ALPHA
Ogni elemento è una coppia di luminanza/alfa. Viene convertito in formato a 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 è stato GL_TEXTURE_1D.
GL_INVALID_ENUM
il formato non è una costante accettata.
GL_INVALID_ENUM
il tipo non è una costante accettata.
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 log2 max, dove max è il valore restituito di GL_MAX_TEXTURE_SIZE.
GL_INVALID_VALUE
xoffset è minore di b o la larghezza dell'offset + è maggiore di wb, dove w è il GL_TEXTURE_WIDTH e b è la larghezza del GL_TEXTURE_BORDER dell'immagine trama da modificare.
Si noti che w include due volte la larghezza del bordo.
GL_INVALID_VALUE
width era minore di b, dove b è la larghezza del bordo della matrice di trame.
GL_INVALID_VALUE
bordo non era zero o 1.
GL_INVALID_OPERATION
La matrice di texure non è stata definita da un'operazione glTexImage1D precedente.
GL_INVALID_OPERATION
La funzione è stata chiamata tra una chiamata a glBegin e la chiamata corrispondente a glEnd.

Osservazioni:

Il texturing unidimensionale per una primitiva è abilitato usando glEnable e glDisable con l'argomento GL_TEXTURE_1D. Durante la creazione di testo, parte di un'immagine di trama specificata viene mappata in ogni primitiva abilitata. Usare la funzione glTexSubImage1D per specificare un'immagine secondaria contigua di un'immagine di trama unidimensionale esistente per la creazione di testo.

I texel a cui fa riferimento i pixel sostituiscono un'area della matrice di trame esistente con indici xoffset e xoffset + (larghezza 1) inclusi. Questa area non può includere alcun texel all'esterno dell'intervallo della matrice di trama specificata originariamente.

La specifica di un'immagine secondaria con una larghezza pari a zero non ha alcun effetto e non genera un errore.

La formattazione del testo non ha alcun effetto in modalità indice colori.

In generale, le immagini di trama possono essere rappresentate 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.

Le funzioni seguenti recuperano informazioni correlate a glTexSubImage1D:

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

glCopyTexImage1D

glCopyTexImage2D

glCopyTexSubImage1D

glCopyTexSubImage2D

glDrawPixels

glEnable

glFog

glGetTexImage

glIsEnabled

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexParameter

glTexSubImage2D