ftgl.h
Go to the documentation of this file.
/*
* FTGL - OpenGL font library
*
* Copyright (c) 2001-2004 Henry Maddocks <ftgl@opengl.geek.nz>
* Copyright (c) 2008 Sam Hocevar <sam@hocevar.net>
* Copyright (c) 2008 Sean Morrison <learner@brlcad.org>
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* "Software"), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#ifndef __ftgl__
#define __ftgl__
/* We need the Freetype headers */
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_GLYPH_H
#include FT_OUTLINE_H
/* Floating point types used by the library */
typedef double FTGL_DOUBLE;
typedef float FTGL_FLOAT;
/* Macros used to declare C-linkage types and symbols */
#ifdef __cplusplus
# define FTGL_BEGIN_C_DECLS extern "C" { namespace FTGL {
# define FTGL_END_C_DECLS } }
#else
# define FTGL_BEGIN_C_DECLS
# define FTGL_END_C_DECLS
#endif
#ifdef __cplusplus
namespace FTGL
{
typedef enum
{
RENDER_FRONT = 0x0001,
RENDER_BACK = 0x0002,
RENDER_SIDE = 0x0004,
RENDER_ALL = 0xffff
} RenderMode;
typedef enum
{
ALIGN_LEFT = 0,
ALIGN_CENTER = 1,
ALIGN_RIGHT = 2,
ALIGN_JUSTIFY = 3
} TextAlignment;
typedef enum
{
CONFIG_VERSION = 1,
} ConfigString;
extern char const *GetString(ConfigString config);
}
#else
# define FTGL_RENDER_FRONT 0x0001
# define FTGL_RENDER_BACK 0x0002
# define FTGL_RENDER_SIDE 0x0004
# define FTGL_RENDER_ALL 0xffff
# define FTGL_ALIGN_LEFT 0
# define FTGL_ALIGN_CENTER 1
# define FTGL_ALIGN_RIGHT 2
# define FTGL_ALIGN_JUSTIFY 3
# define FTGL_CONFIG_VERSION 1
extern char const *ftglGetString(int config);
#endif
// Compiler-specific conditional compilation
#ifdef _MSC_VER // MS Visual C++
// Disable various warning.
// 4786: template name too long
#pragma warning(disable : 4251)
#pragma warning(disable : 4275)
#pragma warning(disable : 4786)
// The following definitions control how symbols are exported.
// If the target is a static library ensure that FTGL_LIBRARY_STATIC
// is defined. If building a dynamic library (ie DLL) ensure the
// FTGL_LIBRARY macro is defined, as it will mark symbols for
// export. If compiling a project to _use_ the _dynamic_ library
// version of the library, no definition is required.
#ifdef FTGL_LIBRARY_STATIC // static lib - no special export required
# define FTGL_EXPORT
#elif FTGL_LIBRARY // dynamic lib - must export/import symbols appropriately.
# define FTGL_EXPORT __declspec(dllexport)
#else
# define FTGL_EXPORT __declspec(dllimport)
#endif
#else
// Compiler that is not MS Visual C++.
// Ensure that the export symbol is defined (and blank)
#define FTGL_EXPORT
#endif
#include <FTGL/FTLibrary.h>
#include <FTGL/FTPoint.h>
#include <FTGL/FTBBox.h>
#include <FTGL/FTBuffer.h>
#include <FTGL/FTGlyph.h>
#include <FTGL/FTBitmapGlyph.h>
#include <FTGL/FTBufferGlyph.h>
#include <FTGL/FTExtrdGlyph.h>
#include <FTGL/FTOutlineGlyph.h>
#include <FTGL/FTPixmapGlyph.h>
#include <FTGL/FTPolyGlyph.h>
#include <FTGL/FTTextureGlyph.h>
#include <FTGL/FTTriangleExtractorGlyph.h>
#include <FTGL/FTFont.h>
#include <FTGL/FTGLBitmapFont.h>
#include <FTGL/FTBufferFont.h>
#include <FTGL/FTGLExtrdFont.h>
#include <FTGL/FTGLOutlineFont.h>
#include <FTGL/FTGLPixmapFont.h>
#include <FTGL/FTGLPolygonFont.h>
#include <FTGL/FTGLTextureFont.h>
#include <FTGL/FTGLTriangleExtractorFont.h>
#include <FTGL/FTLayout.h>
#include <FTGL/FTSimpleLayout.h>
#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