home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: SysTools
/
SysTools.zip
/
ft-beta.zip
/
freetype
/
lib
/
ttconfig.h
< prev
next >
Wrap
C/C++ Source or Header
|
1997-10-06
|
8KB
|
198 lines
/*******************************************************************
*
* ttconfig.h 1.0
*
* Configuration settings header file (spec only).
*
* Copyright 1996, 1997 by
* David Turner, Robert Wilhelm, and Werner Lemberg.
*
* This file is part of the FreeType project, and may only be used
* modified and distributed under the terms of the FreeType project
* license, LICENSE.TXT. By continuing to use, modify or distribute
* this file you indicate that you have read the license and
* understand and accept it fully.
*
* Notes :
*
* All the configuration #define statements have been gathered in
* this file to allow easy check and modification.
*
******************************************************************/
#ifndef TTCONFIG_H
#define TTCONFIG_H
/* ------------ auto configuration ------------------------------------- */
/* Here we include the file ft_conf.h for system dependent stuff. */
/* The specific makefile is responsible for providing the right path to */
/* this file. */
#include "ft_conf.h"
/* ------------ general debugging -------------------------------------- */
/* Define DEBUG if you want the program to output a series of messages */
/* to stderr regarding its behaviour. Only useful during development. */
/* #define DEBUG */
/* ------------ arithmetic and processor support - ttcalc, ttraster ---- */
/* Define ONE_COMPLEMENT if this matches your processor's artihmetic. */
/* The default is 2's complement. 1's complement is not supported yet. */
/* (and probably never will :-) */
/* #define ONE_COMPLEMENT */
/* BOUND_CALC isn't needed anymore, due to changes in the ttcalc */
/* component. All computations are now bounded.. */
/* Define _GNUC_LONG64_ if you want to enable the use of the 'long long' */
/* 64-bit type provided by gcc. Note that : */
/* */
/* 1. The type isn't ANSI, and thus will produce many warnings */
/* during lib compiles */
/* */
/* 2. Though the generated object files are slightly smaller, the */
/* resulting executables are bigger of about 4Kb ! gcc must be */
/* linking some extra code in there ! */
/* */
/* 3. There is really no speed gain in doing so (but it may help */
/* debug the ttcalc component) */
/* */
/* IMPORTANT NOTE : You don't need to define it on 64-bits machines !! */
/* #define _GNUC_LONG64_ */
/* define BUS_ERROR if your processor is unable to access words that */
/* are not aligned to their respective size (i.e. a 4byte dword */
/* beginning at address 3 will result in a bus error on a Sun) */
/* This may speed up a bit some parts of the engine */
/* #define BUS_ERROR */
/* define ALIGNMENT to your processor/environment preferred alignment */
/* size. A value of 8 should work on all current processors, even */
/* 64-bits ones.. */
#define ALIGNMENT 8
/* ------------ rasterizer configuration ----- ttraster ----------------- */
/* Define this if you want to use the 'MulDiv' function from 'ttcalc'. */
/* (it computes (A*B)/C with 64 bits intermediate accuracy. However, for */
/* 99.9% of screen display, this operation can be done directly with */
/* good accuracy, because 'B' is only a 6bit integer). */
/* */
/* Note that some compilers can manage directly 'a*b/c' with intermediate */
/* accuracy (GCC can use long longs, for example). Using the unsecure */
/* definition of MulDiv would then be sufficient. */
/* */
/* The SECURE_COMPUTATIONS option is probably a good option for 16 bits */
/* compilers. */
/* #define SECURE_COMPUTATIONS */
/* Define this if you want to generate a debug version of the rasterizer. */
/* This will progressively draw the glyphs while the computations are */
/* done directly on the graphics screen... (with inverted glyphs) */
/* */
/* IMPORTANT: This is reserved to developers willing to debug the */
/* rasterizer, which seems working very well in its */
/* current state.. */
/* #define DEBUG_RASTER */
/* The TrueType specs stipulate that the filled regions delimited by */
/* the contours must be to the right of the drawing orientation. */
/* Unfortunately, a lot of cheapo fonts do not respect this rule. */
/* */
/* Defining IGNORE_FILL_FLOW builds an engine that manages all cases. */
/* Not defining it will only draw 'valid' glyphs & contours. */
#define IGNORE_FILL_FLOW
/* We want to draw all kinds of glyphs, even incorrect ones... */
/* --------------- automatic setup -- don't touch ------------------ */
/* some systems can't use vfprintf for error messages on stderr; if */
/* HAVE_PRINT_FUNCTION is defined, the Print macro must be supplied */
/* externally (having the same parameters). */
#ifndef HAVE_PRINT_FUNCTION
#define Print( format, ap ) vfprintf( stderr, (format), (ap) )
#endif
#define FT_BIG_ENDIAN 4321
#define FT_LITTLE_ENDIAN 1234
#ifdef WORDS_BIGENDIAN
#define FT_BYTE_ORDER FT_BIG_ENDIAN
#else
#define FT_BYTE_ORDER FT_LITTLE_ENDIAN
#endif
#if FT_BYTE_ORDER == FT_BIG_ENDIAN
#ifndef BUS_ERROR
/* Some big-endian machines that are not alignment-sensitive may */
/* benefit from an easier access to the data found in the TrueType */
/* files. (used in ttfile.c) */
#define LOOSE_ACCESS
#endif /* !BUS_ERROR */
#endif /* FT_BYTE_ORDER */
/* -------------------- table management configuration ------------ */
/* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe */
/* version of the library */
#undef TT_CONFIG_THREAD_SAFE
/* Define TT_CONFIG_REENTRANT if you want to build a re-entrant version */
/* of the library. This flag takes over TT_CONFIG_THREAD_SAFE but it is */
/* highly recommended to leave only one of them defined */
#undef TT_CONFIG_REENTRANT
#if defined(TT_CONFIG_THREAD_SAFE) || defined(TT_CONFIG_REENTRANT)
#define TT_CONFIG_THREADS
#endif
/* Defining none of these two flags produces a single-thread version of */
/* the library */
#undef TT_STATIC_INTERPRETER
/* Do not undefine this configuration macro. It is now a default that */
/* must be kept in all release builds.. */
#undef TT_STATIC_RASTER
/* Define this if you want to generate a static raster. This makes */
/* a non re-entrant version of the scan-line converter, which is */
/* about 10% faster and 50% bigger than an indirect one !! */
#define TT_EXTEND_ENGINE
/* Undefine this macro if you don't want to generate any extensions to */
/* the engine. This may be useful to detect if a bug comes from the engine */
/* itself or some badly written extension.. */
#endif /* TTCONFIG_H */
/* End */