IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

TTF_OpenFont Couldn't load font file.


Sujet :

SDL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut TTF_OpenFont Couldn't load font file.
    Bonjour,

    Je cherche à écrire un texte dans une fenêtre en c++ grâce à la SDL. Mais l'appel de la fonction TTF_OpenFont me revoie constament NULL avec comme erreur "Couldn't load font file".
    J'appelle et je vérifie la sortie de TTF_Init(), de plus je suis certain de l'emplacement de mon fichier .ttf que j'ai d'ailleurs essayé en .fon . Lorsque le chemin est faux l'erreur n'est pas la même.

    Je suis sur Ubuntu et ai installé tous les packets relatifs à la SDL 1 à 2. J'ai essayé de changer les droits de mes fichiers ttf et fon dans toutes les configurations possibles.
    J'ai fais ce test avec 3 polices différentes dont 1 ou j'ai la certitude qu'elle à marché sur un projet similaire. J'ai aussi essayé de changer toutes les tailles.

    Si quelqu'un à rencontré ce problème je prends volontiers sa solution. Je ne joint pas de code car il ne comporte qu'un TTF_Init() vérifié et un TTF_LoadFont() le reste n'etant pas en rapport.
    Simplement cette procédure est lancée depuis une fonction start d'un objet Menu().

    Merci d'avance.

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Comment affichez vous l'erreur ? Avez vous essayer en lançant le programme dans strace ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    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
     
     
    if (!TTF_Init())
    {
     
        std::cout << "Try to load font ..." << std::endl;
     
        if (TTF_OpenFont("maPolice.ttf", 24))
            {
                std::cout << "Success" << std::endl;
            }
        else
            {
                std::cout << SDL_GetError() << std::endl;
            }
     
    }

    SDL_GetError me renvoie la réponse. Avant ce code j'initialise la SDL correctement. Et j'inclue les .h nécessaires.

    Je pense avoir tout fais correctement, il me semblerai que l'erreur provienne plutot de mon ubuntu mais je compile donc je ne peux pas me permettre de négliger des utilisateurs ayant ma version d'ubuntu. Peut être mon compilateur ne fais pas les bonnes actions en interne.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    L'ordinateur a toujours raison. L'ordinateur ne fait que ce qu'on lui demande. Les outils des autres, du style compilateur, ou bibliothèques sont toujours fiables.
    Ici, je pense simplement que vous avez le problème du chemin du fichier. En effet, sous Linux, pour spécifier le répertoire courant, on utilise "." (et pour le répertoire parent "..").
    Ici, je pense que vous devez écrire : if (TTF_OpenFont("./maPolice.ttf", 24)) et ça passera crème.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    J'ai fais le tour 3 fois des 3 premières pages de google pour tous les mots clefs autour de ce sujet. J'ai feuilleté pendant longtemps (trop longtemps) le forum de la sdl.

    Ce problème de semble pas récurrent mais chaque fois qu'il est mentionné les seules réponses sont: "ce n'est pas le bon nom de fichier". Je vous en supplie ne m'obligez pas à faire une
    capture d'écran pour vous prouver que j'utilise le bon nom de fichier. J'ai précisé dans mon premier message que j'étais CERTAIN de mon path.

    Je le répète: Lorsque le path est mauvais TTF_OpenFont() le notifie directement avec un "couldn't find font + PATH" sinon lorsqu'il la trouve mais bug dans mon cas l'erreur est : "couldn't load font"

    J'ai essayé sur 3 ordinateurs différents autre que ubuntu et ils mettent tous la même erreur. C'est peut être dans ce cas une question de compilation ou de cohabitation sdl/sdl2.
    Je vous joins mon makefile.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    g++ *.cpp -ldl -o monProg $(shell sdl2-config --cflags --libs) $(shell sdl-config --cflags --libs) -lSDL_ttf -lSDL_image

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Faites une archive de votre projet (avec un Makefile, si possible) afin que nous essayons chez nous.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour à tous, le sujet date un peu, mais s'il peut aider quelqu'un sur ce problème:

    1) Vérifier que le chemin (path) soit correct:

    Dans ton cas, tu l'as fait.

    2) Vérifier la version des paquets que tu utilises:

    Si vous utilisez SDL2 quelque part alors il faudra quoi qu'il advienne utiliser la version SDL2 de SDL_TTF sinon cela créer un conflit.

    Comment obtenir cette version sur linux : sudo apt-get install libsdl2-ttf-dev

    3) Linker correctement la version SDL2 de SDL_TTF (dans makefile ou autre):


    dans ton cas : -lSDL2_image -lSDL2_ttf
    Il peut arriver que l'ajout du link suivant soit nécessaire : -lSDL2


    Normalement plus d'erreur !

Discussions similaires

  1. Réponses: 0
    Dernier message: 02/05/2014, 23h41
  2. [Débutant] Unable to load mex file
    Par slaima15 dans le forum MATLAB
    Réponses: 13
    Dernier message: 11/11/2009, 17h32
  3. [GD] Captcha problème de font file
    Par wace dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 11/07/2007, 11h32
  4. Loading Dump File Sybase Unix Into Windows
    Par coco_zouzou dans le forum Sybase
    Réponses: 3
    Dernier message: 30/05/2007, 13h30
  5. Problème d'index avec load data file
    Par bruno782 dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/03/2005, 12h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo