Cal3d y cast de void*

El cast puede volverse odioso a veces. Desde que integré cal3d en el pequeño epxerimento que estoy haciendo me encontré conque una línea daba problemas. Luego de probar con diferentes compiladores descubrí que el error de compilación se producía solamente en sistemas de 64 bits.
El caso es que Cal3d guarda algunas cosas como void*. Luego ese void* hay que hacerle un cast al tipo correcto. Porejemplo, a GLint, para utilizar el valor como textura. Lo cual funciona bien, a menos que el sistema sea de 64 bits, donde gcc se niega a convertir un puntero de 64 bits en un entero de 32 y da un error de pérdida de precisión. Por suerte, luego de mucho preguntar, resulta que simplemente con usar long en vez de GLint se evita el error. Lo que aún no sé es si funcione.

Comentarios

Publicar un comentario