1 /***************************************************************************/ 2 /* */ 3 /* ftheader.h */ 4 /* */ 5 /* Build macros of the FreeType 2 library. */ 6 /* */ 7 /* Copyright 1996-2001, 2002 by */ 8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */ 9 /* */ 10 /* This file is part of the FreeType project, and may only be used, */ 11 /* modified, and distributed under the terms of the FreeType project */ 12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */ 13 /* this file you indicate that you have read the license and */ 14 /* understand and accept it fully. */ 15 /* */ 16 /***************************************************************************/ 17 18 #ifndef __FT_HEADER_H__ 19 #define __FT_HEADER_H__ 20 21 /*@***********************************************************************/ 22 /* */ 23 /* <Macro> */ 24 /* FT_BEGIN_HEADER */ 25 /* */ 26 /* <Description> */ 27 /* This macro is used in association with @FT_END_HEADER in header */ 28 /* files to ensure that the declarations within are properly */ 29 /* encapsulated in an `extern "C" { .. }' block when included from a */ 30 /* C++ compiler. */ 31 /* */ 32 #ifdef __cplusplus 33 #define FT_BEGIN_HEADER extern "C" { 34 #else 35 #define FT_BEGIN_HEADER /* nothing */ 36 #endif 37 38 39 /*@***********************************************************************/ 40 /* */ 41 /* <Macro> */ 42 /* FT_END_HEADER */ 43 /* */ 44 /* <Description> */ 45 /* This macro is used in association with @FT_BEGIN_HEADER in header */ 46 /* files to ensure that the declarations within are properly */ 47 /* encapsulated in an `extern "C" { .. }' block when included from a */ 48 /* C++ compiler. */ 49 /* */ 50 #ifdef __cplusplus 51 #define FT_END_HEADER } 52 #else 53 #define FT_END_HEADER /* nothing */ 54 #endif 55 56 57 /*************************************************************************/ 58 /* */ 59 /* Aliases for the FreeType 2 public and configuration files. */ 60 /* */ 61 /*************************************************************************/ 62 63 /*************************************************************************/ 64 /* */ 65 /* <Section> */ 66 /* header_file_macros */ 67 /* */ 68 /* <Title> */ 69 /* Header File Macros */ 70 /* */ 71 /* <Abstract> */ 72 /* Macro definitions used to #include specific header files. */ 73 /* */ 74 /* <Description> */ 75 /* The following macros are defined to the name of specific */ 76 /* FreeType 2 header files. They can be used directly in #include */ 77 /* statements as in: */ 78 /* */ 79 /* { */ 80 /* #include FT_FREETYPE_H */ 81 /* #include FT_MULTIPLE_MASTERS_H */ 82 /* #include FT_GLYPH_H */ 83 /* } */ 84 /* */ 85 /* There are several reasons why we are now using macros to name */ 86 /* public header files. The first one is that such macros are not */ 87 /* limited to the infamous 8.3 naming rule required by DOS (and */ 88 /* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */ 89 /* */ 90 /* The second reason is that is allows for more flexibility in the */ 91 /* way FreeType 2 is installed on a given system. */ 92 /* */ 93 /*************************************************************************/ 94 95 /* configuration files */ 96 97 /*************************************************************************/ 98 /* */ 99 /* @macro: */ 100 /* FT_CONFIG_CONFIG_H */ 101 /* */ 102 /* @description: */ 103 /* A macro used in #include statements to name the file containing */ 104 /* FreeType 2 configuration data. */ 105 /* */ 106 #ifndef FT_CONFIG_CONFIG_H 107 #define FT_CONFIG_CONFIG_H <freetype/config/ftconfig.h> 108 #endif 109 110 111 /*************************************************************************/ 112 /* */ 113 /* @macro: */ 114 /* FT_CONFIG_STANDARD_LIBRARY_H */ 115 /* */ 116 /* @description: */ 117 /* A macro used in #include statements to name the file containing */ 118 /* FreeType 2 configuration data. */ 119 /* */ 120 #ifndef FT_CONFIG_STANDARD_LIBRARY_H 121 #define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h> 122 #endif 123 124 125 /*************************************************************************/ 126 /* */ 127 /* @macro: */ 128 /* FT_CONFIG_OPTIONS_H */ 129 /* */ 130 /* @description: */ 131 /* A macro used in #include statements to name the file containing */ 132 /* FreeType 2 project-specific configuration options. */ 133 /* */ 134 #ifndef FT_CONFIG_OPTIONS_H 135 #define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h> 136 #endif 137 138 139 /*************************************************************************/ 140 /* */ 141 /* @macro: */ 142 /* FT_CONFIG_MODULES_H */ 143 /* */ 144 /* @description: */ 145 /* A macro used in #include statements to name the file containing */ 146 /* the list of FreeType 2 modules that are statically linked to new */ 147 /* library instances in @FT_Init_FreeType. */ 148 /* */ 149 #ifndef FT_CONFIG_MODULES_H 150 #define FT_CONFIG_MODULES_H <freetype/config/ftmodule.h> 151 #endif 152 153 /* public headers */ 154 155 /*************************************************************************/ 156 /* */ 157 /* @macro: */ 158 /* FT_FREETYPE_H */ 159 /* */ 160 /* @description: */ 161 /* A macro used in #include statements to name the file containing */ 162 /* the base FreeType 2 API. */ 163 /* */ 164 #define FT_FREETYPE_H <freetype/freetype.h> 165 166 167 /*************************************************************************/ 168 /* */ 169 /* @macro: */ 170 /* FT_ERRORS_H */ 171 /* */ 172 /* @description: */ 173 /* A macro used in #include statements to name the file containing */ 174 /* the list of FreeType 2 error codes (and messages). */ 175 /* */ 176 /* It is included by @FT_FREETYPE_H. */ 177 /* */ 178 #define FT_ERRORS_H <freetype/fterrors.h> 179 180 181 /*************************************************************************/ 182 /* */ 183 /* @macro: */ 184 /* FT_MODULE_ERRORS_H */ 185 /* */ 186 /* @description: */ 187 /* A macro used in #include statements to name the file containing */ 188 /* the list of FreeType 2 module error offsets (and messages). */ 189 /* */ 190 #define FT_MODULE_ERRORS_H <freetype/ftmoderr.h> 191 192 193 /*************************************************************************/ 194 /* */ 195 /* @macro: */ 196 /* FT_SYSTEM_H */ 197 /* */ 198 /* @description: */ 199 /* A macro used in #include statements to name the file containing */ 200 /* the FreeType 2 interface to low-level operations (i.e. memory */ 201 /* management and stream i/o). */ 202 /* */ 203 /* It is included by @FT_FREETYPE_H. */ 204 /* */ 205 #define FT_SYSTEM_H <freetype/ftsystem.h> 206 207 208 /*************************************************************************/ 209 /* */ 210 /* @macro: */ 211 /* FT_IMAGE_H */ 212 /* */ 213 /* @description: */ 214 /* A macro used in #include statements to name the file containing */ 215 /* types definitions related to glyph images (i.e. bitmaps, outlines, */ 216 /* scan-converter parameters). */ 217 /* */ 218 /* It is included by @FT_FREETYPE_H. */ 219 /* */ 220 #define FT_IMAGE_H <freetype/ftimage.h> 221 222 223 /*************************************************************************/ 224 /* */ 225 /* @macro: */ 226 /* FT_TYPES_H */ 227 /* */ 228 /* @description: */ 229 /* A macro used in #include statements to name the file containing */ 230 /* the basic data types defined by FreeType 2. */ 231 /* */ 232 /* It is included by @FT_FREETYPE_H. */ 233 /* */ 234 #define FT_TYPES_H <freetype/fttypes.h> 235 236 237 /*************************************************************************/ 238 /* */ 239 /* @macro: */ 240 /* FT_LIST_H */ 241 /* */ 242 /* @description: */ 243 /* A macro used in #include statements to name the file containing */ 244 /* the list management API of FreeType 2. */ 245 /* */ 246 /* (Most applications will never need to include this file.) */ 247 /* */ 248 #define FT_LIST_H <freetype/ftlist.h> 249 250 251 /*************************************************************************/ 252 /* */ 253 /* @macro: */ 254 /* FT_OUTLINE_H */ 255 /* */ 256 /* @description: */ 257 /* A macro used in #include statements to name the file containing */ 258 /* the scalable outline management API of FreeType 2. */ 259 /* */ 260 #define FT_OUTLINE_H <freetype/ftoutln.h> 261 262 263 /*************************************************************************/ 264 /* */ 265 /* @macro: */ 266 /* FT_SIZES_H */ 267 /* */ 268 /* @description: */ 269 /* A macro used in #include statements to name the file containing */ 270 /* the API used to manage multiple @FT_Size objects per face. */ 271 /* */ 272 #define FT_SIZES_H <freetype/ftsizes.h> 273 274 275 /*************************************************************************/ 276 /* */ 277 /* @macro: */ 278 /* FT_MODULE_H */ 279 /* */ 280 /* @description: */ 281 /* A macro used in #include statements to name the file containing */ 282 /* the module management API of FreeType 2. */ 283 /* */ 284 #define FT_MODULE_H <freetype/ftmodule.h> 285 286 287 /*************************************************************************/ 288 /* */ 289 /* @macro: */ 290 /* FT_RENDER_H */ 291 /* */ 292 /* @description: */ 293 /* A macro used in #include statements to name the file containing */ 294 /* the renderer module management API of FreeType 2. */ 295 /* */ 296 #define FT_RENDER_H <freetype/ftrender.h> 297 298 299 /*************************************************************************/ 300 /* */ 301 /* @macro: */ 302 /* FT_TYPE1_TABLES_H */ 303 /* */ 304 /* @description: */ 305 /* A macro used in #include statements to name the file containing */ 306 /* the types and API specific to the Type 1 format. */ 307 /* */ 308 #define FT_TYPE1_TABLES_H <freetype/t1tables.h> 309 310 311 /*************************************************************************/ 312 /* */ 313 /* @macro: */ 314 /* FT_TRUETYPE_IDS_H */ 315 /* */ 316 /* @description: */ 317 /* A macro used in #include statements to name the file containing */ 318 /* the enumeration values used to identify name strings, languages, */ 319 /* encodings, etc. This file really contains a _large_ set of */ 320 /* constant macro definitions, taken from the TrueType and OpenType */ 321 /* specifications. */ 322 /* */ 323 #define FT_TRUETYPE_IDS_H <freetype/ttnameid.h> 324 325 326 /*************************************************************************/ 327 /* */ 328 /* @macro: */ 329 /* FT_TRUETYPE_TABLES_H */ 330 /* */ 331 /* @description: */ 332 /* A macro used in #include statements to name the file containing */ 333 /* the types and API specific to the TrueType (as well as OpenType) */ 334 /* format. */ 335 /* */ 336 #define FT_TRUETYPE_TABLES_H <freetype/tttables.h> 337 338 339 /*************************************************************************/ 340 /* */ 341 /* @macro: */ 342 /* FT_TRUETYPE_TAGS_H */ 343 /* */ 344 /* @description: */ 345 /* A macro used in #include statements to name the file containing */ 346 /* the definitions of TrueType 4-byte `tags' used to identify blocks */ 347 /* in SFNT-based font formats (i.e. TrueType and OpenType). */ 348 /* */ 349 #define FT_TRUETYPE_TAGS_H <freetype/tttags.h> 350 351 352 /*************************************************************************/ 353 /* */ 354 /* @macro: */ 355 /* FT_BDF_H */ 356 /* */ 357 /* @description: */ 358 /* A macro used in #include statements to name the file containing */ 359 /* the definitions of an API to access BDF-specific strings from a */ 360 /* face. */ 361 /* */ 362 #define FT_BDF_H <freetype/ftbdf.h> 363 364 /*************************************************************************/ 365 /* */ 366 /* @macro: */ 367 /* FT_GZIP_H */ 368 /* */ 369 /* @description: */ 370 /* A macro used in #include statements to name the file containing */ 371 /* the definitions of an API to support for gzip-compressed files. */ 372 /* */ 373 #define FT_GZIP_H <freetype/ftgzip.h> 374 375 376 /*************************************************************************/ 377 /* */ 378 /* @macro: */ 379 /* FT_GLYPH_H */ 380 /* */ 381 /* @description: */ 382 /* A macro used in #include statements to name the file containing */ 383 /* the API of the optional glyph management component. */ 384 /* */ 385 #define FT_GLYPH_H <freetype/ftglyph.h> 386 387 388 /*************************************************************************/ 389 /* */ 390 /* @macro: */ 391 /* FT_BBOX_H */ 392 /* */ 393 /* @description: */ 394 /* A macro used in #include statements to name the file containing */ 395 /* the API of the optional exact bounding box computation routines. */ 396 /* */ 397 #define FT_BBOX_H <freetype/ftbbox.h> 398 399 400 /*************************************************************************/ 401 /* */ 402 /* @macro: */ 403 /* FT_CACHE_H */ 404 /* */ 405 /* @description: */ 406 /* A macro used in #include statements to name the file containing */ 407 /* the API of the optional FreeType 2 cache sub-system. */ 408 /* */ 409 #define FT_CACHE_H <freetype/ftcache.h> 410 411 412 /*************************************************************************/ 413 /* */ 414 /* @macro: */ 415 /* FT_CACHE_IMAGE_H */ 416 /* */ 417 /* @description: */ 418 /* A macro used in #include statements to name the file containing */ 419 /* the `glyph image' API of the FreeType 2 cache sub-system. */ 420 /* */ 421 /* It is used to define a cache for @FT_Glyph elements. You can also */ 422 /* see the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need */ 423 /* to store small glyph bitmaps, as it will use less memory. */ 424 /* */ 425 #define FT_CACHE_IMAGE_H <freetype/cache/ftcimage.h> 426 427 428 /*************************************************************************/ 429 /* */ 430 /* @macro: */ 431 /* FT_CACHE_SMALL_BITMAPS_H */ 432 /* */ 433 /* @description: */ 434 /* A macro used in #include statements to name the file containing */ 435 /* the `small bitmaps' API of the FreeType 2 cache sub-system. */ 436 /* */ 437 /* It is used to define a cache for small glyph bitmaps in a */ 438 /* relatively memory-efficient way. You can also use the API defined */ 439 /* in @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, */ 440 /* including scalable outlines. */ 441 /* */ 442 #define FT_CACHE_SMALL_BITMAPS_H <freetype/cache/ftcsbits.h> 443 444 445 /*************************************************************************/ 446 /* */ 447 /* @macro: */ 448 /* FT_CACHE_CHARMAP_H */ 449 /* */ 450 /* @description: */ 451 /* A macro used in #include statements to name the file containing */ 452 /* the `charmap' API of the FreeType 2 cache sub-system. */ 453 /* */ 454 #define FT_CACHE_CHARMAP_H <freetype/cache/ftccmap.h> 455 456 457 /*************************************************************************/ 458 /* */ 459 /* @macro: */ 460 /* FT_MAC_H */ 461 /* */ 462 /* @description: */ 463 /* A macro used in #include statements to name the file containing */ 464 /* the Macintosh-specific FreeType 2 API. The latter is used to */ 465 /* access fonts embedded in resource forks. */ 466 /* */ 467 /* This header file must be explicitly included by client */ 468 /* applications compiled on the Mac (note that the base API still */ 469 /* works though). */ 470 /* */ 471 #define FT_MAC_H <freetype/ftmac.h> 472 473 474 /*************************************************************************/ 475 /* */ 476 /* @macro: */ 477 /* FT_MULTIPLE_MASTERS_H */ 478 /* */ 479 /* @description: */ 480 /* A macro used in #include statements to name the file containing */ 481 /* the optional multiple-masters management API of FreeType 2. */ 482 /* */ 483 #define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h> 484 485 486 /*************************************************************************/ 487 /* */ 488 /* @macro: */ 489 /* FT_SFNT_NAMES_H */ 490 /* */ 491 /* @description: */ 492 /* A macro used in #include statements to name the file containing */ 493 /* the optional FreeType 2 API used to access embedded `name' strings */ 494 /* in SFNT-based font formats (i.e. TrueType and OpenType). */ 495 /* */ 496 #define FT_SFNT_NAMES_H <freetype/ftsnames.h> 497 498 /* */ 499 500 #define FT_TRIGONOMETRY_H <freetype/fttrigon.h> 501 #define FT_STROKER_H <freetype/ftstroker.h> 502 #define FT_SYNTHESIS_H <freetype/ftsynth.h> 503 #define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h> 504 505 #define FT_CACHE_MANAGER_H <freetype/cache/ftcmanag.h> 506 507 #define FT_CACHE_INTERNAL_LRU_H <freetype/cache/ftlru.h> 508 #define FT_CACHE_INTERNAL_GLYPH_H <freetype/cache/ftcglyph.h> 509 #define FT_CACHE_INTERNAL_CACHE_H <freetype/cache/ftccache.h> 510 511 #define FT_XFREE86_H <freetype/ftxf86.h> 512 513 #define FT_INCREMENTAL_H <freetype/ftincrem.h> 514 515 /* now include internal headers definitions from <freetype/internal/...> */ 516 517 #define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h> 518 #include FT_INTERNAL_INTERNAL_H 519 520 521 #endif /* __FT2_BUILD_H__ */ 522 523 524 /* END */ 525