📄 ft_conf.h
字号:
/* This file is part of the FreeType project *//* ft_conf.h for the ANSI Build *//* we need the following because there are some typedefs in this file */#ifndef FT_CONF_H#define FT_CONF_H/* Define to empty if the keyword does not work. *//* #undef const *//* Define if you have a working `mmap' system call. */#undef HAVE_MMAP/* Define if you have the <stdlib.h> header file. */#define HAVE_STDLIB_H/* Define if you have the getpagesize function. */#undef HAVE_GETPAGESIZE/* Define if you have the memcpy function. */#define HAVE_MEMCPY/* Define if you have the memmove function. */#define HAVE_MEMMOVE/* Define if you have the valloc function. */#undef HAVE_VALLOC/* Define if you have the <fcntl.h> header file. Unix-specific */#undef HAVE_FCNTL_H/* command.com can't pipe stderr into a file; any message would be *//* written into the graphics screen. */#define HAVE_PRINT_FUNCTION 1#define Print( format, ap ) vfprintf( stdout, (format), (ap) )/* The number of bytes in a int. We use the ANSI header file limits.h *//* for determining it since there is no easy way to guess. *//* */#include <limits.h>#if UINT_MAX == 0xFFFF#define SIZEOF_INT 2#elif UINT_MAX == 0xFFFFFFFF#define SIZEOF_INT 4#else#error "Unsupported number of bytes in `int' type!"#endif/* We now try to guess the size of longs in the same way *//* */#if ULONG_MAX == 0xFFFFFFFF#define SIZEOF_LONG 4#elif ULONG_MAX == 0xFFFFFFFFFFFFFFFF#define SIZEOF_LONG 8#else#error "Unsupported number of bytes in `long' type!"#endif/**********************************************************************//* *//* The following configuration macros can be tweaked manually by *//* a developer to turn on or off certain features or options in the *//* TrueType engine. This may be useful to tune it for specific *//* purposes.. *//* *//**********************************************************************//*************************************************************************//* Define this if the underlying operating system uses a different *//* character width than 8bit for file names. You must then also supply *//* a typedef declaration for defining 'TT_Text'. Default is off. *//* #define HAVE_TT_TEXT *//*************************************************************************//* Define this if you want to generate code to support engine extensions *//* Default is on, but if you're satisfied by the basic services provided *//* by the engine and need no extensions, undefine this configuration *//* macro to save a few more bytes. */#define TT_CONFIG_OPTION_EXTEND_ENGINE/*************************************************************************//* Define this if you want to generate code to support gray-scaling, *//* a.k.a. font-smoothing or anti-aliasing. Default is on, but you can *//* disable it if you don't need it. */#define TT_CONFIG_OPTION_GRAY_SCALING/*************************************************************************//* Define this if you want to completely disable the use of the bytecode *//* interpreter. Doing so will produce a much smaller library, but the *//* quality of the rendered glyphs will enormously suffer from this. *//* *//* This switch was introduced due to the Apple patents issue which *//* emerged recently on the FreeType lists. We still do not have Apple's *//* opinion on the subject and will change this as soon as we have. */#undef TT_CONFIG_OPTION_NO_INTERPRETER/*************************************************************************//* Define this if you want to use a big 'switch' statement within the *//* bytecode interpreter. Because some non-optimizing compilers are not *//* able to produce jump tables from such statements, undefining this *//* configuration macro will generate the appropriate C jump table in *//* ttinterp.c. If you use an optimizing compiler, you should leave it *//* defined for better performance and code compactness.. */#define TT_CONFIG_OPTION_INTERPRETER_SWITCH/*************************************************************************//* Define this if you want to build a 'static' version of the TrueType *//* bytecode interpreter. This will produce much bigger code, which *//* _may_ be faster on some architectures.. *//* *//* Do NOT DEFINE THIS is you build a thread-safe version of the engine *//* */#undef TT_CONFIG_OPTION_STATIC_INTERPRETER/*************************************************************************//* Define this if you want to build a 'static' version of the scan-line *//* converter (the component which in charge of converting outlines into *//* bitmaps). This will produce a bigger object file for "ttraster.c", *//* which _may_ be faster on some architectures.. *//* *//* Do NOT DEFINE THIS is you build a thread-safe version of the engine *//* */#define TT_CONFIG_OPTION_STATIC_RASTER/*************************************************************************//* Define TT_CONFIG_THREAD_SAFE if you want to build a thread-safe *//* version of the library. */#undef TT_CONFIG_OPTION_THREAD_SAFE/**********************************************************************//* *//* The following macros are used to define the debug level, as well *//* as individual tracing levels for each component. There are *//* currently three modes of operation : *//* *//* - trace mode (define DEBUG_LEVEL_TRACE) *//* *//* The engine prints all error messages, as well as tracing *//* ones, filtered by each component's level *//* *//* - debug mode (define DEBUG_LEVEL_ERROR) *//* *//* Disable tracing, but keeps error output and assertion *//* checks. *//* *//* - release mode (don't define anything) *//* *//* Don't include error-checking or tracing code in the *//* engine's code. Ideal for releases. *//* *//* NOTE : *//* *//* Each component's tracing level is defined in its own source. *//* *//**********************************************************************//* Define if you want to use the tracing debug mode */#undef DEBUG_LEVEL_TRACE/* Define if you want to use the error debug mode - ignored if *//* DEBUG_LEVEL_TRACE is defined */#undef DEBUG_LEVEL_ERROR/**************************************************************************//* Definition of various integer sizes. These types are used by ttcalc *//* and ttinterp (for the 64-bit integers) only.. */#if SIZEOF_INT == 4 typedef signed int TT_Int32; typedef unsigned int TT_Word32;#elif SIZEOF_LONG == 4 typedef signed long TT_Int32; typedef unsigned long TT_Word32;#else#error "no 32bit type found"#endif#if SIZEOF_LONG == 8/* LONG64 must be defined when a 64-bit type is available *//* INT64 must then be defined to this type.. */#define LONG64#define INT64 long#else/* GCC provides the non-ANSI 'long long' 64-bit type. You can activate *//* by defining the TT_USE_LONG_LONG macro in 'ft_conf.h'. Note that this *//* will produce many -ansi warnings during library compilation. */#ifdef TT_USE_LONG_LONG#define LONG64#define INT64 long long#endif /* TT_USE_LONG_LONG */#endif#endif /* FT_CONF_H *//* END */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -