Attention code non portable, win32 uniquement. si quelqu'un sait le porter a Linux (au minimum) je suis preneur, je n'attends que ca
ce code sert a créer une texture openGL avec du texte dessus...atention contrairement a certains codes existantson ne fait pas un copier-coller de caracreres venant d'une texture de 1Mo sur le disque. tout est créé dynamiquement, de maniere tres simple pour l'utilisateur.
le but, a terme,de toutes mes sources a venir, est d'éviter de charger a partir du disque le maximum de fichiers
cela se fera au détriment du temps de chargement, mais ca je m'en fiche (pour ce que je veux faire)
Conclusion :
c'est sur ce code qu'est basé mes prochaines sources mais je peux pas encore les poster elles sont pas finies
ps: vous verrez je me suis pas foulé pour l'affichage ^^ le but était de montrer l'utilisation du .h
6 juil. 2005 à 11:05
c'est valable pour tous les OSes qui supportent le .ttf: pour Windows, UNIX je suis sur que c'est implémenté par défault , pour Mac aucune idée
de plus ya une lib, freetype2, qui fait ca , de maniere portable en plus, mais j'ai pas réussi a la faire marcher sinon je l'aurai utilisée.
++
6 juil. 2005 à 09:19
Je pense que ce serait faisable sous windows. Par contre sous linux, je ne sais pas comment ça se passe. J'aimerai bien être fixé pour savoir si ça vaut le coup d'essayer. Quelqu'un est au courant ?
4 juil. 2005 à 15:11
4 juil. 2005 à 13:35
vi effectivement ^^ c'est un peu bourrin je trouve ^^
4 juil. 2005 à 09:24
Là, c'est spécial, il y a en fait la définition de chaque lettre.
exemple, la lettre a:
#include <GL/glut.h>
static float a_data[][2] = {
{5.618949, 10.261048},
{5.322348, 9.438848},
{5.124614, 10.030832},
{4.860968, 9.488181},
{4.811534, 9.932169},
{3.938208, 9.438848},
{3.658084, 9.685509},
{2.784758, 8.994862},
{2.801236, 9.175745},
{1.960865, 8.172662},
{1.186406, 7.761562},
{1.252317, 6.561151},
{0.576725, 6.610483},
{0.939238, 5.525180},
{0.164779, 4.883864},
{0.840371, 4.818089},
{0.230690, 3.963001},
{0.939238, 4.242549},
{0.609681, 3.255909},
{1.268795, 3.963001},
{1.021627, 3.075026},
{1.861998, 4.045221},
{1.829042, 3.535457},
{2.817714, 4.818089},
{3.163749, 4.998972},
{3.971164, 6.643371},
{4.267765, 6.725591},
{4.663234, 7.630010},
{5.404737, 9.734840},
{4.646756, 9.669065},
{5.108136, 8.731757},
{4.679712, 8.600205},
{4.926879, 7.564234},
{4.366632, 6.692703},
{4.663234, 5.344296},
{3.888774, 4.850976},
{4.630278, 4.094553},
{3.954686, 3.963001},
{4.828012, 3.798561},
{4.168898, 3.321686},
{5.157569, 3.864337},
{4.514933, 3.091470},
{5.553038, 4.045221},
{5.305870, 3.634121},
{5.932029, 4.176773},
};
void draw_a(void) {
glBegin(GL_TRIANGLE_STRIP);
glVertex2fv(a_data[0]);
glVertex2fv(a_data[1]);
glVertex2fv(a_data[2]);
glVertex2fv(a_data[3]);
glVertex2fv(a_data[4]);
glVertex2fv(a_data[5]);
glVertex2fv(a_data[6]);
glVertex2fv(a_data[7]);
glVertex2fv(a_data[8]);
glVertex2fv(a_data[9]);
glVertex2fv(a_data[10]);
glVertex2fv(a_data[11]);
glVertex2fv(a_data[12]);
glVertex2fv(a_data[13]);
glVertex2fv(a_data[14]);
glVertex2fv(a_data[15]);
glVertex2fv(a_data[16]);
glVertex2fv(a_data[17]);
glVertex2fv(a_data[18]);
glVertex2fv(a_data[19]);
glVertex2fv(a_data[20]);
glVertex2fv(a_data[21]);
glVertex2fv(a_data[22]);
glVertex2fv(a_data[23]);
glVertex2fv(a_data[24]);
glVertex2fv(a_data[25]);
glVertex2fv(a_data[26]);
glVertex2fv(a_data[27]);
glEnd();
glBegin(GL_TRIANGLE_STRIP);
glVertex2fv(a_data[28]);
glVertex2fv(a_data[29]);
glVertex2fv(a_data[30]);
glVertex2fv(a_data[31]);
glVertex2fv(a_data[32]);
glVertex2fv(a_data[33]);
glVertex2fv(a_data[34]);
glVertex2fv(a_data[35]);
glVertex2fv(a_data[36]);
glVertex2fv(a_data[37]);
glVertex2fv(a_data[38]);
glVertex2fv(a_data[39]);
glVertex2fv(a_data[40]);
glVertex2fv(a_data[41]);
glVertex2fv(a_data[42]);
glVertex2fv(a_data[43]);
glVertex2fv(a_data[44]);
glEnd();
glBegin(GL_LINE_STRIP);
glVertex2fv(a_data[0]);
glVertex2fv(a_data[2]);
glVertex2fv(a_data[4]);
glVertex2fv(a_data[6]);
glVertex2fv(a_data[8]);
glVertex2fv(a_data[10]);
glVertex2fv(a_data[12]);
glVertex2fv(a_data[14]);
glVertex2fv(a_data[16]);
glVertex2fv(a_data[18]);
glVertex2fv(a_data[20]);
glVertex2fv(a_data[22]);
glVertex2fv(a_data[24]);
glVertex2fv(a_data[26]);
glVertex2fv(a_data[27]);
glVertex2fv(a_data[25]);
glVertex2fv(a_data[23]);
glVertex2fv(a_data[21]);
glVertex2fv(a_data[19]);
glVertex2fv(a_data[17]);
glVertex2fv(a_data[15]);
glVertex2fv(a_data[13]);
glVertex2fv(a_data[11]);
glVertex2fv(a_data[9]);
glVertex2fv(a_data[7]);
glVertex2fv(a_data[5]);
glVertex2fv(a_data[3]);
glVertex2fv(a_data[1]);
glEnd();
glBegin(GL_LINE_STRIP);
glVertex2fv(a_data[28]);
glVertex2fv(a_data[30]);
glVertex2fv(a_data[32]);
glVertex2fv(a_data[34]);
glVertex2fv(a_data[36]);
glVertex2fv(a_data[38]);
glVertex2fv(a_data[40]);
glVertex2fv(a_data[42]);
glVertex2fv(a_data[44]);
glVertex2fv(a_data[43]);
glVertex2fv(a_data[41]);
glVertex2fv(a_data[39]);
glVertex2fv(a_data[37]);
glVertex2fv(a_data[35]);
glVertex2fv(a_data[33]);
glVertex2fv(a_data[31]);
glVertex2fv(a_data[29]);
glEnd();
}
Autant dire que ce n'est pas la meilleur façon de programmer ça.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.