2011-09-06 8 views
11

Ho un oggetto che possiede una proprietà Texture_ID. Ho bisogno di inizializzare il valore di Texture_ID nel costruttore, quindi voglio un valore inutilizzato da OpenGL per presentare che la trama non è ancora impostata.Qual è l'intervallo di ID trama OpenGL?

Non so se zero (0) è un buon valore? Se esiste un intervallo che OpenGL applica agli ID di trama, voglio un valore fuori da questo intervallo. Qualche idea?

risposta

15

0 è il valore che si sta cercando (per rappresentare un ID trama non impostato/trama non elaborata), poiché 0 non è mai un ID trama valido.

+8

+1 Vedere [here] (http://www.opengl.org/sdk/docs/man/xhtml/glBindTexture.xml) "Il valore zero è riservato per rappresentare la trama predefinita per ciascun target di trama." – user786653

+0

@chris: l'utente786653 dice la verità? se è così, forse devo usare il valore massimo di GLuint? – jondinham

+3

@Paul: qualsiasi oggetto texture che creerai avrà un valore diverso da zero. Se è così che intendi usare questa classe, zero va perfettamente bene. –

2

Preferisco inizializzare la trama nel costruttore. In questo modo non hai mai un oggetto in uno stato non valido.

+0

ma nel mio progetto, l'oggetto viene inizializzato quando non ha ancora una trama. solo una limitazione del progetto. per esempio: devo mostrare un cubo con i colori, quindi aprire un file immagine per ottenere trame da disegnare sul cubo, quindi in questo caso, quando nel costruttore, la trama non è ancora nota – jondinham

+4

I costruttori possono essere chiamati prima che ci sia un contesto OpenGL valido, che causerebbe diversi problemi. – datenwolf

+0

@datenwolf: se ho un oggetto che rappresenta un oggetto texture OpenGL, quell'oggetto non ha senso senza un contesto OpenGL. –

2

0 è il valore che OpenGL utilizza per la propria trama predefinita. Non restituisce mai quel valore e puoi utilizzare tale valore per il controllo degli errori.

Tuttavia, suggerirei di utilizzare -1.

+7

è GLuint, che significa 'unsigned int', non credo che '-1' sia valido – jondinham

+3

Quindi utilizzare '0xffffffff'. È ancora '-1' per TE! – Shahbaz

Problemi correlati