174 lines
4.6 KiB
Plaintext
174 lines
4.6 KiB
Plaintext
|
Un apercu du layout des fichiers sources de FreeType 2:
|
|||
|
|
|||
|
docs/ - documentation
|
|||
|
html/ - documentation au format html
|
|||
|
|
|||
|
txt/ - documentation au format texte
|
|||
|
|
|||
|
|
|||
|
include/ - les headers publiques de la librairie, ce sont ceux
|
|||
|
qui sont installes avec le paquet freetype-devel.rpm
|
|||
|
|
|||
|
config/ - le repertoire de configuration.
|
|||
|
ansi/
|
|||
|
ft_conf.h - fichier de configuration
|
|||
|
ftsys.c - fichier implementation bas-niveau
|
|||
|
|
|||
|
unix/
|
|||
|
|
|||
|
os2/
|
|||
|
|
|||
|
dos/
|
|||
|
|
|||
|
amiga/
|
|||
|
|
|||
|
debug/
|
|||
|
|
|||
|
|
|||
|
src/ - sources de la librairie
|
|||
|
base/ - couche de base (services generiques + API)
|
|||
|
|
|||
|
truetype/ - pilote truetype
|
|||
|
options/ - options du pilote truetype
|
|||
|
extend/ - extensions du pilote truetype
|
|||
|
|
|||
|
type1/ - pilote type 1
|
|||
|
options/ - options du pilote type 1
|
|||
|
extend/ - extensions du pilote type 1
|
|||
|
|
|||
|
type2/ - pilote type 2
|
|||
|
|
|||
|
speedo/ - pilote speedo
|
|||
|
|
|||
|
shared/ - sources partagees par plusieurs pilotes
|
|||
|
|
|||
|
|
|||
|
tests/ - programmes de test
|
|||
|
data/ - donnees des tests = fichiers de police => copies dans bin
|
|||
|
test1/ - source du test numero 1
|
|||
|
test2/ - source du test numero 2
|
|||
|
test3/ - ...
|
|||
|
...
|
|||
|
|
|||
|
obj/ - emplacement des fichiers objets compiles + librairie ?
|
|||
|
bin/ - emplacement des executables (demos+tests)
|
|||
|
|
|||
|
demos/ - programmes de demonstration
|
|||
|
graph/ - sous-systeme graphique des programmes de demo
|
|||
|
|
|||
|
|
|||
|
contrib/ - contributions de toutes sortes..
|
|||
|
|
|||
|
|
|||
|
=============================================================================
|
|||
|
Quelques autres idees au hasard :
|
|||
|
|
|||
|
- virer le controle des threads, on s'en tape magistralement
|
|||
|
|
|||
|
- separer l'allocation memoire de l'acces disque (+flexible)
|
|||
|
|
|||
|
- l'api de base doit permettre "d'ouvrir" un fichier de police se trouvant
|
|||
|
deja en memoire..
|
|||
|
|
|||
|
- expliquer les differents types de dictionnaires :
|
|||
|
|
|||
|
char_code -> glyph_index charmap (truetype)
|
|||
|
char_code -> glyph_name encoding (type 1)
|
|||
|
glyph_index -> glyph_name repertoire (...)
|
|||
|
|
|||
|
- plusieurs "raster" possibles (le raster par defaut peut etre d<>termin<69> <20> la compilation,
|
|||
|
sinon l'ajout se fait simplement en passant un pointeur d'interface..)
|
|||
|
|
|||
|
|
|||
|
- l'api de base doit etre simplifiee. La plupart des developpeurs ne veulent
|
|||
|
pas savoir ce qu'est une "size", un "glyph_slot", etc.., on conseille donc
|
|||
|
d'en creer une par defaut, lors de l'appel de :
|
|||
|
|
|||
|
------------------- initialisation et lecture des polices ------------
|
|||
|
|
|||
|
FT_Init_FreeType( &library );
|
|||
|
|
|||
|
FT_Set_Memory_Manager( library, &mem_manager_rec );
|
|||
|
|
|||
|
FT_Set_IO_Manager( library, &io_manager_rec );
|
|||
|
|
|||
|
|
|||
|
FT_New_Face( library, file_pathname, face_index, &face );
|
|||
|
|
|||
|
FT_New_Memory_Face( library, first_byte, length, face_index, &face );
|
|||
|
|
|||
|
ou encore:
|
|||
|
|
|||
|
FT_New_Face( library, &new_face_rec, &face );
|
|||
|
|
|||
|
avec new_face_rec ::
|
|||
|
|
|||
|
face_index
|
|||
|
|
|||
|
pathname
|
|||
|
|
|||
|
memory_address
|
|||
|
bytes_size
|
|||
|
|
|||
|
|
|||
|
FT_Flush_Face( face ); // ferme le stream correspondant..
|
|||
|
|
|||
|
|
|||
|
------------------------------------------ changement de taille ------
|
|||
|
|
|||
|
FT_Set_Size( face, &face_size_rec );
|
|||
|
|
|||
|
face_size_rec ::
|
|||
|
char_height
|
|||
|
char_width
|
|||
|
horz_resolution
|
|||
|
vert_resolution
|
|||
|
|
|||
|
FT_Set_Pixel_Sizes( face, 64, 64 );
|
|||
|
|
|||
|
|
|||
|
----------------------------------------- selection de la charmap ----
|
|||
|
|
|||
|
FT_Select_Charmap( face, ft_charmap_unicode );
|
|||
|
|
|||
|
FT_Select_Charmap_Index( face, index );
|
|||
|
|
|||
|
FT_List_Charmaps( face, buffer, max, first );
|
|||
|
|
|||
|
face->charmap => pointe vers la charmap actuelle..
|
|||
|
|
|||
|
|
|||
|
-------------------------------------- chargement des glyphes --------
|
|||
|
|
|||
|
FT_Load_Glyph( face, glyph_index );
|
|||
|
|
|||
|
FT_Load_Char( face, char_code );
|
|||
|
|
|||
|
FT_Transform_Glyph( face->glyph, &trans );
|
|||
|
|
|||
|
|
|||
|
---------------------------------------------- rendu final -----------
|
|||
|
|
|||
|
FT_Get_Outline_Bitmap( library, face->glyph, &bit );
|
|||
|
|
|||
|
FT_Set_Raster( library, "default" );
|
|||
|
|
|||
|
FT_Set_Raster_Mode( library, major_mode, minor_mode );
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
=======================================================================================
|
|||
|
|
|||
|
Syst<EFBFBD>me de configuration automatique
|
|||
|
|
|||
|
freetype2/
|
|||
|
Makefile
|
|||
|
config/
|
|||
|
ansi/
|
|||
|
config.mk
|
|||
|
|
|||
|
make setup => autodetection du syst<73>me + copie de fichier include ???
|
|||
|
|
|||
|
make
|