- Remove svn:needs-lock, svn:eol-type, and svn:eol-tyle properties.
[reactos.git] / reactos / lib / 3rdparty / freetype / src / pfr / pfrtypes.h
index 3c306fd..c0ae042 100644 (file)
-/***************************************************************************/\r
-/*                                                                         */\r
-/*  pfrtypes.h                                                             */\r
-/*                                                                         */\r
-/*    FreeType PFR data structures (specification only).                   */\r
-/*                                                                         */\r
-/*  Copyright 2002, 2003, 2005, 2007 by                                    */\r
-/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */\r
-/*                                                                         */\r
-/*  This file is part of the FreeType project, and may only be used,       */\r
-/*  modified, and distributed under the terms of the FreeType project      */\r
-/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */\r
-/*  this file you indicate that you have read the license and              */\r
-/*  understand and accept it fully.                                        */\r
-/*                                                                         */\r
-/***************************************************************************/\r
-\r
-\r
-#ifndef __PFRTYPES_H__\r
-#define __PFRTYPES_H__\r
-\r
-#include <ft2build.h>\r
-#include FT_INTERNAL_OBJECTS_H\r
-\r
-FT_BEGIN_HEADER\r
-\r
-  /************************************************************************/\r
-\r
-  /* the PFR Header structure */\r
-  typedef struct  PFR_HeaderRec_\r
-  {\r
-    FT_UInt32  signature;\r
-    FT_UInt    version;\r
-    FT_UInt    signature2;\r
-    FT_UInt    header_size;\r
-\r
-    FT_UInt    log_dir_size;\r
-    FT_UInt    log_dir_offset;\r
-\r
-    FT_UInt    log_font_max_size;\r
-    FT_UInt32  log_font_section_size;\r
-    FT_UInt32  log_font_section_offset;\r
-\r
-    FT_UInt32  phy_font_max_size;\r
-    FT_UInt32  phy_font_section_size;\r
-    FT_UInt32  phy_font_section_offset;\r
-\r
-    FT_UInt    gps_max_size;\r
-    FT_UInt32  gps_section_size;\r
-    FT_UInt32  gps_section_offset;\r
-\r
-    FT_UInt    max_blue_values;\r
-    FT_UInt    max_x_orus;\r
-    FT_UInt    max_y_orus;\r
-\r
-    FT_UInt    phy_font_max_size_high;\r
-    FT_UInt    color_flags;\r
-\r
-    FT_UInt32  bct_max_size;\r
-    FT_UInt32  bct_set_max_size;\r
-    FT_UInt32  phy_bct_set_max_size;\r
-\r
-    FT_UInt    num_phy_fonts;\r
-    FT_UInt    max_vert_stem_snap;\r
-    FT_UInt    max_horz_stem_snap;\r
-    FT_UInt    max_chars;\r
-\r
-  } PFR_HeaderRec, *PFR_Header;\r
-\r
-\r
-  /* used in `color_flags' field of the PFR_Header */\r
-  typedef enum  PFR_HeaderFlags_\r
-  {\r
-    PFR_FLAG_BLACK_PIXEL   = 1,\r
-    PFR_FLAG_INVERT_BITMAP = 2\r
-\r
-  } PFR_HeaderFlags;\r
-\r
-\r
-  /************************************************************************/\r
-\r
-  typedef struct  PFR_LogFontRec_\r
-  {\r
-    FT_UInt32  size;\r
-    FT_UInt32  offset;\r
-\r
-    FT_Int32   matrix[4];\r
-    FT_UInt    stroke_flags;\r
-    FT_Int     stroke_thickness;\r
-    FT_Int     bold_thickness;\r
-    FT_Int32   miter_limit;\r
-\r
-    FT_UInt32  phys_size;\r
-    FT_UInt32  phys_offset;\r
-\r
-  } PFR_LogFontRec, *PFR_LogFont;\r
-\r
-\r
-  typedef enum  PFR_LogFlags_\r
-  {\r
-    PFR_LOG_EXTRA_ITEMS  = 0x40,\r
-    PFR_LOG_2BYTE_BOLD   = 0x20,\r
-    PFR_LOG_BOLD         = 0x10,\r
-    PFR_LOG_2BYTE_STROKE = 8,\r
-    PFR_LOG_STROKE       = 4,\r
-    PFR_LINE_JOIN_MASK   = 3\r
-\r
-  } PFR_LogFlags;\r
-\r
-\r
-  typedef enum  PFR_LineJoinFlags_\r
-  {\r
-    PFR_LINE_JOIN_MITER = 0,\r
-    PFR_LINE_JOIN_ROUND = 1,\r
-    PFR_LINE_JOIN_BEVEL = 2\r
-\r
-  } PFR_LineJoinFlags;\r
-\r
-\r
-  /************************************************************************/\r
-\r
-  typedef enum  PFR_BitmapFlags_\r
-  {\r
-    PFR_BITMAP_3BYTE_OFFSET   = 4,\r
-    PFR_BITMAP_2BYTE_SIZE     = 2,\r
-    PFR_BITMAP_2BYTE_CHARCODE = 1\r
-\r
-  } PFR_BitmapFlags;\r
-\r
-\r
-  typedef struct  PFR_BitmapCharRec_\r
-  {\r
-    FT_UInt    char_code;\r
-    FT_UInt    gps_size;\r
-    FT_UInt32  gps_offset;\r
-\r
-  } PFR_BitmapCharRec, *PFR_BitmapChar;\r
-\r
-\r
-  typedef enum  PFR_StrikeFlags_\r
-  {\r
-    PFR_STRIKE_2BYTE_COUNT  = 0x10,\r
-    PFR_STRIKE_3BYTE_OFFSET = 0x08,\r
-    PFR_STRIKE_3BYTE_SIZE   = 0x04,\r
-    PFR_STRIKE_2BYTE_YPPM   = 0x02,\r
-    PFR_STRIKE_2BYTE_XPPM   = 0x01\r
-\r
-  } PFR_StrikeFlags;\r
-\r
-\r
-  typedef struct  PFR_StrikeRec_\r
-  {\r
-    FT_UInt         x_ppm;\r
-    FT_UInt         y_ppm;\r
-    FT_UInt         flags;\r
-\r
-    FT_UInt32       gps_size;\r
-    FT_UInt32       gps_offset;\r
-\r
-    FT_UInt32       bct_size;\r
-    FT_UInt32       bct_offset;\r
-\r
-    /* optional */\r
-    FT_UInt         num_bitmaps;\r
-    PFR_BitmapChar  bitmaps;\r
-\r
-  } PFR_StrikeRec, *PFR_Strike;\r
-\r
-\r
-  /************************************************************************/\r
-\r
-  typedef struct  PFR_CharRec_\r
-  {\r
-    FT_UInt    char_code;\r
-    FT_Int     advance;\r
-    FT_UInt    gps_size;\r
-    FT_UInt32  gps_offset;\r
-\r
-  } PFR_CharRec, *PFR_Char;\r
-\r
-\r
-  /************************************************************************/\r
-\r
-  typedef struct  PFR_DimensionRec_\r
-  {\r
-    FT_UInt  standard;\r
-    FT_UInt  num_stem_snaps;\r
-    FT_Int*  stem_snaps;\r
-\r
-  } PFR_DimensionRec, *PFR_Dimension;\r
-\r
-  /************************************************************************/\r
-\r
-  typedef struct PFR_KernItemRec_*  PFR_KernItem;\r
-\r
-  typedef struct  PFR_KernItemRec_\r
-  {\r
-    PFR_KernItem  next;\r
-    FT_Byte       pair_count;\r
-    FT_Byte       flags;\r
-    FT_Short      base_adj;\r
-    FT_UInt       pair_size;\r
-    FT_UInt32     offset;\r
-    FT_UInt32     pair1;\r
-    FT_UInt32     pair2;\r
-\r
-  } PFR_KernItemRec;\r
-\r
-\r
-#define PFR_KERN_INDEX( g1, g2 )                          \\r
-          ( ( (FT_UInt32)(g1) << 16 ) | (FT_UInt16)(g2) )\r
-\r
-#define PFR_KERN_PAIR_INDEX( pair )                        \\r
-          PFR_KERN_INDEX( (pair)->glyph1, (pair)->glyph2 )\r
-\r
-#define PFR_NEXT_KPAIR( p )  ( p += 2,                              \\r
-                               ( (FT_UInt32)p[-2] << 16 ) | p[-1] )\r
-\r
-\r
-  /************************************************************************/\r
-\r
-  typedef struct  PFR_PhyFontRec_\r
-  {\r
-    FT_Memory          memory;\r
-    FT_UInt32          offset;\r
-\r
-    FT_UInt            font_ref_number;\r
-    FT_UInt            outline_resolution;\r
-    FT_UInt            metrics_resolution;\r
-    FT_BBox            bbox;\r
-    FT_UInt            flags;\r
-    FT_UInt            standard_advance;\r
-\r
-    FT_Int             ascent;   /* optional, bbox.yMax if not present */\r
-    FT_Int             descent;  /* optional, bbox.yMin if not present */\r
-    FT_Int             leading;  /* optional, 0 if not present         */\r
-\r
-    PFR_DimensionRec   horizontal;\r
-    PFR_DimensionRec   vertical;\r
-\r
-    FT_String*         font_id;\r
-    FT_String*         family_name;\r
-    FT_String*         style_name;\r
-\r
-    FT_UInt            num_strikes;\r
-    FT_UInt            max_strikes;\r
-    PFR_StrikeRec*     strikes;\r
-\r
-    FT_UInt            num_blue_values;\r
-    FT_Int            *blue_values;\r
-    FT_UInt            blue_fuzz;\r
-    FT_UInt            blue_scale;\r
-\r
-    FT_UInt            num_chars;\r
-    FT_UInt32          chars_offset;\r
-    PFR_Char           chars;\r
-\r
-    FT_UInt            num_kern_pairs;\r
-    PFR_KernItem       kern_items;\r
-    PFR_KernItem*      kern_items_tail;\r
-\r
-    /* not part of the spec, but used during load */\r
-    FT_UInt32          bct_offset;\r
-    FT_Byte*           cursor;\r
-\r
-  } PFR_PhyFontRec, *PFR_PhyFont;\r
-\r
-\r
-  typedef enum  PFR_PhyFlags_\r
-  {\r
-    PFR_PHY_EXTRA_ITEMS      = 0x80,\r
-    PFR_PHY_3BYTE_GPS_OFFSET = 0x20,\r
-    PFR_PHY_2BYTE_GPS_SIZE   = 0x10,\r
-    PFR_PHY_ASCII_CODE       = 0x08,\r
-    PFR_PHY_PROPORTIONAL     = 0x04,\r
-    PFR_PHY_2BYTE_CHARCODE   = 0x02,\r
-    PFR_PHY_VERTICAL         = 0x01\r
-\r
-  } PFR_PhyFlags;\r
-\r
-\r
-  typedef enum PFR_KernFlags_\r
-  {\r
-    PFR_KERN_2BYTE_CHAR  = 0x01,\r
-    PFR_KERN_2BYTE_ADJ   = 0x02\r
-\r
-  } PFR_KernFlags;\r
-\r
-\r
-  /************************************************************************/\r
-\r
-  typedef enum  PFR_GlyphFlags_\r
-  {\r
-    PFR_GLYPH_IS_COMPOUND   = 0x80,\r
-    PFR_GLYPH_EXTRA_ITEMS   = 0x08,\r
-    PFR_GLYPH_1BYTE_XYCOUNT = 0x04,\r
-    PFR_GLYPH_XCOUNT        = 0x02,\r
-    PFR_GLYPH_YCOUNT        = 0x01\r
-\r
-  } PFR_GlyphFlags;\r
-\r
-\r
-  /* controlled coordinate */\r
-  typedef struct  PFR_CoordRec_\r
-  {\r
-    FT_UInt  org;\r
-    FT_UInt  cur;\r
-\r
-  } PFR_CoordRec, *PFR_Coord;\r
-\r
-\r
-  typedef struct  PFR_SubGlyphRec_\r
-  {\r
-    FT_Fixed   x_scale;\r
-    FT_Fixed   y_scale;\r
-    FT_Int     x_delta;\r
-    FT_Int     y_delta;\r
-    FT_UInt32  gps_offset;\r
-    FT_UInt    gps_size;\r
-\r
-  } PFR_SubGlyphRec, *PFR_SubGlyph;\r
-\r
-\r
-  typedef enum  PFR_SubgGlyphFlags_\r
-  {\r
-    PFR_SUBGLYPH_3BYTE_OFFSET = 0x80,\r
-    PFR_SUBGLYPH_2BYTE_SIZE   = 0x40,\r
-    PFR_SUBGLYPH_YSCALE       = 0x20,\r
-    PFR_SUBGLYPH_XSCALE       = 0x10\r
-\r
-  } PFR_SubGlyphFlags;\r
-\r
-\r
-  typedef struct  PFR_GlyphRec_\r
-  {\r
-    FT_Byte           format;\r
-\r
-#if 0\r
-    FT_UInt           num_x_control;\r
-    FT_UInt           num_y_control;\r
-#endif\r
-    FT_UInt           max_xy_control;\r
-    FT_Pos*           x_control;\r
-    FT_Pos*           y_control;\r
-\r
-\r
-    FT_UInt           num_subs;\r
-    FT_UInt           max_subs;\r
-    PFR_SubGlyphRec*  subs;\r
-\r
-    FT_GlyphLoader    loader;\r
-    FT_Bool           path_begun;\r
-\r
-  } PFR_GlyphRec, *PFR_Glyph;\r
-\r
-\r
-FT_END_HEADER\r
-\r
-#endif /* __PFRTYPES_H__ */\r
-\r
-\r
-/* END */\r
+/***************************************************************************/
+/*                                                                         */
+/*  pfrtypes.h                                                             */
+/*                                                                         */
+/*    FreeType PFR data structures (specification only).                   */
+/*                                                                         */
+/*  Copyright 2002, 2003, 2005, 2007 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 __PFRTYPES_H__
+#define __PFRTYPES_H__
+
+#include <ft2build.h>
+#include FT_INTERNAL_OBJECTS_H
+
+FT_BEGIN_HEADER
+
+  /************************************************************************/
+
+  /* the PFR Header structure */
+  typedef struct  PFR_HeaderRec_
+  {
+    FT_UInt32  signature;
+    FT_UInt    version;
+    FT_UInt    signature2;
+    FT_UInt    header_size;
+
+    FT_UInt    log_dir_size;
+    FT_UInt    log_dir_offset;
+
+    FT_UInt    log_font_max_size;
+    FT_UInt32  log_font_section_size;
+    FT_UInt32  log_font_section_offset;
+
+    FT_UInt32  phy_font_max_size;
+    FT_UInt32  phy_font_section_size;
+    FT_UInt32  phy_font_section_offset;
+
+    FT_UInt    gps_max_size;
+    FT_UInt32  gps_section_size;
+    FT_UInt32  gps_section_offset;
+
+    FT_UInt    max_blue_values;
+    FT_UInt    max_x_orus;
+    FT_UInt    max_y_orus;
+
+    FT_UInt    phy_font_max_size_high;
+    FT_UInt    color_flags;
+
+    FT_UInt32  bct_max_size;
+    FT_UInt32  bct_set_max_size;
+    FT_UInt32  phy_bct_set_max_size;
+
+    FT_UInt    num_phy_fonts;
+    FT_UInt    max_vert_stem_snap;
+    FT_UInt    max_horz_stem_snap;
+    FT_UInt    max_chars;
+
+  } PFR_HeaderRec, *PFR_Header;
+
+
+  /* used in `color_flags' field of the PFR_Header */
+  typedef enum  PFR_HeaderFlags_
+  {
+    PFR_FLAG_BLACK_PIXEL   = 1,
+    PFR_FLAG_INVERT_BITMAP = 2
+
+  } PFR_HeaderFlags;
+
+
+  /************************************************************************/
+
+  typedef struct  PFR_LogFontRec_
+  {
+    FT_UInt32  size;
+    FT_UInt32  offset;
+
+    FT_Int32   matrix[4];
+    FT_UInt    stroke_flags;
+    FT_Int     stroke_thickness;
+    FT_Int     bold_thickness;
+    FT_Int32   miter_limit;
+
+    FT_UInt32  phys_size;
+    FT_UInt32  phys_offset;
+
+  } PFR_LogFontRec, *PFR_LogFont;
+
+
+  typedef enum  PFR_LogFlags_
+  {
+    PFR_LOG_EXTRA_ITEMS  = 0x40,
+    PFR_LOG_2BYTE_BOLD   = 0x20,
+    PFR_LOG_BOLD         = 0x10,
+    PFR_LOG_2BYTE_STROKE = 8,
+    PFR_LOG_STROKE       = 4,
+    PFR_LINE_JOIN_MASK   = 3
+
+  } PFR_LogFlags;
+
+
+  typedef enum  PFR_LineJoinFlags_
+  {
+    PFR_LINE_JOIN_MITER = 0,
+    PFR_LINE_JOIN_ROUND = 1,
+    PFR_LINE_JOIN_BEVEL = 2
+
+  } PFR_LineJoinFlags;
+
+
+  /************************************************************************/
+
+  typedef enum  PFR_BitmapFlags_
+  {
+    PFR_BITMAP_3BYTE_OFFSET   = 4,
+    PFR_BITMAP_2BYTE_SIZE     = 2,
+    PFR_BITMAP_2BYTE_CHARCODE = 1
+
+  } PFR_BitmapFlags;
+
+
+  typedef struct  PFR_BitmapCharRec_
+  {
+    FT_UInt    char_code;
+    FT_UInt    gps_size;
+    FT_UInt32  gps_offset;
+
+  } PFR_BitmapCharRec, *PFR_BitmapChar;
+
+
+  typedef enum  PFR_StrikeFlags_
+  {
+    PFR_STRIKE_2BYTE_COUNT  = 0x10,
+    PFR_STRIKE_3BYTE_OFFSET = 0x08,
+    PFR_STRIKE_3BYTE_SIZE   = 0x04,
+    PFR_STRIKE_2BYTE_YPPM   = 0x02,
+    PFR_STRIKE_2BYTE_XPPM   = 0x01
+
+  } PFR_StrikeFlags;
+
+
+  typedef struct  PFR_StrikeRec_
+  {
+    FT_UInt         x_ppm;
+    FT_UInt         y_ppm;
+    FT_UInt         flags;
+
+    FT_UInt32       gps_size;
+    FT_UInt32       gps_offset;
+
+    FT_UInt32       bct_size;
+    FT_UInt32       bct_offset;
+
+    /* optional */
+    FT_UInt         num_bitmaps;
+    PFR_BitmapChar  bitmaps;
+
+  } PFR_StrikeRec, *PFR_Strike;
+
+
+  /************************************************************************/
+
+  typedef struct  PFR_CharRec_
+  {
+    FT_UInt    char_code;
+    FT_Int     advance;
+    FT_UInt    gps_size;
+    FT_UInt32  gps_offset;
+
+  } PFR_CharRec, *PFR_Char;
+
+
+  /************************************************************************/
+
+  typedef struct  PFR_DimensionRec_
+  {
+    FT_UInt  standard;
+    FT_UInt  num_stem_snaps;
+    FT_Int*  stem_snaps;
+
+  } PFR_DimensionRec, *PFR_Dimension;
+
+  /************************************************************************/
+
+  typedef struct PFR_KernItemRec_*  PFR_KernItem;
+
+  typedef struct  PFR_KernItemRec_
+  {
+    PFR_KernItem  next;
+    FT_Byte       pair_count;
+    FT_Byte       flags;
+    FT_Short      base_adj;
+    FT_UInt       pair_size;
+    FT_UInt32     offset;
+    FT_UInt32     pair1;
+    FT_UInt32     pair2;
+
+  } PFR_KernItemRec;
+
+
+#define PFR_KERN_INDEX( g1, g2 )                          \
+          ( ( (FT_UInt32)(g1) << 16 ) | (FT_UInt16)(g2) )
+
+#define PFR_KERN_PAIR_INDEX( pair )                        \
+          PFR_KERN_INDEX( (pair)->glyph1, (pair)->glyph2 )
+
+#define PFR_NEXT_KPAIR( p )  ( p += 2,                              \
+                               ( (FT_UInt32)p[-2] << 16 ) | p[-1] )
+
+
+  /************************************************************************/
+
+  typedef struct  PFR_PhyFontRec_
+  {
+    FT_Memory          memory;
+    FT_UInt32          offset;
+
+    FT_UInt            font_ref_number;
+    FT_UInt            outline_resolution;
+    FT_UInt            metrics_resolution;
+    FT_BBox            bbox;
+    FT_UInt            flags;
+    FT_UInt            standard_advance;
+
+    FT_Int             ascent;   /* optional, bbox.yMax if not present */
+    FT_Int             descent;  /* optional, bbox.yMin if not present */
+    FT_Int             leading;  /* optional, 0 if not present         */
+
+    PFR_DimensionRec   horizontal;
+    PFR_DimensionRec   vertical;
+
+    FT_String*         font_id;
+    FT_String*         family_name;
+    FT_String*         style_name;
+
+    FT_UInt            num_strikes;
+    FT_UInt            max_strikes;
+    PFR_StrikeRec*     strikes;
+
+    FT_UInt            num_blue_values;
+    FT_Int            *blue_values;
+    FT_UInt            blue_fuzz;
+    FT_UInt            blue_scale;
+
+    FT_UInt            num_chars;
+    FT_UInt32          chars_offset;
+    PFR_Char           chars;
+
+    FT_UInt            num_kern_pairs;
+    PFR_KernItem       kern_items;
+    PFR_KernItem*      kern_items_tail;
+
+    /* not part of the spec, but used during load */
+    FT_UInt32          bct_offset;
+    FT_Byte*           cursor;
+
+  } PFR_PhyFontRec, *PFR_PhyFont;
+
+
+  typedef enum  PFR_PhyFlags_
+  {
+    PFR_PHY_EXTRA_ITEMS      = 0x80,
+    PFR_PHY_3BYTE_GPS_OFFSET = 0x20,
+    PFR_PHY_2BYTE_GPS_SIZE   = 0x10,
+    PFR_PHY_ASCII_CODE       = 0x08,
+    PFR_PHY_PROPORTIONAL     = 0x04,
+    PFR_PHY_2BYTE_CHARCODE   = 0x02,
+    PFR_PHY_VERTICAL         = 0x01
+
+  } PFR_PhyFlags;
+
+
+  typedef enum PFR_KernFlags_
+  {
+    PFR_KERN_2BYTE_CHAR  = 0x01,
+    PFR_KERN_2BYTE_ADJ   = 0x02
+
+  } PFR_KernFlags;
+
+
+  /************************************************************************/
+
+  typedef enum  PFR_GlyphFlags_
+  {
+    PFR_GLYPH_IS_COMPOUND   = 0x80,
+    PFR_GLYPH_EXTRA_ITEMS   = 0x08,
+    PFR_GLYPH_1BYTE_XYCOUNT = 0x04,
+    PFR_GLYPH_XCOUNT        = 0x02,
+    PFR_GLYPH_YCOUNT        = 0x01
+
+  } PFR_GlyphFlags;
+
+
+  /* controlled coordinate */
+  typedef struct  PFR_CoordRec_
+  {
+    FT_UInt  org;
+    FT_UInt  cur;
+
+  } PFR_CoordRec, *PFR_Coord;
+
+
+  typedef struct  PFR_SubGlyphRec_
+  {
+    FT_Fixed   x_scale;
+    FT_Fixed   y_scale;
+    FT_Int     x_delta;
+    FT_Int     y_delta;
+    FT_UInt32  gps_offset;
+    FT_UInt    gps_size;
+
+  } PFR_SubGlyphRec, *PFR_SubGlyph;
+
+
+  typedef enum  PFR_SubgGlyphFlags_
+  {
+    PFR_SUBGLYPH_3BYTE_OFFSET = 0x80,
+    PFR_SUBGLYPH_2BYTE_SIZE   = 0x40,
+    PFR_SUBGLYPH_YSCALE       = 0x20,
+    PFR_SUBGLYPH_XSCALE       = 0x10
+
+  } PFR_SubGlyphFlags;
+
+
+  typedef struct  PFR_GlyphRec_
+  {
+    FT_Byte           format;
+
+#if 0
+    FT_UInt           num_x_control;
+    FT_UInt           num_y_control;
+#endif
+    FT_UInt           max_xy_control;
+    FT_Pos*           x_control;
+    FT_Pos*           y_control;
+
+
+    FT_UInt           num_subs;
+    FT_UInt           max_subs;
+    PFR_SubGlyphRec*  subs;
+
+    FT_GlyphLoader    loader;
+    FT_Bool           path_begun;
+
+  } PFR_GlyphRec, *PFR_Glyph;
+
+
+FT_END_HEADER
+
+#endif /* __PFRTYPES_H__ */
+
+
+/* END */