~ubuntu-branches/ubuntu/wily/hedgewars/wily

« back to all changes in this revision

Viewing changes to misc/libfreetype/src/pshinter/pshrec.h

  • Committer: Package Import Robot
  • Author(s): Dmitry E. Oboukhov
  • Date: 2011-09-23 10:16:55 UTC
  • mfrom: (1.2.11 upstream)
  • Revision ID: package-import@ubuntu.com-20110923101655-3977th2gc5n0a3pv
Tags: 0.9.16-1
* New upstream version.
 + Downloadable content! Simply click to install any content.
   New voices, hats, maps, themes, translations, music, scripts...
   Hedgewars is now more customisable than ever before! As time goes
   by we will be soliciting community content to feature on this page,
   so remember to check it from time to time. If you decide you want
   to go back to standard Hedgewars, just remove the Data directory
   from your Hedgewars config directory.
 + 3-D rendering! Diorama-like rendering of the game in a variety
   of 3D modes. Let us know which ones work best for you, we didn't
   really have the equipment to test them all.
 + Resizable game window.
 + New utilities! The Time Box will remove one of your hedgehogs
   from the game for a while, protecting from attack until it returns,
   somewhere else on the map. Land spray will allow you to build bridges,
   seal up holes, or just make life unpleasant for your enemies.
 + New single player: Bamboo Thicket, That Sinking Feeling, Newton and
   the Tree and multi-player: The Specialists, Space Invaders,
   Racer - scripts! And a ton more script hooks for scripters
 + New twists on old weapons. Drill strike, seduction and fire have
   been adjusted. Defective mines have been added, rope can attach to
   hogs/crates/barrels again, grenades now have variable bounce (use
   precise key + 1-5). Portal gun is now more usable in flight and
   all game actions are a lot faster.
 + New theme - Golf, dozens of new community hats and a new
   localised Default voice, Ukranian.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************/
 
2
/*                                                                         */
 
3
/*  pshrec.h                                                               */
 
4
/*                                                                         */
 
5
/*    Postscript (Type1/Type2) hints recorder (specification).             */
 
6
/*                                                                         */
 
7
/*  Copyright 2001, 2002, 2003, 2006, 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
  /**************************************************************************/
 
20
  /*                                                                        */
 
21
  /*  The functions defined here are called from the Type 1, CID and CFF    */
 
22
  /*  font drivers to record the hints of a given character/glyph.          */
 
23
  /*                                                                        */
 
24
  /*  The hints are recorded in a unified format, and are later processed   */
 
25
  /*  by the `optimizer' and `fitter' to adjust the outlines to the pixel   */
 
26
  /*  grid.                                                                 */
 
27
  /*                                                                        */
 
28
  /**************************************************************************/
 
29
 
 
30
 
 
31
#ifndef __PSHREC_H__
 
32
#define __PSHREC_H__
 
33
 
 
34
 
 
35
#include <ft2build.h>
 
36
#include FT_INTERNAL_POSTSCRIPT_HINTS_H
 
37
#include "pshglob.h"
 
38
 
 
39
 
 
40
FT_BEGIN_HEADER
 
41
 
 
42
 
 
43
  /*************************************************************************/
 
44
  /*************************************************************************/
 
45
  /*****                                                               *****/
 
46
  /*****                 GLYPH HINTS RECORDER INTERNALS                *****/
 
47
  /*****                                                               *****/
 
48
  /*************************************************************************/
 
49
  /*************************************************************************/
 
50
 
 
51
  /* handle to hint record */
 
52
  typedef struct PS_HintRec_*  PS_Hint;
 
53
 
 
54
  /* hint types */
 
55
  typedef enum  PS_Hint_Type_
 
56
  {
 
57
    PS_HINT_TYPE_1 = 1,
 
58
    PS_HINT_TYPE_2 = 2
 
59
 
 
60
  } PS_Hint_Type;
 
61
 
 
62
 
 
63
  /* hint flags */
 
64
  typedef enum  PS_Hint_Flags_
 
65
  {
 
66
    PS_HINT_FLAG_GHOST  = 1,
 
67
    PS_HINT_FLAG_BOTTOM = 2
 
68
 
 
69
  } PS_Hint_Flags;
 
70
 
 
71
 
 
72
  /* hint descriptor */
 
73
  typedef struct  PS_HintRec_
 
74
  {
 
75
    FT_Int   pos;
 
76
    FT_Int   len;
 
77
    FT_UInt  flags;
 
78
 
 
79
  } PS_HintRec;
 
80
 
 
81
 
 
82
#define ps_hint_is_active( x )  ( (x)->flags & PS_HINT_FLAG_ACTIVE )
 
83
#define ps_hint_is_ghost( x )   ( (x)->flags & PS_HINT_FLAG_GHOST  )
 
84
#define ps_hint_is_bottom( x )  ( (x)->flags & PS_HINT_FLAG_BOTTOM )
 
85
 
 
86
 
 
87
  /* hints table descriptor */
 
88
  typedef struct  PS_Hint_TableRec_
 
89
  {
 
90
    FT_UInt  num_hints;
 
91
    FT_UInt  max_hints;
 
92
    PS_Hint  hints;
 
93
 
 
94
  } PS_Hint_TableRec, *PS_Hint_Table;
 
95
 
 
96
 
 
97
  /* hint and counter mask descriptor */
 
98
  typedef struct  PS_MaskRec_
 
99
  {
 
100
    FT_UInt   num_bits;
 
101
    FT_UInt   max_bits;
 
102
    FT_Byte*  bytes;
 
103
    FT_UInt   end_point;
 
104
 
 
105
  } PS_MaskRec, *PS_Mask;
 
106
 
 
107
 
 
108
  /* masks and counters table descriptor */
 
109
  typedef struct  PS_Mask_TableRec_
 
110
  {
 
111
    FT_UInt  num_masks;
 
112
    FT_UInt  max_masks;
 
113
    PS_Mask  masks;
 
114
 
 
115
  } PS_Mask_TableRec, *PS_Mask_Table;
 
116
 
 
117
 
 
118
 /* dimension-specific hints descriptor */
 
119
  typedef struct  PS_DimensionRec_
 
120
  {
 
121
    PS_Hint_TableRec  hints;
 
122
    PS_Mask_TableRec  masks;
 
123
    PS_Mask_TableRec  counters;
 
124
 
 
125
  } PS_DimensionRec, *PS_Dimension;
 
126
 
 
127
 
 
128
  /* glyph hints descriptor                                */
 
129
  /* dimension 0 => X coordinates + vertical hints/stems   */
 
130
  /* dimension 1 => Y coordinates + horizontal hints/stems */
 
131
  typedef struct  PS_HintsRec_
 
132
  {
 
133
    FT_Memory        memory;
 
134
    FT_Error         error;
 
135
    FT_UInt32        magic;
 
136
    PS_Hint_Type     hint_type;
 
137
    PS_DimensionRec  dimension[2];
 
138
 
 
139
  } PS_HintsRec, *PS_Hints;
 
140
 
 
141
  /* */
 
142
 
 
143
  /* initialize hints recorder */
 
144
  FT_LOCAL( FT_Error )
 
145
  ps_hints_init( PS_Hints   hints,
 
146
                 FT_Memory  memory );
 
147
 
 
148
  /* finalize hints recorder */
 
149
  FT_LOCAL( void )
 
150
  ps_hints_done( PS_Hints  hints );
 
151
 
 
152
  /* initialize Type1 hints recorder interface */
 
153
  FT_LOCAL( void )
 
154
  t1_hints_funcs_init( T1_Hints_FuncsRec*  funcs );
 
155
 
 
156
  /* initialize Type2 hints recorder interface */
 
157
  FT_LOCAL( void )
 
158
  t2_hints_funcs_init( T2_Hints_FuncsRec*  funcs );
 
159
 
 
160
 
 
161
#ifdef DEBUG_HINTER
 
162
  extern PS_Hints  ps_debug_hints;
 
163
  extern  int      ps_debug_no_horz_hints;
 
164
  extern  int      ps_debug_no_vert_hints;
 
165
#endif
 
166
 
 
167
 /* */
 
168
 
 
169
 
 
170
FT_END_HEADER
 
171
 
 
172
 
 
173
#endif /* __PS_HINTER_RECORD_H__ */
 
174
 
 
175
 
 
176
/* END */