GDI: Acceder au back buffer
Dernière réponse : dans Programmation
Hello,
Je suis actuellement sur un projet OpenGL et j'aimerais afficher du texte a la fin de chaque frame au dessus de mon dessin OpenGL, pour ca j'utilise le GDI c'est plus simple pour moi (CreateFont(), DrawText(),...).
Le probleme c'est que je dois donc dessiner le texte ds le back buffer juste comme le dessin openGL ms je sais pas comment acceder au black buffer
Voila, merci de m'aider!
Je suis actuellement sur un projet OpenGL et j'aimerais afficher du texte a la fin de chaque frame au dessus de mon dessin OpenGL, pour ca j'utilise le GDI c'est plus simple pour moi (CreateFont(), DrawText(),...).
Le probleme c'est que je dois donc dessiner le texte ds le back buffer juste comme le dessin openGL ms je sais pas comment acceder au black buffer
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glLoadIdentity(); // Code de dessin OpenGL... DrawText( hDC, "123", 3, &rcRect, 0 ); // Dessine ds le Front buffer, devrait etre dans le back buffer SwapBuffers( hDC ); //A la fin, on affiche le tout
Voila, merci de m'aider!
Autres pages sur : gdi acceder back buffer
Lassé par la pub ? Créez un compte
Oui enfin dans ce cas là, faut faire tout le rendu des polices à la main... Lui souhaitait justement utiliser ça pour se simplifier la vie. Y'a un bon tuto avec tout le code nécessaire pour les polices sur le site de NeHe, mais bon, vla la galère...
Sinon en le dessinant sur le front, ça clignote non ? Ou alors ça marche pas du tout ? Faudrait p'tet aussi essayer de faire tout ton truc en GDI au moment où tu reçois un WM_PAINT, pas sûr, mais c'est à tenter...
Sinon en le dessinant sur le front, ça clignote non ? Ou alors ça marche pas du tout ? Faudrait p'tet aussi essayer de faire tout ton truc en GDI au moment où tu reçois un WM_PAINT, pas sûr, mais c'est à tenter...
Si on prend la police prédéfinie GLUT (faut inclure glut du coup), c'est pas bien compliqué
J'ai trouvé un tuto pour ça : http://www.york.ac.uk/services/cserv/sw/graphics/OPENGL/L23.html
J'ai trouvé un tuto pour ça : http://www.york.ac.uk/services/cserv/sw/graphics/OPENGL/L23.html
Hm je travail avec Code::Blocks et je peux pas inclure glut, j'ai fait le tour des forum et j'ai vu bcp de cas pr ce probleme mais il n'existe pas de solution...
Bon alors je vais etre symple: Comment on fait pr afficher du texte par dessus du dessin OpenGL sans clignotement (si y a moyen)
Pcq on peut meme pas creer de context OpenGL ds un mem buffeur, relou!
J'ai aussi essayer en faisant un GetPixel a la fin de chaque frame ms je pert du FPS a crever...
J'ai l'impression ke je me suis une fois de plus heurte a un probleme sans solution
Bon alors je vais etre symple: Comment on fait pr afficher du texte par dessus du dessin OpenGL sans clignotement (si y a moyen)
Pcq on peut meme pas creer de context OpenGL ds un mem buffeur, relou!
J'ai aussi essayer en faisant un GetPixel a la fin de chaque frame ms je pert du FPS a crever...
J'ai l'impression ke je me suis une fois de plus heurte a un probleme sans solution
ton impression est exacte puisque microsoft indique qu'on ne peut pas utiliser le doubl-buffering. Or celui-ci est le seul moyen efficace pour éviter le clignotement. Donc, le mieux c'est de faire ta police de caractère (ou la charger à partir de celle de l'os)et de les gérer finalement comme des images (voir le tuto de NeHe).
Ouaip c'est justement ce aue j'ai fait ^^ J'avais utiliser se systeme pour un programme avec DirectDraw donc j'ai fait un copier coller du code. Par contre pour ce qui est de l'afficher j'ai fait un glDrawPixel apres avoir calculer moi-meme les pixels de l'image donc c'est un rien plus lent. Ca ce remarue pas ms a mon avis faudra pas que j'affiche du texte a toutes les sauces!
Probleme resolu!
Probleme resolu!
Lassé par la pub ? Créez un compte