PageRenderTime 25ms CodeModel.GetById 14ms app.highlight 8ms RepoModel.GetById 1ms app.codeStats 1ms

/src/freetype/src/cff/cffobjs.h

https://bitbucket.org/cabalistic/ogredeps/
C++ Header | 181 lines | 70 code | 46 blank | 65 comment | 0 complexity | 6db5ee8d843e529859a15941925e69df MD5 | raw file
  1/***************************************************************************/
  2/*                                                                         */
  3/*  cffobjs.h                                                              */
  4/*                                                                         */
  5/*    OpenType objects manager (specification).                            */
  6/*                                                                         */
  7/*  Copyright 1996-2001, 2002, 2003, 2004, 2006, 2007, 2008 by             */
  8/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
  9/*                                                                         */
 10/*  This file is part of the FreeType project, and may only be used,       */
 11/*  modified, and distributed under the terms of the FreeType project      */
 12/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
 13/*  this file you indicate that you have read the license and              */
 14/*  understand and accept it fully.                                        */
 15/*                                                                         */
 16/***************************************************************************/
 17
 18
 19#ifndef __CFFOBJS_H__
 20#define __CFFOBJS_H__
 21
 22
 23#include <ft2build.h>
 24#include FT_INTERNAL_OBJECTS_H
 25#include "cfftypes.h"
 26#include FT_INTERNAL_TRUETYPE_TYPES_H
 27#include FT_SERVICE_POSTSCRIPT_CMAPS_H
 28#include FT_INTERNAL_POSTSCRIPT_HINTS_H
 29
 30
 31FT_BEGIN_HEADER
 32
 33
 34  /*************************************************************************/
 35  /*                                                                       */
 36  /* <Type>                                                                */
 37  /*    CFF_Driver                                                         */
 38  /*                                                                       */
 39  /* <Description>                                                         */
 40  /*    A handle to an OpenType driver object.                             */
 41  /*                                                                       */
 42  typedef struct CFF_DriverRec_*  CFF_Driver;
 43
 44  typedef TT_Face  CFF_Face;
 45
 46
 47  /*************************************************************************/
 48  /*                                                                       */
 49  /* <Type>                                                                */
 50  /*    CFF_Size                                                           */
 51  /*                                                                       */
 52  /* <Description>                                                         */
 53  /*    A handle to an OpenType size object.                               */
 54  /*                                                                       */
 55  typedef struct  CFF_SizeRec_
 56  {
 57    FT_SizeRec  root;
 58    FT_ULong    strike_index;    /* 0xFFFFFFFF to indicate invalid */
 59
 60  } CFF_SizeRec, *CFF_Size;
 61
 62
 63  /*************************************************************************/
 64  /*                                                                       */
 65  /* <Type>                                                                */
 66  /*    CFF_GlyphSlot                                                      */
 67  /*                                                                       */
 68  /* <Description>                                                         */
 69  /*    A handle to an OpenType glyph slot object.                         */
 70  /*                                                                       */
 71  typedef struct  CFF_GlyphSlotRec_
 72  {
 73    FT_GlyphSlotRec  root;
 74
 75    FT_Bool          hint;
 76    FT_Bool          scaled;
 77
 78    FT_Fixed         x_scale;
 79    FT_Fixed         y_scale;
 80
 81  } CFF_GlyphSlotRec, *CFF_GlyphSlot;
 82
 83
 84  /*************************************************************************/
 85  /*                                                                       */
 86  /* <Type>                                                                */
 87  /*    CFF_Internal                                                       */
 88  /*                                                                       */
 89  /* <Description>                                                         */
 90  /*    The interface to the `internal' field of `FT_Size'.                */
 91  /*                                                                       */
 92  typedef struct  CFF_InternalRec_
 93  {
 94    PSH_Globals  topfont;
 95    PSH_Globals  subfonts[CFF_MAX_CID_FONTS];
 96
 97  } CFF_InternalRec, *CFF_Internal;
 98
 99
100  /*************************************************************************/
101  /*                                                                       */
102  /* Subglyph transformation record.                                       */
103  /*                                                                       */
104  typedef struct  CFF_Transform_
105  {
106    FT_Fixed    xx, xy;     /* transformation matrix coefficients */
107    FT_Fixed    yx, yy;
108    FT_F26Dot6  ox, oy;     /* offsets        */
109
110  } CFF_Transform;
111
112
113  /***********************************************************************/
114  /*                                                                     */
115  /* TrueType driver class.                                              */
116  /*                                                                     */
117  typedef struct  CFF_DriverRec_
118  {
119    FT_DriverRec  root;
120    void*         extension_component;
121
122  } CFF_DriverRec;
123
124
125  FT_LOCAL( FT_Error )
126  cff_size_init( FT_Size  size );           /* CFF_Size */
127
128  FT_LOCAL( void )
129  cff_size_done( FT_Size  size );           /* CFF_Size */
130
131  FT_LOCAL( FT_Error )
132  cff_size_request( FT_Size          size,
133                    FT_Size_Request  req );
134
135#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
136
137  FT_LOCAL( FT_Error )
138  cff_size_select( FT_Size   size,
139                   FT_ULong  strike_index );
140
141#endif
142
143  FT_LOCAL( void )
144  cff_slot_done( FT_GlyphSlot  slot );
145
146  FT_LOCAL( FT_Error )
147  cff_slot_init( FT_GlyphSlot  slot );
148
149
150  /*************************************************************************/
151  /*                                                                       */
152  /* Face functions                                                        */
153  /*                                                                       */
154  FT_LOCAL( FT_Error )
155  cff_face_init( FT_Stream      stream,
156                 FT_Face        face,           /* CFF_Face */
157                 FT_Int         face_index,
158                 FT_Int         num_params,
159                 FT_Parameter*  params );
160
161  FT_LOCAL( void )
162  cff_face_done( FT_Face  face );               /* CFF_Face */
163
164
165  /*************************************************************************/
166  /*                                                                       */
167  /* Driver functions                                                      */
168  /*                                                                       */
169  FT_LOCAL( FT_Error )
170  cff_driver_init( FT_Module  module );
171
172  FT_LOCAL( void )
173  cff_driver_done( FT_Module  module );
174
175
176FT_END_HEADER
177
178#endif /* __CFFOBJS_H__ */
179
180
181/* END */