~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to src/3rdparty/freetype/include/freetype/internal/ftgloadr.h

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-08-24 04:09:09 UTC
  • Revision ID: james.westby@ubuntu.com-20050824040909-xmxe9jfr4a0w5671
Tags: upstream-4.0.0
ImportĀ upstreamĀ versionĀ 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***************************************************************************/
 
2
/*                                                                         */
 
3
/*  ftgloadr.h                                                             */
 
4
/*                                                                         */
 
5
/*    The FreeType glyph loader (specification).                           */
 
6
/*                                                                         */
 
7
/*  Copyright 2002, 2003 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 __FTGLOADR_H__
 
20
#define __FTGLOADR_H__
 
21
 
 
22
 
 
23
#include <ft2build.h>
 
24
#include FT_FREETYPE_H
 
25
 
 
26
 
 
27
FT_BEGIN_HEADER
 
28
 
 
29
 
 
30
  /*************************************************************************/
 
31
  /*                                                                       */
 
32
  /* <Struct>                                                              */
 
33
  /*    FT_GlyphLoader                                                     */
 
34
  /*                                                                       */
 
35
  /* <Description>                                                         */
 
36
  /*    The glyph loader is an internal object used to load several glyphs */
 
37
  /*    together (for example, in the case of composites).                 */
 
38
  /*                                                                       */
 
39
  /* <Note>                                                                */
 
40
  /*    The glyph loader implementation is not part of the high-level API, */
 
41
  /*    hence the forward structure declaration.                           */
 
42
  /*                                                                       */
 
43
  typedef struct FT_GlyphLoaderRec_*  FT_GlyphLoader ;
 
44
 
 
45
 
 
46
#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS          1
 
47
#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES      2
 
48
#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID        4
 
49
#define FT_SUBGLYPH_FLAG_SCALE                   8
 
50
#define FT_SUBGLYPH_FLAG_XY_SCALE             0x40
 
51
#define FT_SUBGLYPH_FLAG_2X2                  0x80
 
52
#define FT_SUBGLYPH_FLAG_USE_MY_METRICS      0x200
 
53
 
 
54
 
 
55
  typedef struct  FT_SubGlyphRec_
 
56
  {
 
57
    FT_Int     index;
 
58
    FT_UShort  flags;
 
59
    FT_Int     arg1;
 
60
    FT_Int     arg2;
 
61
    FT_Matrix  transform;
 
62
    
 
63
  } FT_SubGlyphRec;
 
64
 
 
65
 
 
66
  typedef struct  FT_GlyphLoadRec_
 
67
  {
 
68
    FT_Outline   outline;       /* outline             */
 
69
    FT_Vector*   extra_points;  /* extra points table  */
 
70
    FT_UInt      num_subglyphs; /* number of subglyphs */
 
71
    FT_SubGlyph  subglyphs;     /* subglyphs           */
 
72
 
 
73
  } FT_GlyphLoadRec, *FT_GlyphLoad;
 
74
 
 
75
 
 
76
  typedef struct  FT_GlyphLoaderRec_
 
77
  {
 
78
    FT_Memory        memory;
 
79
    FT_UInt          max_points;
 
80
    FT_UInt          max_contours;
 
81
    FT_UInt          max_subglyphs;
 
82
    FT_Bool          use_extra;
 
83
 
 
84
    FT_GlyphLoadRec  base;
 
85
    FT_GlyphLoadRec  current;
 
86
 
 
87
    void*            other;            /* for possible future extension? */
 
88
 
 
89
  } FT_GlyphLoaderRec;
 
90
 
 
91
 
 
92
  /* create new empty glyph loader */
 
93
  FT_BASE( FT_Error )
 
94
  FT_GlyphLoader_New( FT_Memory        memory,
 
95
                      FT_GlyphLoader  *aloader );
 
96
 
 
97
  /* add an extra points table to a glyph loader */
 
98
  FT_BASE( FT_Error )
 
99
  FT_GlyphLoader_CreateExtra( FT_GlyphLoader  loader );
 
100
 
 
101
  /* destroy a glyph loader */
 
102
  FT_BASE( void )
 
103
  FT_GlyphLoader_Done( FT_GlyphLoader  loader );
 
104
 
 
105
  /* reset a glyph loader (frees everything int it) */
 
106
  FT_BASE( void )
 
107
  FT_GlyphLoader_Reset( FT_GlyphLoader  loader );
 
108
 
 
109
  /* rewind a glyph loader */
 
110
  FT_BASE( void )
 
111
  FT_GlyphLoader_Rewind( FT_GlyphLoader  loader );
 
112
 
 
113
  /* check that there is enough space to add `n_points' and `n_contours' */
 
114
  /* to the glyph loader                                                 */
 
115
  FT_BASE( FT_Error )
 
116
  FT_GlyphLoader_CheckPoints( FT_GlyphLoader  loader,
 
117
                              FT_UInt         n_points,
 
118
                              FT_UInt         n_contours );
 
119
 
 
120
  /* check that there is enough space to add `n_subs' sub-glyphs to */
 
121
  /* a glyph loader                                                 */
 
122
  FT_BASE( FT_Error )
 
123
  FT_GlyphLoader_CheckSubGlyphs( FT_GlyphLoader  loader,
 
124
                                 FT_UInt         n_subs );
 
125
 
 
126
  /* prepare a glyph loader, i.e. empty the current glyph */
 
127
  FT_BASE( void )
 
128
  FT_GlyphLoader_Prepare( FT_GlyphLoader  loader );
 
129
 
 
130
  /* add the current glyph to the base glyph */
 
131
  FT_BASE( void )
 
132
  FT_GlyphLoader_Add( FT_GlyphLoader  loader );
 
133
 
 
134
  /* copy points from one glyph loader to another */
 
135
  FT_BASE( FT_Error )
 
136
  FT_GlyphLoader_CopyPoints( FT_GlyphLoader  target,
 
137
                             FT_GlyphLoader  source );
 
138
 
 
139
 /* */
 
140
 
 
141
 
 
142
FT_END_HEADER
 
143
 
 
144
#endif /* __FTGLOADR_H__ */
 
145
 
 
146
 
 
147
/* END */