ftparams.h 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. /****************************************************************************
  2. *
  3. * ftparams.h
  4. *
  5. * FreeType API for possible FT_Parameter tags (specification only).
  6. *
  7. * Copyright (C) 2017-2023 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. #ifndef FTPARAMS_H_
  18. #define FTPARAMS_H_
  19. #include <freetype/freetype.h>
  20. #ifdef FREETYPE_H
  21. #error "freetype.h of FreeType 1 has been loaded!"
  22. #error "Please fix the directory search order for header files"
  23. #error "so that freetype.h of FreeType 2 is found first."
  24. #endif
  25. FT_BEGIN_HEADER
  26. /**************************************************************************
  27. *
  28. * @section:
  29. * parameter_tags
  30. *
  31. * @title:
  32. * Parameter Tags
  33. *
  34. * @abstract:
  35. * Macros for driver property and font loading parameter tags.
  36. *
  37. * @description:
  38. * This section contains macros for the @FT_Parameter structure that are
  39. * used with various functions to activate some special functionality or
  40. * different behaviour of various components of FreeType.
  41. *
  42. */
  43. /**************************************************************************
  44. *
  45. * @enum:
  46. * FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY
  47. *
  48. * @description:
  49. * A tag for @FT_Parameter to make @FT_Open_Face ignore typographic
  50. * family names in the 'name' table (introduced in OpenType version 1.4).
  51. * Use this for backward compatibility with legacy systems that have a
  52. * four-faces-per-family restriction.
  53. *
  54. * @since:
  55. * 2.8
  56. *
  57. */
  58. #define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY \
  59. FT_MAKE_TAG( 'i', 'g', 'p', 'f' )
  60. /* this constant is deprecated */
  61. #define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY \
  62. FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_FAMILY
  63. /**************************************************************************
  64. *
  65. * @enum:
  66. * FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY
  67. *
  68. * @description:
  69. * A tag for @FT_Parameter to make @FT_Open_Face ignore typographic
  70. * subfamily names in the 'name' table (introduced in OpenType version
  71. * 1.4). Use this for backward compatibility with legacy systems that
  72. * have a four-faces-per-family restriction.
  73. *
  74. * @since:
  75. * 2.8
  76. *
  77. */
  78. #define FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY \
  79. FT_MAKE_TAG( 'i', 'g', 'p', 's' )
  80. /* this constant is deprecated */
  81. #define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY \
  82. FT_PARAM_TAG_IGNORE_TYPOGRAPHIC_SUBFAMILY
  83. /**************************************************************************
  84. *
  85. * @enum:
  86. * FT_PARAM_TAG_INCREMENTAL
  87. *
  88. * @description:
  89. * An @FT_Parameter tag to be used with @FT_Open_Face to indicate
  90. * incremental glyph loading.
  91. *
  92. */
  93. #define FT_PARAM_TAG_INCREMENTAL \
  94. FT_MAKE_TAG( 'i', 'n', 'c', 'r' )
  95. /**************************************************************************
  96. *
  97. * @enum:
  98. * FT_PARAM_TAG_IGNORE_SBIX
  99. *
  100. * @description:
  101. * A tag for @FT_Parameter to make @FT_Open_Face ignore an 'sbix' table
  102. * while loading a font. Use this if @FT_FACE_FLAG_SBIX is set and you
  103. * want to access the outline glyphs in the font.
  104. *
  105. */
  106. #define FT_PARAM_TAG_IGNORE_SBIX \
  107. FT_MAKE_TAG( 'i', 's', 'b', 'x' )
  108. /**************************************************************************
  109. *
  110. * @enum:
  111. * FT_PARAM_TAG_LCD_FILTER_WEIGHTS
  112. *
  113. * @description:
  114. * An @FT_Parameter tag to be used with @FT_Face_Properties. The
  115. * corresponding argument specifies the five LCD filter weights for a
  116. * given face (if using @FT_LOAD_TARGET_LCD, for example), overriding the
  117. * global default values or the values set up with
  118. * @FT_Library_SetLcdFilterWeights.
  119. *
  120. * @since:
  121. * 2.8
  122. *
  123. */
  124. #define FT_PARAM_TAG_LCD_FILTER_WEIGHTS \
  125. FT_MAKE_TAG( 'l', 'c', 'd', 'f' )
  126. /**************************************************************************
  127. *
  128. * @enum:
  129. * FT_PARAM_TAG_RANDOM_SEED
  130. *
  131. * @description:
  132. * An @FT_Parameter tag to be used with @FT_Face_Properties. The
  133. * corresponding 32bit signed integer argument overrides the font
  134. * driver's random seed value with a face-specific one; see @random-seed.
  135. *
  136. * @since:
  137. * 2.8
  138. *
  139. */
  140. #define FT_PARAM_TAG_RANDOM_SEED \
  141. FT_MAKE_TAG( 's', 'e', 'e', 'd' )
  142. /**************************************************************************
  143. *
  144. * @enum:
  145. * FT_PARAM_TAG_STEM_DARKENING
  146. *
  147. * @description:
  148. * An @FT_Parameter tag to be used with @FT_Face_Properties. The
  149. * corresponding Boolean argument specifies whether to apply stem
  150. * darkening, overriding the global default values or the values set up
  151. * with @FT_Property_Set (see @no-stem-darkening).
  152. *
  153. * This is a passive setting that only takes effect if the font driver or
  154. * autohinter honors it, which the CFF, Type~1, and CID drivers always
  155. * do, but the autohinter only in 'light' hinting mode (as of version
  156. * 2.9).
  157. *
  158. * @since:
  159. * 2.8
  160. *
  161. */
  162. #define FT_PARAM_TAG_STEM_DARKENING \
  163. FT_MAKE_TAG( 'd', 'a', 'r', 'k' )
  164. /**************************************************************************
  165. *
  166. * @enum:
  167. * FT_PARAM_TAG_UNPATENTED_HINTING
  168. *
  169. * @description:
  170. * Deprecated, no effect.
  171. *
  172. * Previously: A constant used as the tag of an @FT_Parameter structure
  173. * to indicate that unpatented methods only should be used by the
  174. * TrueType bytecode interpreter for a typeface opened by @FT_Open_Face.
  175. *
  176. */
  177. #define FT_PARAM_TAG_UNPATENTED_HINTING \
  178. FT_MAKE_TAG( 'u', 'n', 'p', 'a' )
  179. /* */
  180. FT_END_HEADER
  181. #endif /* FTPARAMS_H_ */
  182. /* END */