Bonsoir,
Je me suis décidé à prendre la bibliothèque SDL pour la gestion de la fênetre avec Opengl mais j'ai un problème: en effet, je souhaite utiliser une font avec SDL_ttf dans mon programme. Pour cela je crée une surface de 24 bits de taille 256*256 dans lequel je vais "blitter" mon texte qui sera donc ensuite assimilé comme une texture pour l'opengl.
Pour cela, j'ai fais cette petite fonction:
et dans ma fonction principale je charge ma font comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 int loadSDLFont(char*filename, int taillepolice) { SDL_Surface*surface = NULL; SDL_Surface*soclefont = NULL; TTF_Font*police = NULL; SDL_Rect dimensionsoclefont; GLint font; SDL_Color color = {255, 255, 255}; police = TTF_OpenFont(filename, taillepolice); surface = TTF_RenderText_Solid(police, "pspflashsystem", color); if(surface > 0) { soclefont = SDL_CreateRGBSurface(SDL_SWSURFACE, 256, 256, 24, surface->format->Rmask, surface->format->Gmask, surface->format->Bmask, surface->format->Amask); SDL_BlitSurface(surface, NULL, soclefont, NULL); glGenTextures(1, &font); glBindTexture(GL_TEXTURE_2D, font); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 256, 256, 0, GL_RGB, GL_UNSIGNED_BYTE, soclefont->pixels); } else { exit(0); } return font; }
Puis j'applique cette texture sur les faces de mon cube
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 texture[1] = loadSDLFont("./data/calibri.ttf", 17);
Mais voilà le problème est que mon programme ne se lance pas ensuite alors que sans l'application de la texture "texte" sur mon cube, le programme se lance normalement et affiche le cube :S
Je ne comprends pas pourquoi, si vous pouviez m'aider merci beaucoup![]()
C'est vraiment sympa![]()
Partager