FTGL
2.1.3~rc5
Main Page
Related Pages
Namespaces
Data Structures
Files
File List
Globals
src
FTGL
FTFont.h
Go to the documentation of this file.
1
/*
2
* FTGL - OpenGL font library
3
*
4
* Copyright (c) 2001-2004 Henry Maddocks <ftgl@opengl.geek.nz>
5
* Copyright (c) 2008 Sam Hocevar <sam@zoy.org>
6
* Copyright (c) 2008 Sean Morrison <learner@brlcad.org>
7
*
8
* Permission is hereby granted, free of charge, to any person obtaining
9
* a copy of this software and associated documentation files (the
10
* "Software"), to deal in the Software without restriction, including
11
* without limitation the rights to use, copy, modify, merge, publish,
12
* distribute, sublicense, and/or sell copies of the Software, and to
13
* permit persons to whom the Software is furnished to do so, subject to
14
* the following conditions:
15
*
16
* The above copyright notice and this permission notice shall be
17
* included in all copies or substantial portions of the Software.
18
*
19
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
21
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
22
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
23
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
24
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
25
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26
*/
27
28
#ifndef __ftgl__
29
# warning This header is deprecated. Please use <FTGL/ftgl.h> from now.
30
# include <
FTGL/ftgl.h
>
31
#endif
32
33
#ifndef __FTFont__
34
#define __FTFont__
35
36
#ifdef __cplusplus
37
38
class
FTFontImpl;
39
56
class
FTGL_EXPORT
FTFont
57
{
58
protected
:
64
FTFont
(
char
const
*fontFilePath);
65
74
FTFont
(
const
unsigned
char
*pBufferBytes,
size_t
bufferSizeInBytes);
75
76
private
:
77
/* Allow our internal subclasses to access the private constructor */
78
friend
class
FTBitmapFont
;
79
friend
class
FTBufferFont
;
80
friend
class
FTExtrudeFont
;
81
friend
class
FTOutlineFont
;
82
friend
class
FTPixmapFont
;
83
friend
class
FTPolygonFont
;
84
friend
class
FTTextureFont
;
85
92
FTFont
(
FTFontImpl
*pImpl);
93
94
public
:
95
virtual
~FTFont
();
96
106
virtual
bool
Attach
(
const
char
* fontFilePath);
107
118
virtual
bool
Attach
(
const
unsigned
char
*pBufferBytes,
119
size_t
bufferSizeInBytes);
120
128
virtual
void
GlyphLoadFlags
(FT_Int flags);
129
137
virtual
bool
CharMap
(FT_Encoding encoding);
138
144
virtual
unsigned
int
CharMapCount
()
const
;
145
151
virtual
FT_Encoding*
CharMapList
();
152
160
virtual
bool
FaceSize
(
const
unsigned
int
size,
161
const
unsigned
int
res = 72);
162
168
virtual
unsigned
int
FaceSize
()
const
;
169
176
virtual
void
Depth
(
float
depth);
177
184
virtual
void
Outset
(
float
outset);
185
193
virtual
void
Outset
(
float
front,
float
back);
194
201
virtual
void
UseDisplayList
(
bool
useList);
202
208
virtual
float
Ascender
()
const
;
209
215
virtual
float
Descender
()
const
;
216
222
virtual
float
LineHeight
()
const
;
223
236
virtual
FTBBox
BBox
(
const
char
*
string
,
const
int
len = -1,
237
FTPoint
position =
FTPoint
(),
238
FTPoint
spacing =
FTPoint
());
239
251
void
BBox
(
const
char
*
string
,
float
& llx,
float
& lly,
float
& llz,
252
float
& urx,
float
& ury,
float
& urz)
253
{
254
FTBBox
b =
BBox
(
string
);
255
llx = b.
Lower
().
Xf
(); lly = b.
Lower
().
Yf
(); llz = b.
Lower
().
Zf
();
256
urx = b.
Upper
().
Xf
(); ury = b.
Upper
().
Yf
(); urz = b.
Upper
().
Zf
();
257
}
258
271
virtual
FTBBox
BBox
(
const
wchar_t
*
string
,
const
int
len = -1,
272
FTPoint
position =
FTPoint
(),
273
FTPoint
spacing =
FTPoint
());
274
286
void
BBox
(
const
wchar_t
*
string
,
float
& llx,
float
& lly,
float
& llz,
287
float
& urx,
float
& ury,
float
& urz)
288
{
289
FTBBox
b =
BBox
(
string
);
290
llx = b.
Lower
().
Xf
(); lly = b.
Lower
().
Yf
(); llz = b.
Lower
().
Zf
();
291
urx = b.
Upper
().
Xf
(); ury = b.
Upper
().
Yf
(); urz = b.
Upper
().
Zf
();
292
}
293
305
virtual
float
Advance
(
const
char
*
string
,
const
int
len = -1,
306
FTPoint
spacing =
FTPoint
());
307
319
virtual
float
Advance
(
const
wchar_t
*
string
,
const
int
len = -1,
320
FTPoint
spacing =
FTPoint
());
321
335
virtual
FTPoint
Render
(
const
char
*
string
,
const
int
len = -1,
336
FTPoint
position =
FTPoint
(),
337
FTPoint
spacing =
FTPoint
(),
338
int
renderMode =
FTGL::RENDER_ALL
);
339
353
virtual
FTPoint
Render
(
const
wchar_t
*
string
,
const
int
len = -1,
354
FTPoint
position =
FTPoint
(),
355
FTPoint
spacing =
FTPoint
(),
356
int
renderMode =
FTGL::RENDER_ALL
);
357
363
virtual
FT_Error
Error
()
const
;
364
365
protected
:
366
/* Allow impl to access MakeGlyph */
367
friend
class
FTFontImpl;
368
378
virtual
FTGlyph
* MakeGlyph(FT_GlyphSlot slot) = 0;
379
380
private
:
384
FTFontImpl *impl;
385
};
386
387
#endif //__cplusplus
388
389
FTGL_BEGIN_C_DECLS
390
398
struct
_FTGLFont;
399
typedef
struct
_FTGLfont
FTGLfont
;
400
409
FTGL_EXPORT
FTGLfont
*
ftglCreateCustomFont
(
char
const
*fontFilePath,
410
void
*data,
411
FTGLglyph
* (*makeglyphCallback) (FT_GlyphSlot,
void
*));
412
418
FTGL_EXPORT
void
ftglDestroyFont
(
FTGLfont
* font);
419
429
FTGL_EXPORT
int
ftglAttachFile
(
FTGLfont
* font,
const
char
* path);
430
441
FTGL_EXPORT
int
ftglAttachData
(
FTGLfont
* font,
const
unsigned
char
* data,
442
size_t
size);
443
451
FTGL_EXPORT
int
ftglSetFontCharMap
(
FTGLfont
* font, FT_Encoding encoding);
452
459
FTGL_EXPORT
unsigned
int
ftglGetFontCharMapCount
(
FTGLfont
* font);
460
467
FTGL_EXPORT
FT_Encoding*
ftglGetFontCharMapList
(
FTGLfont
* font);
468
478
FTGL_EXPORT
int
ftglSetFontFaceSize
(
FTGLfont
* font,
unsigned
int
size,
479
unsigned
int
res);
480
487
FTGL_EXPORT
unsigned
int
ftglGetFontFaceSize
(
FTGLfont
* font);
488
496
FTGL_EXPORT
void
ftglSetFontDepth
(
FTGLfont
* font,
float
depth);
497
507
FTGL_EXPORT
void
ftglSetFontOutset
(
FTGLfont
* font,
float
front,
float
back);
508
516
FTGL_EXPORT
void
ftglSetFontDisplayList
(
FTGLfont
* font,
int
useList);
517
524
FTGL_EXPORT
float
ftglGetFontAscender
(
FTGLfont
* font);
525
532
FTGL_EXPORT
float
ftglGetFontDescender
(
FTGLfont
* font);
533
540
FTGL_EXPORT
float
ftglGetFontLineHeight
(
FTGLfont
* font);
541
552
FTGL_EXPORT
void
ftglGetFontBBox
(
FTGLfont
* font,
const
char
*
string
,
553
int
len,
float
bounds[6]);
554
562
FTGL_EXPORT
float
ftglGetFontAdvance
(
FTGLfont
* font,
const
char
*
string
);
563
571
FTGL_EXPORT
void
ftglRenderFont
(
FTGLfont
* font,
const
char
*
string
,
int
mode);
572
579
FTGL_EXPORT
FT_Error
ftglGetFontError
(
FTGLfont
* font);
580
581
FTGL_END_C_DECLS
582
583
#endif // __FTFont__
584
Generated by
1.8.1.2