⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 t1gload.h

📁 Qt/Embedded是一个多平台的C++图形用户界面应用程序框架
💻 H
📖 第 1 页 / 共 2 页
字号:
/******************************************************************* * *  t1gload.h                                                   1.0 * *    Type1 Glyph Loader. * *  Copyright 1996-1998 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. * * *  The Type 1 glyph loader uses three distinct objects to build *  scaled and hinted outlines from a charstrings program. These are : * *  - a glyph builder, T1_Builder, used to store the built outline * *  - a glyph hinter, T1_Hinter, used to record and apply the stem *    hints * *  - a charstrings interpreter, T1_Decoder, used to parse the *    Type 1 charstrings stream, manage a stack and call the builder *    and/or hinter depending on the opcodes. * *  Ideally, a Type 2 glyph loader would only need to have its own *  T2_Decoder object (assuming the hinter is able to manage all *  kinds of hints). * ******************************************************************/#ifndef T1GLOAD_H#define T1GLOAD_H#include <t1objs.h>#ifdef __cplusplus  extern "C" {#endif/*************************************************************************//*                                                                       *//* <Structure> T1_Builder_Funcs                                          *//*                                                                       *//* <Description>                                                         *//*     a structure used to store the address of various functions        *//*     used by a glyph builder to implement the outline's "path          *//*     construction".                                                    *//*                                                                       *//*                                                                       */  typedef struct T1_Builder_  T1_Builder;  typedef T1_Error  (*T1_Builder_EndChar)( T1_Builder*  loader );  typedef T1_Error  (*T1_Builder_Sbw)    ( T1_Builder*  loader,                                           T1_Pos       sbx,                                           T1_Pos       sby,                                           T1_Pos       wx,                                           T1_Pos       wy );  typedef T1_Error  (*T1_Builder_ClosePath)( T1_Builder*  loader );  typedef T1_Error  (*T1_Builder_RLineTo)( T1_Builder*  loader,                                           T1_Pos       dx,                                           T1_Pos       dy );  typedef T1_Error  (*T1_Builder_RMoveTo)( T1_Builder*  loader,                                           T1_Pos       dx,                                           T1_Pos       dy );  typedef T1_Error  (*T1_Builder_RCurveTo)( T1_Builder*  loader,                                            T1_Pos       dx1,                                            T1_Pos       dy1,                                            T1_Pos       dx2,                                            T1_Pos       dy2,                                            T1_Pos       dx3,                                            T1_Pos       dy3 );  typedef struct T1_Builder_Funcs_  {    T1_Builder_EndChar    end_char;    T1_Builder_Sbw        set_bearing_point;    T1_Builder_ClosePath  close_path;    T1_Builder_RLineTo    rline_to;    T1_Builder_RMoveTo    rmove_to;    T1_Builder_RCurveTo   rcurve_to;  } T1_Builder_Funcs;/*************************************************************************//*                                                                       *//* <Structure> T1_Builder                                                *//*                                                                       *//* <Description>                                                         *//*     a structure used during glyph loading to store its outline.       *//*                                                                       *//* <Fields>                                                              *//*    system :: current system object                                    *//*    face   :: current face object                                      *//*    size   :: current size object                                      *//*    glyph  :: current glyph slot                                       *//*                                                                       *//*    current :: current glyph outline                                   *//*    base    :: base glyph outline                                      *//*                                                                       *//*    max_points   :: maximum points in builder outline                  *//*    max_contours :: maximum contours in builder outline                *//*                                                                       *//*    last     :: last point position                                    *//*                                                                       *//*    scale_x  :: horizontal scale ( FUnits to sub-pixels )              *//*    scale_y  :: vertical scale   ( FUnits to sub-pixels )              *//*    pos_x    :: horizontal translation (composite glyphs)              *//*    pos_y    :: vertical translation   (composite glyph)               *//*                                                                       *//*    left_bearing  :: left side bearing point                           *//*    advance       :: horizontal advance vector                         *//*                                                                       *//*    path_begun    :: flag, indicates that a new path has begun         *//*    load_points   :: flag, if not set, no points are loaded            *//*                                                                       *//*    pass     :: pass number for multi-pass hinters                     *//*                                                                       *//*    funcs    :: table of builder functions used to perform             *//*                the outline's path construction                        *//*                                                                       *//*    hint_point :: index of next point to hint..                        *//*                                                                       *//*                                                                       *//*                                                                       *//*                                                                       */  struct T1_Builder_  {    FT_Memory     memory;    T1_Face       face;    T1_Size       size;    T1_GlyphSlot  glyph;    FT_Outline    current;       /* the current glyph outline   */    FT_Outline    base;          /* the composite glyph outline */    T1_Int        max_points;    /* capacity of base outline in points   */    T1_Int        max_contours;  /* capacity of base outline in contours */    T1_Vector     last;    T1_Fixed      scale_x;    T1_Fixed      scale_y;    T1_Pos        pos_x;    T1_Pos        pos_y;    T1_Vector     left_bearing;    T1_Vector     advance;    T1_BBox       bbox;          /* bounding box */    T1_Bool       path_begun;    T1_Bool       load_points;    T1_Int        pass;    T1_Int        hint_point;    /* path construction function interface */    T1_Builder_Funcs  funcs;  };/*************************************************************************//*                                                                       *//* <Structure> T1_Hinter_Funcs                                           *//*                                                                       *//* <Description>                                                         *//*     a structure used to store the address of various functions        *//*     used by a Type 1 hinter to perform outline hinting.               *//*                                                                       */   typedef T1_Error  (*T1_Hinter_ChangeHints)( T1_Builder*  builder );  typedef T1_Error  (*T1_Hinter_DotSection)( T1_Builder*  builder );  typedef T1_Error  (*T1_Hinter_Stem)( T1_Builder*  builder,                                       T1_Pos       pos,                                       T1_Pos       width,                                       T1_Bool      vertical );  typedef T1_Error  (*T1_Hinter_Stem3)( T1_Builder*  builder,                                        T1_Pos       pos0,                                        T1_Pos       width0,                                        T1_Pos       pos1,                                        T1_Pos       width1,                                        T1_Pos       pos2,                                        T1_Pos       width2,                                        T1_Bool      vertical );  typedef struct T1_Hinter_Func_  {    T1_Hinter_ChangeHints     change_hints;    T1_Hinter_DotSection      dot_section;    T1_Hinter_Stem            stem;    T1_Hinter_Stem3           stem3;  } T1_Hinter_Funcs;  typedef enum T1_Operator_  {    op_none = 0,    op_endchar,    op_hsbw,    op_seac,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -