< prev index next >
src/java.desktop/share/native/libfreetype/src/truetype/ttinterp.h
Print this page
*** 1,21 ****
! /***************************************************************************/
! /* */
! /* ttinterp.h */
! /* */
! /* TrueType bytecode interpreter (specification). */
! /* */
! /* Copyright 1996-2018 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 TTINTERP_H_
#define TTINTERP_H_
--- 1,21 ----
! /****************************************************************************
! *
! * ttinterp.h
! *
! * TrueType bytecode interpreter (specification).
! *
! * Copyright (C) 1996-2019 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 TTINTERP_H_
#define TTINTERP_H_
*** 24,54 ****
FT_BEGIN_HEADER
! /*************************************************************************/
! /* */
! /* Rounding mode constants. */
! /* */
#define TT_Round_Off 5
#define TT_Round_To_Half_Grid 0
#define TT_Round_To_Grid 1
#define TT_Round_To_Double_Grid 2
#define TT_Round_Up_To_Grid 4
#define TT_Round_Down_To_Grid 3
#define TT_Round_Super 6
#define TT_Round_Super_45 7
! /*************************************************************************/
! /* */
! /* Function types used by the interpreter, depending on various modes */
! /* (e.g. the rounding mode, whether to render a vertical or horizontal */
! /* line etc). */
! /* */
! /*************************************************************************/
/* Rounding function */
typedef FT_F26Dot6
(*TT_Round_Func)( TT_ExecContext exc,
FT_F26Dot6 distance,
--- 24,54 ----
FT_BEGIN_HEADER
! /**************************************************************************
! *
! * Rounding mode constants.
! */
#define TT_Round_Off 5
#define TT_Round_To_Half_Grid 0
#define TT_Round_To_Grid 1
#define TT_Round_To_Double_Grid 2
#define TT_Round_Up_To_Grid 4
#define TT_Round_Down_To_Grid 3
#define TT_Round_Super 6
#define TT_Round_Super_45 7
! /**************************************************************************
! *
! * Function types used by the interpreter, depending on various modes
! * (e.g. the rounding mode, whether to render a vertical or horizontal
! * line etc).
! *
! */
/* Rounding function */
typedef FT_F26Dot6
(*TT_Round_Func)( TT_ExecContext exc,
FT_F26Dot6 distance,
*** 82,95 ****
(*TT_Set_CVT_Func)( TT_ExecContext exc,
FT_ULong idx,
FT_F26Dot6 value );
! /*************************************************************************/
! /* */
! /* This structure defines a call record, used to manage function calls. */
! /* */
typedef struct TT_CallRec_
{
FT_Int Caller_Range;
FT_Long Caller_IP;
FT_Long Cur_Count;
--- 82,95 ----
(*TT_Set_CVT_Func)( TT_ExecContext exc,
FT_ULong idx,
FT_F26Dot6 value );
! /**************************************************************************
! *
! * This structure defines a call record, used to manage function calls.
! */
typedef struct TT_CallRec_
{
FT_Int Caller_Range;
FT_Long Caller_IP;
FT_Long Cur_Count;
*** 99,113 ****
} TT_CallRec, *TT_CallStack;
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
! /*************************************************************************/
! /* */
! /* These structures define rules used to tweak subpixel hinting for */
! /* various fonts. "", 0, "", NULL value indicates to match any value. */
! /* */
#define SPH_MAX_NAME_SIZE 32
#define SPH_MAX_CLASS_MEMBERS 100
typedef struct SPH_TweakRule_
--- 99,113 ----
} TT_CallRec, *TT_CallStack;
#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
! /**************************************************************************
! *
! * These structures define rules used to tweak subpixel hinting for
! * various fonts. "", 0, "", NULL value indicates to match any value.
! */
#define SPH_MAX_NAME_SIZE 32
#define SPH_MAX_CLASS_MEMBERS 100
typedef struct SPH_TweakRule_
*** 139,153 ****
} SPH_Font_Class;
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
! /*************************************************************************/
! /* */
! /* The main structure for the interpreter which collects all necessary */
! /* variables and states. */
! /* */
typedef struct TT_ExecContextRec_
{
TT_Face face;
TT_Size size;
FT_Memory memory;
--- 139,153 ----
} SPH_Font_Class;
#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
! /**************************************************************************
! *
! * The main structure for the interpreter which collects all necessary
! * variables and states.
! */
typedef struct TT_ExecContextRec_
{
TT_Face face;
TT_Size size;
FT_Memory memory;
*** 350,360 ****
*
* [2] Proposed by Microsoft's Greg Hitchcock in
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
*
* [3] Beat Stamm describes it in more detail:
! * http://www.beatstamm.com/typography/RTRCh4.htm#Sec12
*
* [4] The list of `native ClearType' fonts is small at the time of this
* writing; I found the following on a Windows 10 Update 1511
* installation: Constantia, Corbel, Sitka, Malgun Gothic, Microsoft
* JhengHei (Bold and UI Bold), Microsoft YaHei (Bold and UI Bold),
--- 350,360 ----
*
* [2] Proposed by Microsoft's Greg Hitchcock in
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
*
* [3] Beat Stamm describes it in more detail:
! * http://rastertragedy.com/RTRCh4.htm#Sec12.
*
* [4] The list of `native ClearType' fonts is small at the time of this
* writing; I found the following on a Windows 10 Update 1511
* installation: Constantia, Corbel, Sitka, Malgun Gothic, Microsoft
* JhengHei (Bold and UI Bold), Microsoft YaHei (Bold and UI Bold),
*** 462,491 ****
void* _pbuff,
FT_ULong new_max );
#endif /* TT_USE_BYTECODE_INTERPRETER */
! /*************************************************************************/
! /* */
! /* <Function> */
! /* TT_New_Context */
! /* */
! /* <Description> */
! /* Queries the face context for a given font. Note that there is */
! /* now a _single_ execution context in the TrueType driver which is */
! /* shared among faces. */
! /* */
! /* <Input> */
! /* face :: A handle to the source face object. */
! /* */
! /* <Return> */
! /* A handle to the execution context. Initialized for `face'. */
! /* */
! /* <Note> */
! /* Only the glyph loader and debugger should call this function. */
! /* (And right now only the glyph loader uses it.) */
! /* */
FT_EXPORT( TT_ExecContext )
TT_New_Context( TT_Driver driver );
#ifdef TT_USE_BYTECODE_INTERPRETER
--- 462,492 ----
void* _pbuff,
FT_ULong new_max );
#endif /* TT_USE_BYTECODE_INTERPRETER */
! /**************************************************************************
! *
! * @Function:
! * TT_New_Context
! *
! * @Description:
! * Queries the face context for a given font. Note that there is
! * now a _single_ execution context in the TrueType driver which is
! * shared among faces.
! *
! * @Input:
! * face ::
! * A handle to the source face object.
! *
! * @Return:
! * A handle to the execution context. Initialized for `face'.
! *
! * @Note:
! * Only the glyph loader and debugger should call this function.
! * (And right now only the glyph loader uses it.)
! */
FT_EXPORT( TT_ExecContext )
TT_New_Context( TT_Driver driver );
#ifdef TT_USE_BYTECODE_INTERPRETER
*** 504,534 ****
FT_LOCAL( FT_Error )
TT_Run_Context( TT_ExecContext exec );
#endif /* TT_USE_BYTECODE_INTERPRETER */
! /*************************************************************************/
! /* */
! /* <Function> */
! /* TT_RunIns */
! /* */
! /* <Description> */
! /* Executes one or more instruction in the execution context. This */
! /* is the main function of the TrueType opcode interpreter. */
! /* */
! /* <Input> */
! /* exec :: A handle to the target execution context. */
! /* */
! /* <Return> */
! /* FreeType error code. 0 means success. */
! /* */
! /* <Note> */
! /* Only the object manager and debugger should call this function. */
! /* */
! /* This function is publicly exported because it is directly */
! /* invoked by the TrueType debugger. */
! /* */
FT_EXPORT( FT_Error )
TT_RunIns( TT_ExecContext exec );
FT_END_HEADER
--- 505,536 ----
FT_LOCAL( FT_Error )
TT_Run_Context( TT_ExecContext exec );
#endif /* TT_USE_BYTECODE_INTERPRETER */
! /**************************************************************************
! *
! * @Function:
! * TT_RunIns
! *
! * @Description:
! * Executes one or more instruction in the execution context. This
! * is the main function of the TrueType opcode interpreter.
! *
! * @Input:
! * exec ::
! * A handle to the target execution context.
! *
! * @Return:
! * FreeType error code. 0 means success.
! *
! * @Note:
! * Only the object manager and debugger should call this function.
! *
! * This function is publicly exported because it is directly
! * invoked by the TrueType debugger.
! */
FT_EXPORT( FT_Error )
TT_RunIns( TT_ExecContext exec );
FT_END_HEADER
< prev index next >