Bug TTF_OpenFont

Fermé
Mameiix Messages postés 1 Date d'inscription lundi 19 décembre 2016 Statut Membre Dernière intervention 19 décembre 2016 - Modifié par Mameiix le 19/12/2016 à 12:36
[Dal] Messages postés 6175 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 30 avril 2024 - 20 déc. 2016 à 09:50
Bonjour,

Pour le cadre d'un projet, je dois programmer un space invader, et on a une contrainte, pour le score on doit utiliser la bibliothèque TTF. Et mon soucis c'est que quand je souhaite charger ma police arial.ttf, OpenFont retourne null, et pourtant ma police est bien dans le même dossier que mon exécutable, et j'initialise bien TTF_Init() avant, je vous donne un bout de mon code, j'espère que vous arriverez à m'aider car ça fait plusieurs jours que je suis dessus sans comprendre, errant sur divers forums sans trouver de réponse....

TTF_Init();
    if(TTF_Init() == -1)
 {

  fprintf(stderr, "Erreur d'initialisation de TTF_Init : %s\n", TTF_GetError());

  exit(EXIT_FAILURE);

 }
        TTF_Font *police;
        police=TTF_OpenFont("arial.ttf", 16);
        if(police==NULL) {
         printf("TTF_OpenFont: %s\n", TTF_GetError());
         return 2;
         // handle error
    }



Et voici un ls du dossier :
*****@*****:~/Documents/Projet/SDL2/DossierTest$ ls
arial.ttf etape3.c map.bmp tir.bmp vaisseau.bmp
ennemi.bmp etape3.c~ test tirE.bmp



Edit:
TTF_GetError() me retourne ceci :
TTF_OpenFont: Couldn't load font file




1 réponse

[Dal] Messages postés 6175 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 30 avril 2024 1 083
20 déc. 2016 à 09:50
Salut Mameiix,

Comme tu sembles être sous Linux, essaye ceci :
police=TTF_OpenFont("./arial.ttf", 16);
(donc n'oublie pas le point et le slash, qui indiquent le répertoire courant sous Linux) ou en précisant le path complet
police=TTF_OpenFont("/home/Mameiix/Documents/Projet/SDL2/DossierTest/arial.ttf", 16);
(en supposant que c'est ton nom d'utilisateur, bien sûr).

Sinon, vois si ton problème ne vient pas d'une différence de versions bibliothèques SDL2 (que tu sembles utiliser) et de la bibliothèque ttf ... et que tu passes bien
-lSDL2_ttf
et non
-lSDL_ttf
au linker.

Comme lui : https://stackoverflow.com/questions/20817694/ttf-openfont-returning-null


Dal
0