📄 ttconfig.h
字号:
/******************************************************************* * * ttconfig.h 1.0 * * Configuration settings header file (spec only). * * Copyright 1996-1999 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"/**************************************************************************//* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe *//* version of the library. *//* #define TT_CONFIG_OPTION_THREAD_SAFE *//* ------------ general debugging -------------------------------------- *//************************************************************************* * * There are now three debugging modes: * * - trace mode: * * Error and trace messages are sent to the log file * (which can be the standard error output). Define * DEBUG_LEVEL_TRACE to enable this mode. * * - error mode: * * Only error messages are generated. Define * DEBUG_LEVEL_ERROR to enable this mode. * * - release mode: * * Error messages are neither sent nor generated. The code is * free from any debugging parts. * * * Note that you should link the engine with the 'ttdebug' component. * in case either DEBUG_LEVEL_TRACE or DEBUG_LEVEL_ERROR is defined. * * Please consult ttdebug.h for more details. *//* #define DEBUG_LEVEL_TRACE *//* #define DEBUG_LEVEL_ERROR *//* ------------ special debugging -------------------------------------- *//*************************************************************************//* Define this if you want to generate a special debug version of the *//* rasterizer. This will progressively draw the glyphs while the *//* computations are done directly on the graphics screen... (with *//* inverted glyphs). *//* *//* Use it at your own risk! It is not maintained currently. *//* *//* IMPORTANT: This is reserved to developers willing to debug the *//* rasterizer, which seems working very well in its *//* current state... *//* #define DEBUG_RASTER *//*************************************************************************//* Define this to have a simple debugger version of RunIns(). *//* *//* Use it at your own risk! It is not maintained currently. *//* #define DEBUG_INTERPRETER *//*************************************************************************//* Define this to have some housekeeping of allocation and deallocation. *//* *//* Please note that probably not all OS-specific versions of ttmemory.c *//* provide this functionality. *//* #define DEBUG_MEMORY *//*************************************************************************//* Define this to have bounds checking for file buffer frames. *//* *//* Please note that probably not all OS-specific versions of ttfile.c *//* provide this functionality. *//* #define DEBUG_FILE *//* ------------ arithmetic and processor support ----------------------- *//*************************************************************************//* Define TT_USE_LONG_LONG if you want to enable the use of the *//* 'long long' 64-bit type provided by gcc and other compilers. Note *//* that : *//* *//* 1. The type isn't ANSI, and thus will produce many warnings *//* during library compilation. *//* *//* 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! *//* *//* NOTE 2 : This flag used to be _GNUC_LONG64_ *//* #define TT_USE_LONG_LONG *//*************************************************************************//* 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/* --------------- miscellaneous ----------------------------------- *//*********************************************************************//* The number of extensions available. Don't change this value *//* except if you add new extensions to the engine. */#define TT_MAX_EXTENSIONS 8/* --------------- automatic setup -- don't touch ------------------ *//*********************************************************************//* If HAVE_TT_TEXT is defined we don't provide a default typedef for *//* defining TT_Text. */#ifndef HAVE_TT_TEXT#define HAVE_TT_TEXT typedef char TT_Text;#endif/*********************************************************************//* We define NULL in case it's not defined yet. The default *//* location is stdlib.h. */#ifdef HAVE_STDLIB_H#include <stdlib.h>#endif/*********************************************************************//* 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). *//* *//* This is only used by the "ttdebug" component, which should be *//* linked to the engine only in debug mode. */#if defined( DEBUG_LEVEL_TRACE ) || defined( DEBUG_LEVEL_ERROR )#ifndef HAVE_PRINT_FUNCTION#define Print( format, ap ) vfprintf( stderr, (format), (ap) )#endif#endif/********************************************************************//* *//* I have added the ability to compile the library into a single *//* object file. This gets rids of all the external symbols defined *//* in each component interface, and de-pollutes the name-space. *//* *//* I use two macros, namely LOCAL_FUNC and LOCAL_DEF, which only *//* apply to functions that are internal to the engine, and *//* should never be seen or linked by a client application. *//* *//* LOCAL_DEF used in header (.h) files, to define a function *//* that will be seen by other components. This *//* translates to "extern" in normal mode, and to *//* "static" in single-object mode. *//* *//* LOCAL_FUNC used in implementation (.c) files, just before *//* the function body. This translates to nothing *//* in normal mode, and to "static" in single-object *//* mode. *//* *//* Getting rid of un-necessary symbols makes the "ttcommon" *//* renaming macros hack unnecessary. Moreover, the stripped *//* single object file (freetype.o) is 52 Kb, instead of the *//* previous 57 Kb (size of all combined .o files), and gives *//* a better idea of the engine's real code size. *//* *//* It is called a "MAKE_OPTION" because the macro must be *//* defined in the Makefile, rather than this one. It allows *//* any developer to quickly switch from one mode to the other *//* without messing with "ttconfig.h" each time. *//* */#ifndef TT_MAKE_OPTION_SINGLE_OBJECT#define LOCAL_FUNC /* void */#define LOCAL_DEF extern#else#define LOCAL_FUNC static#define LOCAL_DEF static#endif/*************************************************************************//* Define EXPORT_DEF and EXPORT_FUNC as needed to build e.g. a DLL. All *//* variables and functions visible from outside have these prefixes. */#ifndef EXPORT_DEF#define EXPORT_DEF extern#endif#ifndef EXPORT_FUNC#define EXPORT_FUNC /* void */#endif/* -------------- internal (developer) configuration toggles ------------ */#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! */#endif /* TTCONFIG_H *//* END */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -