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

ttgxvar.h
Go to the documentation of this file.
00001 /***************************************************************************/
00002 /*                                                                         */
00003 /*  ttgxvar.h                                                              */
00004 /*                                                                         */
00005 /*    TrueType GX Font Variation loader (specification)                    */
00006 /*                                                                         */
00007 /*  Copyright 2004 by                                                      */
00008 /*  David Turner, Robert Wilhelm, Werner Lemberg and George Williams.      */
00009 /*                                                                         */
00010 /*  This file is part of the FreeType project, and may only be used,       */
00011 /*  modified, and distributed under the terms of the FreeType project      */
00012 /*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
00013 /*  this file you indicate that you have read the license and              */
00014 /*  understand and accept it fully.                                        */
00015 /*                                                                         */
00016 /***************************************************************************/
00017 
00018 
00019 #ifndef __TTGXVAR_H__
00020 #define __TTGXVAR_H__
00021 
00022 
00023 #include <ft2build.h>
00024 #include "ttobjs.h"
00025 
00026 
00027 FT_BEGIN_HEADER
00028 
00029 
00030   /*************************************************************************/
00031   /*                                                                       */
00032   /* <Struct>                                                              */
00033   /*    GX_AVarCorrespondenceRec                                           */
00034   /*                                                                       */
00035   /* <Description>                                                         */
00036   /*    A data structure representing `shortFracCorrespondence' in `avar'  */
00037   /*    table according to the specifications from Apple.                  */
00038   /*                                                                       */
00039   typedef struct  GX_AVarCorrespondenceRec_
00040   {
00041     FT_Fixed  fromCoord;
00042     FT_Fixed  toCoord;
00043 
00044   } GX_AVarCorrespondenceRec_, *GX_AVarCorrespondence;
00045 
00046 
00047   /*************************************************************************/
00048   /*                                                                       */
00049   /* <Struct>                                                              */
00050   /*    GX_AVarRec                                                         */
00051   /*                                                                       */
00052   /* <Description>                                                         */
00053   /*    Data from the segment field of `avar' table.                       */
00054   /*    There is one of these for each axis.                               */
00055   /*                                                                       */
00056   typedef struct  GX_AVarSegmentRec_
00057   {
00058     FT_UShort              pairCount;
00059     GX_AVarCorrespondence  correspondence; /* array with pairCount entries */
00060 
00061   } GX_AVarSegmentRec, *GX_AVarSegment;
00062 
00063 
00064   /*************************************************************************/
00065   /*                                                                       */
00066   /* <Struct>                                                              */
00067   /*    GX_BlendRec                                                        */
00068   /*                                                                       */
00069   /* <Description>                                                         */
00070   /*    Data for interpolating a font from a distortable font specified    */
00071   /*    by the GX *var tables ([fgca]var).                                 */
00072   /*                                                                       */
00073   /* <Fields>                                                              */
00074   /*    num_axis         :: The number of axes along which interpolation   */
00075   /*                         may happen                                    */
00076   /*                                                                       */
00077   /*    normalizedcoords :: A normalized value (between [-1,1]) indicating */
00078   /*                        the contribution along each axis to the final  */
00079   /*                        interpolated font.                             */
00080   /*                                                                       */
00081   typedef struct  GX_BlendRec_
00082   {
00083     FT_UInt         num_axis;
00084     FT_Fixed*       normalizedcoords;
00085 
00086     FT_MM_Var*      mmvar;
00087     FT_Offset       mmvar_len;
00088 
00089     FT_Bool         avar_checked;
00090     GX_AVarSegment  avar_segment;
00091 
00092     FT_UInt         tuplecount;      /* shared tuples in `gvar'           */
00093     FT_Fixed*       tuplecoords;     /* tuplecoords[tuplecount][num_axis] */
00094 
00095     FT_UInt         gv_glyphcnt;
00096     FT_ULong*       glyphoffsets;
00097 
00098   } GX_BlendRec;
00099 
00100 
00101   /*************************************************************************/
00102   /*                                                                       */
00103   /* <enum>                                                                */
00104   /*    GX_TupleCountFlags                                                 */
00105   /*                                                                       */
00106   /* <Description>                                                         */
00107   /*    Flags used within the `TupleCount' field of the `gvar' table.      */
00108   /*                                                                       */
00109   typedef enum  GX_TupleCountFlags_
00110   {
00111     GX_TC_TUPLES_SHARE_POINT_NUMBERS = 0x8000,
00112     GX_TC_RESERVED_TUPLE_FLAGS       = 0x7000,
00113     GX_TC_TUPLE_COUNT_MASK           = 0x0FFF
00114 
00115   } GX_TupleCountFlags;
00116 
00117 
00118   /*************************************************************************/
00119   /*                                                                       */
00120   /* <enum>                                                                */
00121   /*    GX_TupleIndexFlags                                                 */
00122   /*                                                                       */
00123   /* <Description>                                                         */
00124   /*    Flags used within the `TupleIndex' field of the `gvar' and `cvar'  */
00125   /*    tables.                                                            */
00126   /*                                                                       */
00127   typedef enum  GX_TupleIndexFlags_
00128   {
00129     GX_TI_EMBEDDED_TUPLE_COORD  = 0x8000,
00130     GX_TI_INTERMEDIATE_TUPLE    = 0x4000,
00131     GX_TI_PRIVATE_POINT_NUMBERS = 0x2000,
00132     GX_TI_RESERVED_TUPLE_FLAG   = 0x1000,
00133     GX_TI_TUPLE_INDEX_MASK      = 0x0FFF
00134 
00135   } GX_TupleIndexFlags;
00136 
00137 
00138 #define TTAG_wght  FT_MAKE_TAG( 'w', 'g', 'h', 't' )
00139 #define TTAG_wdth  FT_MAKE_TAG( 'w', 'd', 't', 'h' )
00140 #define TTAG_opsz  FT_MAKE_TAG( 'o', 'p', 's', 'z' )
00141 #define TTAG_slnt  FT_MAKE_TAG( 's', 'l', 'n', 't' )
00142 
00143 
00144   FT_LOCAL( FT_Error )
00145   TT_Set_MM_Blend( TT_Face    face,
00146                    FT_UInt    num_coords,
00147                    FT_Fixed*  coords );
00148 
00149   FT_LOCAL( FT_Error )
00150   TT_Set_Var_Design( TT_Face    face,
00151                      FT_UInt    num_coords,
00152                      FT_Fixed*  coords );
00153 
00154   FT_LOCAL( FT_Error )
00155   TT_Get_MM_Var( TT_Face      face,
00156                  FT_MM_Var*  *master );
00157 
00158 
00159   FT_LOCAL( FT_Error )
00160   tt_face_vary_cvt( TT_Face    face,
00161                     FT_Stream  stream );
00162 
00163 
00164   FT_LOCAL( FT_Error )
00165   TT_Vary_Get_Glyph_Deltas( TT_Face      face,
00166                             FT_UInt      glyph_index,
00167                             FT_Vector*  *deltas,
00168                             FT_UInt      n_points );
00169 
00170 
00171   FT_LOCAL( void )
00172   tt_done_blend( FT_Memory  memory,
00173                  GX_Blend   blend );
00174 
00175 
00176 FT_END_HEADER
00177 
00178 
00179 #endif /* __TTGXVAR_H__ */
00180 
00181 
00182 /* END */

Generated on Sun May 27 2012 04:34:03 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.