summaryrefslogtreecommitdiff
path: root/Build/source/libs/freetype/freetype-1.5/lib/ttobjs.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/libs/freetype/freetype-1.5/lib/ttobjs.h')
-rw-r--r--Build/source/libs/freetype/freetype-1.5/lib/ttobjs.h881
1 files changed, 0 insertions, 881 deletions
diff --git a/Build/source/libs/freetype/freetype-1.5/lib/ttobjs.h b/Build/source/libs/freetype/freetype-1.5/lib/ttobjs.h
deleted file mode 100644
index 0457609e366..00000000000
--- a/Build/source/libs/freetype/freetype-1.5/lib/ttobjs.h
+++ /dev/null
@@ -1,881 +0,0 @@
-/*******************************************************************
- *
- * ttobjs.h 1.0
- *
- * Objects definition unit.
- *
- * Copyright 1996-2000 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;
-
-
- FT_INTERNAL_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_CONFIG_OPTION_STATIC_INTERPRETER
- /* Normal (indexed) implementation */
-
-#define EXEC_OPS PExecution_Context exc,
-#define EXEC_OP PExecution_Context exc
-#define EXEC_ARGS exc,
-#define EXEC_ARG exc
-
-#else
- /* Static implementation, with one shared execution context. */
-
-#define EXEC_OPS /* [nothing] */
-#define EXEC_OP /* void */
-#define EXEC_ARGS /* [nothing] */
-#define EXEC_ARG /* void */
-
-#endif /* TT_CONFIG_OPTION_STATIC_INTERPRETER */
-
-
- /* 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 */
- FT_INTERNAL_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. */
- FT_INTERNAL_DEF( PCodeRange )
- Get_CodeRange( PExecution_Context exec,
- Int range );
-#endif
-
- /* Set a given code range properties */
- FT_INTERNAL_DEF( TT_Error )
- Set_CodeRange( PExecution_Context exec,
- Int range,
- void* base,
- ULong length );
-
- /* Clear a given coderange */
- FT_INTERNAL_DEF( TT_Error )
- Clear_CodeRange( PExecution_Context exec, Int range );
-
-
- FT_INTERNAL_DEF( PExecution_Context )
- New_Context( PFace face );
-
- FT_INTERNAL_DEF( TT_Error )
- Done_Context( PExecution_Context exec );
-
-
- FT_INTERNAL_DEF( TT_Error )
- Context_Load( PExecution_Context exec,
- PFace face,
- PInstance ins );
-
- FT_INTERNAL_DEF( TT_Error )
- Context_Save( PExecution_Context exec,
- PInstance ins );
-
- FT_INTERNAL_DEF( TT_Error )
- Context_Run( PExecution_Context exec,
- Bool debug );
-
- FT_INTERNAL_DEF( TT_Error )
- Instance_Init( PInstance ins );
-
- FT_INTERNAL_DEF( TT_Error )
- Instance_Reset( PInstance ins );
-
-
- /********************************************************************/
- /* */
- /* Handy scaling functions */
- /* */
- /********************************************************************/
-
- FT_INTERNAL_DEF( TT_Pos )
- Scale_X( PIns_Metrics metrics,
- TT_Pos x );
- FT_INTERNAL_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. */
- /* */
- /********************************************************************/
-
- FT_INTERNAL_DEF( TT_Error )
- TTObjs_Init( PEngine_Instance engine );
- FT_INTERNAL_DEF( TT_Error )
- TTObjs_Done( PEngine_Instance engine );
-
-#ifdef __cplusplus
- }
-#endif
-
-#endif /* TTOBJS_H */
-
-
-/* END */