diff --git a/ChangeLog b/ChangeLog
index 866c4bacc..d9b6f1a2b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2004-05-03 Steve Hartwell This directory contains a project files for Visual C++, named
freetype.dsp, and Visual Studio, called freetype.sln. It
-will compile the following libraries from the FreeType 2.1.8 sources:
diff --git a/src/truetype/ttdriver.c b/src/truetype/ttdriver.c index acd6be04d..30e5b6f55 100644 --- a/src/truetype/ttdriver.c +++ b/src/truetype/ttdriver.c @@ -99,11 +99,12 @@ /* They can be implemented by format-specific interfaces. */ /* */ static FT_Error - Get_Kerning( TT_Face face, + Get_Kerning( FT_Face ttface, /* TT_Face */ FT_UInt left_glyph, FT_UInt right_glyph, FT_Vector* kerning ) { + TT_Face face = (TT_Face)ttface; TT_Kern0_Pair pair; @@ -194,12 +195,13 @@ /* FreeType error code. 0 means success. */ /* */ static FT_Error - Set_Char_Sizes( TT_Size size, + Set_Char_Sizes( FT_Size ttsize, /* TT_Size */ FT_F26Dot6 char_width, FT_F26Dot6 char_height, FT_UInt horz_resolution, FT_UInt vert_resolution ) { + TT_Size size = (TT_Size)ttsize; FT_Size_Metrics* metrics = &size->root.metrics; FT_Size_Metrics* metrics2 = &size->metrics; TT_Face face = (TT_Face)size->root.face; @@ -259,8 +261,16 @@ /* FreeType error code. 0 means success. */ /* */ static FT_Error - Set_Pixel_Sizes( TT_Size size ) + Set_Pixel_Sizes( FT_Size ttsize, /* TT_Size */ + FT_UInt pixel_width, + FT_UInt pixel_height ) { + TT_Size size = (TT_Size)ttsize; + + FT_UNUSED( pixel_width ); + FT_UNUSED( pixel_height ); + + /* many things have been pre-computed by the base layer */ size->metrics = size->root.metrics; @@ -300,12 +310,14 @@ /* FreeType error code. 0 means success. */ /* */ static FT_Error - Load_Glyph( TT_GlyphSlot slot, - TT_Size size, + Load_Glyph( FT_GlyphSlot ttslot, /* TT_GlyphSlot */ + FT_Size ttsize, /* TT_Size */ FT_UInt glyph_index, FT_Int32 load_flags ) { - FT_Error error; + TT_GlyphSlot slot = (TT_GlyphSlot)ttslot; + TT_Size size = (TT_Size)ttsize; + FT_Error error; if ( !slot ) @@ -377,7 +389,7 @@ static FT_Module_Interface - tt_get_interface( TT_Driver driver, + tt_get_interface( FT_Module driver, /* TT_Driver */ const char* tt_interface ) { FT_Module_Interface result; @@ -390,12 +402,12 @@ return result; /* only return the default interface from the SFNT module */ - sfntd = FT_Get_Module( driver->root.root.library, "sfnt" ); + sfntd = FT_Get_Module( driver->library, "sfnt" ); if ( sfntd ) { sfnt = (SFNT_Service)( sfntd->clazz->module_interface ); if ( sfnt ) - return sfnt->get_interface( FT_MODULE( driver ), tt_interface ); + return sfnt->get_interface( driver, tt_interface ); } return 0; @@ -424,30 +436,29 @@ (void*)0, /* driver specific interface */ - (FT_Module_Constructor)tt_driver_init, - (FT_Module_Destructor) tt_driver_done, - (FT_Module_Requester) tt_get_interface, + tt_driver_init, + tt_driver_done, + tt_get_interface, }, sizeof ( TT_FaceRec ), sizeof ( TT_SizeRec ), sizeof ( FT_GlyphSlotRec ), + tt_face_init, + tt_face_done, + tt_size_init, + tt_size_done, + 0, /* FT_Slot_InitFunc */ + 0, /* FT_Slot_DoneFunc */ - (FT_Face_InitFunc) tt_face_init, - (FT_Face_DoneFunc) tt_face_done, - (FT_Size_InitFunc) tt_size_init, - (FT_Size_DoneFunc) tt_size_done, - (FT_Slot_InitFunc) 0, - (FT_Slot_DoneFunc) 0, + Set_Char_Sizes, + Set_Pixel_Sizes, + Load_Glyph, - (FT_Size_ResetPointsFunc)Set_Char_Sizes, - (FT_Size_ResetPixelsFunc)Set_Pixel_Sizes, - (FT_Slot_LoadFunc) Load_Glyph, - - (FT_Face_GetKerningFunc) Get_Kerning, - (FT_Face_AttachFunc) 0, - (FT_Face_GetAdvancesFunc)0 + Get_Kerning, + 0, /* FT_Face_AttachFunc */ + 0 /* FT_Face_GetAdvancesFunc */ }; diff --git a/src/truetype/ttobjs.c b/src/truetype/ttobjs.c index 579dc4a1b..89d7c88b7 100644 --- a/src/truetype/ttobjs.c +++ b/src/truetype/ttobjs.c @@ -165,7 +165,7 @@ /* */ FT_LOCAL_DEF( FT_Error ) tt_face_init( FT_Stream stream, - TT_Face face, + FT_Face ttface, /* TT_Face */ FT_Int face_index, FT_Int num_params, FT_Parameter* params ) @@ -173,6 +173,7 @@ FT_Error error; FT_Library library; SFNT_Service sfnt; + TT_Face face = (TT_Face)ttface; library = face->root.driver->root.library; @@ -269,8 +270,9 @@ /* face :: A pointer to the face object to destroy. */ /* */ FT_LOCAL_DEF( void ) - tt_face_done( TT_Face face ) + tt_face_done( FT_Face ttface ) /* TT_Face */ { + TT_Face face = (TT_Face)ttface; FT_Memory memory = face->root.memory; FT_Stream stream = face->root.stream; @@ -327,8 +329,9 @@ /* FreeType error code. 0 means success. */ /* */ FT_LOCAL_DEF( FT_Error ) - tt_size_init( TT_Size size ) + tt_size_init( FT_Size ttsize ) /* TT_Size */ { + TT_Size size = (TT_Size)ttsize; FT_Error error = TT_Err_Ok; @@ -485,7 +488,7 @@ Fail_Memory: - tt_size_done( size ); + tt_size_done( ttsize ); return error; #endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ @@ -505,8 +508,9 @@ /* size :: A handle to the target size object. */ /* */ FT_LOCAL_DEF( void ) - tt_size_done( TT_Size size ) + tt_size_done( FT_Size ttsize ) /* TT_Size */ { + TT_Size size = (TT_Size)ttsize; #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER @@ -851,7 +855,7 @@ /* FreeType error code. 0 means success. */ /* */ FT_LOCAL_DEF( FT_Error ) - tt_driver_init( TT_Driver driver ) + tt_driver_init( FT_Module driver ) /* TT_Driver */ { FT_Error error; @@ -875,9 +879,11 @@ /* driver :: A handle to the target TrueType driver. */ /* */ FT_LOCAL_DEF( void ) - tt_driver_done( TT_Driver driver ) + tt_driver_done( FT_Module ttdriver ) /* TT_Driver */ { #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER + TT_Driver driver = (TT_Driver)ttdriver; + /* destroy the execution context */ if ( driver->context ) diff --git a/src/truetype/ttobjs.h b/src/truetype/ttobjs.h index 30cf1cb36..423d3f005 100644 --- a/src/truetype/ttobjs.h +++ b/src/truetype/ttobjs.h @@ -380,19 +380,28 @@ FT_BEGIN_HEADER } TT_DriverRec; + /* Note: All of the functions below (except tt_size_reset()) are used */ + /* as function pointers in a FT_Driver_ClassRec. Therefore their */ + /* parameters are of types FT_Face, FT_Size, etc., rather than TT_Face, */ + /* TT_Size, etc., so that the compiler can confirm that the types and */ + /* number of parameters are correct. In all cases the FT_xxx types are */ + /* cast to their TT_xxx counterparts inside the functions since FreeType */ + /* will always use the TT driver to create them. */ + + /*************************************************************************/ /* */ /* Face functions */ /* */ FT_LOCAL( FT_Error ) tt_face_init( FT_Stream stream, - TT_Face face, + FT_Face ttface, /* TT_Face */ FT_Int face_index, FT_Int num_params, FT_Parameter* params ); FT_LOCAL( void ) - tt_face_done( TT_Face face ); + tt_face_done( FT_Face ttface ); /* TT_Face */ /*************************************************************************/ @@ -400,10 +409,10 @@ FT_BEGIN_HEADER /* Size functions */ /* */ FT_LOCAL( FT_Error ) - tt_size_init( TT_Size size ); + tt_size_init( FT_Size ttsize ); /* TT_Size */ FT_LOCAL( void ) - tt_size_done( TT_Size size ); + tt_size_done( FT_Size ttsize ); /* TT_Size */ FT_LOCAL( FT_Error ) tt_size_reset( TT_Size size ); @@ -414,10 +423,10 @@ FT_BEGIN_HEADER /* Driver functions */ /* */ FT_LOCAL( FT_Error ) - tt_driver_init( TT_Driver driver ); + tt_driver_init( FT_Module ttdriver ); /* TT_Driver */ FT_LOCAL( void ) - tt_driver_done( TT_Driver driver ); + tt_driver_done( FT_Module ttdriver ); /* TT_Driver */ FT_END_HEADER