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
|