ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

t1types.h
Go to the documentation of this file.
00001 /***************************************************************************/
00002 /*                                                                         */
00003 /*  t1types.h                                                              */
00004 /*                                                                         */
00005 /*    Basic Type1/Type2 type definitions and interface (specification      */
00006 /*    only).                                                               */
00007 /*                                                                         */
00008 /*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2008, 2009 by             */
00009 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
00010 /*                                                                         */
00011 /*  This file is part of the FreeType project, and may only be used,       */
00012 /*  modified, and distributed under the terms of the FreeType project      */
00013 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
00014 /*  this file you indicate that you have read the license and              */
00015 /*  understand and accept it fully.                                        */
00016 /*                                                                         */
00017 /***************************************************************************/
00018 
00019 
00020 #ifndef __T1TYPES_H__
00021 #define __T1TYPES_H__
00022 
00023 
00024 #include <ft2build.h>
00025 #include FT_TYPE1_TABLES_H
00026 #include FT_INTERNAL_POSTSCRIPT_HINTS_H
00027 #include FT_INTERNAL_SERVICE_H
00028 #include FT_SERVICE_POSTSCRIPT_CMAPS_H
00029 
00030 
00031 FT_BEGIN_HEADER
00032 
00033 
00034   /*************************************************************************/
00035   /*************************************************************************/
00036   /*************************************************************************/
00037   /***                                                                   ***/
00038   /***                                                                   ***/
00039   /***              REQUIRED TYPE1/TYPE2 TABLES DEFINITIONS              ***/
00040   /***                                                                   ***/
00041   /***                                                                   ***/
00042   /*************************************************************************/
00043   /*************************************************************************/
00044   /*************************************************************************/
00045 
00046 
00047   /*************************************************************************/
00048   /*                                                                       */
00049   /* <Struct>                                                              */
00050   /*    T1_EncodingRec                                                     */
00051   /*                                                                       */
00052   /* <Description>                                                         */
00053   /*    A structure modeling a custom encoding.                            */
00054   /*                                                                       */
00055   /* <Fields>                                                              */
00056   /*    num_chars  :: The number of character codes in the encoding.       */
00057   /*                  Usually 256.                                         */
00058   /*                                                                       */
00059   /*    code_first :: The lowest valid character code in the encoding.     */
00060   /*                                                                       */
00061   /*    code_last  :: The highest valid character code in the encoding     */
00062   /*                  + 1. When equal to code_first there are no valid     */
00063   /*                  character codes.                                     */
00064   /*                                                                       */
00065   /*    char_index :: An array of corresponding glyph indices.             */
00066   /*                                                                       */
00067   /*    char_name  :: An array of corresponding glyph names.               */
00068   /*                                                                       */
00069   typedef struct  T1_EncodingRecRec_
00070   {
00071     FT_Int       num_chars;
00072     FT_Int       code_first;
00073     FT_Int       code_last;
00074 
00075     FT_UShort*   char_index;
00076     FT_String**  char_name;
00077 
00078   } T1_EncodingRec, *T1_Encoding;
00079 
00080 
00081   typedef enum  T1_EncodingType_
00082   {
00083     T1_ENCODING_TYPE_NONE = 0,
00084     T1_ENCODING_TYPE_ARRAY,
00085     T1_ENCODING_TYPE_STANDARD,
00086     T1_ENCODING_TYPE_ISOLATIN1,
00087     T1_ENCODING_TYPE_EXPERT
00088 
00089   } T1_EncodingType;
00090 
00091 
00092   /* used to hold extra data of PS_FontInfoRec that
00093    * cannot be stored in the publicly defined structure.
00094    *
00095    * Note these can't be blended with multiple-masters.
00096    */
00097   typedef struct  PS_FontExtraRec_
00098   {
00099     FT_UShort  fs_type;
00100 
00101   } PS_FontExtraRec;
00102 
00103 
00104   typedef struct  T1_FontRec_
00105   {
00106     PS_FontInfoRec   font_info;         /* font info dictionary   */
00107     PS_FontExtraRec  font_extra;        /* font info extra fields */
00108     PS_PrivateRec    private_dict;      /* private dictionary     */
00109     FT_String*       font_name;         /* top-level dictionary   */
00110 
00111     T1_EncodingType  encoding_type;
00112     T1_EncodingRec   encoding;
00113 
00114     FT_Byte*         subrs_block;
00115     FT_Byte*         charstrings_block;
00116     FT_Byte*         glyph_names_block;
00117 
00118     FT_Int           num_subrs;
00119     FT_Byte**        subrs;
00120     FT_PtrDist*      subrs_len;
00121 
00122     FT_Int           num_glyphs;
00123     FT_String**      glyph_names;       /* array of glyph names       */
00124     FT_Byte**        charstrings;       /* array of glyph charstrings */
00125     FT_PtrDist*      charstrings_len;
00126 
00127     FT_Byte          paint_type;
00128     FT_Byte          font_type;
00129     FT_Matrix        font_matrix;
00130     FT_Vector        font_offset;
00131     FT_BBox          font_bbox;
00132     FT_Long          font_id;
00133 
00134     FT_Fixed         stroke_width;
00135 
00136   } T1_FontRec, *T1_Font;
00137 
00138 
00139   typedef struct  CID_SubrsRec_
00140   {
00141     FT_UInt    num_subrs;
00142     FT_Byte**  code;
00143 
00144   } CID_SubrsRec, *CID_Subrs;
00145 
00146 
00147   /*************************************************************************/
00148   /*************************************************************************/
00149   /*************************************************************************/
00150   /***                                                                   ***/
00151   /***                                                                   ***/
00152   /***                AFM FONT INFORMATION STRUCTURES                    ***/
00153   /***                                                                   ***/
00154   /***                                                                   ***/
00155   /*************************************************************************/
00156   /*************************************************************************/
00157   /*************************************************************************/
00158 
00159   typedef struct  AFM_TrackKernRec_
00160   {
00161     FT_Int    degree;
00162     FT_Fixed  min_ptsize;
00163     FT_Fixed  min_kern;
00164     FT_Fixed  max_ptsize;
00165     FT_Fixed  max_kern;
00166 
00167   } AFM_TrackKernRec, *AFM_TrackKern;
00168 
00169   typedef struct  AFM_KernPairRec_
00170   {
00171     FT_Int  index1;
00172     FT_Int  index2;
00173     FT_Int  x;
00174     FT_Int  y;
00175 
00176   } AFM_KernPairRec, *AFM_KernPair;
00177 
00178   typedef struct  AFM_FontInfoRec_
00179   {
00180     FT_Bool        IsCIDFont;
00181     FT_BBox        FontBBox;
00182     FT_Fixed       Ascender;
00183     FT_Fixed       Descender;
00184     AFM_TrackKern  TrackKerns;   /* free if non-NULL */
00185     FT_Int         NumTrackKern;
00186     AFM_KernPair   KernPairs;    /* free if non-NULL */
00187     FT_Int         NumKernPair;
00188 
00189   } AFM_FontInfoRec, *AFM_FontInfo;
00190 
00191 
00192   /*************************************************************************/
00193   /*************************************************************************/
00194   /*************************************************************************/
00195   /***                                                                   ***/
00196   /***                                                                   ***/
00197   /***                ORIGINAL T1_FACE CLASS DEFINITION                  ***/
00198   /***                                                                   ***/
00199   /***                                                                   ***/
00200   /*************************************************************************/
00201   /*************************************************************************/
00202   /*************************************************************************/
00203 
00204 
00205   typedef struct T1_FaceRec_*   T1_Face;
00206   typedef struct CID_FaceRec_*  CID_Face;
00207 
00208 
00209   typedef struct  T1_FaceRec_
00210   {
00211     FT_FaceRec      root;
00212     T1_FontRec      type1;
00213     const void*     psnames;
00214     const void*     psaux;
00215     const void*     afm_data;
00216     FT_CharMapRec   charmaprecs[2];
00217     FT_CharMap      charmaps[2];
00218 
00219 #ifdef FT_CONFIG_OPTION_OLD_INTERNALS
00220     PS_Unicodes     unicode_map;
00221 #endif
00222 
00223     /* support for Multiple Masters fonts */
00224     PS_Blend        blend;
00225 
00226     /* undocumented, optional: indices of subroutines that express      */
00227     /* the NormalizeDesignVector and the ConvertDesignVector procedure, */
00228     /* respectively, as Type 2 charstrings; -1 if keywords not present  */
00229     FT_Int           ndv_idx;
00230     FT_Int           cdv_idx;
00231 
00232     /* undocumented, optional: has the same meaning as len_buildchar */
00233     /* for Type 2 fonts; manipulated by othersubrs 19, 24, and 25    */
00234     FT_UInt          len_buildchar;
00235     FT_Long*         buildchar;
00236 
00237     /* since version 2.1 - interface to PostScript hinter */
00238     const void*     pshinter;
00239 
00240   } T1_FaceRec;
00241 
00242 
00243   typedef struct  CID_FaceRec_
00244   {
00245     FT_FaceRec       root;
00246     void*            psnames;
00247     void*            psaux;
00248     CID_FaceInfoRec  cid;
00249     PS_FontExtraRec  font_extra;
00250 #if 0
00251     void*            afm_data;
00252 #endif
00253     CID_Subrs        subrs;
00254 
00255     /* since version 2.1 - interface to PostScript hinter */
00256     void*            pshinter;
00257 
00258     /* since version 2.1.8, but was originally positioned after `afm_data' */
00259     FT_Byte*         binary_data; /* used if hex data has been converted */
00260     FT_Stream        cid_stream;
00261 
00262   } CID_FaceRec;
00263 
00264 
00265 FT_END_HEADER
00266 
00267 #endif /* __T1TYPES_H__ */
00268 
00269 
00270 /* END */

Generated on Sun May 27 2012 04:33:32 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.