2011-09-06 11 views
11

Tengo un objeto que posee una propiedad Texture_ID. Necesito inicializar el valor para Texture_ID en el constructor, por lo que quiero que OpenGL no utilice ningún valor para presentar que la textura aún no está configurada.¿Cuál es el rango de ID de textura OpenGL?

no sé si cero (0) es un buen valor? Si hay un rango que OpenGL aplica a ID de textura, quiero un valor fuera de este rango. ¿Alguna idea?

Respuesta

15

0 es el valor que está buscando (para representar un desarmar texture ID/textura no creado), como 0 no es una identificación válida textura.

+8

+1 Ver [aquí] (http://www.opengl.org/sdk/docs/man/xhtml/glBindTexture.xml) "El valor cero está reservado para representar la textura predeterminada para cada objetivo de textura". – user786653

+0

@chris: ¿user786653 dice la verdad? si es así, ¿debo usar el valor máximo de GLuint? – jondinham

+3

@Paul: cualquier objeto de textura que cree tendrá un valor distinto de cero. Si así es como intentas usar esta clase, cero está perfectamente bien. –

2

yo preferiría inicializar la textura en el constructor. De esta forma, nunca tendrás un objeto en un estado inválido.

+0

pero en mi proyecto, el objeto se inicializa cuando todavía no tiene una textura. solo una limitación del proyecto. por ejemplo: tengo que mostrar un cubo con colores, luego abrir un archivo de imagen para obtener texturas para dibujar en el cubo, por lo que en este caso, cuando esté en el constructor, aún no se conoce la textura – jondinham

+4

Se pueden llamar constructores antes de que haya un contexto OpenGL válido, que causaría varios problemas. – datenwolf

+0

@datenwolf: si tengo un objeto que representa un objeto de textura OpenGL, ese objeto no tiene sentido sin un contexto OpenGL. –

2

0 es el valor de OpenGL utiliza para su propia textura por defecto. Nunca le devuelve ese valor y puede usar ese valor para su comprobación de errores.

Me aunque sugerir el uso de -1.

+7

ID de textura es GLuint, lo que significa 'unsigned int', no creo que '-1' sea válido – jondinham

+3

Luego use '0xffffffff'. ¡Sigue siendo '-1' para USTED! – Shahbaz

Cuestiones relacionadas