Bonjour,
Je travaille actuellement sur un projet en opengl. Pour des raisons de performence je me suis ecrit une classe qui crée du texte
a partir d'une texture TGA listant tous les caractères ASCII, j'utilise pour cela des listes d'affichage opengl.
(je vous passe les details de la création d'une liste, je n'ai pas de problème a ce niveau la)
Voila simplement la fonction qui me permet d'affichée une chaine de caractere dont j'ai déja crée les listes:
// dessine le texte
void CGLFont::DrawFontTexte()
{
glDisable(GL_LIGHTING);
// selectionne la texture des caracteres
glBindTexture(GL_TEXTURE_2D,GLFontID);
// pour utiliser ls listes opengl
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_TEXTURE_COORD_ARRAY);
// la liste des points
glBindBufferARB(GL_ARRAY_BUFFER_ARB,IDVertices);
glVertexPointer(2,GL_FLOAT,0,(char*)NULL);
// la liste des coordonnées de texture
glBindBufferARB(GL_ARRAY_BUFFER_ARB,TextureListeID);
glTexCoordPointer(2,GL_FLOAT,0,(char*)NULL);
// enfin on dessine
glDrawArrays(GL_QUADS,0,strlen(Texte)*4);
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glEnable(GL_LIGHTING);
}
Je ne maitrise pas encore tres bien ce concept de liste, mais je ne
crois pas faire de boulette enorme dans cette fonction ^^ a vous de me
le dire :)
Mon probleme est le suivant : A partir du moment ou la fonction ci
dessus a été appelé une première fois, toutes les textures que je tente
d'affichées ensuite ne passe plus.
Voila ... je ne sais pas quoi vous dire d'autre ^^ . Si je n'ai pas été
assez precis n'hesitez pas pour me demander d'eclaircir mon problème !
Smoove