FTGL 2.4.0

ftgl.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@hocevar.net>
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#define __ftgl__
30
31/* We need the Freetype headers */
32#include <ft2build.h>
33#include FT_FREETYPE_H
34#include FT_GLYPH_H
35#include FT_OUTLINE_H
36
37/* Floating point types used by the library */
38 typedef double FTGL_DOUBLE;
39 typedef float FTGL_FLOAT;
40
41/* Macros used to declare C-linkage types and symbols */
42#ifdef __cplusplus
43# define FTGL_BEGIN_C_DECLS extern "C" { namespace FTGL {
44# define FTGL_END_C_DECLS } }
45#else
46# define FTGL_BEGIN_C_DECLS
47# define FTGL_END_C_DECLS
48#endif
49
50#ifdef __cplusplus
51 namespace FTGL
52{
53 typedef enum
54 {
55 RENDER_FRONT = 0x0001,
56 RENDER_BACK = 0x0002,
57 RENDER_SIDE = 0x0004,
58 RENDER_ALL = 0xffff
59 } RenderMode;
60
61 typedef enum
62 {
63 ALIGN_LEFT = 0,
64 ALIGN_CENTER = 1,
65 ALIGN_RIGHT = 2,
66 ALIGN_JUSTIFY = 3
67 } TextAlignment;
68
69 typedef enum
70 {
71 CONFIG_VERSION = 1,
72 } ConfigString;
73
82 extern char const *GetString(ConfigString config);
83}
84#else
85# define FTGL_RENDER_FRONT 0x0001
86# define FTGL_RENDER_BACK 0x0002
87# define FTGL_RENDER_SIDE 0x0004
88# define FTGL_RENDER_ALL 0xffff
89
90# define FTGL_ALIGN_LEFT 0
91# define FTGL_ALIGN_CENTER 1
92# define FTGL_ALIGN_RIGHT 2
93# define FTGL_ALIGN_JUSTIFY 3
94
95# define FTGL_CONFIG_VERSION 1
96
105 extern char const *ftglGetString(int config);
106#endif
107
108// Compiler-specific conditional compilation
109#ifdef _MSC_VER // MS Visual C++
110
111 // Disable various warning.
112 // 4786: template name too long
113 #pragma warning(disable : 4251)
114 #pragma warning(disable : 4275)
115 #pragma warning(disable : 4786)
116
117 // The following definitions control how symbols are exported.
118 // If the target is a static library ensure that FTGL_LIBRARY_STATIC
119 // is defined. If building a dynamic library (ie DLL) ensure the
120 // FTGL_LIBRARY macro is defined, as it will mark symbols for
121 // export. If compiling a project to _use_ the _dynamic_ library
122 // version of the library, no definition is required.
123 #ifdef FTGL_LIBRARY_STATIC // static lib - no special export required
124 # define FTGL_EXPORT
125 #elif FTGL_LIBRARY // dynamic lib - must export/import symbols appropriately.
126 # define FTGL_EXPORT __declspec(dllexport)
127 #else
128 # define FTGL_EXPORT __declspec(dllimport)
129 #endif
130
131#else
132 // Compiler that is not MS Visual C++.
133 // Ensure that the export symbol is defined (and blank)
134 #define FTGL_EXPORT
135#endif
136
137#include <FTGL/FTLibrary.h>
138
139#include <FTGL/FTPoint.h>
140#include <FTGL/FTBBox.h>
141#include <FTGL/FTBuffer.h>
142
143#include <FTGL/FTGlyph.h>
144#include <FTGL/FTBitmapGlyph.h>
145#include <FTGL/FTBufferGlyph.h>
146#include <FTGL/FTExtrdGlyph.h>
147#include <FTGL/FTOutlineGlyph.h>
148#include <FTGL/FTPixmapGlyph.h>
149#include <FTGL/FTPolyGlyph.h>
150#include <FTGL/FTTextureGlyph.h>
151#include <FTGL/FTTriangleExtractorGlyph.h>
152
153#include <FTGL/FTFont.h>
154#include <FTGL/FTGLBitmapFont.h>
155#include <FTGL/FTBufferFont.h>
156#include <FTGL/FTGLExtrdFont.h>
157#include <FTGL/FTGLOutlineFont.h>
158#include <FTGL/FTGLPixmapFont.h>
159#include <FTGL/FTGLPolygonFont.h>
160#include <FTGL/FTGLTextureFont.h>
161#include <FTGL/FTGLTriangleExtractorFont.h>
162
163#include <FTGL/FTLayout.h>
164#include <FTGL/FTSimpleLayout.h>
165
166#endif // __ftgl__
FTBBox.h
FTBitmapGlyph.h
FTBufferFont.h
FTBufferGlyph.h
FTBuffer.h
FTExtrdGlyph.h
FTFont.h
FTGLBitmapFont.h
FTGLExtrdFont.h
FTGLOutlineFont.h
FTGLPixmapFont.h
FTGLPolygonFont.h
FTGLTextureFont.h
FTGLTriangleExtractorFont.h
FTGlyph.h
FTLayout.h
FTLibrary.h
FTOutlineGlyph.h
FTPixmapGlyph.h
FTPoint.h
FTPolyGlyph.h
FTSimpleLayout.h
FTTextureGlyph.h
FTTriangleExtractorGlyph.h
FTGL_FLOAT
float FTGL_FLOAT
Definition ftgl.h:39
FTGL_DOUBLE
double FTGL_DOUBLE
Definition ftgl.h:38
FTGL
Definition ftgl.h:52
FTGL::TextAlignment
TextAlignment
Definition ftgl.h:62
FTGL::ALIGN_JUSTIFY
@ ALIGN_JUSTIFY
Definition ftgl.h:66
FTGL::ALIGN_RIGHT
@ ALIGN_RIGHT
Definition ftgl.h:65
FTGL::ALIGN_LEFT
@ ALIGN_LEFT
Definition ftgl.h:63
FTGL::ALIGN_CENTER
@ ALIGN_CENTER
Definition ftgl.h:64
FTGL::RenderMode
RenderMode
Definition ftgl.h:54
FTGL::RENDER_BACK
@ RENDER_BACK
Definition ftgl.h:56
FTGL::RENDER_ALL
@ RENDER_ALL
Definition ftgl.h:58
FTGL::RENDER_SIDE
@ RENDER_SIDE
Definition ftgl.h:57
FTGL::RENDER_FRONT
@ RENDER_FRONT
Definition ftgl.h:55
FTGL::GetString
char const * GetString(ConfigString config)
Return a string describing the current FTGL instance.
FTGL::ConfigString
ConfigString
Definition ftgl.h:70
FTGL::CONFIG_VERSION
@ CONFIG_VERSION
Definition ftgl.h:71