π
<-

Utiliser une police personnalisée avec nSDL

C, C++, ASM...

Re: Utiliser une police personnalisée avec nSDL

Unread postby pierrotdu18 » 27 Apr 2014, 15:53

Ok, merci beaucoup à toi, c'est super, en attendant (peut être.... 0:] ) un portage de SDL_ttf :D
Bonjour
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Unread postby pierrotdu18 » 27 Apr 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
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Unread postby Lepzulnag » 27 Apr 2014, 16:35

Ouaip, je peux faire ça si tu veux. Pas aujourd'hui par contre, demain peut-être :p
User avatar
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 78.5%
 
Posts: 151
Joined: 02 Aug 2012, 21:15
Location: Bretagne
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: M2 Maths

Re: Utiliser une police personnalisée avec nSDL

Unread postby pierrotdu18 » 27 Apr 2014, 16:36

Ah super, merci beaucoup! ;)
Ça serait vraiment pratique :D
Bonjour
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Unread postby Lepzulnag » 27 Apr 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 ;)
User avatar
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 78.5%
 
Posts: 151
Joined: 02 Aug 2012, 21:15
Location: Bretagne
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: M2 Maths

Re: Utiliser une police personnalisée avec nSDL

Unread postby pierrotdu18 » 28 Apr 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
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Unread postby ExtendeD » 01 May 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
User avatar
ExtendeDPremium
Niveau 8: ER (Espèce Rare: nerd)
Niveau 8: ER (Espèce Rare: nerd)
Level up: 64.1%
 
Posts: 204
Joined: 30 Dec 2004, 00:00
Gender: Male
Calculator(s):
MyCalcs profile
Class: N/A

Re: Utiliser une police personnalisée avec nSDL

Unread postby pierrotdu18 » 04 May 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
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

Re: Utiliser une police personnalisée avec nSDL

Unread postby Lepzulnag » 04 May 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: Select all
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: Select all
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: Select all
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'.
User avatar
Lepzulnag
Niveau 9: IC (Compteur Infatigable)
Niveau 9: IC (Compteur Infatigable)
Level up: 78.5%
 
Posts: 151
Joined: 02 Aug 2012, 21:15
Location: Bretagne
Gender: Not specified
Calculator(s):
MyCalcs profile
Class: M2 Maths

Re: Utiliser une police personnalisée avec nSDL

Unread postby pierrotdu18 » 04 May 2014, 15:14

Lepzulnag wrote: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: Select all
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: Select all
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: Select all
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
User avatar
pierrotdu18Premium
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 40.5%
 
Posts: 975
Joined: 07 Nov 2013, 20:18
Location: Paris V
Gender: Male
Calculator(s):
MyCalcs profile
Class: MP* Lycée Henri IV

PreviousNext

Return to Native: Ndless, Linux, ...

Who is online

Users browsing this forum: ClaudeBot [spider] and 11 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
1516 utilisateurs:
>1499 invités
>10 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)