Dans le cadre du chapitre SDL_ttf du cours c l'exécution du programme test ne se passe pas bien : la fenêtre apparaît une fraction de seconde et je suis à nouveau sur la console avec un statut 3 pour le programme. La compilation se déroule sans problème. Les .h et .lib sont à leur place. Concernant le fichier SDL_ttf.h j'ai eu un petit souci car le répertoire mingw32 avec un dossier include n'est pas disponible dans CodeBlocks 17.12. Il y a un répertoire MinGW avec les dossiers include et lib. J'ai donc crée un dossier SDL dans include et y ai copié SDL_ttf.h. D'ailleurs toutes les dépendances requises sont satisfaites via "build options". Concernant les dll j'ai mis dans le répertoire racine du projet les fichiers suivants :
SDL.dll
SDL_image.dll
SDL_ttf.dll
libfreetype-6.dll
libjpeg-8.dll
libpng15-15.dll
libtiff-5.dll
libwebp-2.dll
zlib1.dll
Il y en a probablement qui ne sont pas utiles. A l'exception de celles liées à ttf ce sont celles que j'ai utilisé sans problème pour le TP Sokoban.
La seule modification dans le source concerne le chargement d'une autre image que j'ai évidemment ajouté dans l'espace de travail.
ecran = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE | SDL_DOUBLEBUF); SDL_WM_SetCaption("Gestion du texte avec SDL_ttf", NULL);
fond = IMG_Load("menu.jpg");
/* Chargement de la police */ police = TTF_OpenFont("angelina.ttf", 65); /* Écriture du texte dans la SDL_Surface texte en mode Blended (optimal) */ texte = TTF_RenderText_Blended(police, "Salut les Zér0s !", couleurNoire);
while (continuer) { SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT: continuer = 0; break; }
J'ai activé le debugger et dans la fenêtre "call stack" il y a les informations suivantes :
0x40140c SDL_main(argc=1,argv=0xf815f8)
Le plantage a lieu à la ligne 27 "texte = TTF_RenderText_Blended(police, "Salut les Zér0s !", couleurNoire);"
Pour ce qui est de l'utilisation de </> je n'ai pas compris ce qu'il fallait faire. Je n'ai rien trouvé (ou pas su trouver) dans le forum ou sur le net où cela devient très compliqué pour un novice.
Merci pour un lien expliquant comment utiliser ce bouton.
Après le start du debugger il y a une apparition fugace d'une petite fenêtre en bas à droite : j'ai eu le temps de lire "segmentation fault". Ensuite il faut que je passe par le gestionnaire de taches pour sortir du programme et de CB.
J'avais bien remarqué le bouton </> mais son utilisation génère chez moi une autre fenêtre dans laquelle je pensais pouvoir copier le code mais il ne se passe rien : cette fenêtre est complètement bloquée. Désolé si cela devait être évident.
J'ai essayé d'autres polices (calig.ttf, Timeless.ttf) : même problème.
>> J'avais bien remarqué le bouton </> mais son utilisation génère chez moi une autre fenêtre dans laquelle je pensais pouvoir copier le code mais il ne se passe rien : cette fenêtre est complètement bloquée
T'inquiète, ça fait un petit temps que le site déconne solide au niveau de l'éditeur. On attend toujours que ce soir réglé. P'têt que la partie forum n'intéresse plus OC....
>>J'ai essayé d'autres polices (calig.ttf, Timeless.ttf) : même problème.
Chaque fois que cela m'a été demandé j'ai gardé les chemins absolus. Concernant les fichiers ttf :
- SDL_ttf.h est dans CodeBlocks\MinGW\include\SDL
- SDL_ttf.lib est dans CodeBlocks\MinGW\lib
- les dll (libfreetype-6, SDL_tff, zlib1) sont dans la racine du projet.
Le dossier téléchargé initialement est SDL_ttf-devel-2.0.11-VC et dans le sous-dossier lib j'ai récupéré les fichiers x86. Je ne vois vraiment pas où se situe l'erreur ou le manque.
La remarque sur </> est elle générale ou vient elle de ma configuration ?
>> Je viens de faire un tour sur le net et ai remarqué que ce problème de localisation des "fonts" par SDL n'était vraiment pas nouveau ...
TTF n'a aucun problème à ouvrir les fonts.... à condition de lui dire où les trouver. ttf ne connait pas les paths par défaut installés dans ton système, il faut tout lui dire. Par exemple, si tu es sous windows, ttf ignore que les font sont (en génral) dans c:\windows\fonts !
@poweRiCube: bien vu, je parle de fait du chemin absolu pour trouver les fonts.
- Edité par edgarjacobs 10 avril 2019 à 23:34:44
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
Oui et non. J'ai effectivement lu que ce problème était assez souvent évoqué et que des solutions proposées dans d'anciens posts du forum OCR différaient sensiblement de la marche à suivre du cours actuel bien qu'étant basées sur les mêmes bibliothèques que celles mises en œuvre ici. Je n'ai pas essayé ces solutions car si je télécharge les fichiers ttf dont j'ai besoin et que je les place dans la racine de mon projet tout marche correctement.
Cette façon de faire me permet d'avancer mais ce n'est pas la bonne solution. Il faudrait que les fonctions SDL_ttf puissent trouver elles mêmes les fichiers ttf demandés dans la librairie installée dans CB. Je suis donc toujours à la recherche de la bonne configuration de l'ensemble (CB SDL) pour atteindre cet objectif et j'aimerai comprendre ce que je n'ai pas fait correctement lors de mon suivi de la procédure du cours.
J'avoue ne pas être très rassuré quant à la suite du cours avec l'introduction d'une autre librairie (celle du son en l'occurrence).
>> Il faudrait que les fonctions SDL_ttf puissent trouver elles mêmes les fichiers ttf demandés
Je me répète: ttf ne connait pas les paths par défaut installés dans ton système
>> J'avoue ne pas être très rassuré quant à la suite du cours avec l'introduction d'une autre librairie (celle du son en l'occurrence)
Ben, déjà, tu peux "oublier" le tutoriel sdl 1.x présent sur oc, sdl 2.x est sorti depuis 6 ans. Pour des tutoriels sur sdl 2.x voir zeste de savoir ou dvp
Quant à la gestion du son, deux choses:
1) le tutoriel d'oc utilise fmod, qui est un logiciel propriétaire (donc utilisable uniquement à des fins privées)
2) le tutoriel en question est dépassé et tu ne trouveras plus cette version de fmod (sauf si tu es sous windows et que tu profites de ma grande mansuétude: voir ici)
- Edité par edgarjacobs 11 avril 2019 à 0:26:11
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
En fait je pensais que les polices faisaient partie de la librairie SDL_ttf.lib d'où mon problème. Ces polices sont déjà quasiment toutes dans mon ordinateur. Il me faut donc les récupérer soit directement soit via un PATH. Le point positif est que j'ai appris de nouvelles notions. J'ai parcouru le site "zeste de savoir" et j'y viendrai. Pour le moment l'avantage que je trouve au cours OCR sur le c est qu'il forme un tout cohérent englobant beaucoup d'aspects du langage. Le fait qu'il soit obsolète sur certains aspects n'est pas encore un problème (pour moi tout au moins).
« il forme un tout cohérent englobant beaucoup d'aspects du langage ». Malheureusement pas vraiment et il est plutôt bof sur certains points (dont la SDL d'ailleurs, et je ne parle pas seulement du fait que la version 2 de la SDL est sortie depuis plus de cinq ans). Même pour le C en lui-même (donc pas la SDL), je te dirais d'aller voir le tutoriel de Zeste de Savoir.
Je suis entièrement d'accord avec vous. Dans mon cas le problème est un peu différent car je suis retraité et ai fait du fortran pendant toute ma carrière : ma motivation est donc essentiellement basée sur l'envie de découvrir d'autres langages ayant des horizons plus ouverts et des potentialités bien plus en phase avec les besoins actuels. C'est vrai que cela aurait été préférable de commencer cette découverte avec un cours plus "up to date". Mais pourquoi ce retard de plusieurs années dans le cours OCR ?
Vraiment désolé les gars mais je n'ai toujours rien compris. J'ai téléchargé la police et je l'ai copiée dans le dossier de mon projet mais le programme ne fonctionne toujours pas.
- Edité par ChristianAlbertLamy 6 septembre 2021 à 20:43:50
Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.
Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre. En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.
Au lieu de déterrer un sujet il est préférable :
soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
soit de créer un nouveau sujet décrivant votre propre contexte
ne pas répondre à un déterrage et le signaler à la modération
Je ferme ce sujet. En cas de désaccord, me contacter par MP.
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent
On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent