Added new printers framework. Work in progress.
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* Implementation of the parallel-port-attached devices.
|
* Implementation of the parallel-port-attached devices.
|
||||||
*
|
*
|
||||||
* Version: @(#)parallel_dev.c 1.0.4 2018/05/06
|
* Version: @(#)parallel_dev.c 1.0.5 2018/08/31
|
||||||
*
|
*
|
||||||
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
|
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
* Miran Grca, <mgrca8@gmail.com>
|
* Miran Grca, <mgrca8@gmail.com>
|
||||||
@@ -47,6 +47,9 @@
|
|||||||
|
|
||||||
#include "../../devices/sound/snd_lpt_dac.h"
|
#include "../../devices/sound/snd_lpt_dac.h"
|
||||||
#include "../../devices/sound/snd_lpt_dss.h"
|
#include "../../devices/sound/snd_lpt_dss.h"
|
||||||
|
#if USE_PRINTERS
|
||||||
|
# include "../../devices/printer/printer_escp.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
static const struct {
|
static const struct {
|
||||||
@@ -62,6 +65,10 @@ static const struct {
|
|||||||
"lpt_dac", &lpt_dac_device },
|
"lpt_dac", &lpt_dac_device },
|
||||||
{"Stereo LPT DAC",
|
{"Stereo LPT DAC",
|
||||||
"lpt_dac_stereo", &lpt_dac_stereo_device },
|
"lpt_dac_stereo", &lpt_dac_stereo_device },
|
||||||
|
#if USE_PRINTERS
|
||||||
|
{"Generic ESC/P Dot-Matrix printer",
|
||||||
|
"lpt_printer_escp", &lpt_printer_escp_device },
|
||||||
|
#endif
|
||||||
{NULL, NULL,
|
{NULL, NULL,
|
||||||
NULL }
|
NULL }
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
* Main include file for the application.
|
* Main include file for the application.
|
||||||
*
|
*
|
||||||
* Version: @(#)emu.h 1.0.29 2018/08/27
|
* Version: @(#)emu.h 1.0.30 2018/08/31
|
||||||
*
|
*
|
||||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
*
|
*
|
||||||
@@ -59,13 +59,18 @@
|
|||||||
#define ROMS_PATH L"roms"
|
#define ROMS_PATH L"roms"
|
||||||
# define MACHINES_PATH L"machines"
|
# define MACHINES_PATH L"machines"
|
||||||
# define VIDEO_PATH L"video"
|
# define VIDEO_PATH L"video"
|
||||||
|
# define PRINTERS_PATH L"printer"
|
||||||
|
# define PFONTS_PATH L"fonts"
|
||||||
#define SCREENSHOT_PATH L"screenshots"
|
#define SCREENSHOT_PATH L"screenshots"
|
||||||
|
#define PRINTER_PATH L"printer"
|
||||||
|
|
||||||
/* Pre-defined file names and extensions. */
|
/* Pre-defined file names and extensions. */
|
||||||
|
#define PRINTER_FILE L"print"
|
||||||
#define LANG_FILE L"VARCem-"
|
#define LANG_FILE L"VARCem-"
|
||||||
#define BIOS_FILE L"bios.txt"
|
#define BIOS_FILE L"bios.txt"
|
||||||
#define CONFIG_FILE L"config.varc"
|
#define CONFIG_FILE L"config.varc"
|
||||||
#define CONFIG_FILE_EXT L".varc"
|
#define CONFIG_FILE_EXT L".varc"
|
||||||
|
#define DUMP_FILE_EXT L".dmp"
|
||||||
|
|
||||||
/* Pre-defined URLs to websites. */
|
/* Pre-defined URLs to websites. */
|
||||||
#define URL_VARCEM L"https://www.VARCem.com/"
|
#define URL_VARCEM L"https://www.VARCem.com/"
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
#
|
#
|
||||||
# Makefile for Windows systems using the MinGW32 environment.
|
# Makefile for Windows systems using the MinGW32 environment.
|
||||||
#
|
#
|
||||||
# Version: @(#)Makefile.mingw 1.0.53 2018/08/27
|
# Version: @(#)Makefile.mingw 1.0.54 2018/08/31
|
||||||
#
|
#
|
||||||
# Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
# Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
#
|
#
|
||||||
@@ -143,6 +143,9 @@ endif
|
|||||||
ifndef WONDER
|
ifndef WONDER
|
||||||
WONDER := n
|
WONDER := n
|
||||||
endif
|
endif
|
||||||
|
ifndef PRINTERS
|
||||||
|
PRINTERS := n
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
# Name of the executable.
|
# Name of the executable.
|
||||||
@@ -216,7 +219,8 @@ VPATH := $(EXPATH) . cpu \
|
|||||||
devices/cdrom devices/disk devices/floppy \
|
devices/cdrom devices/disk devices/floppy \
|
||||||
devices/floppy/lzf devices/input devices/input/game \
|
devices/floppy/lzf devices/input devices/input/game \
|
||||||
devices/network devices/network/slirp devices/ports \
|
devices/network devices/network/slirp devices/ports \
|
||||||
devices/sio devices/system devices/scsi devices/misc \
|
devices/printer devices/sio devices/system devices/scsi \
|
||||||
|
devices/misc \
|
||||||
devices/sound \
|
devices/sound \
|
||||||
devices/sound/munt devices/sound/munt/c_interface \
|
devices/sound/munt devices/sound/munt/c_interface \
|
||||||
devices/sound/munt/sha1 devices/sound/munt/srchelper \
|
devices/sound/munt/sha1 devices/sound/munt/srchelper \
|
||||||
@@ -524,6 +528,11 @@ ifeq ($(DEV_BRANCH), y)
|
|||||||
DEVBROBJ += m_at_440fx.o
|
DEVBROBJ += m_at_440fx.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(PAS16), y)
|
||||||
|
OPTS += -DUSE_PAS16
|
||||||
|
DEVBROBJ += snd_pas16.o
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(STEALTH32), y)
|
ifeq ($(STEALTH32), y)
|
||||||
OPTS += -DUSE_STEALTH32
|
OPTS += -DUSE_STEALTH32
|
||||||
DEVBROBJ += vid_icd2061.o
|
DEVBROBJ += vid_icd2061.o
|
||||||
@@ -537,9 +546,9 @@ ifeq ($(DEV_BRANCH), y)
|
|||||||
OPTS += -DUSE_XL24
|
OPTS += -DUSE_XL24
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PAS16), y)
|
ifeq ($(PRINTERS), y)
|
||||||
OPTS += -DUSE_PAS16
|
OPTS += -DUSE_PRINTERS=1
|
||||||
DEVBROBJ += snd_pas16.o
|
DEVBROBJ += printer_escp.o
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
572
src/win/mingw/include/freetype/config/ftconfig.h
Normal file
572
src/win/mingw/include/freetype/config/ftconfig.h
Normal file
@@ -0,0 +1,572 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* ftconfig.h
|
||||||
|
*
|
||||||
|
* ANSI-specific configuration file (specification only).
|
||||||
|
*
|
||||||
|
* Copyright 1996-2018 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* This header file contains a number of macro definitions that are used by
|
||||||
|
* the rest of the engine. Most of the macros here are automatically
|
||||||
|
* determined at compile time, and you should not need to change it to port
|
||||||
|
* FreeType, except to compile the library with a non-ANSI compiler.
|
||||||
|
*
|
||||||
|
* Note however that if some specific modifications are needed, we advise
|
||||||
|
* you to place a modified copy in your build directory.
|
||||||
|
*
|
||||||
|
* The build directory is usually 'builds/<system>', and contains
|
||||||
|
* system-specific files that are always included first when building the
|
||||||
|
* library.
|
||||||
|
*
|
||||||
|
* This ANSI version should stay in 'include/config/'.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FTCONFIG_H_
|
||||||
|
#define FTCONFIG_H_
|
||||||
|
|
||||||
|
#include <ft2build.h>
|
||||||
|
#include FT_CONFIG_OPTIONS_H
|
||||||
|
#include FT_CONFIG_STANDARD_LIBRARY_H
|
||||||
|
|
||||||
|
|
||||||
|
FT_BEGIN_HEADER
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* PLATFORM-SPECIFIC CONFIGURATION MACROS
|
||||||
|
*
|
||||||
|
* These macros can be toggled to suit a specific system. The current ones
|
||||||
|
* are defaults used to compile FreeType in an ANSI C environment (16bit
|
||||||
|
* compilers are also supported). Copy this file to your own
|
||||||
|
* 'builds/<system>' directory, and edit it to port the engine.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* There are systems (like the Texas Instruments 'C54x) where a `char' */
|
||||||
|
/* has 16 bits. ANSI C says that sizeof(char) is always 1. Since an */
|
||||||
|
/* `int' has 16 bits also for this system, sizeof(int) gives 1 which */
|
||||||
|
/* is probably unexpected. */
|
||||||
|
/* */
|
||||||
|
/* `CHAR_BIT' (defined in limits.h) gives the number of bits in a */
|
||||||
|
/* `char' type. */
|
||||||
|
|
||||||
|
#ifndef FT_CHAR_BIT
|
||||||
|
#define FT_CHAR_BIT CHAR_BIT
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* The size of an `int' type. */
|
||||||
|
#if FT_UINT_MAX == 0xFFFFUL
|
||||||
|
#define FT_SIZEOF_INT ( 16 / FT_CHAR_BIT )
|
||||||
|
#elif FT_UINT_MAX == 0xFFFFFFFFUL
|
||||||
|
#define FT_SIZEOF_INT ( 32 / FT_CHAR_BIT )
|
||||||
|
#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL
|
||||||
|
#define FT_SIZEOF_INT ( 64 / FT_CHAR_BIT )
|
||||||
|
#else
|
||||||
|
#error "Unsupported size of `int' type!"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* The size of a `long' type. A five-byte `long' (as used e.g. on the */
|
||||||
|
/* DM642) is recognized but avoided. */
|
||||||
|
#if FT_ULONG_MAX == 0xFFFFFFFFUL
|
||||||
|
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
|
||||||
|
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL
|
||||||
|
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
|
||||||
|
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL
|
||||||
|
#define FT_SIZEOF_LONG ( 64 / FT_CHAR_BIT )
|
||||||
|
#else
|
||||||
|
#error "Unsupported size of `long' type!"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* FT_UNUSED is a macro used to indicate that a given parameter is not */
|
||||||
|
/* used -- this is only used to get rid of unpleasant compiler warnings */
|
||||||
|
#ifndef FT_UNUSED
|
||||||
|
#define FT_UNUSED( arg ) ( (arg) = (arg) )
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* AUTOMATIC CONFIGURATION MACROS
|
||||||
|
*
|
||||||
|
* These macros are computed from the ones defined above. Don't touch
|
||||||
|
* their definition, unless you know precisely what you are doing. No
|
||||||
|
* porter should need to mess with them.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Mac support
|
||||||
|
*
|
||||||
|
* This is the only necessary change, so it is defined here instead
|
||||||
|
* providing a new configuration file.
|
||||||
|
*/
|
||||||
|
#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) )
|
||||||
|
/* no Carbon frameworks for 64bit 10.4.x */
|
||||||
|
/* AvailabilityMacros.h is available since Mac OS X 10.2, */
|
||||||
|
/* so guess the system version by maximum errno before inclusion */
|
||||||
|
#include <errno.h>
|
||||||
|
#ifdef ECANCELED /* defined since 10.2 */
|
||||||
|
#include "AvailabilityMacros.h"
|
||||||
|
#endif
|
||||||
|
#if defined( __LP64__ ) && \
|
||||||
|
( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 )
|
||||||
|
#undef FT_MACINTOSH
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#elif defined( __SC__ ) || defined( __MRC__ )
|
||||||
|
/* Classic MacOS compilers */
|
||||||
|
#include "ConditionalMacros.h"
|
||||||
|
#if TARGET_OS_MAC
|
||||||
|
#define FT_MACINTOSH 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Fix compiler warning with sgi compiler */
|
||||||
|
#if defined( __sgi ) && !defined( __GNUC__ )
|
||||||
|
#if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
|
||||||
|
#pragma set woff 3505
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @section:
|
||||||
|
* basic_types
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Int16
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for a 16bit signed integer type.
|
||||||
|
*/
|
||||||
|
typedef signed short FT_Int16;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_UInt16
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for a 16bit unsigned integer type.
|
||||||
|
*/
|
||||||
|
typedef unsigned short FT_UInt16;
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
|
||||||
|
/* this #if 0 ... #endif clause is for documentation purposes */
|
||||||
|
#if 0
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Int32
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for a 32bit signed integer type. The size depends on the
|
||||||
|
* configuration.
|
||||||
|
*/
|
||||||
|
typedef signed XXX FT_Int32;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_UInt32
|
||||||
|
*
|
||||||
|
* A typedef for a 32bit unsigned integer type. The size depends on the
|
||||||
|
* configuration.
|
||||||
|
*/
|
||||||
|
typedef unsigned XXX FT_UInt32;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Int64
|
||||||
|
*
|
||||||
|
* A typedef for a 64bit signed integer type. The size depends on the
|
||||||
|
* configuration. Only defined if there is real 64bit support;
|
||||||
|
* otherwise, it gets emulated with a structure (if necessary).
|
||||||
|
*/
|
||||||
|
typedef signed XXX FT_Int64;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_UInt64
|
||||||
|
*
|
||||||
|
* A typedef for a 64bit unsigned integer type. The size depends on the
|
||||||
|
* configuration. Only defined if there is real 64bit support;
|
||||||
|
* otherwise, it gets emulated with a structure (if necessary).
|
||||||
|
*/
|
||||||
|
typedef unsigned XXX FT_UInt64;
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if FT_SIZEOF_INT == ( 32 / FT_CHAR_BIT )
|
||||||
|
|
||||||
|
typedef signed int FT_Int32;
|
||||||
|
typedef unsigned int FT_UInt32;
|
||||||
|
|
||||||
|
#elif FT_SIZEOF_LONG == ( 32 / FT_CHAR_BIT )
|
||||||
|
|
||||||
|
typedef signed long FT_Int32;
|
||||||
|
typedef unsigned long FT_UInt32;
|
||||||
|
|
||||||
|
#else
|
||||||
|
#error "no 32bit type found -- please check your configuration files"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* look up an integer type that is at least 32 bits */
|
||||||
|
#if FT_SIZEOF_INT >= ( 32 / FT_CHAR_BIT )
|
||||||
|
|
||||||
|
typedef int FT_Fast;
|
||||||
|
typedef unsigned int FT_UFast;
|
||||||
|
|
||||||
|
#elif FT_SIZEOF_LONG >= ( 32 / FT_CHAR_BIT )
|
||||||
|
|
||||||
|
typedef long FT_Fast;
|
||||||
|
typedef unsigned long FT_UFast;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* determine whether we have a 64-bit int type for platforms without */
|
||||||
|
/* Autoconf */
|
||||||
|
#if FT_SIZEOF_LONG == ( 64 / FT_CHAR_BIT )
|
||||||
|
|
||||||
|
/* FT_LONG64 must be defined if a 64-bit type is available */
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long
|
||||||
|
#define FT_UINT64 unsigned long
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* A 64-bit data type may create compilation problems if you compile in
|
||||||
|
* strict ANSI mode. To avoid them, we disable other 64-bit data types if
|
||||||
|
* __STDC__ is defined. You can however ignore this rule by defining the
|
||||||
|
* FT_CONFIG_OPTION_FORCE_INT64 configuration macro.
|
||||||
|
*/
|
||||||
|
#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
|
||||||
|
|
||||||
|
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
|
||||||
|
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long long int
|
||||||
|
#define FT_UINT64 unsigned long long int
|
||||||
|
|
||||||
|
#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
|
||||||
|
|
||||||
|
/* this compiler provides the __int64 type */
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 __int64
|
||||||
|
#define FT_UINT64 unsigned __int64
|
||||||
|
|
||||||
|
#elif defined( __BORLANDC__ ) /* Borland C++ */
|
||||||
|
|
||||||
|
/* XXXX: We should probably check the value of __BORLANDC__ in order */
|
||||||
|
/* to test the compiler version. */
|
||||||
|
|
||||||
|
/* this compiler provides the __int64 type */
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 __int64
|
||||||
|
#define FT_UINT64 unsigned __int64
|
||||||
|
|
||||||
|
#elif defined( __WATCOMC__ ) /* Watcom C++ */
|
||||||
|
|
||||||
|
/* Watcom doesn't provide 64-bit data types */
|
||||||
|
|
||||||
|
#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
|
||||||
|
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long long int
|
||||||
|
#define FT_UINT64 unsigned long long int
|
||||||
|
|
||||||
|
#elif defined( __GNUC__ )
|
||||||
|
|
||||||
|
/* GCC provides the `long long' type */
|
||||||
|
#define FT_LONG64
|
||||||
|
#define FT_INT64 long long int
|
||||||
|
#define FT_UINT64 unsigned long long int
|
||||||
|
|
||||||
|
#endif /* __STDC_VERSION__ >= 199901L */
|
||||||
|
|
||||||
|
#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
|
||||||
|
|
||||||
|
#ifdef FT_LONG64
|
||||||
|
typedef FT_INT64 FT_Int64;
|
||||||
|
typedef FT_UINT64 FT_UInt64;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef _WIN64
|
||||||
|
/* only 64bit Windows uses the LLP64 data model, i.e., */
|
||||||
|
/* 32bit integers, 64bit pointers */
|
||||||
|
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x)
|
||||||
|
#else
|
||||||
|
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* miscellaneous
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define FT_BEGIN_STMNT do {
|
||||||
|
#define FT_END_STMNT } while ( 0 )
|
||||||
|
#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
|
||||||
|
|
||||||
|
|
||||||
|
/* typeof condition taken from gnulib's `intprops.h' header file */
|
||||||
|
#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \
|
||||||
|
( defined( __IBMC__ ) && __IBMC__ >= 1210 && \
|
||||||
|
defined( __IBM__TYPEOF__ ) ) || \
|
||||||
|
( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
|
||||||
|
#define FT_TYPEOF( type ) ( __typeof__ ( type ) )
|
||||||
|
#else
|
||||||
|
#define FT_TYPEOF( type ) /* empty */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Use FT_LOCAL and FT_LOCAL_DEF to declare and define, respectively, */
|
||||||
|
/* a function that gets used only within the scope of a module. */
|
||||||
|
/* Normally, both the header and source code files for such a */
|
||||||
|
/* function are within a single module directory. */
|
||||||
|
/* */
|
||||||
|
/* Intra-module arrays should be tagged with FT_LOCAL_ARRAY and */
|
||||||
|
/* FT_LOCAL_ARRAY_DEF. */
|
||||||
|
/* */
|
||||||
|
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
|
||||||
|
|
||||||
|
#define FT_LOCAL( x ) static x
|
||||||
|
#define FT_LOCAL_DEF( x ) static x
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_LOCAL( x ) extern "C" x
|
||||||
|
#define FT_LOCAL_DEF( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_LOCAL( x ) extern x
|
||||||
|
#define FT_LOCAL_DEF( x ) x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
|
||||||
|
|
||||||
|
#define FT_LOCAL_ARRAY( x ) extern const x
|
||||||
|
#define FT_LOCAL_ARRAY_DEF( x ) const x
|
||||||
|
|
||||||
|
|
||||||
|
/* Use FT_BASE and FT_BASE_DEF to declare and define, respectively, */
|
||||||
|
/* functions that are used in more than a single module. In the */
|
||||||
|
/* current setup this implies that the declaration is in a header */
|
||||||
|
/* file in the `include/freetype/internal' directory, and the */
|
||||||
|
/* function body is in a file in `src/base'. */
|
||||||
|
/* */
|
||||||
|
#ifndef FT_BASE
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_BASE( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_BASE( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_BASE */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FT_BASE_DEF
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_BASE_DEF( x ) x
|
||||||
|
#else
|
||||||
|
#define FT_BASE_DEF( x ) x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_BASE_DEF */
|
||||||
|
|
||||||
|
|
||||||
|
/* When compiling FreeType as a DLL or DSO with hidden visibility */
|
||||||
|
/* some systems/compilers need a special attribute in front OR after */
|
||||||
|
/* the return type of function declarations. */
|
||||||
|
/* */
|
||||||
|
/* Two macros are used within the FreeType source code to define */
|
||||||
|
/* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */
|
||||||
|
/* */
|
||||||
|
/* FT_EXPORT( return_type ) */
|
||||||
|
/* */
|
||||||
|
/* is used in a function declaration, as in */
|
||||||
|
/* */
|
||||||
|
/* FT_EXPORT( FT_Error ) */
|
||||||
|
/* FT_Init_FreeType( FT_Library* alibrary ); */
|
||||||
|
/* */
|
||||||
|
/* */
|
||||||
|
/* FT_EXPORT_DEF( return_type ) */
|
||||||
|
/* */
|
||||||
|
/* is used in a function definition, as in */
|
||||||
|
/* */
|
||||||
|
/* FT_EXPORT_DEF( FT_Error ) */
|
||||||
|
/* FT_Init_FreeType( FT_Library* alibrary ) */
|
||||||
|
/* { */
|
||||||
|
/* ... some code ... */
|
||||||
|
/* return FT_Err_Ok; */
|
||||||
|
/* } */
|
||||||
|
/* */
|
||||||
|
/* You can provide your own implementation of FT_EXPORT and */
|
||||||
|
/* FT_EXPORT_DEF here if you want. */
|
||||||
|
/* */
|
||||||
|
/* To export a variable, use FT_EXPORT_VAR. */
|
||||||
|
/* */
|
||||||
|
#ifndef FT_EXPORT
|
||||||
|
|
||||||
|
#ifdef FT2_BUILD_LIBRARY
|
||||||
|
|
||||||
|
#if defined( _WIN32 ) && defined( DLL_EXPORT )
|
||||||
|
#define FT_EXPORT( x ) __declspec( dllexport ) x
|
||||||
|
#elif defined( __GNUC__ ) && __GNUC__ >= 4
|
||||||
|
#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x
|
||||||
|
#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550
|
||||||
|
#define FT_EXPORT( x ) __global x
|
||||||
|
#elif defined( __cplusplus )
|
||||||
|
#define FT_EXPORT( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_EXPORT( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#if defined( _WIN32 ) && defined( DLL_IMPORT )
|
||||||
|
#define FT_EXPORT( x ) __declspec( dllimport ) x
|
||||||
|
#elif defined( __cplusplus )
|
||||||
|
#define FT_EXPORT( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_EXPORT( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_EXPORT */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FT_EXPORT_DEF
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_EXPORT_DEF( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_EXPORT_DEF( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_EXPORT_DEF */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FT_EXPORT_VAR
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_EXPORT_VAR( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_EXPORT_VAR( x ) extern x
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_EXPORT_VAR */
|
||||||
|
|
||||||
|
|
||||||
|
/* The following macros are needed to compile the library with a */
|
||||||
|
/* C++ compiler and with 16bit compilers. */
|
||||||
|
/* */
|
||||||
|
|
||||||
|
/* This is special. Within C++, you must specify `extern "C"' for */
|
||||||
|
/* functions which are used via function pointers, and you also */
|
||||||
|
/* must do that for structures which contain function pointers to */
|
||||||
|
/* assure C linkage -- it's not possible to have (local) anonymous */
|
||||||
|
/* functions which are accessed by (global) function pointers. */
|
||||||
|
/* */
|
||||||
|
/* */
|
||||||
|
/* FT_CALLBACK_DEF is used to _define_ a callback function, */
|
||||||
|
/* located in the same source code file as the structure that uses */
|
||||||
|
/* it. */
|
||||||
|
/* */
|
||||||
|
/* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */
|
||||||
|
/* and define a callback function, respectively, in a similar way */
|
||||||
|
/* as FT_BASE and FT_BASE_DEF work. */
|
||||||
|
/* */
|
||||||
|
/* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
|
||||||
|
/* contains pointers to callback functions. */
|
||||||
|
/* */
|
||||||
|
/* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */
|
||||||
|
/* that contains pointers to callback functions. */
|
||||||
|
/* */
|
||||||
|
/* */
|
||||||
|
/* Some 16bit compilers have to redefine these macros to insert */
|
||||||
|
/* the infamous `_cdecl' or `__fastcall' declarations. */
|
||||||
|
/* */
|
||||||
|
#ifndef FT_CALLBACK_DEF
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_CALLBACK_DEF( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_CALLBACK_DEF( x ) static x
|
||||||
|
#endif
|
||||||
|
#endif /* FT_CALLBACK_DEF */
|
||||||
|
|
||||||
|
#ifndef FT_BASE_CALLBACK
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_BASE_CALLBACK( x ) extern "C" x
|
||||||
|
#define FT_BASE_CALLBACK_DEF( x ) extern "C" x
|
||||||
|
#else
|
||||||
|
#define FT_BASE_CALLBACK( x ) extern x
|
||||||
|
#define FT_BASE_CALLBACK_DEF( x ) x
|
||||||
|
#endif
|
||||||
|
#endif /* FT_BASE_CALLBACK */
|
||||||
|
|
||||||
|
#ifndef FT_CALLBACK_TABLE
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_CALLBACK_TABLE extern "C"
|
||||||
|
#define FT_CALLBACK_TABLE_DEF extern "C"
|
||||||
|
#else
|
||||||
|
#define FT_CALLBACK_TABLE extern
|
||||||
|
#define FT_CALLBACK_TABLE_DEF /* nothing */
|
||||||
|
#endif
|
||||||
|
#endif /* FT_CALLBACK_TABLE */
|
||||||
|
|
||||||
|
|
||||||
|
FT_END_HEADER
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* FTCONFIG_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
||||||
813
src/win/mingw/include/freetype/config/ftheader.h
Normal file
813
src/win/mingw/include/freetype/config/ftheader.h
Normal file
@@ -0,0 +1,813 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* ftheader.h
|
||||||
|
*
|
||||||
|
* Build macros of the FreeType 2 library.
|
||||||
|
*
|
||||||
|
* Copyright 1996-2018 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef FTHEADER_H_
|
||||||
|
#define FTHEADER_H_
|
||||||
|
|
||||||
|
|
||||||
|
/*@***********************************************************************/
|
||||||
|
/* */
|
||||||
|
/* <Macro> */
|
||||||
|
/* FT_BEGIN_HEADER */
|
||||||
|
/* */
|
||||||
|
/* <Description> */
|
||||||
|
/* This macro is used in association with @FT_END_HEADER in header */
|
||||||
|
/* files to ensure that the declarations within are properly */
|
||||||
|
/* encapsulated in an `extern "C" { .. }' block when included from a */
|
||||||
|
/* C++ compiler. */
|
||||||
|
/* */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_BEGIN_HEADER extern "C" {
|
||||||
|
#else
|
||||||
|
#define FT_BEGIN_HEADER /* nothing */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*@***********************************************************************/
|
||||||
|
/* */
|
||||||
|
/* <Macro> */
|
||||||
|
/* FT_END_HEADER */
|
||||||
|
/* */
|
||||||
|
/* <Description> */
|
||||||
|
/* This macro is used in association with @FT_BEGIN_HEADER in header */
|
||||||
|
/* files to ensure that the declarations within are properly */
|
||||||
|
/* encapsulated in an `extern "C" { .. }' block when included from a */
|
||||||
|
/* C++ compiler. */
|
||||||
|
/* */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_END_HEADER }
|
||||||
|
#else
|
||||||
|
#define FT_END_HEADER /* nothing */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Aliases for the FreeType 2 public and configuration files.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @section:
|
||||||
|
* header_file_macros
|
||||||
|
*
|
||||||
|
* @title:
|
||||||
|
* Header File Macros
|
||||||
|
*
|
||||||
|
* @abstract:
|
||||||
|
* Macro definitions used to #include specific header files.
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* The following macros are defined to the name of specific FreeType~2
|
||||||
|
* header files. They can be used directly in #include statements as in:
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* #include FT_FREETYPE_H
|
||||||
|
* #include FT_MULTIPLE_MASTERS_H
|
||||||
|
* #include FT_GLYPH_H
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* There are several reasons why we are now using macros to name public
|
||||||
|
* header files. The first one is that such macros are not limited to
|
||||||
|
* the infamous 8.3~naming rule required by DOS (and
|
||||||
|
* `FT_MULTIPLE_MASTERS_H` is a lot more meaningful than `ftmm.h`).
|
||||||
|
*
|
||||||
|
* The second reason is that it allows for more flexibility in the way
|
||||||
|
* FreeType~2 is installed on a given system.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/* configuration files */
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_CONFIG_CONFIG_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing
|
||||||
|
* FreeType~2 configuration data.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#ifndef FT_CONFIG_CONFIG_H
|
||||||
|
#define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_CONFIG_STANDARD_LIBRARY_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing
|
||||||
|
* FreeType~2 interface to the standard C library functions.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#ifndef FT_CONFIG_STANDARD_LIBRARY_H
|
||||||
|
#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_CONFIG_OPTIONS_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing
|
||||||
|
* FreeType~2 project-specific configuration options.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#ifndef FT_CONFIG_OPTIONS_H
|
||||||
|
#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_CONFIG_MODULES_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* list of FreeType~2 modules that are statically linked to new library
|
||||||
|
* instances in @FT_Init_FreeType.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#ifndef FT_CONFIG_MODULES_H
|
||||||
|
#define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
/* public headers */
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_FREETYPE_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* base FreeType~2 API.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_FREETYPE_H <freetype/freetype.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_ERRORS_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* list of FreeType~2 error codes (and messages).
|
||||||
|
*
|
||||||
|
* It is included by @FT_FREETYPE_H.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_ERRORS_H <freetype/fterrors.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_MODULE_ERRORS_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* list of FreeType~2 module error offsets (and messages).
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_MODULE_ERRORS_H <freetype/ftmoderr.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_SYSTEM_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* FreeType~2 interface to low-level operations (i.e., memory management
|
||||||
|
* and stream i/o).
|
||||||
|
*
|
||||||
|
* It is included by @FT_FREETYPE_H.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_SYSTEM_H <freetype/ftsystem.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_IMAGE_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing type
|
||||||
|
* definitions related to glyph images (i.e., bitmaps, outlines,
|
||||||
|
* scan-converter parameters).
|
||||||
|
*
|
||||||
|
* It is included by @FT_FREETYPE_H.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_IMAGE_H <freetype/ftimage.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_TYPES_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* basic data types defined by FreeType~2.
|
||||||
|
*
|
||||||
|
* It is included by @FT_FREETYPE_H.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_TYPES_H <freetype/fttypes.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_LIST_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* list management API of FreeType~2.
|
||||||
|
*
|
||||||
|
* (Most applications will never need to include this file.)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_LIST_H <freetype/ftlist.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_OUTLINE_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* scalable outline management API of FreeType~2.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_OUTLINE_H <freetype/ftoutln.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_SIZES_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* API which manages multiple @FT_Size objects per face.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_SIZES_H <freetype/ftsizes.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_MODULE_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* module management API of FreeType~2.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_MODULE_H <freetype/ftmodapi.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_RENDER_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* renderer module management API of FreeType~2.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_RENDER_H <freetype/ftrender.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_DRIVER_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing
|
||||||
|
* structures and macros related to the driver modules.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_DRIVER_H <freetype/ftdriver.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_AUTOHINTER_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing
|
||||||
|
* structures and macros related to the auto-hinting module.
|
||||||
|
*
|
||||||
|
* Deprecated since version 2.9; use @FT_DRIVER_H instead.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_AUTOHINTER_H FT_DRIVER_H
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_CFF_DRIVER_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing
|
||||||
|
* structures and macros related to the CFF driver module.
|
||||||
|
*
|
||||||
|
* Deprecated since version 2.9; use @FT_DRIVER_H instead.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_CFF_DRIVER_H FT_DRIVER_H
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_TRUETYPE_DRIVER_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing
|
||||||
|
* structures and macros related to the TrueType driver module.
|
||||||
|
*
|
||||||
|
* Deprecated since version 2.9; use @FT_DRIVER_H instead.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_TRUETYPE_DRIVER_H FT_DRIVER_H
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_PCF_DRIVER_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing
|
||||||
|
* structures and macros related to the PCF driver module.
|
||||||
|
*
|
||||||
|
* Deprecated since version 2.9; use @FT_DRIVER_H instead.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_PCF_DRIVER_H FT_DRIVER_H
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_TYPE1_TABLES_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* types and API specific to the Type~1 format.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_TYPE1_TABLES_H <freetype/t1tables.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_TRUETYPE_IDS_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* enumeration values which identify name strings, languages, encodings,
|
||||||
|
* etc. This file really contains a _large_ set of constant macro
|
||||||
|
* definitions, taken from the TrueType and OpenType specifications.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_TRUETYPE_IDS_H <freetype/ttnameid.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_TRUETYPE_TABLES_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* types and API specific to the TrueType (as well as OpenType) format.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_TRUETYPE_TABLES_H <freetype/tttables.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_TRUETYPE_TAGS_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* definitions of TrueType four-byte 'tags' which identify blocks in
|
||||||
|
* SFNT-based font formats (i.e., TrueType and OpenType).
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_TRUETYPE_TAGS_H <freetype/tttags.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_BDF_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* definitions of an API which accesses BDF-specific strings from a face.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_BDF_H <freetype/ftbdf.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_CID_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* definitions of an API which access CID font information from a face.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_CID_H <freetype/ftcid.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_GZIP_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* definitions of an API which supports gzip-compressed files.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_GZIP_H <freetype/ftgzip.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_LZW_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* definitions of an API which supports LZW-compressed files.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_LZW_H <freetype/ftlzw.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_BZIP2_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* definitions of an API which supports bzip2-compressed files.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_BZIP2_H <freetype/ftbzip2.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_WINFONTS_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* definitions of an API which supports Windows FNT files.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_WINFONTS_H <freetype/ftwinfnt.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_GLYPH_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* API of the optional glyph management component.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_GLYPH_H <freetype/ftglyph.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_BITMAP_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* API of the optional bitmap conversion component.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_BITMAP_H <freetype/ftbitmap.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_BBOX_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* API of the optional exact bounding box computation routines.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_BBOX_H <freetype/ftbbox.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_CACHE_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* API of the optional FreeType~2 cache sub-system.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_CACHE_H <freetype/ftcache.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_MAC_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* Macintosh-specific FreeType~2 API. The latter is used to access fonts
|
||||||
|
* embedded in resource forks.
|
||||||
|
*
|
||||||
|
* This header file must be explicitly included by client applications
|
||||||
|
* compiled on the Mac (note that the base API still works though).
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_MAC_H <freetype/ftmac.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_MULTIPLE_MASTERS_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* optional multiple-masters management API of FreeType~2.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_SFNT_NAMES_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* optional FreeType~2 API which accesses embedded 'name' strings in
|
||||||
|
* SFNT-based font formats (i.e., TrueType and OpenType).
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_SFNT_NAMES_H <freetype/ftsnames.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_OPENTYPE_VALIDATE_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* optional FreeType~2 API which validates OpenType tables (BASE, GDEF,
|
||||||
|
* GPOS, GSUB, JSTF).
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_OPENTYPE_VALIDATE_H <freetype/ftotval.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_GX_VALIDATE_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* optional FreeType~2 API which validates TrueTypeGX/AAT tables (feat,
|
||||||
|
* mort, morx, bsln, just, kern, opbd, trak, prop).
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_GX_VALIDATE_H <freetype/ftgxval.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_PFR_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* FreeType~2 API which accesses PFR-specific data.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_PFR_H <freetype/ftpfr.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_STROKER_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* FreeType~2 API which provides functions to stroke outline paths.
|
||||||
|
*/
|
||||||
|
#define FT_STROKER_H <freetype/ftstroke.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_SYNTHESIS_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* FreeType~2 API which performs artificial obliquing and emboldening.
|
||||||
|
*/
|
||||||
|
#define FT_SYNTHESIS_H <freetype/ftsynth.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_FONT_FORMATS_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* FreeType~2 API which provides functions specific to font formats.
|
||||||
|
*/
|
||||||
|
#define FT_FONT_FORMATS_H <freetype/ftfntfmt.h>
|
||||||
|
|
||||||
|
/* deprecated */
|
||||||
|
#define FT_XFREE86_H FT_FONT_FORMATS_H
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_TRIGONOMETRY_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* FreeType~2 API which performs trigonometric computations (e.g.,
|
||||||
|
* cosines and arc tangents).
|
||||||
|
*/
|
||||||
|
#define FT_TRIGONOMETRY_H <freetype/fttrigon.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_LCD_FILTER_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* FreeType~2 API which performs color filtering for subpixel rendering.
|
||||||
|
*/
|
||||||
|
#define FT_LCD_FILTER_H <freetype/ftlcdfil.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_INCREMENTAL_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* FreeType~2 API which performs incremental glyph loading.
|
||||||
|
*/
|
||||||
|
#define FT_INCREMENTAL_H <freetype/ftincrem.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_GASP_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* FreeType~2 API which returns entries from the TrueType GASP table.
|
||||||
|
*/
|
||||||
|
#define FT_GASP_H <freetype/ftgasp.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_ADVANCES_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* FreeType~2 API which returns individual and ranged glyph advances.
|
||||||
|
*/
|
||||||
|
#define FT_ADVANCES_H <freetype/ftadvanc.h>
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_COLOR_H
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A macro used in #include statements to name the file containing the
|
||||||
|
* FreeType~2 API which handles the OpenType CPAL table.
|
||||||
|
*/
|
||||||
|
#define FT_COLOR_H <freetype/ftcolor.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
/* These header files don't need to be included by the user. */
|
||||||
|
#define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h>
|
||||||
|
#define FT_PARAMETER_TAGS_H <freetype/ftparams.h>
|
||||||
|
|
||||||
|
/* Deprecated macros. */
|
||||||
|
#define FT_UNPATENTED_HINTING_H <freetype/ftparams.h>
|
||||||
|
#define FT_TRUETYPE_UNPATENTED_H <freetype/ftparams.h>
|
||||||
|
|
||||||
|
/* FT_CACHE_H is the only header file needed for the cache subsystem. */
|
||||||
|
#define FT_CACHE_IMAGE_H FT_CACHE_H
|
||||||
|
#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H
|
||||||
|
#define FT_CACHE_CHARMAP_H FT_CACHE_H
|
||||||
|
|
||||||
|
/* The internals of the cache sub-system are no longer exposed. We */
|
||||||
|
/* default to FT_CACHE_H at the moment just in case, but we know of */
|
||||||
|
/* no rogue client that uses them. */
|
||||||
|
/* */
|
||||||
|
#define FT_CACHE_MANAGER_H FT_CACHE_H
|
||||||
|
#define FT_CACHE_INTERNAL_MRU_H FT_CACHE_H
|
||||||
|
#define FT_CACHE_INTERNAL_MANAGER_H FT_CACHE_H
|
||||||
|
#define FT_CACHE_INTERNAL_CACHE_H FT_CACHE_H
|
||||||
|
#define FT_CACHE_INTERNAL_GLYPH_H FT_CACHE_H
|
||||||
|
#define FT_CACHE_INTERNAL_IMAGE_H FT_CACHE_H
|
||||||
|
#define FT_CACHE_INTERNAL_SBITS_H FT_CACHE_H
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Include internal headers definitions from <internal/...> only when
|
||||||
|
* building the library.
|
||||||
|
*/
|
||||||
|
#ifdef FT2_BUILD_LIBRARY
|
||||||
|
#define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
|
||||||
|
#include FT_INTERNAL_INTERNAL_H
|
||||||
|
#endif /* FT2_BUILD_LIBRARY */
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* FTHEADER_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
||||||
973
src/win/mingw/include/freetype/config/ftoption.h
Normal file
973
src/win/mingw/include/freetype/config/ftoption.h
Normal file
@@ -0,0 +1,973 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* ftoption.h
|
||||||
|
*
|
||||||
|
* User-selectable configuration macros (specification only).
|
||||||
|
*
|
||||||
|
* Copyright 1996-2018 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FTOPTION_H_
|
||||||
|
#define FTOPTION_H_
|
||||||
|
|
||||||
|
|
||||||
|
#include <ft2build.h>
|
||||||
|
|
||||||
|
|
||||||
|
FT_BEGIN_HEADER
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* USER-SELECTABLE CONFIGURATION MACROS
|
||||||
|
*
|
||||||
|
* This file contains the default configuration macro definitions for a
|
||||||
|
* standard build of the FreeType library. There are three ways to use
|
||||||
|
* this file to build project-specific versions of the library:
|
||||||
|
*
|
||||||
|
* - You can modify this file by hand, but this is not recommended in
|
||||||
|
* cases where you would like to build several versions of the library
|
||||||
|
* from a single source directory.
|
||||||
|
*
|
||||||
|
* - You can put a copy of this file in your build directory, more
|
||||||
|
* precisely in '$BUILD/freetype/config/ftoption.h', where '$BUILD' is
|
||||||
|
* the name of a directory that is included _before_ the FreeType include
|
||||||
|
* path during compilation.
|
||||||
|
*
|
||||||
|
* The default FreeType Makefiles and Jamfiles use the build directory
|
||||||
|
* 'builds/<system>' by default, but you can easily change that for your
|
||||||
|
* own projects.
|
||||||
|
*
|
||||||
|
* - Copy the file <ft2build.h> to '$BUILD/ft2build.h' and modify it
|
||||||
|
* slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to locate
|
||||||
|
* this file during the build. For example,
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* #define FT_CONFIG_OPTIONS_H <myftoptions.h>
|
||||||
|
* #include <freetype/config/ftheader.h>
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* will use '$BUILD/myftoptions.h' instead of this file for macro
|
||||||
|
* definitions.
|
||||||
|
*
|
||||||
|
* Note also that you can similarly pre-define the macro
|
||||||
|
* FT_CONFIG_MODULES_H used to locate the file listing of the modules
|
||||||
|
* that are statically linked to the library at compile time. By
|
||||||
|
* default, this file is <freetype/config/ftmodule.h>.
|
||||||
|
*
|
||||||
|
* We highly recommend using the third method whenever possible.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
/**** ****/
|
||||||
|
/**** G E N E R A L F R E E T Y P E 2 C O N F I G U R A T I O N ****/
|
||||||
|
/**** ****/
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/*#************************************************************************
|
||||||
|
*
|
||||||
|
* If you enable this configuration option, FreeType recognizes an
|
||||||
|
* environment variable called `FREETYPE_PROPERTIES', which can be used to
|
||||||
|
* control the various font drivers and modules. The controllable
|
||||||
|
* properties are listed in the section @properties.
|
||||||
|
*
|
||||||
|
* You have to undefine this configuration option on platforms that lack
|
||||||
|
* the concept of environment variables (and thus don't have the `getenv'
|
||||||
|
* function), for example Windows CE.
|
||||||
|
*
|
||||||
|
* `FREETYPE_PROPERTIES' has the following syntax form (broken here into
|
||||||
|
* multiple lines for better readability).
|
||||||
|
*
|
||||||
|
* {
|
||||||
|
* <optional whitespace>
|
||||||
|
* <module-name1> ':'
|
||||||
|
* <property-name1> '=' <property-value1>
|
||||||
|
* <whitespace>
|
||||||
|
* <module-name2> ':'
|
||||||
|
* <property-name2> '=' <property-value2>
|
||||||
|
* ...
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
*
|
||||||
|
* {
|
||||||
|
* FREETYPE_PROPERTIES=truetype:interpreter-version=35 \
|
||||||
|
* cff:no-stem-darkening=1 \
|
||||||
|
* autofitter:warping=1
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define FT_CONFIG_OPTION_ENVIRONMENT_PROPERTIES
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Uncomment the line below if you want to activate LCD rendering
|
||||||
|
* technology similar to ClearType in this build of the library. This
|
||||||
|
* technology triples the resolution in the direction color subpixels. To
|
||||||
|
* mitigate color fringes inherent to this technology, you also need to
|
||||||
|
* explicitly set up LCD filtering.
|
||||||
|
*
|
||||||
|
* Note that this feature is covered by several Microsoft patents and
|
||||||
|
* should not be activated in any default build of the library. When this
|
||||||
|
* macro is not defined, FreeType offers alternative LCD rendering
|
||||||
|
* technology that produces excellent output without LCD filtering.
|
||||||
|
*/
|
||||||
|
/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Many compilers provide a non-ANSI 64-bit data type that can be used by
|
||||||
|
* FreeType to speed up some computations. However, this will create some
|
||||||
|
* problems when compiling the library in strict ANSI mode.
|
||||||
|
*
|
||||||
|
* For this reason, the use of 64-bit integers is normally disabled when
|
||||||
|
* the __STDC__ macro is defined. You can however disable this by defining
|
||||||
|
* the macro FT_CONFIG_OPTION_FORCE_INT64 here.
|
||||||
|
*
|
||||||
|
* For most compilers, this will only create compilation warnings when
|
||||||
|
* building the library.
|
||||||
|
*
|
||||||
|
* ObNote: The compiler-specific 64-bit integers are detected in the
|
||||||
|
* file `ftconfig.h` either statically or through the 'configure'
|
||||||
|
* script on supported platforms.
|
||||||
|
*/
|
||||||
|
#undef FT_CONFIG_OPTION_FORCE_INT64
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* If this macro is defined, do not try to use an assembler version of
|
||||||
|
* performance-critical functions (e.g. FT_MulFix). You should only do
|
||||||
|
* that to verify that the assembler function works properly, or to execute
|
||||||
|
* benchmark tests of the various implementations.
|
||||||
|
*/
|
||||||
|
/* #define FT_CONFIG_OPTION_NO_ASSEMBLER */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* If this macro is defined, try to use an inlined assembler version of the
|
||||||
|
* `FT_MulFix` function, which is a 'hotspot' when loading and hinting
|
||||||
|
* glyphs, and which should be executed as fast as possible.
|
||||||
|
*
|
||||||
|
* Note that if your compiler or CPU is not supported, this will default to
|
||||||
|
* the standard and portable implementation found in `ftcalc.c`.
|
||||||
|
*/
|
||||||
|
#define FT_CONFIG_OPTION_INLINE_MULFIX
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* LZW-compressed file support.
|
||||||
|
*
|
||||||
|
* FreeType now handles font files that have been compressed with the
|
||||||
|
* 'compress' program. This is mostly used to parse many of the PCF
|
||||||
|
* files that come with various X11 distributions. The implementation
|
||||||
|
* uses NetBSD's 'zopen' to partially uncompress the file on the fly (see
|
||||||
|
* src/lzw/ftgzip.c).
|
||||||
|
*
|
||||||
|
* Define this macro if you want to enable this 'feature'.
|
||||||
|
*/
|
||||||
|
#define FT_CONFIG_OPTION_USE_LZW
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Gzip-compressed file support.
|
||||||
|
*
|
||||||
|
* FreeType now handles font files that have been compressed with the
|
||||||
|
* 'gzip' program. This is mostly used to parse many of the PCF files
|
||||||
|
* that come with XFree86. The implementation uses 'zlib' to partially
|
||||||
|
* uncompress the file on the fly (see src/gzip/ftgzip.c).
|
||||||
|
*
|
||||||
|
* Define this macro if you want to enable this 'feature'. See also the
|
||||||
|
* macro FT_CONFIG_OPTION_SYSTEM_ZLIB below.
|
||||||
|
*/
|
||||||
|
#define FT_CONFIG_OPTION_USE_ZLIB
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* ZLib library selection
|
||||||
|
*
|
||||||
|
* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. It
|
||||||
|
* allows FreeType's 'ftgzip' component to link to the system's
|
||||||
|
* installation of the ZLib library. This is useful on systems like Unix
|
||||||
|
* or VMS where it generally is already available.
|
||||||
|
*
|
||||||
|
* If you let it undefined, the component will use its own copy of the
|
||||||
|
* zlib sources instead. These have been modified to be included
|
||||||
|
* directly within the component and **not** export external function
|
||||||
|
* names. This allows you to link any program with FreeType _and_ ZLib
|
||||||
|
* without linking conflicts.
|
||||||
|
*
|
||||||
|
* Do not #undef this macro here since the build system might define it
|
||||||
|
* for certain configurations only.
|
||||||
|
*
|
||||||
|
* If you use a build system like cmake or the 'configure' script,
|
||||||
|
* options set by those programs have precedence, overwriting the value
|
||||||
|
* here with the configured one.
|
||||||
|
*/
|
||||||
|
/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Bzip2-compressed file support.
|
||||||
|
*
|
||||||
|
* FreeType now handles font files that have been compressed with the
|
||||||
|
* 'bzip2' program. This is mostly used to parse many of the PCF files
|
||||||
|
* that come with XFree86. The implementation uses 'libbz2' to partially
|
||||||
|
* uncompress the file on the fly (see src/bzip2/ftbzip2.c). Contrary to
|
||||||
|
* gzip, bzip2 currently is not included and need to use the system
|
||||||
|
* available bzip2 implementation.
|
||||||
|
*
|
||||||
|
* Define this macro if you want to enable this 'feature'.
|
||||||
|
*
|
||||||
|
* If you use a build system like cmake or the 'configure' script,
|
||||||
|
* options set by those programs have precedence, overwriting the value
|
||||||
|
* here with the configured one.
|
||||||
|
*/
|
||||||
|
/* #define FT_CONFIG_OPTION_USE_BZIP2 */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Define to disable the use of file stream functions and types, FILE,
|
||||||
|
* fopen() etc. Enables the use of smaller system libraries on embedded
|
||||||
|
* systems that have multiple system libraries, some with or without file
|
||||||
|
* stream support, in the cases where file stream support is not necessary
|
||||||
|
* such as memory loading of font files.
|
||||||
|
*/
|
||||||
|
/* #define FT_CONFIG_OPTION_DISABLE_STREAM_SUPPORT */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* PNG bitmap support.
|
||||||
|
*
|
||||||
|
* FreeType now handles loading color bitmap glyphs in the PNG format.
|
||||||
|
* This requires help from the external libpng library. Uncompressed
|
||||||
|
* color bitmaps do not need any external libraries and will be supported
|
||||||
|
* regardless of this configuration.
|
||||||
|
*
|
||||||
|
* Define this macro if you want to enable this 'feature'.
|
||||||
|
*
|
||||||
|
* If you use a build system like cmake or the 'configure' script,
|
||||||
|
* options set by those programs have precedence, overwriting the value
|
||||||
|
* here with the configured one.
|
||||||
|
*/
|
||||||
|
/* #define FT_CONFIG_OPTION_USE_PNG */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* HarfBuzz support.
|
||||||
|
*
|
||||||
|
* FreeType uses the HarfBuzz library to improve auto-hinting of OpenType
|
||||||
|
* fonts. If available, many glyphs not directly addressable by a font's
|
||||||
|
* character map will be hinted also.
|
||||||
|
*
|
||||||
|
* Define this macro if you want to enable this 'feature'.
|
||||||
|
*
|
||||||
|
* If you use a build system like cmake or the 'configure' script,
|
||||||
|
* options set by those programs have precedence, overwriting the value
|
||||||
|
* here with the configured one.
|
||||||
|
*/
|
||||||
|
/* #define FT_CONFIG_OPTION_USE_HARFBUZZ */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Glyph Postscript Names handling
|
||||||
|
*
|
||||||
|
* By default, FreeType 2 is compiled with the 'psnames' module. This
|
||||||
|
* module is in charge of converting a glyph name string into a Unicode
|
||||||
|
* value, or return a Macintosh standard glyph name for the use with the
|
||||||
|
* TrueType 'post' table.
|
||||||
|
*
|
||||||
|
* Undefine this macro if you do not want 'psnames' compiled in your
|
||||||
|
* build of FreeType. This has the following effects:
|
||||||
|
*
|
||||||
|
* - The TrueType driver will provide its own set of glyph names,
|
||||||
|
* if you build it to support postscript names in the TrueType 'post'
|
||||||
|
* table, but will not synthesize a missing Unicode charmap.
|
||||||
|
*
|
||||||
|
* - The Type 1 driver will not be able to synthesize a Unicode
|
||||||
|
* charmap out of the glyphs found in the fonts.
|
||||||
|
*
|
||||||
|
* You would normally undefine this configuration macro when building a
|
||||||
|
* version of FreeType that doesn't contain a Type 1 or CFF driver.
|
||||||
|
*/
|
||||||
|
#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Postscript Names to Unicode Values support
|
||||||
|
*
|
||||||
|
* By default, FreeType 2 is built with the 'PSNames' module compiled in.
|
||||||
|
* Among other things, the module is used to convert a glyph name into a
|
||||||
|
* Unicode value. This is especially useful in order to synthesize on
|
||||||
|
* the fly a Unicode charmap from the CFF/Type 1 driver through a big
|
||||||
|
* table named the 'Adobe Glyph List' (AGL).
|
||||||
|
*
|
||||||
|
* Undefine this macro if you do not want the Adobe Glyph List compiled
|
||||||
|
* in your 'PSNames' module. The Type 1 driver will not be able to
|
||||||
|
* synthesize a Unicode charmap out of the glyphs found in the fonts.
|
||||||
|
*/
|
||||||
|
#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Support for Mac fonts
|
||||||
|
*
|
||||||
|
* Define this macro if you want support for outline fonts in Mac format
|
||||||
|
* (mac dfont, mac resource, macbinary containing a mac resource) on
|
||||||
|
* non-Mac platforms.
|
||||||
|
*
|
||||||
|
* Note that the 'FOND' resource isn't checked.
|
||||||
|
*/
|
||||||
|
#define FT_CONFIG_OPTION_MAC_FONTS
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Guessing methods to access embedded resource forks
|
||||||
|
*
|
||||||
|
* Enable extra Mac fonts support on non-Mac platforms (e.g., GNU/Linux).
|
||||||
|
*
|
||||||
|
* Resource forks which include fonts data are stored sometimes in
|
||||||
|
* locations which users or developers don't expected. In some cases,
|
||||||
|
* resource forks start with some offset from the head of a file. In
|
||||||
|
* other cases, the actual resource fork is stored in file different from
|
||||||
|
* what the user specifies. If this option is activated, FreeType tries
|
||||||
|
* to guess whether such offsets or different file names must be used.
|
||||||
|
*
|
||||||
|
* Note that normal, direct access of resource forks is controlled via
|
||||||
|
* the FT_CONFIG_OPTION_MAC_FONTS option.
|
||||||
|
*/
|
||||||
|
#ifdef FT_CONFIG_OPTION_MAC_FONTS
|
||||||
|
#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Allow the use of FT_Incremental_Interface to load typefaces that contain
|
||||||
|
* no glyph data, but supply it via a callback function. This is required
|
||||||
|
* by clients supporting document formats which supply font data
|
||||||
|
* incrementally as the document is parsed, such as the Ghostscript
|
||||||
|
* interpreter for the PostScript language.
|
||||||
|
*/
|
||||||
|
#define FT_CONFIG_OPTION_INCREMENTAL
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* The size in bytes of the render pool used by the scan-line converter to
|
||||||
|
* do all of its work.
|
||||||
|
*/
|
||||||
|
#define FT_RENDER_POOL_SIZE 16384L
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* FT_MAX_MODULES
|
||||||
|
*
|
||||||
|
* The maximum number of modules that can be registered in a single
|
||||||
|
* FreeType library object. 32 is the default.
|
||||||
|
*/
|
||||||
|
#define FT_MAX_MODULES 32
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Debug level
|
||||||
|
*
|
||||||
|
* FreeType can be compiled in debug or trace mode. In debug mode,
|
||||||
|
* errors are reported through the 'ftdebug' component. In trace mode,
|
||||||
|
* additional messages are sent to the standard output during execution.
|
||||||
|
*
|
||||||
|
* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode.
|
||||||
|
* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode.
|
||||||
|
*
|
||||||
|
* Don't define any of these macros to compile in 'release' mode!
|
||||||
|
*
|
||||||
|
* Do not #undef these macros here since the build system might define
|
||||||
|
* them for certain configurations only.
|
||||||
|
*/
|
||||||
|
/* #define FT_DEBUG_LEVEL_ERROR */
|
||||||
|
/* #define FT_DEBUG_LEVEL_TRACE */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Autofitter debugging
|
||||||
|
*
|
||||||
|
* If FT_DEBUG_AUTOFIT is defined, FreeType provides some means to
|
||||||
|
* control the autofitter behaviour for debugging purposes with global
|
||||||
|
* boolean variables (consequently, you should **never** enable this
|
||||||
|
* while compiling in 'release' mode):
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* _af_debug_disable_horz_hints
|
||||||
|
* _af_debug_disable_vert_hints
|
||||||
|
* _af_debug_disable_blue_hints
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Additionally, the following functions provide dumps of various
|
||||||
|
* internal autofit structures to stdout (using 'printf'):
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* af_glyph_hints_dump_points
|
||||||
|
* af_glyph_hints_dump_segments
|
||||||
|
* af_glyph_hints_dump_edges
|
||||||
|
* af_glyph_hints_get_num_segments
|
||||||
|
* af_glyph_hints_get_segment_offset
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* As an argument, they use another global variable:
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* _af_debug_hints
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* Please have a look at the 'ftgrid' demo program to see how those
|
||||||
|
* variables and macros should be used.
|
||||||
|
*
|
||||||
|
* Do not #undef these macros here since the build system might define
|
||||||
|
* them for certain configurations only.
|
||||||
|
*/
|
||||||
|
/* #define FT_DEBUG_AUTOFIT */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Memory Debugging
|
||||||
|
*
|
||||||
|
* FreeType now comes with an integrated memory debugger that is capable
|
||||||
|
* of detecting simple errors like memory leaks or double deletes. To
|
||||||
|
* compile it within your build of the library, you should define
|
||||||
|
* FT_DEBUG_MEMORY here.
|
||||||
|
*
|
||||||
|
* Note that the memory debugger is only activated at runtime when when
|
||||||
|
* the _environment_ variable `FT2_DEBUG_MEMORY` is defined also!
|
||||||
|
*
|
||||||
|
* Do not #undef this macro here since the build system might define it
|
||||||
|
* for certain configurations only.
|
||||||
|
*/
|
||||||
|
/* #define FT_DEBUG_MEMORY */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Module errors
|
||||||
|
*
|
||||||
|
* If this macro is set (which is _not_ the default), the higher byte of
|
||||||
|
* an error code gives the module in which the error has occurred, while
|
||||||
|
* the lower byte is the real error code.
|
||||||
|
*
|
||||||
|
* Setting this macro makes sense for debugging purposes only, since it
|
||||||
|
* would break source compatibility of certain programs that use FreeType
|
||||||
|
* 2.
|
||||||
|
*
|
||||||
|
* More details can be found in the files ftmoderr.h and fterrors.h.
|
||||||
|
*/
|
||||||
|
#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Error Strings
|
||||||
|
*
|
||||||
|
* If this macro is set, `FT_Error_String' will return meaningful
|
||||||
|
* descriptions. This is not enabled by default to reduce the overall
|
||||||
|
* size of FreeType.
|
||||||
|
*
|
||||||
|
* More details can be found in the file fterrors.h.
|
||||||
|
*/
|
||||||
|
/* #define FT_CONFIG_OPTION_ERROR_STRINGS */
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
/**** ****/
|
||||||
|
/**** S F N T D R I V E R C O N F I G U R A T I O N ****/
|
||||||
|
/**** ****/
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support embedded
|
||||||
|
* bitmaps in all formats using the SFNT module (namely TrueType &
|
||||||
|
* OpenType).
|
||||||
|
*/
|
||||||
|
#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Define TT_CONFIG_OPTION_COLOR_LAYERS if you want to support coloured
|
||||||
|
* outlines (from the COLR/CPAL tables) in all formats using the SFNT
|
||||||
|
* module (namely TrueType & OpenType).
|
||||||
|
*/
|
||||||
|
#define TT_CONFIG_OPTION_COLOR_LAYERS
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to load
|
||||||
|
* and enumerate the glyph Postscript names in a TrueType or OpenType file.
|
||||||
|
*
|
||||||
|
* Note that when you do not compile the 'PSNames' module by undefining the
|
||||||
|
* above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the 'sfnt' module will contain
|
||||||
|
* additional code used to read the PS Names table from a font.
|
||||||
|
*
|
||||||
|
* (By default, the module uses 'PSNames' to extract glyph names.)
|
||||||
|
*/
|
||||||
|
#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to access
|
||||||
|
* the internal name table in a SFNT-based format like TrueType or
|
||||||
|
* OpenType. The name table contains various strings used to describe the
|
||||||
|
* font, like family name, copyright, version, etc. It does not contain
|
||||||
|
* any glyph name though.
|
||||||
|
*
|
||||||
|
* Accessing SFNT names is done through the functions declared in
|
||||||
|
* `ftsnames.h`.
|
||||||
|
*/
|
||||||
|
#define TT_CONFIG_OPTION_SFNT_NAMES
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* TrueType CMap support
|
||||||
|
*
|
||||||
|
* Here you can fine-tune which TrueType CMap table format shall be
|
||||||
|
* supported.
|
||||||
|
*/
|
||||||
|
#define TT_CONFIG_CMAP_FORMAT_0
|
||||||
|
#define TT_CONFIG_CMAP_FORMAT_2
|
||||||
|
#define TT_CONFIG_CMAP_FORMAT_4
|
||||||
|
#define TT_CONFIG_CMAP_FORMAT_6
|
||||||
|
#define TT_CONFIG_CMAP_FORMAT_8
|
||||||
|
#define TT_CONFIG_CMAP_FORMAT_10
|
||||||
|
#define TT_CONFIG_CMAP_FORMAT_12
|
||||||
|
#define TT_CONFIG_CMAP_FORMAT_13
|
||||||
|
#define TT_CONFIG_CMAP_FORMAT_14
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
/**** ****/
|
||||||
|
/**** T R U E T Y P E D R I V E R C O N F I G U R A T I O N ****/
|
||||||
|
/**** ****/
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile a
|
||||||
|
* bytecode interpreter in the TrueType driver.
|
||||||
|
*
|
||||||
|
* By undefining this, you will only compile the code necessary to load
|
||||||
|
* TrueType glyphs without hinting.
|
||||||
|
*
|
||||||
|
* Do not #undef this macro here, since the build system might define it
|
||||||
|
* for certain configurations only.
|
||||||
|
*/
|
||||||
|
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Define TT_CONFIG_OPTION_SUBPIXEL_HINTING if you want to compile subpixel
|
||||||
|
* hinting support into the TrueType driver. This modifies the TrueType
|
||||||
|
* hinting mechanism when anything but FT_RENDER_MODE_MONO is requested.
|
||||||
|
*
|
||||||
|
* In particular, it modifies the bytecode interpreter to interpret (or
|
||||||
|
* not) instructions in a certain way so that all TrueType fonts look like
|
||||||
|
* they do in a Windows ClearType (DirectWrite) environment. See [1] for a
|
||||||
|
* technical overview on what this means. See `ttinterp.h` for more
|
||||||
|
* details on the LEAN option.
|
||||||
|
*
|
||||||
|
* There are three possible values.
|
||||||
|
*
|
||||||
|
* Value 1:
|
||||||
|
* This value is associated with the 'Infinality' moniker, contributed by
|
||||||
|
* an individual nicknamed Infinality with the goal of making TrueType
|
||||||
|
* fonts render better than on Windows. A high amount of configurability
|
||||||
|
* and flexibility, down to rules for single glyphs in fonts, but also
|
||||||
|
* very slow. Its experimental and slow nature and the original
|
||||||
|
* developer losing interest meant that this option was never enabled in
|
||||||
|
* default builds.
|
||||||
|
*
|
||||||
|
* The corresponding interpreter version is v38.
|
||||||
|
*
|
||||||
|
* Value 2:
|
||||||
|
* The new default mode for the TrueType driver. The Infinality code
|
||||||
|
* base was stripped to the bare minimum and all configurability removed
|
||||||
|
* in the name of speed and simplicity. The configurability was mainly
|
||||||
|
* aimed at legacy fonts like Arial, Times New Roman, or Courier. Legacy
|
||||||
|
* fonts are fonts that modify vertical stems to achieve clean
|
||||||
|
* black-and-white bitmaps. The new mode focuses on applying a minimal
|
||||||
|
* set of rules to all fonts indiscriminately so that modern and web
|
||||||
|
* fonts render well while legacy fonts render okay.
|
||||||
|
*
|
||||||
|
* The corresponding interpreter version is v40.
|
||||||
|
*
|
||||||
|
* Value 3:
|
||||||
|
* Compile both, making both v38 and v40 available (the latter is the
|
||||||
|
* default).
|
||||||
|
*
|
||||||
|
* By undefining these, you get rendering behavior like on Windows without
|
||||||
|
* ClearType, i.e., Windows XP without ClearType enabled and Win9x
|
||||||
|
* (interpreter version v35). Or not, depending on how much hinting blood
|
||||||
|
* and testing tears the font designer put into a given font. If you
|
||||||
|
* define one or both subpixel hinting options, you can switch between
|
||||||
|
* between v35 and the ones you define (using `FT_Property_Set`).
|
||||||
|
*
|
||||||
|
* This option requires TT_CONFIG_OPTION_BYTECODE_INTERPRETER to be
|
||||||
|
* defined.
|
||||||
|
*
|
||||||
|
* [1]
|
||||||
|
* https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
|
||||||
|
*/
|
||||||
|
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 1 */
|
||||||
|
#define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2
|
||||||
|
/* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 ) */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the TrueType
|
||||||
|
* glyph loader to use Apple's definition of how to handle component
|
||||||
|
* offsets in composite glyphs.
|
||||||
|
*
|
||||||
|
* Apple and MS disagree on the default behavior of component offsets in
|
||||||
|
* composites. Apple says that they should be scaled by the scaling
|
||||||
|
* factors in the transformation matrix (roughly, it's more complex) while
|
||||||
|
* MS says they should not. OpenType defines two bits in the composite
|
||||||
|
* flags array which can be used to disambiguate, but old fonts will not
|
||||||
|
* have them.
|
||||||
|
*
|
||||||
|
* https://www.microsoft.com/typography/otspec/glyf.htm
|
||||||
|
* https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6glyf.html
|
||||||
|
*/
|
||||||
|
#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Define TT_CONFIG_OPTION_GX_VAR_SUPPORT if you want to include support
|
||||||
|
* for Apple's distortable font technology (fvar, gvar, cvar, and avar
|
||||||
|
* tables). This has many similarities to Type 1 Multiple Masters support.
|
||||||
|
*/
|
||||||
|
#define TT_CONFIG_OPTION_GX_VAR_SUPPORT
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Define TT_CONFIG_OPTION_BDF if you want to include support for an
|
||||||
|
* embedded 'BDF ' table within SFNT-based bitmap formats.
|
||||||
|
*/
|
||||||
|
#define TT_CONFIG_OPTION_BDF
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Option TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES controls the maximum number
|
||||||
|
* of bytecode instructions executed for a single run of the bytecode
|
||||||
|
* interpreter, needed to prevent infinite loops. You don't want to change
|
||||||
|
* this except for very special situations (e.g., making a library fuzzer
|
||||||
|
* spend less time to handle broken fonts).
|
||||||
|
*
|
||||||
|
* It is not expected that this value is ever modified by a configuring
|
||||||
|
* script; instead, it gets surrounded with #ifndef ... #endif so that the
|
||||||
|
* value can be set as a preprocessor option on the compiler's command
|
||||||
|
* line.
|
||||||
|
*/
|
||||||
|
#ifndef TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES
|
||||||
|
#define TT_CONFIG_OPTION_MAX_RUNNABLE_OPCODES 1000000L
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
/**** ****/
|
||||||
|
/**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/
|
||||||
|
/**** ****/
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* T1_MAX_DICT_DEPTH is the maximum depth of nest dictionaries and arrays
|
||||||
|
* in the Type 1 stream (see t1load.c). A minimum of 4 is required.
|
||||||
|
*/
|
||||||
|
#define T1_MAX_DICT_DEPTH 5
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine
|
||||||
|
* calls during glyph loading.
|
||||||
|
*/
|
||||||
|
#define T1_MAX_SUBRS_CALLS 16
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A
|
||||||
|
* minimum of 16 is required.
|
||||||
|
*
|
||||||
|
* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256.
|
||||||
|
*/
|
||||||
|
#define T1_MAX_CHARSTRINGS_OPERANDS 256
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Define this configuration macro if you want to prevent the compilation
|
||||||
|
* of 't1afm', which is in charge of reading Type 1 AFM files into an
|
||||||
|
* existing face. Note that if set, the T1 driver will be unable to
|
||||||
|
* produce kerning distances.
|
||||||
|
*/
|
||||||
|
#undef T1_CONFIG_OPTION_NO_AFM
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Define this configuration macro if you want to prevent the compilation
|
||||||
|
* of the Multiple Masters font support in the Type 1 driver.
|
||||||
|
*/
|
||||||
|
#undef T1_CONFIG_OPTION_NO_MM_SUPPORT
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* T1_CONFIG_OPTION_OLD_ENGINE controls whether the pre-Adobe Type 1 engine
|
||||||
|
* gets compiled into FreeType. If defined, it is possible to switch
|
||||||
|
* between the two engines using the 'hinting-engine' property of the type1
|
||||||
|
* driver module.
|
||||||
|
*/
|
||||||
|
/* #define T1_CONFIG_OPTION_OLD_ENGINE */
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
/**** ****/
|
||||||
|
/**** C F F D R I V E R C O N F I G U R A T I O N ****/
|
||||||
|
/**** ****/
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Using CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} it is
|
||||||
|
* possible to set up the default values of the four control points that
|
||||||
|
* define the stem darkening behaviour of the (new) CFF engine. For more
|
||||||
|
* details please read the documentation of the 'darkening-parameters'
|
||||||
|
* property (file `ftdriver.h`), which allows the control at run-time.
|
||||||
|
*
|
||||||
|
* Do **not** undefine these macros!
|
||||||
|
*/
|
||||||
|
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 500
|
||||||
|
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 400
|
||||||
|
|
||||||
|
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 1000
|
||||||
|
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 275
|
||||||
|
|
||||||
|
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 1667
|
||||||
|
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 275
|
||||||
|
|
||||||
|
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 2333
|
||||||
|
#define CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 0
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* CFF_CONFIG_OPTION_OLD_ENGINE controls whether the pre-Adobe CFF engine
|
||||||
|
* gets compiled into FreeType. If defined, it is possible to switch
|
||||||
|
* between the two engines using the 'hinting-engine' property of the cff
|
||||||
|
* driver module.
|
||||||
|
*/
|
||||||
|
/* #define CFF_CONFIG_OPTION_OLD_ENGINE */
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
/**** ****/
|
||||||
|
/**** P C F D R I V E R C O N F I G U R A T I O N ****/
|
||||||
|
/**** ****/
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* There are many PCF fonts just called 'Fixed' which look completely
|
||||||
|
* different, and which have nothing to do with each other. When selecting
|
||||||
|
* 'Fixed' in KDE or Gnome one gets results that appear rather random, the
|
||||||
|
* style changes often if one changes the size and one cannot select some
|
||||||
|
* fonts at all. This option makes the PCF module prepend the foundry name
|
||||||
|
* (plus a space) to the family name.
|
||||||
|
*
|
||||||
|
* We also check whether we have 'wide' characters; all put together, we
|
||||||
|
* get family names like 'Sony Fixed' or 'Misc Fixed Wide'.
|
||||||
|
*
|
||||||
|
* If this option is activated, it can be controlled with the
|
||||||
|
* 'no-long-family-names' property of the pcf driver module.
|
||||||
|
*/
|
||||||
|
/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
/**** ****/
|
||||||
|
/**** A U T O F I T M O D U L E C O N F I G U R A T I O N ****/
|
||||||
|
/**** ****/
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Compile autofit module with CJK (Chinese, Japanese, Korean) script
|
||||||
|
* support.
|
||||||
|
*/
|
||||||
|
#define AF_CONFIG_OPTION_CJK
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Compile autofit module with fallback Indic script support, covering some
|
||||||
|
* scripts that the 'latin' submodule of the autofit module doesn't (yet)
|
||||||
|
* handle.
|
||||||
|
*/
|
||||||
|
#define AF_CONFIG_OPTION_INDIC
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Compile autofit module with warp hinting. The idea of the warping code
|
||||||
|
* is to slightly scale and shift a glyph within a single dimension so that
|
||||||
|
* as much of its segments are aligned (more or less) on the grid. To find
|
||||||
|
* out the optimal scaling and shifting value, various parameter
|
||||||
|
* combinations are tried and scored.
|
||||||
|
*
|
||||||
|
* This experimental option is active only if the rendering mode is
|
||||||
|
* FT_RENDER_MODE_LIGHT; you can switch warping on and off with the
|
||||||
|
* 'warping' property of the auto-hinter (see file `ftdriver.h` for more
|
||||||
|
* information; by default it is switched off).
|
||||||
|
*/
|
||||||
|
#define AF_CONFIG_OPTION_USE_WARPER
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* Use TrueType-like size metrics for 'light' auto-hinting.
|
||||||
|
*
|
||||||
|
* It is strongly recommended to avoid this option, which exists only to
|
||||||
|
* help some legacy applications retain its appearance and behaviour with
|
||||||
|
* respect to auto-hinted TrueType fonts.
|
||||||
|
*
|
||||||
|
* The very reason this option exists at all are GNU/Linux distributions
|
||||||
|
* like Fedora that did not un-patch the following change (which was
|
||||||
|
* present in FreeType between versions 2.4.6 and 2.7.1, inclusive).
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* 2011-07-16 Steven Chu <steven.f.chu@gmail.com>
|
||||||
|
*
|
||||||
|
* [truetype] Fix metrics on size request for scalable fonts.
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* This problematic commit is now reverted (more or less).
|
||||||
|
*/
|
||||||
|
/* #define AF_CONFIG_OPTION_TT_SIZE_METRICS */
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This macro is obsolete. Support has been removed in FreeType version
|
||||||
|
* 2.5.
|
||||||
|
*/
|
||||||
|
/* #define FT_CONFIG_OPTION_OLD_INTERNALS */
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This macro is defined if native TrueType hinting is requested by the
|
||||||
|
* definitions above.
|
||||||
|
*/
|
||||||
|
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
|
||||||
|
#define TT_USE_BYTECODE_INTERPRETER
|
||||||
|
|
||||||
|
#ifdef TT_CONFIG_OPTION_SUBPIXEL_HINTING
|
||||||
|
#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 1
|
||||||
|
#define TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if TT_CONFIG_OPTION_SUBPIXEL_HINTING & 2
|
||||||
|
#define TT_SUPPORT_SUBPIXEL_HINTING_MINIMAL
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check CFF darkening parameters. The checks are the same as in function
|
||||||
|
* `cff_property_set' in file `cffdrivr.c'.
|
||||||
|
*/
|
||||||
|
#if CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 < 0 || \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 < 0 || \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 < 0 || \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 < 0 || \
|
||||||
|
\
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 < 0 || \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 < 0 || \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 < 0 || \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 < 0 || \
|
||||||
|
\
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X1 > \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 || \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X2 > \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 || \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X3 > \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_X4 || \
|
||||||
|
\
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y1 > 500 || \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y2 > 500 || \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y3 > 500 || \
|
||||||
|
CFF_CONFIG_OPTION_DARKENING_PARAMETER_Y4 > 500
|
||||||
|
#error "Invalid CFF darkening parameters!"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
FT_END_HEADER
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* FTOPTION_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
||||||
175
src/win/mingw/include/freetype/config/ftstdlib.h
Normal file
175
src/win/mingw/include/freetype/config/ftstdlib.h
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* ftstdlib.h
|
||||||
|
*
|
||||||
|
* ANSI-specific library and header configuration file (specification
|
||||||
|
* only).
|
||||||
|
*
|
||||||
|
* Copyright 2002-2018 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* This file is used to group all #includes to the ANSI C library that
|
||||||
|
* FreeType normally requires. It also defines macros to rename the
|
||||||
|
* standard functions within the FreeType source code.
|
||||||
|
*
|
||||||
|
* Load a file which defines FTSTDLIB_H_ before this one to override it.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FTSTDLIB_H_
|
||||||
|
#define FTSTDLIB_H_
|
||||||
|
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
#define ft_ptrdiff_t ptrdiff_t
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
*
|
||||||
|
* integer limits
|
||||||
|
*
|
||||||
|
* UINT_MAX and ULONG_MAX are used to automatically compute the size of
|
||||||
|
* 'int' and 'long' in bytes at compile-time. So far, this works for all
|
||||||
|
* platforms the library has been tested on.
|
||||||
|
*
|
||||||
|
* Note that on the extremely rare platforms that do not provide integer
|
||||||
|
* types that are _exactly_ 16 and 32 bits wide (e.g. some old Crays where
|
||||||
|
* 'int' is 36 bits), we do not make any guarantee about the correct
|
||||||
|
* behaviour of FT2 with all fonts.
|
||||||
|
*
|
||||||
|
* In these case, `ftconfig.h` will refuse to compile anyway with a message
|
||||||
|
* like 'couldn't find 32-bit type' or something similar.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
|
||||||
|
#define FT_CHAR_BIT CHAR_BIT
|
||||||
|
#define FT_USHORT_MAX USHRT_MAX
|
||||||
|
#define FT_INT_MAX INT_MAX
|
||||||
|
#define FT_INT_MIN INT_MIN
|
||||||
|
#define FT_UINT_MAX UINT_MAX
|
||||||
|
#define FT_LONG_MIN LONG_MIN
|
||||||
|
#define FT_LONG_MAX LONG_MAX
|
||||||
|
#define FT_ULONG_MAX ULONG_MAX
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
*
|
||||||
|
* character and string processing
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#define ft_memchr memchr
|
||||||
|
#define ft_memcmp memcmp
|
||||||
|
#define ft_memcpy memcpy
|
||||||
|
#define ft_memmove memmove
|
||||||
|
#define ft_memset memset
|
||||||
|
#define ft_strcat strcat
|
||||||
|
#define ft_strcmp strcmp
|
||||||
|
#define ft_strcpy strcpy
|
||||||
|
#define ft_strlen strlen
|
||||||
|
#define ft_strncmp strncmp
|
||||||
|
#define ft_strncpy strncpy
|
||||||
|
#define ft_strrchr strrchr
|
||||||
|
#define ft_strstr strstr
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
*
|
||||||
|
* file handling
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define FT_FILE FILE
|
||||||
|
#define ft_fclose fclose
|
||||||
|
#define ft_fopen fopen
|
||||||
|
#define ft_fread fread
|
||||||
|
#define ft_fseek fseek
|
||||||
|
#define ft_ftell ftell
|
||||||
|
#define ft_sprintf sprintf
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
*
|
||||||
|
* sorting
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
#define ft_qsort qsort
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
*
|
||||||
|
* memory allocation
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define ft_scalloc calloc
|
||||||
|
#define ft_sfree free
|
||||||
|
#define ft_smalloc malloc
|
||||||
|
#define ft_srealloc realloc
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
*
|
||||||
|
* miscellaneous
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#define ft_strtol strtol
|
||||||
|
#define ft_getenv getenv
|
||||||
|
|
||||||
|
|
||||||
|
/***********************************************************************
|
||||||
|
*
|
||||||
|
* execution control
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <setjmp.h>
|
||||||
|
|
||||||
|
#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */
|
||||||
|
/* jmp_buf is defined as a macro */
|
||||||
|
/* on certain platforms */
|
||||||
|
|
||||||
|
#define ft_longjmp longjmp
|
||||||
|
#define ft_setjmp( b ) setjmp( *(ft_jmp_buf*) &(b) ) /* same thing here */
|
||||||
|
|
||||||
|
|
||||||
|
/* the following is only used for debugging purposes, i.e., if */
|
||||||
|
/* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* FTSTDLIB_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
||||||
4867
src/win/mingw/include/freetype/freetype.h
Normal file
4867
src/win/mingw/include/freetype/freetype.h
Normal file
File diff suppressed because it is too large
Load Diff
279
src/win/mingw/include/freetype/fterrdef.h
Normal file
279
src/win/mingw/include/freetype/fterrdef.h
Normal file
@@ -0,0 +1,279 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* fterrdef.h
|
||||||
|
*
|
||||||
|
* FreeType error codes (specification).
|
||||||
|
*
|
||||||
|
* Copyright 2002-2018 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @section:
|
||||||
|
* error_code_values
|
||||||
|
*
|
||||||
|
* @title:
|
||||||
|
* Error Code Values
|
||||||
|
*
|
||||||
|
* @abstract:
|
||||||
|
* All possible error codes returned by FreeType functions.
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* The list below is taken verbatim from the file `fterrdef.h` (loaded
|
||||||
|
* automatically by including `FT_FREETYPE_H`). The first argument of the
|
||||||
|
* `FT_ERROR_DEF_` macro is the error label; by default, the prefix
|
||||||
|
* `FT_Err_` gets added so that you get error names like
|
||||||
|
* `FT_Err_Cannot_Open_Resource`. The second argument is the error code,
|
||||||
|
* and the last argument an error string, which is not used by FreeType.
|
||||||
|
*
|
||||||
|
* Within your application you should **only** use error names and
|
||||||
|
* **never** its numeric values! The latter might (and actually do)
|
||||||
|
* change in forthcoming FreeType versions.
|
||||||
|
*
|
||||||
|
* Macro `FT_NOERRORDEF_` defines `FT_Err_Ok`, which is always zero. See
|
||||||
|
* the 'Error Enumerations' subsection how to automatically generate a
|
||||||
|
* list of error strings.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @enum:
|
||||||
|
* FT_Err_XXX
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* generic errors */
|
||||||
|
|
||||||
|
FT_NOERRORDEF_( Ok, 0x00,
|
||||||
|
"no error" )
|
||||||
|
|
||||||
|
FT_ERRORDEF_( Cannot_Open_Resource, 0x01,
|
||||||
|
"cannot open resource" )
|
||||||
|
FT_ERRORDEF_( Unknown_File_Format, 0x02,
|
||||||
|
"unknown file format" )
|
||||||
|
FT_ERRORDEF_( Invalid_File_Format, 0x03,
|
||||||
|
"broken file" )
|
||||||
|
FT_ERRORDEF_( Invalid_Version, 0x04,
|
||||||
|
"invalid FreeType version" )
|
||||||
|
FT_ERRORDEF_( Lower_Module_Version, 0x05,
|
||||||
|
"module version is too low" )
|
||||||
|
FT_ERRORDEF_( Invalid_Argument, 0x06,
|
||||||
|
"invalid argument" )
|
||||||
|
FT_ERRORDEF_( Unimplemented_Feature, 0x07,
|
||||||
|
"unimplemented feature" )
|
||||||
|
FT_ERRORDEF_( Invalid_Table, 0x08,
|
||||||
|
"broken table" )
|
||||||
|
FT_ERRORDEF_( Invalid_Offset, 0x09,
|
||||||
|
"broken offset within table" )
|
||||||
|
FT_ERRORDEF_( Array_Too_Large, 0x0A,
|
||||||
|
"array allocation size too large" )
|
||||||
|
FT_ERRORDEF_( Missing_Module, 0x0B,
|
||||||
|
"missing module" )
|
||||||
|
FT_ERRORDEF_( Missing_Property, 0x0C,
|
||||||
|
"missing property" )
|
||||||
|
|
||||||
|
/* glyph/character errors */
|
||||||
|
|
||||||
|
FT_ERRORDEF_( Invalid_Glyph_Index, 0x10,
|
||||||
|
"invalid glyph index" )
|
||||||
|
FT_ERRORDEF_( Invalid_Character_Code, 0x11,
|
||||||
|
"invalid character code" )
|
||||||
|
FT_ERRORDEF_( Invalid_Glyph_Format, 0x12,
|
||||||
|
"unsupported glyph image format" )
|
||||||
|
FT_ERRORDEF_( Cannot_Render_Glyph, 0x13,
|
||||||
|
"cannot render this glyph format" )
|
||||||
|
FT_ERRORDEF_( Invalid_Outline, 0x14,
|
||||||
|
"invalid outline" )
|
||||||
|
FT_ERRORDEF_( Invalid_Composite, 0x15,
|
||||||
|
"invalid composite glyph" )
|
||||||
|
FT_ERRORDEF_( Too_Many_Hints, 0x16,
|
||||||
|
"too many hints" )
|
||||||
|
FT_ERRORDEF_( Invalid_Pixel_Size, 0x17,
|
||||||
|
"invalid pixel size" )
|
||||||
|
|
||||||
|
/* handle errors */
|
||||||
|
|
||||||
|
FT_ERRORDEF_( Invalid_Handle, 0x20,
|
||||||
|
"invalid object handle" )
|
||||||
|
FT_ERRORDEF_( Invalid_Library_Handle, 0x21,
|
||||||
|
"invalid library handle" )
|
||||||
|
FT_ERRORDEF_( Invalid_Driver_Handle, 0x22,
|
||||||
|
"invalid module handle" )
|
||||||
|
FT_ERRORDEF_( Invalid_Face_Handle, 0x23,
|
||||||
|
"invalid face handle" )
|
||||||
|
FT_ERRORDEF_( Invalid_Size_Handle, 0x24,
|
||||||
|
"invalid size handle" )
|
||||||
|
FT_ERRORDEF_( Invalid_Slot_Handle, 0x25,
|
||||||
|
"invalid glyph slot handle" )
|
||||||
|
FT_ERRORDEF_( Invalid_CharMap_Handle, 0x26,
|
||||||
|
"invalid charmap handle" )
|
||||||
|
FT_ERRORDEF_( Invalid_Cache_Handle, 0x27,
|
||||||
|
"invalid cache manager handle" )
|
||||||
|
FT_ERRORDEF_( Invalid_Stream_Handle, 0x28,
|
||||||
|
"invalid stream handle" )
|
||||||
|
|
||||||
|
/* driver errors */
|
||||||
|
|
||||||
|
FT_ERRORDEF_( Too_Many_Drivers, 0x30,
|
||||||
|
"too many modules" )
|
||||||
|
FT_ERRORDEF_( Too_Many_Extensions, 0x31,
|
||||||
|
"too many extensions" )
|
||||||
|
|
||||||
|
/* memory errors */
|
||||||
|
|
||||||
|
FT_ERRORDEF_( Out_Of_Memory, 0x40,
|
||||||
|
"out of memory" )
|
||||||
|
FT_ERRORDEF_( Unlisted_Object, 0x41,
|
||||||
|
"unlisted object" )
|
||||||
|
|
||||||
|
/* stream errors */
|
||||||
|
|
||||||
|
FT_ERRORDEF_( Cannot_Open_Stream, 0x51,
|
||||||
|
"cannot open stream" )
|
||||||
|
FT_ERRORDEF_( Invalid_Stream_Seek, 0x52,
|
||||||
|
"invalid stream seek" )
|
||||||
|
FT_ERRORDEF_( Invalid_Stream_Skip, 0x53,
|
||||||
|
"invalid stream skip" )
|
||||||
|
FT_ERRORDEF_( Invalid_Stream_Read, 0x54,
|
||||||
|
"invalid stream read" )
|
||||||
|
FT_ERRORDEF_( Invalid_Stream_Operation, 0x55,
|
||||||
|
"invalid stream operation" )
|
||||||
|
FT_ERRORDEF_( Invalid_Frame_Operation, 0x56,
|
||||||
|
"invalid frame operation" )
|
||||||
|
FT_ERRORDEF_( Nested_Frame_Access, 0x57,
|
||||||
|
"nested frame access" )
|
||||||
|
FT_ERRORDEF_( Invalid_Frame_Read, 0x58,
|
||||||
|
"invalid frame read" )
|
||||||
|
|
||||||
|
/* raster errors */
|
||||||
|
|
||||||
|
FT_ERRORDEF_( Raster_Uninitialized, 0x60,
|
||||||
|
"raster uninitialized" )
|
||||||
|
FT_ERRORDEF_( Raster_Corrupted, 0x61,
|
||||||
|
"raster corrupted" )
|
||||||
|
FT_ERRORDEF_( Raster_Overflow, 0x62,
|
||||||
|
"raster overflow" )
|
||||||
|
FT_ERRORDEF_( Raster_Negative_Height, 0x63,
|
||||||
|
"negative height while rastering" )
|
||||||
|
|
||||||
|
/* cache errors */
|
||||||
|
|
||||||
|
FT_ERRORDEF_( Too_Many_Caches, 0x70,
|
||||||
|
"too many registered caches" )
|
||||||
|
|
||||||
|
/* TrueType and SFNT errors */
|
||||||
|
|
||||||
|
FT_ERRORDEF_( Invalid_Opcode, 0x80,
|
||||||
|
"invalid opcode" )
|
||||||
|
FT_ERRORDEF_( Too_Few_Arguments, 0x81,
|
||||||
|
"too few arguments" )
|
||||||
|
FT_ERRORDEF_( Stack_Overflow, 0x82,
|
||||||
|
"stack overflow" )
|
||||||
|
FT_ERRORDEF_( Code_Overflow, 0x83,
|
||||||
|
"code overflow" )
|
||||||
|
FT_ERRORDEF_( Bad_Argument, 0x84,
|
||||||
|
"bad argument" )
|
||||||
|
FT_ERRORDEF_( Divide_By_Zero, 0x85,
|
||||||
|
"division by zero" )
|
||||||
|
FT_ERRORDEF_( Invalid_Reference, 0x86,
|
||||||
|
"invalid reference" )
|
||||||
|
FT_ERRORDEF_( Debug_OpCode, 0x87,
|
||||||
|
"found debug opcode" )
|
||||||
|
FT_ERRORDEF_( ENDF_In_Exec_Stream, 0x88,
|
||||||
|
"found ENDF opcode in execution stream" )
|
||||||
|
FT_ERRORDEF_( Nested_DEFS, 0x89,
|
||||||
|
"nested DEFS" )
|
||||||
|
FT_ERRORDEF_( Invalid_CodeRange, 0x8A,
|
||||||
|
"invalid code range" )
|
||||||
|
FT_ERRORDEF_( Execution_Too_Long, 0x8B,
|
||||||
|
"execution context too long" )
|
||||||
|
FT_ERRORDEF_( Too_Many_Function_Defs, 0x8C,
|
||||||
|
"too many function definitions" )
|
||||||
|
FT_ERRORDEF_( Too_Many_Instruction_Defs, 0x8D,
|
||||||
|
"too many instruction definitions" )
|
||||||
|
FT_ERRORDEF_( Table_Missing, 0x8E,
|
||||||
|
"SFNT font table missing" )
|
||||||
|
FT_ERRORDEF_( Horiz_Header_Missing, 0x8F,
|
||||||
|
"horizontal header (hhea) table missing" )
|
||||||
|
FT_ERRORDEF_( Locations_Missing, 0x90,
|
||||||
|
"locations (loca) table missing" )
|
||||||
|
FT_ERRORDEF_( Name_Table_Missing, 0x91,
|
||||||
|
"name table missing" )
|
||||||
|
FT_ERRORDEF_( CMap_Table_Missing, 0x92,
|
||||||
|
"character map (cmap) table missing" )
|
||||||
|
FT_ERRORDEF_( Hmtx_Table_Missing, 0x93,
|
||||||
|
"horizontal metrics (hmtx) table missing" )
|
||||||
|
FT_ERRORDEF_( Post_Table_Missing, 0x94,
|
||||||
|
"PostScript (post) table missing" )
|
||||||
|
FT_ERRORDEF_( Invalid_Horiz_Metrics, 0x95,
|
||||||
|
"invalid horizontal metrics" )
|
||||||
|
FT_ERRORDEF_( Invalid_CharMap_Format, 0x96,
|
||||||
|
"invalid character map (cmap) format" )
|
||||||
|
FT_ERRORDEF_( Invalid_PPem, 0x97,
|
||||||
|
"invalid ppem value" )
|
||||||
|
FT_ERRORDEF_( Invalid_Vert_Metrics, 0x98,
|
||||||
|
"invalid vertical metrics" )
|
||||||
|
FT_ERRORDEF_( Could_Not_Find_Context, 0x99,
|
||||||
|
"could not find context" )
|
||||||
|
FT_ERRORDEF_( Invalid_Post_Table_Format, 0x9A,
|
||||||
|
"invalid PostScript (post) table format" )
|
||||||
|
FT_ERRORDEF_( Invalid_Post_Table, 0x9B,
|
||||||
|
"invalid PostScript (post) table" )
|
||||||
|
FT_ERRORDEF_( DEF_In_Glyf_Bytecode, 0x9C,
|
||||||
|
"found FDEF or IDEF opcode in glyf bytecode" )
|
||||||
|
FT_ERRORDEF_( Missing_Bitmap, 0x9D,
|
||||||
|
"missing bitmap in strike" )
|
||||||
|
|
||||||
|
/* CFF, CID, and Type 1 errors */
|
||||||
|
|
||||||
|
FT_ERRORDEF_( Syntax_Error, 0xA0,
|
||||||
|
"opcode syntax error" )
|
||||||
|
FT_ERRORDEF_( Stack_Underflow, 0xA1,
|
||||||
|
"argument stack underflow" )
|
||||||
|
FT_ERRORDEF_( Ignore, 0xA2,
|
||||||
|
"ignore" )
|
||||||
|
FT_ERRORDEF_( No_Unicode_Glyph_Name, 0xA3,
|
||||||
|
"no Unicode glyph name found" )
|
||||||
|
FT_ERRORDEF_( Glyph_Too_Big, 0xA4,
|
||||||
|
"glyph too big for hinting" )
|
||||||
|
|
||||||
|
/* BDF errors */
|
||||||
|
|
||||||
|
FT_ERRORDEF_( Missing_Startfont_Field, 0xB0,
|
||||||
|
"`STARTFONT' field missing" )
|
||||||
|
FT_ERRORDEF_( Missing_Font_Field, 0xB1,
|
||||||
|
"`FONT' field missing" )
|
||||||
|
FT_ERRORDEF_( Missing_Size_Field, 0xB2,
|
||||||
|
"`SIZE' field missing" )
|
||||||
|
FT_ERRORDEF_( Missing_Fontboundingbox_Field, 0xB3,
|
||||||
|
"`FONTBOUNDINGBOX' field missing" )
|
||||||
|
FT_ERRORDEF_( Missing_Chars_Field, 0xB4,
|
||||||
|
"`CHARS' field missing" )
|
||||||
|
FT_ERRORDEF_( Missing_Startchar_Field, 0xB5,
|
||||||
|
"`STARTCHAR' field missing" )
|
||||||
|
FT_ERRORDEF_( Missing_Encoding_Field, 0xB6,
|
||||||
|
"`ENCODING' field missing" )
|
||||||
|
FT_ERRORDEF_( Missing_Bbx_Field, 0xB7,
|
||||||
|
"`BBX' field missing" )
|
||||||
|
FT_ERRORDEF_( Bbx_Too_Big, 0xB8,
|
||||||
|
"`BBX' too big" )
|
||||||
|
FT_ERRORDEF_( Corrupted_Font_Header, 0xB9,
|
||||||
|
"Font header corrupted or missing fields" )
|
||||||
|
FT_ERRORDEF_( Corrupted_Font_Glyphs, 0xBA,
|
||||||
|
"Font glyphs corrupted or missing fields" )
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
||||||
272
src/win/mingw/include/freetype/fterrors.h
Normal file
272
src/win/mingw/include/freetype/fterrors.h
Normal file
@@ -0,0 +1,272 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* fterrors.h
|
||||||
|
*
|
||||||
|
* FreeType error code handling (specification).
|
||||||
|
*
|
||||||
|
* Copyright 1996-2018 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @section:
|
||||||
|
* error_enumerations
|
||||||
|
*
|
||||||
|
* @title:
|
||||||
|
* Error Enumerations
|
||||||
|
*
|
||||||
|
* @abstract:
|
||||||
|
* How to handle errors and error strings.
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* The header file `fterrors.h` (which is automatically included by
|
||||||
|
* `freetype.h` defines the handling of FreeType's enumeration
|
||||||
|
* constants. It can also be used to generate error message strings
|
||||||
|
* with a small macro trick explained below.
|
||||||
|
*
|
||||||
|
* **Error Formats**
|
||||||
|
*
|
||||||
|
* The configuration macro FT_CONFIG_OPTION_USE_MODULE_ERRORS can be
|
||||||
|
* defined in `ftoption.h` in order to make the higher byte indicate the
|
||||||
|
* module where the error has happened (this is not compatible with
|
||||||
|
* standard builds of FreeType~2, however). See the file `ftmoderr.h`
|
||||||
|
* for more details.
|
||||||
|
*
|
||||||
|
* **Error Message Strings**
|
||||||
|
*
|
||||||
|
* Error definitions are set up with special macros that allow client
|
||||||
|
* applications to build a table of error message strings. The strings
|
||||||
|
* are not included in a normal build of FreeType~2 to save space (most
|
||||||
|
* client applications do not use them).
|
||||||
|
*
|
||||||
|
* To do so, you have to define the following macros before including
|
||||||
|
* this file.
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* FT_ERROR_START_LIST
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* This macro is called before anything else to define the start of the
|
||||||
|
* error list. It is followed by several FT_ERROR_DEF calls.
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* FT_ERROR_DEF( e, v, s )
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* This macro is called to define one single error. 'e' is the error
|
||||||
|
* code identifier (e.g., `Invalid_Argument`), 'v' is the error's
|
||||||
|
* numerical value, and 's' is the corresponding error string.
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* FT_ERROR_END_LIST
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* This macro ends the list.
|
||||||
|
*
|
||||||
|
* Additionally, you have to undefine `FTERRORS_H_` before #including
|
||||||
|
* this file.
|
||||||
|
*
|
||||||
|
* Here is a simple example.
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* #undef FTERRORS_H_
|
||||||
|
* #define FT_ERRORDEF( e, v, s ) { e, s },
|
||||||
|
* #define FT_ERROR_START_LIST {
|
||||||
|
* #define FT_ERROR_END_LIST { 0, NULL } };
|
||||||
|
*
|
||||||
|
* const struct
|
||||||
|
* {
|
||||||
|
* int err_code;
|
||||||
|
* const char* err_msg;
|
||||||
|
* } ft_errors[] =
|
||||||
|
*
|
||||||
|
* #include FT_ERRORS_H
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* An alternative to using an array is a switch statement.
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* #undef FTERRORS_H_
|
||||||
|
* #define FT_ERROR_START_LIST switch ( error_code ) {
|
||||||
|
* #define FT_ERRORDEF( e, v, s ) case v: return s;
|
||||||
|
* #define FT_ERROR_END_LIST }
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* If you use FT_CONFIG_OPTION_USE_MODULE_ERRORS, 'error_code' should be
|
||||||
|
* replaced with 'FT_ERROR_BASE(error_code)' in the last example.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
/* In previous FreeType versions we used `__FTERRORS_H__'. However, */
|
||||||
|
/* using two successive underscores in a non-system symbol name */
|
||||||
|
/* violates the C (and C++) standard, so it was changed to the */
|
||||||
|
/* current form. In spite of this, we have to make */
|
||||||
|
/* */
|
||||||
|
/* #undefine __FTERRORS_H__ */
|
||||||
|
/* */
|
||||||
|
/* work for backward compatibility. */
|
||||||
|
/* */
|
||||||
|
#if !( defined( FTERRORS_H_ ) && defined ( __FTERRORS_H__ ) )
|
||||||
|
#define FTERRORS_H_
|
||||||
|
#define __FTERRORS_H__
|
||||||
|
|
||||||
|
|
||||||
|
/* include module base error codes */
|
||||||
|
#include FT_MODULE_ERRORS_H
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************/
|
||||||
|
/*******************************************************************/
|
||||||
|
/***** *****/
|
||||||
|
/***** SETUP MACROS *****/
|
||||||
|
/***** *****/
|
||||||
|
/*******************************************************************/
|
||||||
|
/*******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#undef FT_NEED_EXTERN_C
|
||||||
|
|
||||||
|
|
||||||
|
/* FT_ERR_PREFIX is used as a prefix for error identifiers. */
|
||||||
|
/* By default, we use `FT_Err_'. */
|
||||||
|
/* */
|
||||||
|
#ifndef FT_ERR_PREFIX
|
||||||
|
#define FT_ERR_PREFIX FT_Err_
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* FT_ERR_BASE is used as the base for module-specific errors. */
|
||||||
|
/* */
|
||||||
|
#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS
|
||||||
|
|
||||||
|
#ifndef FT_ERR_BASE
|
||||||
|
#define FT_ERR_BASE FT_Mod_Err_Base
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#undef FT_ERR_BASE
|
||||||
|
#define FT_ERR_BASE 0
|
||||||
|
|
||||||
|
#endif /* FT_CONFIG_OPTION_USE_MODULE_ERRORS */
|
||||||
|
|
||||||
|
|
||||||
|
/* If FT_ERRORDEF is not defined, we need to define a simple */
|
||||||
|
/* enumeration type. */
|
||||||
|
/* */
|
||||||
|
#ifndef FT_ERRORDEF
|
||||||
|
|
||||||
|
#define FT_INCLUDE_ERR_PROTOS
|
||||||
|
|
||||||
|
#define FT_ERRORDEF( e, v, s ) e = v,
|
||||||
|
#define FT_ERROR_START_LIST enum {
|
||||||
|
#define FT_ERROR_END_LIST FT_ERR_CAT( FT_ERR_PREFIX, Max ) };
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_NEED_EXTERN_C
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_ERRORDEF */
|
||||||
|
|
||||||
|
|
||||||
|
/* this macro is used to define an error */
|
||||||
|
#define FT_ERRORDEF_( e, v, s ) \
|
||||||
|
FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v + FT_ERR_BASE, s )
|
||||||
|
|
||||||
|
/* this is only used for <module>_Err_Ok, which must be 0! */
|
||||||
|
#define FT_NOERRORDEF_( e, v, s ) \
|
||||||
|
FT_ERRORDEF( FT_ERR_CAT( FT_ERR_PREFIX, e ), v, s )
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FT_ERROR_START_LIST
|
||||||
|
FT_ERROR_START_LIST
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* now include the error codes */
|
||||||
|
#include FT_ERROR_DEFINITIONS_H
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FT_ERROR_END_LIST
|
||||||
|
FT_ERROR_END_LIST
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************/
|
||||||
|
/*******************************************************************/
|
||||||
|
/***** *****/
|
||||||
|
/***** SIMPLE CLEANUP *****/
|
||||||
|
/***** *****/
|
||||||
|
/*******************************************************************/
|
||||||
|
/*******************************************************************/
|
||||||
|
|
||||||
|
#ifdef FT_NEED_EXTERN_C
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef FT_ERROR_START_LIST
|
||||||
|
#undef FT_ERROR_END_LIST
|
||||||
|
|
||||||
|
#undef FT_ERRORDEF
|
||||||
|
#undef FT_ERRORDEF_
|
||||||
|
#undef FT_NOERRORDEF_
|
||||||
|
|
||||||
|
#undef FT_NEED_EXTERN_C
|
||||||
|
#undef FT_ERR_BASE
|
||||||
|
|
||||||
|
/* FT_ERR_PREFIX is needed internally */
|
||||||
|
#ifndef FT2_BUILD_LIBRARY
|
||||||
|
#undef FT_ERR_PREFIX
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef FT_INCLUDE_ERR_PROTOS
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @function:
|
||||||
|
* FT_Error_String
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* Retrieve the description of a valid FreeType error code.
|
||||||
|
*
|
||||||
|
* @input:
|
||||||
|
* error_code ::
|
||||||
|
* A valid FreeType error code.
|
||||||
|
*
|
||||||
|
* @return:
|
||||||
|
* A C~string or `NULL`, if any error occurred.
|
||||||
|
*
|
||||||
|
* @note:
|
||||||
|
* FreeType has to be compiled with `FT_CONFIG_OPTION_ERROR_STRINGS` or
|
||||||
|
* `FT_DEBUG_LEVEL_ERROR` to get meaningful descriptions.
|
||||||
|
* 'error_string' will be `NULL` otherwise.
|
||||||
|
*
|
||||||
|
* Module identification will be ignored:
|
||||||
|
*
|
||||||
|
* ```c
|
||||||
|
* strcmp( FT_Error_String( FT_Err_Unknown_File_Format ),
|
||||||
|
* FT_Error_String( BDF_Err_Unknown_File_Format ) ) == 0;
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
FT_EXPORT( const char* )
|
||||||
|
FT_Error_String( FT_Error error_code );
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* FT_INCLUDE_ERR_PROTOS */
|
||||||
|
|
||||||
|
#endif /* !(FTERRORS_H_ && __FTERRORS_H__) */
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
||||||
1246
src/win/mingw/include/freetype/ftimage.h
Normal file
1246
src/win/mingw/include/freetype/ftimage.h
Normal file
File diff suppressed because it is too large
Load Diff
195
src/win/mingw/include/freetype/ftmoderr.h
Normal file
195
src/win/mingw/include/freetype/ftmoderr.h
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* ftmoderr.h
|
||||||
|
*
|
||||||
|
* FreeType module error offsets (specification).
|
||||||
|
*
|
||||||
|
* Copyright 2001-2018 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* This file is used to define the FreeType module error codes.
|
||||||
|
*
|
||||||
|
* If the macro FT_CONFIG_OPTION_USE_MODULE_ERRORS in `ftoption.h` is set,
|
||||||
|
* the lower byte of an error value identifies the error code as usual. In
|
||||||
|
* addition, the higher byte identifies the module. For example, the error
|
||||||
|
* `FT_Err_Invalid_File_Format` has value 0x0003, the error
|
||||||
|
* `TT_Err_Invalid_File_Format` has value 0x1303, the error
|
||||||
|
* `T1_Err_Invalid_File_Format` has value 0x1403, etc.
|
||||||
|
*
|
||||||
|
* Note that `FT_Err_Ok`, `TT_Err_Ok`, etc. are always equal to zero,
|
||||||
|
* including the high byte.
|
||||||
|
*
|
||||||
|
* If FT_CONFIG_OPTION_USE_MODULE_ERRORS isn't set, the higher byte of an
|
||||||
|
* error value is set to zero.
|
||||||
|
*
|
||||||
|
* To hide the various `XXX_Err_` prefixes in the source code, FreeType
|
||||||
|
* provides some macros in `fttypes.h`.
|
||||||
|
*
|
||||||
|
* FT_ERR( err )
|
||||||
|
*
|
||||||
|
* Add current error module prefix (as defined with the `FT_ERR_PREFIX`
|
||||||
|
* macro) to 'err'. For example, in the BDF module the line
|
||||||
|
*
|
||||||
|
* error = FT_ERR( Invalid_Outline );
|
||||||
|
*
|
||||||
|
* expands to
|
||||||
|
*
|
||||||
|
* error = BDF_Err_Invalid_Outline;
|
||||||
|
*
|
||||||
|
* For simplicity, you can always use `FT_Err_Ok` directly instead of
|
||||||
|
* 'FT_ERR( Ok )'.
|
||||||
|
*
|
||||||
|
* FT_ERR_EQ( errcode, err )
|
||||||
|
* FT_ERR_NEQ( errcode, err )
|
||||||
|
*
|
||||||
|
* Compare error code 'errcode' with the error 'err' for equality and
|
||||||
|
* inequality, respectively. Example:
|
||||||
|
*
|
||||||
|
* if ( FT_ERR_EQ( error, Invalid_Outline ) )
|
||||||
|
* ...
|
||||||
|
*
|
||||||
|
* Using this macro you don't have to think about error prefixes. Of
|
||||||
|
* course, if module errors are not active, the above example is the
|
||||||
|
* same as
|
||||||
|
*
|
||||||
|
* if ( error == FT_Err_Invalid_Outline )
|
||||||
|
* ...
|
||||||
|
*
|
||||||
|
* FT_ERROR_BASE( errcode )
|
||||||
|
* FT_ERROR_MODULE( errcode )
|
||||||
|
*
|
||||||
|
* Get base error and module error code, respectively.
|
||||||
|
*
|
||||||
|
* It can also be used to create a module error message table easily with
|
||||||
|
* something like
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* #undef FTMODERR_H_
|
||||||
|
* #define FT_MODERRDEF( e, v, s ) { FT_Mod_Err_ ## e, s },
|
||||||
|
* #define FT_MODERR_START_LIST {
|
||||||
|
* #define FT_MODERR_END_LIST { 0, 0 } };
|
||||||
|
*
|
||||||
|
* const struct
|
||||||
|
* {
|
||||||
|
* int mod_err_offset;
|
||||||
|
* const char* mod_err_msg
|
||||||
|
* } ft_mod_errors[] =
|
||||||
|
*
|
||||||
|
* #include FT_MODULE_ERRORS_H
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FTMODERR_H_
|
||||||
|
#define FTMODERR_H_
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************/
|
||||||
|
/*******************************************************************/
|
||||||
|
/***** *****/
|
||||||
|
/***** SETUP MACROS *****/
|
||||||
|
/***** *****/
|
||||||
|
/*******************************************************************/
|
||||||
|
/*******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#undef FT_NEED_EXTERN_C
|
||||||
|
|
||||||
|
#ifndef FT_MODERRDEF
|
||||||
|
|
||||||
|
#ifdef FT_CONFIG_OPTION_USE_MODULE_ERRORS
|
||||||
|
#define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = v,
|
||||||
|
#else
|
||||||
|
#define FT_MODERRDEF( e, v, s ) FT_Mod_Err_ ## e = 0,
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FT_MODERR_START_LIST enum {
|
||||||
|
#define FT_MODERR_END_LIST FT_Mod_Err_Max };
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define FT_NEED_EXTERN_C
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* !FT_MODERRDEF */
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************/
|
||||||
|
/*******************************************************************/
|
||||||
|
/***** *****/
|
||||||
|
/***** LIST MODULE ERROR BASES *****/
|
||||||
|
/***** *****/
|
||||||
|
/*******************************************************************/
|
||||||
|
/*******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FT_MODERR_START_LIST
|
||||||
|
FT_MODERR_START_LIST
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
FT_MODERRDEF( Base, 0x000, "base module" )
|
||||||
|
FT_MODERRDEF( Autofit, 0x100, "autofitter module" )
|
||||||
|
FT_MODERRDEF( BDF, 0x200, "BDF module" )
|
||||||
|
FT_MODERRDEF( Bzip2, 0x300, "Bzip2 module" )
|
||||||
|
FT_MODERRDEF( Cache, 0x400, "cache module" )
|
||||||
|
FT_MODERRDEF( CFF, 0x500, "CFF module" )
|
||||||
|
FT_MODERRDEF( CID, 0x600, "CID module" )
|
||||||
|
FT_MODERRDEF( Gzip, 0x700, "Gzip module" )
|
||||||
|
FT_MODERRDEF( LZW, 0x800, "LZW module" )
|
||||||
|
FT_MODERRDEF( OTvalid, 0x900, "OpenType validation module" )
|
||||||
|
FT_MODERRDEF( PCF, 0xA00, "PCF module" )
|
||||||
|
FT_MODERRDEF( PFR, 0xB00, "PFR module" )
|
||||||
|
FT_MODERRDEF( PSaux, 0xC00, "PS auxiliary module" )
|
||||||
|
FT_MODERRDEF( PShinter, 0xD00, "PS hinter module" )
|
||||||
|
FT_MODERRDEF( PSnames, 0xE00, "PS names module" )
|
||||||
|
FT_MODERRDEF( Raster, 0xF00, "raster module" )
|
||||||
|
FT_MODERRDEF( SFNT, 0x1000, "SFNT module" )
|
||||||
|
FT_MODERRDEF( Smooth, 0x1100, "smooth raster module" )
|
||||||
|
FT_MODERRDEF( TrueType, 0x1200, "TrueType module" )
|
||||||
|
FT_MODERRDEF( Type1, 0x1300, "Type 1 module" )
|
||||||
|
FT_MODERRDEF( Type42, 0x1400, "Type 42 module" )
|
||||||
|
FT_MODERRDEF( Winfonts, 0x1500, "Windows FON/FNT module" )
|
||||||
|
FT_MODERRDEF( GXvalid, 0x1600, "GX validation module" )
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FT_MODERR_END_LIST
|
||||||
|
FT_MODERR_END_LIST
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/*******************************************************************/
|
||||||
|
/*******************************************************************/
|
||||||
|
/***** *****/
|
||||||
|
/***** CLEANUP *****/
|
||||||
|
/***** *****/
|
||||||
|
/*******************************************************************/
|
||||||
|
/*******************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef FT_NEED_EXTERN_C
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef FT_MODERR_START_LIST
|
||||||
|
#undef FT_MODERR_END_LIST
|
||||||
|
#undef FT_MODERRDEF
|
||||||
|
#undef FT_NEED_EXTERN_C
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* FTMODERR_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
||||||
353
src/win/mingw/include/freetype/ftsystem.h
Normal file
353
src/win/mingw/include/freetype/ftsystem.h
Normal file
@@ -0,0 +1,353 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* ftsystem.h
|
||||||
|
*
|
||||||
|
* FreeType low-level system interface definition (specification).
|
||||||
|
*
|
||||||
|
* Copyright 1996-2018 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FTSYSTEM_H_
|
||||||
|
#define FTSYSTEM_H_
|
||||||
|
|
||||||
|
|
||||||
|
#include <ft2build.h>
|
||||||
|
|
||||||
|
|
||||||
|
FT_BEGIN_HEADER
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @section:
|
||||||
|
* system_interface
|
||||||
|
*
|
||||||
|
* @title:
|
||||||
|
* System Interface
|
||||||
|
*
|
||||||
|
* @abstract:
|
||||||
|
* How FreeType manages memory and i/o.
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* This section contains various definitions related to memory management
|
||||||
|
* and i/o access. You need to understand this information if you want to
|
||||||
|
* use a custom memory manager or you own i/o streams.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* M E M O R Y M A N A G E M E N T
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Memory
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A handle to a given memory manager object, defined with an
|
||||||
|
* @FT_MemoryRec structure.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef struct FT_MemoryRec_* FT_Memory;
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @functype:
|
||||||
|
* FT_Alloc_Func
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A function used to allocate 'size' bytes from 'memory'.
|
||||||
|
*
|
||||||
|
* @input:
|
||||||
|
* memory ::
|
||||||
|
* A handle to the source memory manager.
|
||||||
|
*
|
||||||
|
* size ::
|
||||||
|
* The size in bytes to allocate.
|
||||||
|
*
|
||||||
|
* @return:
|
||||||
|
* Address of new memory block. 0~in case of failure.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef void*
|
||||||
|
(*FT_Alloc_Func)( FT_Memory memory,
|
||||||
|
long size );
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @functype:
|
||||||
|
* FT_Free_Func
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A function used to release a given block of memory.
|
||||||
|
*
|
||||||
|
* @input:
|
||||||
|
* memory ::
|
||||||
|
* A handle to the source memory manager.
|
||||||
|
*
|
||||||
|
* block ::
|
||||||
|
* The address of the target memory block.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef void
|
||||||
|
(*FT_Free_Func)( FT_Memory memory,
|
||||||
|
void* block );
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @functype:
|
||||||
|
* FT_Realloc_Func
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A function used to re-allocate a given block of memory.
|
||||||
|
*
|
||||||
|
* @input:
|
||||||
|
* memory ::
|
||||||
|
* A handle to the source memory manager.
|
||||||
|
*
|
||||||
|
* cur_size ::
|
||||||
|
* The block's current size in bytes.
|
||||||
|
*
|
||||||
|
* new_size ::
|
||||||
|
* The block's requested new size.
|
||||||
|
*
|
||||||
|
* block ::
|
||||||
|
* The block's current address.
|
||||||
|
*
|
||||||
|
* @return:
|
||||||
|
* New block address. 0~in case of memory shortage.
|
||||||
|
*
|
||||||
|
* @note:
|
||||||
|
* In case of error, the old block must still be available.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef void*
|
||||||
|
(*FT_Realloc_Func)( FT_Memory memory,
|
||||||
|
long cur_size,
|
||||||
|
long new_size,
|
||||||
|
void* block );
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @struct:
|
||||||
|
* FT_MemoryRec
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A structure used to describe a given memory manager to FreeType~2.
|
||||||
|
*
|
||||||
|
* @fields:
|
||||||
|
* user ::
|
||||||
|
* A generic typeless pointer for user data.
|
||||||
|
*
|
||||||
|
* alloc ::
|
||||||
|
* A pointer type to an allocation function.
|
||||||
|
*
|
||||||
|
* free ::
|
||||||
|
* A pointer type to an memory freeing function.
|
||||||
|
*
|
||||||
|
* realloc ::
|
||||||
|
* A pointer type to a reallocation function.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
struct FT_MemoryRec_
|
||||||
|
{
|
||||||
|
void* user;
|
||||||
|
FT_Alloc_Func alloc;
|
||||||
|
FT_Free_Func free;
|
||||||
|
FT_Realloc_Func realloc;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* I / O M A N A G E M E N T
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Stream
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A handle to an input stream.
|
||||||
|
*
|
||||||
|
* @also:
|
||||||
|
* See @FT_StreamRec for the publicly accessible fields of a given stream
|
||||||
|
* object.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef struct FT_StreamRec_* FT_Stream;
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @struct:
|
||||||
|
* FT_StreamDesc
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A union type used to store either a long or a pointer. This is used
|
||||||
|
* to store a file descriptor or a 'FILE*' in an input stream.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef union FT_StreamDesc_
|
||||||
|
{
|
||||||
|
long value;
|
||||||
|
void* pointer;
|
||||||
|
|
||||||
|
} FT_StreamDesc;
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @functype:
|
||||||
|
* FT_Stream_IoFunc
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A function used to seek and read data from a given input stream.
|
||||||
|
*
|
||||||
|
* @input:
|
||||||
|
* stream ::
|
||||||
|
* A handle to the source stream.
|
||||||
|
*
|
||||||
|
* offset ::
|
||||||
|
* The offset of read in stream (always from start).
|
||||||
|
*
|
||||||
|
* buffer ::
|
||||||
|
* The address of the read buffer.
|
||||||
|
*
|
||||||
|
* count ::
|
||||||
|
* The number of bytes to read from the stream.
|
||||||
|
*
|
||||||
|
* @return:
|
||||||
|
* The number of bytes effectively read by the stream.
|
||||||
|
*
|
||||||
|
* @note:
|
||||||
|
* This function might be called to perform a seek or skip operation with
|
||||||
|
* a 'count' of~0. A non-zero return value then indicates an error.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef unsigned long
|
||||||
|
(*FT_Stream_IoFunc)( FT_Stream stream,
|
||||||
|
unsigned long offset,
|
||||||
|
unsigned char* buffer,
|
||||||
|
unsigned long count );
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @functype:
|
||||||
|
* FT_Stream_CloseFunc
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A function used to close a given input stream.
|
||||||
|
*
|
||||||
|
* @input:
|
||||||
|
* stream ::
|
||||||
|
* A handle to the target stream.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef void
|
||||||
|
(*FT_Stream_CloseFunc)( FT_Stream stream );
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
*
|
||||||
|
* @struct:
|
||||||
|
* FT_StreamRec
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A structure used to describe an input stream.
|
||||||
|
*
|
||||||
|
* @input:
|
||||||
|
* base ::
|
||||||
|
* For memory-based streams, this is the address of the first stream
|
||||||
|
* byte in memory. This field should always be set to NULL for
|
||||||
|
* disk-based streams.
|
||||||
|
*
|
||||||
|
* size ::
|
||||||
|
* The stream size in bytes.
|
||||||
|
*
|
||||||
|
* In case of compressed streams where the size is unknown before
|
||||||
|
* actually doing the decompression, the value is set to 0x7FFFFFFF.
|
||||||
|
* (Note that this size value can occur for normal streams also; it is
|
||||||
|
* thus just a hint.)
|
||||||
|
*
|
||||||
|
* pos ::
|
||||||
|
* The current position within the stream.
|
||||||
|
*
|
||||||
|
* descriptor ::
|
||||||
|
* This field is a union that can hold an integer or a pointer. It is
|
||||||
|
* used by stream implementations to store file descriptors or 'FILE*'
|
||||||
|
* pointers.
|
||||||
|
*
|
||||||
|
* pathname ::
|
||||||
|
* This field is completely ignored by FreeType. However, it is often
|
||||||
|
* useful during debugging to use it to store the stream's filename
|
||||||
|
* (where available).
|
||||||
|
*
|
||||||
|
* read ::
|
||||||
|
* The stream's input function.
|
||||||
|
*
|
||||||
|
* close ::
|
||||||
|
* The stream's close function.
|
||||||
|
*
|
||||||
|
* memory ::
|
||||||
|
* The memory manager to use to preload frames. This is set internally
|
||||||
|
* by FreeType and shouldn't be touched by stream implementations.
|
||||||
|
*
|
||||||
|
* cursor ::
|
||||||
|
* This field is set and used internally by FreeType when parsing
|
||||||
|
* frames. In particular, the `FT_GET_XXX` macros use this instead of
|
||||||
|
* the 'pos' field.
|
||||||
|
*
|
||||||
|
* limit ::
|
||||||
|
* This field is set and used internally by FreeType when parsing
|
||||||
|
* frames.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef struct FT_StreamRec_
|
||||||
|
{
|
||||||
|
unsigned char* base;
|
||||||
|
unsigned long size;
|
||||||
|
unsigned long pos;
|
||||||
|
|
||||||
|
FT_StreamDesc descriptor;
|
||||||
|
FT_StreamDesc pathname;
|
||||||
|
FT_Stream_IoFunc read;
|
||||||
|
FT_Stream_CloseFunc close;
|
||||||
|
|
||||||
|
FT_Memory memory;
|
||||||
|
unsigned char* cursor;
|
||||||
|
unsigned char* limit;
|
||||||
|
|
||||||
|
} FT_StreamRec;
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
|
||||||
|
FT_END_HEADER
|
||||||
|
|
||||||
|
#endif /* FTSYSTEM_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
||||||
615
src/win/mingw/include/freetype/fttypes.h
Normal file
615
src/win/mingw/include/freetype/fttypes.h
Normal file
@@ -0,0 +1,615 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* fttypes.h
|
||||||
|
*
|
||||||
|
* FreeType simple types definitions (specification only).
|
||||||
|
*
|
||||||
|
* Copyright 1996-2018 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FTTYPES_H_
|
||||||
|
#define FTTYPES_H_
|
||||||
|
|
||||||
|
|
||||||
|
#include <ft2build.h>
|
||||||
|
#include FT_CONFIG_CONFIG_H
|
||||||
|
#include FT_SYSTEM_H
|
||||||
|
#include FT_IMAGE_H
|
||||||
|
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
|
||||||
|
FT_BEGIN_HEADER
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @section:
|
||||||
|
* basic_types
|
||||||
|
*
|
||||||
|
* @title:
|
||||||
|
* Basic Data Types
|
||||||
|
*
|
||||||
|
* @abstract:
|
||||||
|
* The basic data types defined by the library.
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* This section contains the basic data types defined by FreeType~2,
|
||||||
|
* ranging from simple scalar types to bitmap descriptors. More
|
||||||
|
* font-specific structures are defined in a different section.
|
||||||
|
*
|
||||||
|
* @order:
|
||||||
|
* FT_Byte
|
||||||
|
* FT_Bytes
|
||||||
|
* FT_Char
|
||||||
|
* FT_Int
|
||||||
|
* FT_UInt
|
||||||
|
* FT_Int16
|
||||||
|
* FT_UInt16
|
||||||
|
* FT_Int32
|
||||||
|
* FT_UInt32
|
||||||
|
* FT_Int64
|
||||||
|
* FT_UInt64
|
||||||
|
* FT_Short
|
||||||
|
* FT_UShort
|
||||||
|
* FT_Long
|
||||||
|
* FT_ULong
|
||||||
|
* FT_Bool
|
||||||
|
* FT_Offset
|
||||||
|
* FT_PtrDist
|
||||||
|
* FT_String
|
||||||
|
* FT_Tag
|
||||||
|
* FT_Error
|
||||||
|
* FT_Fixed
|
||||||
|
* FT_Pointer
|
||||||
|
* FT_Pos
|
||||||
|
* FT_Vector
|
||||||
|
* FT_BBox
|
||||||
|
* FT_Matrix
|
||||||
|
* FT_FWord
|
||||||
|
* FT_UFWord
|
||||||
|
* FT_F2Dot14
|
||||||
|
* FT_UnitVector
|
||||||
|
* FT_F26Dot6
|
||||||
|
* FT_Data
|
||||||
|
*
|
||||||
|
* FT_MAKE_TAG
|
||||||
|
*
|
||||||
|
* FT_Generic
|
||||||
|
* FT_Generic_Finalizer
|
||||||
|
*
|
||||||
|
* FT_Bitmap
|
||||||
|
* FT_Pixel_Mode
|
||||||
|
* FT_Palette_Mode
|
||||||
|
* FT_Glyph_Format
|
||||||
|
* FT_IMAGE_TAG
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Bool
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef of unsigned char, used for simple booleans. As usual,
|
||||||
|
* values 1 and~0 represent true and false, respectively.
|
||||||
|
*/
|
||||||
|
typedef unsigned char FT_Bool;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_FWord
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A signed 16-bit integer used to store a distance in original font
|
||||||
|
* units.
|
||||||
|
*/
|
||||||
|
typedef signed short FT_FWord; /* distance in FUnits */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_UFWord
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* An unsigned 16-bit integer used to store a distance in original font
|
||||||
|
* units.
|
||||||
|
*/
|
||||||
|
typedef unsigned short FT_UFWord; /* unsigned distance */
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Char
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A simple typedef for the _signed_ char type.
|
||||||
|
*/
|
||||||
|
typedef signed char FT_Char;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Byte
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A simple typedef for the _unsigned_ char type.
|
||||||
|
*/
|
||||||
|
typedef unsigned char FT_Byte;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Bytes
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for constant memory areas.
|
||||||
|
*/
|
||||||
|
typedef const FT_Byte* FT_Bytes;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Tag
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for 32-bit tags (as used in the SFNT format).
|
||||||
|
*/
|
||||||
|
typedef FT_UInt32 FT_Tag;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_String
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A simple typedef for the char type, usually used for strings.
|
||||||
|
*/
|
||||||
|
typedef char FT_String;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Short
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for signed short.
|
||||||
|
*/
|
||||||
|
typedef signed short FT_Short;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_UShort
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for unsigned short.
|
||||||
|
*/
|
||||||
|
typedef unsigned short FT_UShort;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Int
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for the int type.
|
||||||
|
*/
|
||||||
|
typedef signed int FT_Int;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_UInt
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for the unsigned int type.
|
||||||
|
*/
|
||||||
|
typedef unsigned int FT_UInt;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Long
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for signed long.
|
||||||
|
*/
|
||||||
|
typedef signed long FT_Long;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_ULong
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A typedef for unsigned long.
|
||||||
|
*/
|
||||||
|
typedef unsigned long FT_ULong;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_F2Dot14
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A signed 2.14 fixed-point type used for unit vectors.
|
||||||
|
*/
|
||||||
|
typedef signed short FT_F2Dot14;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_F26Dot6
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A signed 26.6 fixed-point type used for vectorial pixel coordinates.
|
||||||
|
*/
|
||||||
|
typedef signed long FT_F26Dot6;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Fixed
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* This type is used to store 16.16 fixed-point values, like scaling
|
||||||
|
* values or matrix coefficients.
|
||||||
|
*/
|
||||||
|
typedef signed long FT_Fixed;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Error
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* The FreeType error code type. A value of~0 is always interpreted as a
|
||||||
|
* successful operation.
|
||||||
|
*/
|
||||||
|
typedef int FT_Error;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Pointer
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A simple typedef for a typeless pointer.
|
||||||
|
*/
|
||||||
|
typedef void* FT_Pointer;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_Offset
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* This is equivalent to the ANSI~C `size_t` type, i.e., the largest
|
||||||
|
* _unsigned_ integer type used to express a file size or position, or a
|
||||||
|
* memory block size.
|
||||||
|
*/
|
||||||
|
typedef size_t FT_Offset;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_PtrDist
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* This is equivalent to the ANSI~C `ptrdiff_t` type, i.e., the largest
|
||||||
|
* _signed_ integer type used to express the distance between two
|
||||||
|
* pointers.
|
||||||
|
*/
|
||||||
|
typedef ft_ptrdiff_t FT_PtrDist;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @struct:
|
||||||
|
* FT_UnitVector
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A simple structure used to store a 2D vector unit vector. Uses
|
||||||
|
* FT_F2Dot14 types.
|
||||||
|
*
|
||||||
|
* @fields:
|
||||||
|
* x ::
|
||||||
|
* Horizontal coordinate.
|
||||||
|
*
|
||||||
|
* y ::
|
||||||
|
* Vertical coordinate.
|
||||||
|
*/
|
||||||
|
typedef struct FT_UnitVector_
|
||||||
|
{
|
||||||
|
FT_F2Dot14 x;
|
||||||
|
FT_F2Dot14 y;
|
||||||
|
|
||||||
|
} FT_UnitVector;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @struct:
|
||||||
|
* FT_Matrix
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A simple structure used to store a 2x2 matrix. Coefficients are in
|
||||||
|
* 16.16 fixed-point format. The computation performed is:
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* x' = x*xx + y*xy
|
||||||
|
* y' = x*yx + y*yy
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @fields:
|
||||||
|
* xx ::
|
||||||
|
* Matrix coefficient.
|
||||||
|
*
|
||||||
|
* xy ::
|
||||||
|
* Matrix coefficient.
|
||||||
|
*
|
||||||
|
* yx ::
|
||||||
|
* Matrix coefficient.
|
||||||
|
*
|
||||||
|
* yy ::
|
||||||
|
* Matrix coefficient.
|
||||||
|
*/
|
||||||
|
typedef struct FT_Matrix_
|
||||||
|
{
|
||||||
|
FT_Fixed xx, xy;
|
||||||
|
FT_Fixed yx, yy;
|
||||||
|
|
||||||
|
} FT_Matrix;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @struct:
|
||||||
|
* FT_Data
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* Read-only binary data represented as a pointer and a length.
|
||||||
|
*
|
||||||
|
* @fields:
|
||||||
|
* pointer ::
|
||||||
|
* The data.
|
||||||
|
*
|
||||||
|
* length ::
|
||||||
|
* The length of the data in bytes.
|
||||||
|
*/
|
||||||
|
typedef struct FT_Data_
|
||||||
|
{
|
||||||
|
const FT_Byte* pointer;
|
||||||
|
FT_Int length;
|
||||||
|
|
||||||
|
} FT_Data;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @functype:
|
||||||
|
* FT_Generic_Finalizer
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* Describe a function used to destroy the 'client' data of any FreeType
|
||||||
|
* object. See the description of the @FT_Generic type for details of
|
||||||
|
* usage.
|
||||||
|
*
|
||||||
|
* @input:
|
||||||
|
* The address of the FreeType object that is under finalization. Its
|
||||||
|
* client data is accessed through its 'generic' field.
|
||||||
|
*/
|
||||||
|
typedef void (*FT_Generic_Finalizer)( void* object );
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @struct:
|
||||||
|
* FT_Generic
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* Client applications often need to associate their own data to a
|
||||||
|
* variety of FreeType core objects. For example, a text layout API
|
||||||
|
* might want to associate a glyph cache to a given size object.
|
||||||
|
*
|
||||||
|
* Some FreeType object contains a 'generic' field, of type FT_Generic,
|
||||||
|
* which usage is left to client applications and font servers.
|
||||||
|
*
|
||||||
|
* It can be used to store a pointer to client-specific data, as well as
|
||||||
|
* the address of a 'finalizer' function, which will be called by
|
||||||
|
* FreeType when the object is destroyed (for example, the previous
|
||||||
|
* client example would put the address of the glyph cache destructor in
|
||||||
|
* the 'finalizer' field).
|
||||||
|
*
|
||||||
|
* @fields:
|
||||||
|
* data ::
|
||||||
|
* A typeless pointer to any client-specified data. This field is
|
||||||
|
* completely ignored by the FreeType library.
|
||||||
|
*
|
||||||
|
* finalizer ::
|
||||||
|
* A pointer to a 'generic finalizer' function, which will be called
|
||||||
|
* when the object is destroyed. If this field is set to NULL, no code
|
||||||
|
* will be called.
|
||||||
|
*/
|
||||||
|
typedef struct FT_Generic_
|
||||||
|
{
|
||||||
|
void* data;
|
||||||
|
FT_Generic_Finalizer finalizer;
|
||||||
|
|
||||||
|
} FT_Generic;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @macro:
|
||||||
|
* FT_MAKE_TAG
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* This macro converts four-letter tags that are used to label TrueType
|
||||||
|
* tables into an unsigned long, to be used within FreeType.
|
||||||
|
*
|
||||||
|
* @note:
|
||||||
|
* The produced values **must** be 32-bit integers. Don't redefine this
|
||||||
|
* macro.
|
||||||
|
*/
|
||||||
|
#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \
|
||||||
|
(FT_Tag) \
|
||||||
|
( ( (FT_ULong)_x1 << 24 ) | \
|
||||||
|
( (FT_ULong)_x2 << 16 ) | \
|
||||||
|
( (FT_ULong)_x3 << 8 ) | \
|
||||||
|
(FT_ULong)_x4 )
|
||||||
|
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
/* */
|
||||||
|
/* L I S T M A N A G E M E N T */
|
||||||
|
/* */
|
||||||
|
/*************************************************************************/
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @section:
|
||||||
|
* list_processing
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_ListNode
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* Many elements and objects in FreeType are listed through an @FT_List
|
||||||
|
* record (see @FT_ListRec). As its name suggests, an FT_ListNode is a
|
||||||
|
* handle to a single list element.
|
||||||
|
*/
|
||||||
|
typedef struct FT_ListNodeRec_* FT_ListNode;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @type:
|
||||||
|
* FT_List
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A handle to a list record (see @FT_ListRec).
|
||||||
|
*/
|
||||||
|
typedef struct FT_ListRec_* FT_List;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @struct:
|
||||||
|
* FT_ListNodeRec
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A structure used to hold a single list element.
|
||||||
|
*
|
||||||
|
* @fields:
|
||||||
|
* prev ::
|
||||||
|
* The previous element in the list. NULL if first.
|
||||||
|
*
|
||||||
|
* next ::
|
||||||
|
* The next element in the list. NULL if last.
|
||||||
|
*
|
||||||
|
* data ::
|
||||||
|
* A typeless pointer to the listed object.
|
||||||
|
*/
|
||||||
|
typedef struct FT_ListNodeRec_
|
||||||
|
{
|
||||||
|
FT_ListNode prev;
|
||||||
|
FT_ListNode next;
|
||||||
|
void* data;
|
||||||
|
|
||||||
|
} FT_ListNodeRec;
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* @struct:
|
||||||
|
* FT_ListRec
|
||||||
|
*
|
||||||
|
* @description:
|
||||||
|
* A structure used to hold a simple doubly-linked list. These are used
|
||||||
|
* in many parts of FreeType.
|
||||||
|
*
|
||||||
|
* @fields:
|
||||||
|
* head ::
|
||||||
|
* The head (first element) of doubly-linked list.
|
||||||
|
*
|
||||||
|
* tail ::
|
||||||
|
* The tail (last element) of doubly-linked list.
|
||||||
|
*/
|
||||||
|
typedef struct FT_ListRec_
|
||||||
|
{
|
||||||
|
FT_ListNode head;
|
||||||
|
FT_ListNode tail;
|
||||||
|
|
||||||
|
} FT_ListRec;
|
||||||
|
|
||||||
|
/* */
|
||||||
|
|
||||||
|
|
||||||
|
#define FT_IS_EMPTY( list ) ( (list).head == 0 )
|
||||||
|
#define FT_BOOL( x ) ( (FT_Bool)( x ) )
|
||||||
|
|
||||||
|
/* concatenate C tokens */
|
||||||
|
#define FT_ERR_XCAT( x, y ) x ## y
|
||||||
|
#define FT_ERR_CAT( x, y ) FT_ERR_XCAT( x, y )
|
||||||
|
|
||||||
|
/* see `ftmoderr.h' for descriptions of the following macros */
|
||||||
|
|
||||||
|
#define FT_ERR( e ) FT_ERR_CAT( FT_ERR_PREFIX, e )
|
||||||
|
|
||||||
|
#define FT_ERROR_BASE( x ) ( (x) & 0xFF )
|
||||||
|
#define FT_ERROR_MODULE( x ) ( (x) & 0xFF00U )
|
||||||
|
|
||||||
|
#define FT_ERR_EQ( x, e ) \
|
||||||
|
( FT_ERROR_BASE( x ) == FT_ERROR_BASE( FT_ERR( e ) ) )
|
||||||
|
#define FT_ERR_NEQ( x, e ) \
|
||||||
|
( FT_ERROR_BASE( x ) != FT_ERROR_BASE( FT_ERR( e ) ) )
|
||||||
|
|
||||||
|
|
||||||
|
FT_END_HEADER
|
||||||
|
|
||||||
|
#endif /* FTTYPES_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
||||||
44
src/win/mingw/include/ft2build.h
Normal file
44
src/win/mingw/include/ft2build.h
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
*
|
||||||
|
* ft2build.h
|
||||||
|
*
|
||||||
|
* FreeType 2 build and setup macros.
|
||||||
|
*
|
||||||
|
* Copyright 1996-2018 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.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**************************************************************************
|
||||||
|
*
|
||||||
|
* This is the 'entry point' for FreeType header file inclusions. It is
|
||||||
|
* the only header file which should be included directly; all other
|
||||||
|
* FreeType header files should be accessed with macro names (after
|
||||||
|
* including `ft2build.h`).
|
||||||
|
*
|
||||||
|
* A typical example is
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* #include <ft2build.h>
|
||||||
|
* #include FT_FREETYPE_H
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FT2BUILD_H_
|
||||||
|
#define FT2BUILD_H_
|
||||||
|
|
||||||
|
#include <freetype/config/ftheader.h>
|
||||||
|
|
||||||
|
#endif /* FT2BUILD_H_ */
|
||||||
|
|
||||||
|
|
||||||
|
/* END */
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
#
|
#
|
||||||
# Makefile for Windows using Visual Studio 2015.
|
# Makefile for Windows using Visual Studio 2015.
|
||||||
#
|
#
|
||||||
# Version: @(#)Makefile.VC 1.0.40 2018/08/27
|
# Version: @(#)Makefile.VC 1.0.41 2018/08/31
|
||||||
#
|
#
|
||||||
# Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
# Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||||
#
|
#
|
||||||
@@ -144,6 +144,9 @@ endif
|
|||||||
ifndef WONDER
|
ifndef WONDER
|
||||||
WONDER := n
|
WONDER := n
|
||||||
endif
|
endif
|
||||||
|
ifndef PRINTERS
|
||||||
|
PRINTERS := n
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
# Name of the executable.
|
# Name of the executable.
|
||||||
@@ -218,7 +221,8 @@ VPATH := $(EXPATH) . cpu \
|
|||||||
devices/cdrom devices/disk devices/floppy \
|
devices/cdrom devices/disk devices/floppy \
|
||||||
devices/floppy/lzf devices/input devices/input/game \
|
devices/floppy/lzf devices/input devices/input/game \
|
||||||
devices/network devices/network/slirp devices/ports \
|
devices/network devices/network/slirp devices/ports \
|
||||||
devices/sio devices/system devices/scsi devices/misc \
|
devices/printer devices/sio devices/system devices/scsi \
|
||||||
|
devices/misc \
|
||||||
devices/sound \
|
devices/sound \
|
||||||
devices/sound/munt devices/sound/munt/c_interface \
|
devices/sound/munt devices/sound/munt/c_interface \
|
||||||
devices/sound/munt/sha1 devices/sound/munt/srchelper \
|
devices/sound/munt/sha1 devices/sound/munt/srchelper \
|
||||||
@@ -498,6 +502,11 @@ ifeq ($(DEV_BRANCH), y)
|
|||||||
DEVBROBJ += m_at_440fx.obj
|
DEVBROBJ += m_at_440fx.obj
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(PAS16), y)
|
||||||
|
OPTS += -DUSE_PAS16
|
||||||
|
DEVBROBJ += snd_pas16.obj
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(STEALTH32), y)
|
ifeq ($(STEALTH32), y)
|
||||||
OPTS += -DUSE_STEALTH32
|
OPTS += -DUSE_STEALTH32
|
||||||
DEVBROBJ += vid_icd2061.obj
|
DEVBROBJ += vid_icd2061.obj
|
||||||
@@ -511,9 +520,9 @@ ifeq ($(DEV_BRANCH), y)
|
|||||||
OPTS += -DUSE_WONDER
|
OPTS += -DUSE_WONDER
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(PAS16), y)
|
ifeq ($(PRINTERS), y)
|
||||||
OPTS += -DUSE_PAS16
|
OPTS += -DUSE_PRINTERS=1
|
||||||
DEVBROBJ += snd_pas16.obj
|
DEVBROBJ += printer_escp.obj
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|||||||
Reference in New Issue
Block a user