Voir la version complète : [µLibrary][Aide] font custom
Hmm je vois pas ce qu'il cloche dans ce code pour loader ma font custom (convertie avec font2osl.exe de la v1 de la oslib)
VIRTUAL_FILE *f_verdana = VirtualFileOpen((void*)verdana, (int)verdana_size, VF_MEMORY, VF_O_READ);
UL_FONT *font_verdana = ulLoadFont(f_verdana);
ulSetFont(font_verdana);
Sans ca, ca marche (avec la font par defaut), avec, rien ne s'affiche :/
Quelqu'un a une idée??
Alekmaul
08/11/2007, 11h15
Perso noda, j'ai fais une fonction qui ressemble à la fonction de load des images et elle fonctionne chez moi avec l'affichage de ma font :
UL_FONT *ulLoadFontFile(const char *fileName, int fileSize) {
VIRTUAL_FILE *f;
UL_FONT *fnt = NULL;
//Si aucune source n'est sélectionnée, on prend la dernière
if (ul_loadUtilActiveSource == -1)
ul_loadUtilActiveSource = VirtualFileSourcesNb - 1;
//Charge un fichier PNG
f = VirtualFileOpen((void*)fileName, fileSize, ul_loadUtilActiveSource, VF_O_READ);
if (f) {
fnt = ulLoadFont(f);
VirtualFileClose(f);
}
return fnt;
}
et j'appelle cette fonction avec :
UL_FONT *fntHis;
fntHis = ulLoadFontFile ((void*)hashimusha_oft,(int)hashimusha_oft_size);
ulSetFont(fntHis);
sachant que hasimusha est une font de type oft et converti via mon makefile avec un tout bête bin2obj
Par contre, j'ai un problème avec le convertisseur de font, il me converti toujours la font en WIDTH=64 pour tous les caractères, y'a un truc spécial à faire pour avoir une font proportionnelle :cry: ???
J'ai trouvé mon pb il vient du convertisseur ;)
- 1e chose: désactiver ClearType ;)
- 2e chose: utiliser la font2oft de la v1 de la OSLib, celui de la v3 a ton souci alekmaul :p
- 3e chose: le résultat est assez aléatoire, si la conversion a l'air de bien se passer (width correcte pour les carac) le résultat a l'écran, c'est pas encore ca :/
Alekmaul
08/11/2007, 21h49
OK, merci de l'info noda, Brunni si tu passes par là, on a donc une modif à te donner pour la prochaine version d'OS Lib / µlib ;)
Bon ben le problème du cleartype ce sera corrigé dans la prochaine version, j'avais jamais testé :-'
Merci ^^
lyonnel4
29/12/2007, 13h59
Salut à tous,
j'ai installé la µlib sur mon mac et ai été assez impressionné par les divers exemples (effets de transparence, etc...) et la relative facilité pour les mettre en place.
Du coup, je voudrais l'utiliser pour mon projet (un peu abandonné faute de temps libre , à cause d'un bug de couleurs décourageant avec un fichier en a3l5 sous palib et surtout à cause d'un probleme de linker défaillant).
mon problème, c'est que je dois utiliser une police perso et que le convertisseur de polices fourni avec la lib ne fonctionne que pour Windows.
je voudrais donc savoir s'il existait un convertisseur en osl pour mac OSX,
et sinon s'il etait possible d'utiliser les polices créées pour palib (avec pagfx).
Ca ne fonctionne vraiment que sous windows, je suis désolé. Par contre le code est fourni et la partie création d'un .oft est portable. La partie conversion d'une fonte en bitmap + texte dépend des fontes windows donc c'est pas portable.
Donc je pense qu'il te faudra un windows virtuel, sorry...
Sinon tu peux aussi te créer ton propre système de fontes, c'est pas bien compliqué ;) Avec une simple image contenant tous les caractères, et en dessinant la bonne partie de l'image pour chaque caractère, ça suffit ;)
Link Mauve
29/12/2007, 17h47
@lyonnel4, dans l'archive de la µLib pour Linux (http://linkmauve.free.fr/download/uLibrary.tar.bz2), j'ai inclus un script de conversion (conv.sh). Il nécessite Wine (http://www.winehq.org/) et convertit une police en oft :
Il suffit de mettre un fichier ttf dans le répertoire « drive_c/windows/Fonts » de Wine et d'appeler le script « ./conv.sh police » sans l'extension. Il sort un fichier bmp, un txt, et le fameux oft (comme la version windows).
@Brunni, serait-il possible que ce programme prenne une police (ttf) en entrée au lieu d'un nom dans windows ? Pour tous les utilisateurs de Linux ou de Mac OS, ça serait beaucoup plus pratique ! J'ai essayé de le recompiler, mais j'ai eu un peu de mal avec les fichiers xAPI, bourrés de références à windows.h…
lyonnel4
31/12/2007, 22h04
merci à vous deux pour ces réponses.
link mauve: malheureusement, j'ai un mac avec processeur powerpc et non intel, donc les virtualisations de windows ce n'est pas pour moi. (seule solution: l'emulation, ce qui est trop lent pour mon vieux mac)
je vais donc essayer de le faire à la main (à partir de la doc doxygen et de la source, je devrais comprendre le format).
bon reveillon.
Link Mauve
01/01/2008, 02h24
Wine n'est pas un virtualiseur, c'est une « réécriture libre de l'API win32 », donc ça devrait fonctionner même sur un PowerPC.
Par contre, si tu arrives à réécrire le code sans windows.h, ça serait super !
lyonnel4
03/01/2008, 18h31
peut-etre, mais comme wine ne fonctionne qu'avec des processeurs x86, ca revient un peu au meme. la seule solution que j'ai vue, c'est d'utiliser conjointement un emulateur de processeur (qemu)
edit: maintenant , j'ai un mac intel, donc plus de soucis (je lance carrément windows via vmware)
vBulletin® v.3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd. Tous droits réservés - Version française vbulletin-fr.org