diff options
Diffstat (limited to 'Build/source/libs/libttf/ttobjs.h')
-rw-r--r-- | Build/source/libs/libttf/ttobjs.h | 873 |
1 files changed, 0 insertions, 873 deletions
diff --git a/Build/source/libs/libttf/ttobjs.h b/Build/source/libs/libttf/ttobjs.h deleted file mode 100644 index a5ba1ff86f7..00000000000 --- a/Build/source/libs/libttf/ttobjs.h +++ /dev/null @@ -1,873 +0,0 @@ -/******************************************************************* - * - * ttobjs.h 1.0 - * - * Objects definition unit. - * - * Copyright 1996-1999 by - * David Turner, Robert Wilhelm, and Werner Lemberg. - * - * This file is part of the FreeType project, and may only be used - * modified and distributed under the terms of the FreeType project - * license, LICENSE.TXT. By continuing to use, modify, or distribute - * this file you indicate that you have read the license and - * understand and accept it fully. - * - ******************************************************************/ - -#ifndef TTOBJS_H -#define TTOBJS_H - -#include "ttconfig.h" -#include "ttengine.h" -#include "ttmutex.h" -#include "ttcache.h" -#include "tttables.h" -#include "ttcmap.h" - -#ifdef __cplusplus - extern "C" { -#endif - -/* */ -/* This file contains the definitions and methods of the four */ -/* kinds of objects managed by the FreeType engine. These are: */ -/* */ -/* */ -/* Face objects: */ -/* */ -/* There is always one face object per opened TrueType font */ -/* file, and only one. The face object contains data that is */ -/* independent of current transform/scaling/rotation and */ -/* pointsize, or glyph index. This data is made of several */ -/* critical tables that are loaded on face object creation. */ -/* */ -/* A face object tracks all active and recycled objects of */ -/* the instance and execution context classes. Destroying a face */ -/* object will automatically destroy all associated instances. */ -/* */ -/* */ -/* Instance objects: */ -/* */ -/* An instance object always relates to a given face object, */ -/* known as its 'parent' or 'owner', and contains only the */ -/* data that is specific to one given pointsize/transform of */ -/* the face. You can only create an instance from a face object. */ -/* */ -/* An instance's current transform/pointsize can be changed */ -/* at any time using a single high-level API call, */ -/* TT_Reset_Instance(). */ -/* */ -/* Execution Context objects: */ -/* */ -/* An execution context (or context in short) relates to a face. */ -/* It contains the data and tables that are necessary to load */ -/* and hint (i.e. execute the glyph instructions of) one glyph. */ -/* A context is a transient object that is queried/created on */ -/* the fly: client applications never deal with them directly. */ -/* */ -/* */ -/* Glyph objects: */ -/* */ -/* A glyph object contains only the minimal glyph information */ -/* needed to render one glyph correctly. This means that a glyph */ -/* object really contains tables that are sized to hold the */ -/* contents of _any_ glyph of a given face. A client application */ -/* can usually create one glyph object for a given face, then use */ -/* it for all subsequent loads. */ -/* */ -/* Here is an example of a client application : */ -/* (NOTE: No error checking performed here!) */ -/* */ -/* */ -/* TT_Face face; -- face handle */ -/* TT_Instance ins1, ins2; -- two instance handles */ -/* TT_Glyph glyph; -- glyph handle */ -/* */ -/* TT_Init_FreeType(); */ -/* */ -/* -- Initialize the engine. This must be done prior to _any_ */ -/* operation. */ -/* */ -/* TT_Open_Face( "/some/face/name.ttf", &face ); */ -/* */ -/* -- create the face object. This call opens the font file */ -/* */ -/* TT_New_Instance( face, &ins1 ); */ -/* TT_New_Instance( face, &ins2 ); */ -/* */ -/* TT_Set_Instance_PointSize( ins1, 8 ); */ -/* TT_Set_Instance_PointSize( ins2, 12 ); */ -/* */ -/* -- create two distinct instances of the same face */ -/* -- ins1 is pointsize 8 at resolution 96 dpi */ -/* -- ins2 is pointsize 12 at resolution 96 dpi */ -/* */ -/* TT_New_Glyph( face, &glyph ); */ -/* */ -/* -- create a new glyph object which will receive the contents */ -/* of any glyph of 'face' */ -/* */ -/* TT_Load_Glyph( ins1, glyph, 64, DEFAULT_GLYPH_LOAD ); */ -/* */ -/* -- load glyph indexed 64 at pointsize 8 in the 'glyph' object */ -/* -- NOTE: This call will fail if the instance and the glyph */ -/* do not relate to the same face object. */ -/* */ -/* TT_Get_Outline( glyph, &outline ); */ -/* */ -/* -- extract the glyph outline from the object and copies it */ -/* to the 'outline' record */ -/* */ -/* TT_Get_Metrics( glyph, &metrics ); */ -/* */ -/* -- extract the glyph metrics and put them into the 'metrics' */ -/* record */ -/* */ -/* TT_Load_Glyph( ins2, glyph, 64, DEFAULT_GLYPH_LOAD ); */ -/* */ -/* -- load the same glyph at pointsize 12 in the 'glyph' object */ -/* */ -/* */ -/* TT_Close_Face( &face ); */ -/* */ -/* -- destroy the face object. This will destroy 'ins1' and */ -/* 'ins2'. However, the glyph object will still be available */ -/* */ -/* TT_Done_FreeType(); */ -/* */ -/* -- Finalize the engine. This will also destroy all pending */ -/* glyph objects (here 'glyph'). */ - - struct TFace_; - struct TInstance_; - struct TExecution_Context_; - struct TGlyph_; - - typedef struct TFace_ TFace; - typedef TFace* PFace; - - typedef struct TInstance_ TInstance; - typedef TInstance* PInstance; - - typedef struct TExecution_Context_ TExecution_Context; - typedef TExecution_Context* PExecution_Context; - - typedef struct TGlyph_ TGlyph; - typedef TGlyph* PGlyph; - - - /*************************************************************/ - /* */ - /* ADDITIONAL SUBTABLES */ - /* */ - /* These tables are not precisely defined by the specs */ - /* but their structures is implied by the TrueType font */ - /* file layout. */ - /* */ - /*************************************************************/ - - /* Graphics State */ - /* */ - /* The Graphics State (GS) is managed by the */ - /* instruction field, but does not come from */ - /* the font file. Thus, we can use 'int's */ - /* where needed. */ - - struct TGraphicsState_ - { - UShort rp0; - UShort rp1; - UShort rp2; - - TT_UnitVector dualVector; - TT_UnitVector projVector; - TT_UnitVector freeVector; - - Long loop; - TT_F26Dot6 minimum_distance; - Int round_state; - - Bool auto_flip; - TT_F26Dot6 control_value_cutin; - TT_F26Dot6 single_width_cutin; - TT_F26Dot6 single_width_value; - Short delta_base; - Short delta_shift; - - Byte instruct_control; - Bool scan_control; - Int scan_type; - - UShort gep0; - UShort gep1; - UShort gep2; - }; - - typedef struct TGraphicsState_ TGraphicsState; - - - LOCAL_DEF - const TGraphicsState Default_GraphicsState; - - - /*************************************************************/ - /* */ - /* EXECUTION SUBTABLES */ - /* */ - /* These sub-tables relate to instruction execution. */ - /* */ - /*************************************************************/ - -#define MAX_CODE_RANGES 3 - -/* There can only be 3 active code ranges at once: */ -/* - the Font Program */ -/* - the CVT Program */ -/* - a glyph's instructions set */ - -#define TT_CodeRange_Font 1 -#define TT_CodeRange_Cvt 2 -#define TT_CodeRange_Glyph 3 - - - struct TCodeRange_ - { - PByte Base; - ULong Size; - }; - - typedef struct TCodeRange_ TCodeRange; - typedef TCodeRange* PCodeRange; - - - /* Defintion of a code range */ - /* */ - /* Code ranges can be resident to a glyph (i.e. the Font Program) */ - /* while some others are volatile (Glyph instructions). */ - /* Tracking the state and presence of code ranges allows function */ - /* and instruction definitions within a code range to be forgotten */ - /* when the range is discarded. */ - - typedef TCodeRange TCodeRangeTable[MAX_CODE_RANGES]; - - /* defines a function/instruction definition record */ - - struct TDefRecord_ - { - Int Range; /* in which code range is it located ? */ - ULong Start; /* where does it start ? */ - Int Opc; /* function #, or instruction code */ - Bool Active; /* is it active ? */ - }; - - typedef struct TDefRecord_ TDefRecord; - typedef TDefRecord* PDefRecord; - typedef TDefRecord* PDefArray; - - /* defines a call record, used to manage function calls. */ - - struct TCallRecord_ - { - Int Caller_Range; - ULong Caller_IP; - Long Cur_Count; - ULong Cur_Restart; - }; - - typedef struct TCallRecord_ TCallRecord; - typedef TCallRecord* PCallRecord; - typedef TCallRecord* PCallStack; /* defines a simple call stack */ - - - /* This type defining a set of glyph points will be used to represent */ - /* each zone (regular and twilight) during instructions decoding. */ - struct TGlyph_Zone_ - { - UShort n_points; /* number of points in zone */ - Short n_contours; /* number of contours */ - - TT_Vector* org; /* original points coordinates */ - TT_Vector* cur; /* current points coordinates */ - - Byte* touch; /* current touch flags */ - UShort* contours; /* contour end points */ - }; - - typedef struct TGlyph_Zone_ TGlyph_Zone; - typedef TGlyph_Zone* PGlyph_Zone; - - - -#ifndef TT_STATIC_INTEPRETER /* indirect implementation */ - -#define EXEC_OPS PExecution_Context exc, -#define EXEC_OP PExecution_Context exc -#define EXEC_ARGS exc, -#define EXEC_ARG exc - -#else /* static implementation */ - -#define EXEC_OPS /* void */ -#define EXEC_OP /* void */ -#define EXEC_ARGS /* void */ -#define EXEC_ARG /* void */ - -#endif - - /* Rounding function, as used by the interpreter */ - typedef TT_F26Dot6 (*TRound_Function)( EXEC_OPS TT_F26Dot6 distance, - TT_F26Dot6 compensation ); - - /* Point displacement along the freedom vector routine, as */ - /* used by the interpreter */ - typedef void (*TMove_Function)( EXEC_OPS PGlyph_Zone zone, - UShort point, - TT_F26Dot6 distance ); - - /* Distance projection along one of the proj. vectors, as used */ - /* by the interpreter */ - typedef TT_F26Dot6 (*TProject_Function)( EXEC_OPS TT_Vector* v1, - TT_Vector* v2 ); - - /* reading a cvt value. Take care of non-square pixels when needed */ - typedef TT_F26Dot6 (*TGet_CVT_Function)( EXEC_OPS ULong index ); - - /* setting or moving a cvt value. Take care of non-square pixels */ - /* when needed */ - typedef void (*TSet_CVT_Function)( EXEC_OPS ULong index, - TT_F26Dot6 value ); - - /* subglyph transformation record */ - struct TTransform_ - { - TT_Fixed xx, xy; /* transformation */ - TT_Fixed yx, yy; /* matrix */ - TT_F26Dot6 ox, oy; /* offsets */ - }; - - typedef struct TTransform_ TTransform; - typedef TTransform* PTransform; - - /* subglyph loading record. Used to load composite components */ - struct TSubglyph_Record_ - { - Long index; /* subglyph index; initialized with -1 */ - Bool is_scaled; /* is the subglyph scaled? */ - Bool is_hinted; /* should it be hinted? */ - Bool preserve_pps; /* preserve phantom points? */ - - Long file_offset; - - TT_Big_Glyph_Metrics metrics; - - TGlyph_Zone zone; - - Long arg1; /* first argument */ - Long arg2; /* second argument */ - - UShort element_flag; /* current load element flag */ - - TTransform transform; /* transform */ - - TT_Vector pp1, pp2; /* phantom points */ - - }; - - typedef struct TSubglyph_Record_ TSubglyph_Record; - typedef TSubglyph_Record* PSubglyph_Record; - typedef TSubglyph_Record* PSubglyph_Stack; - - /* A note regarding non-squared pixels: */ - /* */ - /* (This text will probably go into some docs at some time, for */ - /* now, it is kept there to explain some definitions in the */ - /* TIns_Metrics record). */ - /* */ - /* The CVT is a one-dimensional array containing values that */ - /* control certain important characteristics in a font, like */ - /* the height of all capitals, all lowercase letter, default */ - /* spacing or stem width/height. */ - /* */ - /* These values are found in FUnits in the font file, and must be */ - /* scaled to pixel coordinates before being used by the CVT and */ - /* glyph programs. Unfortunately, when using distinct x and y */ - /* resolutions (or distinct x and y pointsizes), there are two */ - /* possible scalings. */ - /* */ - /* A first try was to implement a 'lazy' scheme where all values */ - /* were scaled when first used. However, while some values are always */ - /* used in the same direction, and some other are used in many */ - /* different circumstances and orientations. */ - /* */ - /* I have found a simpler way to do the same, and it even seems to */ - /* work in most of the cases: */ - /* */ - /* - all CVT values are scaled to the maximum ppem size */ - /* */ - /* - when performing a read or write in the CVT, a ratio factor */ - /* is used to perform adequate scaling. Example: */ - /* */ - /* x_ppem = 14 */ - /* y_ppem = 10 */ - /* */ - /* we choose ppem = x_ppem = 14 as the CVT scaling size. All cvt */ - /* entries are scaled to it. */ - /* */ - /* x_ratio = 1.0 */ - /* y_ratio = y_ppem/ppem (< 1.0) */ - /* */ - /* we compute the current ratio like: */ - /* */ - /* - if projVector is horizontal, */ - /* ratio = x_ratio = 1.0 */ - /* - if projVector is vertical, */ - /* ratop = y_ratio */ - /* - else, */ - /* ratio = sqrt((proj.x*x_ratio)^2 + (proj.y*y_ratio)^2) */ - /* */ - /* reading a cvt value returns ratio * cvt[index] */ - /* writing a cvt value in pixels cvt[index] / ratio */ - /* */ - /* the current ppem is simply ratio * ppem */ - /* */ - - /* metrics used by the instance and execution context objects */ - struct TIns_Metrics_ - { - TT_F26Dot6 pointSize; /* point size. 1 point = 1/72 inch. */ - - UShort x_resolution; /* device horizontal resolution in dpi. */ - UShort y_resolution; /* device vertical resolution in dpi. */ - - UShort x_ppem; /* horizontal pixels per EM */ - UShort y_ppem; /* vertical pixels per EM */ - - Long x_scale1; - Long x_scale2; /* used to scale FUnits to fractional pixels */ - - Long y_scale1; - Long y_scale2; /* used to scale FUnits to fractional pixels */ - - /* for non-square pixels */ - Long x_ratio; - Long y_ratio; - - UShort ppem; /* maximum ppem size */ - Long ratio; /* current ratio */ - Long scale1; - Long scale2; /* scale for ppem */ - - TT_F26Dot6 compensations[4]; /* device-specific compensations */ - - Bool rotated; /* `is the glyph rotated?'-flag */ - Bool stretched; /* `is the glyph stretched?'-flag */ - }; - - typedef struct TIns_Metrics_ TIns_Metrics; - typedef TIns_Metrics* PIns_Metrics; - - - - /***********************************************************************/ - /* */ - /* FreeType Face Type */ - /* */ - /***********************************************************************/ - - struct TFace_ - { - /* parent engine instance for the face object */ - PEngine_Instance engine; - - /* i/o stream */ - TT_Stream stream; - - /* used only by the threaded builds of the library */ - TMutex lock; - - /* TrueType collection header, if any was found */ - TTTCHeader ttcHeader; - - /* maximum profile table, as found in the TrueType file */ - TMaxProfile maxProfile; - - /* Note: */ - /* it seems that some maximum values cannot be */ - /* taken directly from this table, but rather by */ - /* combining some of its fields; e.g. the max. */ - /* number of points seems to be given by */ - /* MAX( maxPoints, maxCompositePoints ) */ - /* */ - /* For this reason, we define later our own */ - /* max values that are used to load and allocate */ - /* further tables. */ - - TT_Header fontHeader; /* the font header, as */ - /* found in the TTF file */ - TT_Horizontal_Header horizontalHeader; /* the horizontal header */ - - Bool verticalInfo; /* True when vertical table */ - TT_Vertical_Header verticalHeader; /* is present in the font */ - - TT_OS2 os2; /* 'OS/2' table */ - - TT_Postscript postscript; /* 'Post' table */ - - TT_Hdmx hdmx; /* 'Hdmx' table */ - - TName_Table nameTable; /* name table */ - - TGasp gasp; /* the 'gasp' table */ - - /* The directory of TrueType tables for this typeface */ - UShort numTables; - PTableDirEntry dirTables; - - /* The directory of character mappings table for */ - /* this typeface */ - UShort numCMaps; - PCMapTable cMaps; - - /* The glyph locations table */ - ULong numLocations; /* UShort is not enough */ -#ifndef TT_HUGE_PTR - PStorage glyphLocations; -#else - Storage TT_HUGE_PTR * glyphLocations; -#endif - - /* NOTE : The "hmtx" is now part of the horizontal header */ - - /* the font program, if any */ - ULong fontPgmSize; - PByte fontProgram; - - /* the cvt program, if any */ - ULong cvtPgmSize; - PByte cvtProgram; - - /* the original, unscaled, control value table */ - ULong cvtSize; - PShort cvt; - - /* The following values _must_ be set by the */ - /* maximum profile loader */ - - UShort numGlyphs; /* the face's total number of glyphs */ - UShort maxPoints; /* max glyph points number, simple and composite */ - UShort maxContours; /* max glyph contours numb, simple and composite */ - UShort maxComponents; /* max components in a composite glyph */ - - /* the following are object caches to track active */ - /* and recycled instances and execution contexts */ - /* objects. See 'ttcache.h' */ - - TCache instances; /* current instances for this face */ - TCache glyphs; /* current glyph containers for this face */ - - - /* A typeless pointer to the face object extensions defined */ - /* in the 'ttextend.*' files. */ - void* extension; - Int n_extensions; /* number of extensions */ - - /* Use extensions to provide additional capabilities to the */ - /* engine. Read the developer's guide in the documentation */ - /* directory to know how to do that. */ - - /* a generic pointer for client use - see TT_Set/Get_Face_Pointer */ - void* generic; - }; - - - - /***********************************************************************/ - /* */ - /* FreeType Instance Type */ - /* */ - /***********************************************************************/ - - struct TInstance_ - { - PFace owner; /* face object */ - - Bool valid; - - TIns_Metrics metrics; - - UShort numFDefs; /* number of function definitions */ - UShort maxFDefs; - PDefArray FDefs; /* table of FDefs entries */ - - UShort numIDefs; /* number of instruction definitions */ - UShort maxIDefs; - PDefArray IDefs; /* table of IDefs entries */ - - Int maxFunc; /* maximum function definition id */ - Int maxIns; /* maximum instruction definition id */ - - TCodeRangeTable codeRangeTable; - - TGraphicsState GS; - TGraphicsState default_GS; - - ULong cvtSize; /* the scaled control value table */ - PLong cvt; - - ULong storeSize; /* The storage area is now part of the */ - PLong storage; /* instance */ - - TGlyph_Zone twilight; /* The instance's twilight zone */ - - /* debugging variables */ - - /* When using the debugger, we must keep the */ - /* execution context tied to the instance */ - /* object rather than asking it on demand */ - - Bool debug; - PExecution_Context context; - - /* a generic pointer for client use - see TT_Set/Get_Instance_Pointer */ - void* generic; - }; - - - /***********************************************************************/ - /* */ - /* FreeType Execution Context Type */ - /* */ - /***********************************************************************/ - - struct TExecution_Context_ - { - PFace face; - PInstance instance; - - /* instructions state */ - - TT_Error error; /* last execution error */ - - Long top; /* top of exec. stack */ - - ULong stackSize; /* size of exec. stack */ - PStorage stack; /* current exec. stack */ - - Long args; - ULong new_top; /* new top after exec. */ - - TGlyph_Zone zp0, /* zone records */ - zp1, - zp2, - pts, - twilight; - - TIns_Metrics metrics; /* instance metrics */ - - TGraphicsState GS; /* current graphics state */ - - Int curRange; /* current code range number */ - PByte code; /* current code range */ - ULong IP; /* current instruction pointer */ - ULong codeSize; /* size of current range */ - - Byte opcode; /* current opcode */ - Int length; /* length of current opcode */ - - Bool step_ins; /* true if the interpreter must */ - /* increment IP after ins. exec */ - ULong cvtSize; - PLong cvt; - - ULong glyphSize; /* glyph instructions buffer size */ - PByte glyphIns; /* glyph instructions buffer */ - - UShort numFDefs; /* number of function defs */ - UShort maxFDefs; /* maximum number of function defs */ - PDefRecord FDefs; /* table of FDefs entries */ - - UShort numIDefs; /* number of instruction defs */ - UShort maxIDefs; /* maximum number of instruction defs */ - PDefRecord IDefs; /* table of IDefs entries */ - - Int maxFunc; - Int maxIns; - - Int callTop, /* top of call stack during execution */ - callSize; /* size of call stack */ - PCallStack callStack; /* call stack */ - - UShort maxPoints; /* capacity of this context's "pts" */ - UShort maxContours; /* record, expressed in points and */ - /* contours.. */ - - TCodeRangeTable codeRangeTable; /* table of valid coderanges */ - /* useful for the debugger */ - - ULong storeSize; /* size of current storage */ - PLong storage; /* storage area */ - - TT_F26Dot6 period; /* values used for the */ - TT_F26Dot6 phase; /* 'SuperRounding' */ - TT_F26Dot6 threshold; - - /* this seems to be unused */ -#if 0 - Int cur_ppem; /* ppem along the current proj vector */ -#endif - Long scale1; /* scaling values along the current */ - Long scale2; /* projection vector too.. */ - Bool cached_metrics; /* the ppem is computed lazily. used */ - /* to trigger computation when needed */ - - Bool instruction_trap; /* If True, the interpreter will */ - /* exit after each instruction */ - - TGraphicsState default_GS; /* graphics state resulting from */ - /* the prep program */ - Bool is_composite; /* ture if the glyph is composite */ - - Bool pedantic_hinting; /* if true, read and write array */ - /* bounds faults halt the hinting */ - - /* latest interpreter additions */ - - Long F_dot_P; /* dot product of freedom and projection */ - /* vectors */ - TRound_Function func_round; /* current rounding function */ - - TProject_Function func_project, /* current projection function */ - func_dualproj, /* current dual proj. function */ - func_freeProj; /* current freedom proj. func */ - - TMove_Function func_move; /* current point move function */ - - TGet_CVT_Function func_read_cvt; /* read a cvt entry */ - TSet_CVT_Function func_write_cvt; /* write a cvt entry (in pixels) */ - TSet_CVT_Function func_move_cvt; /* incr a cvt entry (in pixels) */ - - ULong loadSize; - PSubglyph_Stack loadStack; /* loading subglyph stack */ - - }; - - - /***********************************************************************/ - /* */ - /* FreeType Glyph Object Type */ - /* */ - /***********************************************************************/ - - struct TGlyph_ - { - PFace face; - TT_Big_Glyph_Metrics metrics; - TT_Outline outline; - }; - - - /* The following type is used to load a font from a collection. */ - /* See Face_Create in ttobjs.c */ - - struct TFont_Input_ - { - TT_Stream stream; /* input stream */ - ULong fontIndex; /* index of font in collection */ - PEngine_Instance engine; /* parent engine instance */ - - }; - - typedef struct TFont_Input_ TFont_Input; - - - /********************************************************************/ - /* */ - /* Code Range Functions */ - /* */ - /********************************************************************/ - - /* Goto a specified coderange */ - LOCAL_DEF - TT_Error Goto_CodeRange( PExecution_Context exec, - Int range, - ULong IP ); - -#if 0 - /* Return a pointer to a given coderange record. */ - /* Used only by the debugger. */ - LOCAL_DEF - PCodeRange Get_CodeRange( PExecution_Context exec, - Int range ); -#endif - - /* Set a given code range properties */ - LOCAL_DEF - TT_Error Set_CodeRange( PExecution_Context exec, - Int range, - void* base, - ULong length ); - - /* Clear a given coderange */ - LOCAL_DEF - TT_Error Clear_CodeRange( PExecution_Context exec, Int range ); - - - LOCAL_DEF - PExecution_Context New_Context( PFace face ); - - LOCAL_DEF - TT_Error Done_Context( PExecution_Context exec ); - - - LOCAL_DEF - TT_Error Context_Load( PExecution_Context exec, - PFace face, - PInstance ins ); - - LOCAL_DEF - TT_Error Context_Save( PExecution_Context exec, - PInstance ins ); - - LOCAL_DEF - TT_Error Context_Run( PExecution_Context exec, - Bool debug ); - - LOCAL_DEF - TT_Error Instance_Init( PInstance ins ); - - LOCAL_DEF - TT_Error Instance_Reset( PInstance ins ); - - - /********************************************************************/ - /* */ - /* Handy scaling functions */ - /* */ - /********************************************************************/ - - LOCAL_DEF TT_Pos Scale_X( PIns_Metrics metrics, TT_Pos x ); - LOCAL_DEF TT_Pos Scale_Y( PIns_Metrics metrics, TT_Pos y ); - - /********************************************************************/ - /* */ - /* Component Initializer/Finalizer */ - /* */ - /* Called from 'freetype.c' */ - /* The component must create and register the face, instance and */ - /* execution context cache classes before any object can be */ - /* managed. */ - /* */ - /********************************************************************/ - - LOCAL_DEF TT_Error TTObjs_Init( PEngine_Instance engine ); - LOCAL_DEF TT_Error TTObjs_Done( PEngine_Instance engine ); - -#ifdef __cplusplus - } -#endif - -#endif /* TTOBJS_H */ - - -/* END */ |