136 lines
4.1 KiB
C++
Executable File
136 lines
4.1 KiB
C++
Executable File
/*
|
|
* FTGL - OpenGL font library
|
|
*
|
|
* Copyright (c) 2001-2004 Henry Maddocks <ftgl@opengl.geek.nz>
|
|
* Copyright (c) 2008 Sam Hocevar <sam@zoy.org>
|
|
* 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;
|
|
}
|
|
#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
|
|
#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/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/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/FTLayout.h>
|
|
#include <FTGL/FTSimpleLayout.h>
|
|
|
|
#endif // __ftgl__
|