π
<-
Chat plein-écran
[^]

Utiliser une police personnalisée avec nSDL

C, C++, ASM...

Re: Utiliser une police personnalisée avec nSDL

Message non lude pierrotdu18 » 27 Avr 2014, 15:53

Ok, merci beaucoup à toi, c'est super, en attendant (peut être.... 0:] ) un portage de SDL_ttf :D
Bonjour
Avatar de l’utilisateur
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 40.5%
 
Messages: 975
Inscription: 07 Nov 2013, 20:18
Localisation: Paris V
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Message non lude pierrotdu18 » 27 Avr 2014, 16:27

Il serait possible que tu crées un petit utilitaire qui prend en paramètre la largeur et la hauteur d'un caractère, et qui revoie une image qui contient une grille rose comme tu as mis en exemple dans ton .zip? Ca serait parfait pour pouvoir créer seulement quelques caractères avec une taille différente que celle proposée :D
Bonjour
Avatar de l’utilisateur
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 40.5%
 
Messages: 975
Inscription: 07 Nov 2013, 20:18
Localisation: Paris V
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Message non lude Lepzulnag » 27 Avr 2014, 16:35

Ouaip, je peux faire ça si tu veux. Pas aujourd'hui par contre, demain peut-être :p
Avatar de l’utilisateur
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 78.5%
 
Messages: 151
Inscription: 02 Aoû 2012, 21:15
Localisation: Bretagne
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: M2 Maths

Re: Utiliser une police personnalisée avec nSDL

Message non lude pierrotdu18 » 27 Avr 2014, 16:36

Ah super, merci beaucoup! ;)
Ça serait vraiment pratique :D
Bonjour
Avatar de l’utilisateur
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 40.5%
 
Messages: 975
Inscription: 07 Nov 2013, 20:18
Localisation: Paris V
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Message non lude Lepzulnag » 27 Avr 2014, 23:11

Voilà : http://tiplanet.org/forum/archives_voir.php?id=46446.
Faut lancer l'exe depuis ta console msys, pas double-cliquer dessus(cf. readme).
Je pense que tu aurais été capable de faire ce petit utilitaire tout seul (j'utilise juste la SDL), c'est pourquoi je t'ai laissé le code source ;)
Avatar de l’utilisateur
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 78.5%
 
Messages: 151
Inscription: 02 Aoû 2012, 21:15
Localisation: Bretagne
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: M2 Maths

Re: Utiliser une police personnalisée avec nSDL

Message non lude pierrotdu18 » 28 Avr 2014, 00:20

Merci !! :-D
En fait, c'est que je ne savais pas me servir des arguments de la fonction main :)
Et je ne connaissais pas SaveBMP, c'est cool :-D
Bonjour
Avatar de l’utilisateur
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 40.5%
 
Messages: 975
Inscription: 07 Nov 2013, 20:18
Localisation: Paris V
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Message non lude ExtendeD » 01 Mai 2014, 09:10

Pour info la dernière contribution de Legimet au SDK permet de charger un fichier TTF avec la bibliothèque FreeType, et afficher les caractères en tant qu'image, si ça peut vous aider: https://github.com/OlivierA/Ndless/pull/4
Avatar de l’utilisateur
ExtendeDPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Prochain niv.: 64.1%
 
Messages: 204
Inscription: 30 Déc 2004, 00:00
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: N/A

Re: Utiliser une police personnalisée avec nSDL

Message non lude pierrotdu18 » 04 Mai 2014, 13:00

Merci Extended mais je ne vois pas comment il faut faire pour l'installer :p

Sinon, Lepzulnag, j'ai vu que tu as adapté la fonction getStringHeight ou un truc comme ça, je voulais te demander si tu pouvais adapter aussi pour la largeur... :) Parce que j'ai besoin de centrer mon texte, et je n'y arrive pas avec la simple fonction stringWidth de départ ;)
Bonjour
Avatar de l’utilisateur
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 40.5%
 
Messages: 975
Inscription: 07 Nov 2013, 20:18
Localisation: Paris V
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Message non lude Lepzulnag » 04 Mai 2014, 15:11

Bon ya pas mal de truc à dire pour ton problème de centrage de police et le chat est plein alors je réponds ici :p

Ta fonction de dessin c'est celle-là :
Code: Tout sélectionner
nSDL_DrawStringCF(screen, scoreFont, SCREEN_WIDTH/2 - nSDL_GetStringWidth(scoreFont, score_txt)/2, 50, "%d", score);

Le premier problème, c'est que score_txt n'est pas égal à score pour score = 0.
En effet tu définis score_txt comme suit :
Code: Tout sélectionner
char score_txt[5] = {0};

Ce qui équivaut à dire que score_txt = "", et non "0" comme tu voudrais qu'il le soit.

Donc première chose à changer : initialiser correctement score_txt et (c'est optionnel mais ça t'aurait permis de comprendre tout de suite) remplacer ta ligne de dessin du score par :
Code: Tout sélectionner
nSDL_DrawStringCF(screen, scoreFont, SCREEN_WIDTH/2 - nSDL_GetStringWidth(scoreFont, score_txt)/2, 50, score_txt);

Comme ça tu es sûr que la chaîne que tu centres est la même que celle que tu dessines.

La seconde chose qui fait que ton score n'est pas toujours bien centré, c'est la façon dont tu as créé tes chiffres. Le '1' notamment (je n'ai pas regardé les autres lettres, mais le '0' et le '2' ne sont pas à changer). Quand tu créées ta police, je te conseille de soit mettre une marge de 1 pixel au début de chaque caractère, soit de ne mettre aucune marge (de telle sorte que le bord gauche du caractère touche la bordure, mais pas forcément le bord droit) et dans ce cas d'utiliser la fonction nSDL_SetFontSpacing(horizontalSpacing, verticalSpacing) pour ne pas que tes caractères se 'collent'.
Avatar de l’utilisateur
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Prochain niv.: 78.5%
 
Messages: 151
Inscription: 02 Aoû 2012, 21:15
Localisation: Bretagne
Genre: Non spécifié
Calculatrice(s):
MyCalcs profile
Classe: M2 Maths

Re: Utiliser une police personnalisée avec nSDL

Message non lude pierrotdu18 » 04 Mai 2014, 15:14

Lepzulnag a écrit:Bon ya pas mal de truc à dire pour ton problème de centrage de police et le chat est plein alors je réponds ici :p

Ta fonction de dessin c'est celle-là :
Code: Tout sélectionner
nSDL_DrawStringCF(screen, scoreFont, SCREEN_WIDTH/2 - nSDL_GetStringWidth(scoreFont, score_txt)/2, 50, "%d", score);

Le premier problème, c'est que score_txt n'est pas égal à score pour score = 0.
En effet tu définis score_txt comme suit :
Code: Tout sélectionner
char score_txt[5] = {0};

Ce qui équivaut à dire que score_txt = "", et non "0" comme tu voudrais qu'il le soit.

Donc première chose à changer : initialiser correctement score_txt et (c'est optionnel mais ça t'aurait permis de comprendre tout de suite) remplacer ta ligne de dessin du score par :
Code: Tout sélectionner
nSDL_DrawStringCF(screen, scoreFont, SCREEN_WIDTH/2 - nSDL_GetStringWidth(scoreFont, score_txt)/2, 50, score_txt);

Comme ça tu es sûr que la chaîne que tu centres est la même que celle que tu dessines.

La seconde chose qui fait que ton score n'est pas toujours bien centré, c'est la façon dont tu as créé tes chiffres. Le '1' notamment (je n'ai pas regardé les autres lettres, mais le '0' et le '2' ne sont pas à changer). Quand tu créées ta police, je te conseille de soit mettre une marge de 1 pixel au début de chaque caractère, soit de ne mettre aucune marge (de telle sorte que le bord gauche du caractère touche la bordure, mais pas forcément le bord droit) et dans ce cas d'utiliser la fonction nSDL_SetFontSpacing(horizontalSpacing, verticalSpacing) pour ne pas que tes caractères se 'collent'.


En effet, je vais essayer de changer tout ça, merci :)

Sinon, j'ai bien fait une marge de un pixel en créant ma police. ET pourquoi mon "1" ne va pas?...
Bonjour
Avatar de l’utilisateur
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Prochain niv.: 40.5%
 
Messages: 975
Inscription: 07 Nov 2013, 20:18
Localisation: Paris V
Genre: Homme
Calculatrice(s):
MyCalcs profile
Classe: MP* Lycée Henri IV

PrécédenteSuivante

Retourner vers Native: Ndless, Linux, ...

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 11 invités

-
Rechercher
-
Social TI-Planet
-
Sujets à la une
Comparaisons des meilleurs prix pour acheter sa calculatrice !
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
Phi NumWorks jailbreak
123
-
Faire un don / Premium
Pour plus de concours, de lots, de tests, nous aider à payer le serveur et les domaines...
Faire un don
Découvrez les avantages d'un compte donateur !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partenaires et pub
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1161 utilisateurs:
>1128 invités
>28 membres
>5 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Autres sites intéressants
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)