ReactOS 0.4.15-dev-7953-g1f49173
ttsubpix.h
Go to the documentation of this file.
1/***************************************************************************/
2/* */
3/* ttsubpix.h */
4/* */
5/* TrueType Subpixel Hinting. */
6/* */
7/* Copyright 2010-2018 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
19#ifndef TTSUBPIX_H_
20#define TTSUBPIX_H_
21
22#include <ft2build.h>
23#include "ttobjs.h"
24#include "ttinterp.h"
25
26
28
29
30#ifdef TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY
31
32 /*************************************************************************/
33 /* */
34 /* ID flags to identify special functions at FDEF and runtime. */
35 /* */
36 /* */
37#define SPH_FDEF_INLINE_DELTA_1 0x0000001
38#define SPH_FDEF_INLINE_DELTA_2 0x0000002
39#define SPH_FDEF_DIAGONAL_STROKE 0x0000004
40#define SPH_FDEF_VACUFORM_ROUND_1 0x0000008
41#define SPH_FDEF_TTFAUTOHINT_1 0x0000010
42#define SPH_FDEF_SPACING_1 0x0000020
43#define SPH_FDEF_SPACING_2 0x0000040
44#define SPH_FDEF_TYPEMAN_STROKES 0x0000080
45#define SPH_FDEF_TYPEMAN_DIAGENDCTRL 0x0000100
46
47
48 /*************************************************************************/
49 /* */
50 /* Tweak flags that are set for each glyph by the below rules. */
51 /* */
52 /* */
53#define SPH_TWEAK_ALLOW_X_DMOVE 0x0000001UL
54#define SPH_TWEAK_ALWAYS_DO_DELTAP 0x0000002UL
55#define SPH_TWEAK_ALWAYS_SKIP_DELTAP 0x0000004UL
56#define SPH_TWEAK_COURIER_NEW_2_HACK 0x0000008UL
57#define SPH_TWEAK_DEEMBOLDEN 0x0000010UL
58#define SPH_TWEAK_DO_SHPIX 0x0000020UL
59#define SPH_TWEAK_EMBOLDEN 0x0000040UL
60#define SPH_TWEAK_MIAP_HACK 0x0000080UL
61#define SPH_TWEAK_NORMAL_ROUND 0x0000100UL
62#define SPH_TWEAK_NO_ALIGNRP_AFTER_IUP 0x0000200UL
63#define SPH_TWEAK_NO_CALL_AFTER_IUP 0x0000400UL
64#define SPH_TWEAK_NO_DELTAP_AFTER_IUP 0x0000800UL
65#define SPH_TWEAK_PIXEL_HINTING 0x0001000UL
66#define SPH_TWEAK_RASTERIZER_35 0x0002000UL
67#define SPH_TWEAK_ROUND_NONPIXEL_Y_MOVES 0x0004000UL
68#define SPH_TWEAK_SKIP_IUP 0x0008000UL
69#define SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES 0x0010000UL
70#define SPH_TWEAK_SKIP_OFFPIXEL_Y_MOVES 0x0020000UL
71#define SPH_TWEAK_TIMES_NEW_ROMAN_HACK 0x0040000UL
72#define SPH_TWEAK_SKIP_NONPIXEL_Y_MOVES_DELTAP 0x0080000UL
73
74
76 sph_test_tweak( TT_Face face,
77 const FT_String* family,
78 FT_UInt ppem,
79 const FT_String* style,
80 FT_UInt glyph_index,
81 const SPH_TweakRule* rule,
82 FT_UInt num_rules );
83
85 sph_test_tweak_x_scaling( TT_Face face,
86 const FT_String* family,
87 FT_UInt ppem,
88 const FT_String* style,
89 FT_UInt glyph_index );
90
91 FT_LOCAL( void )
92 sph_set_tweaks( TT_Loader loader,
93 FT_UInt glyph_index );
94
95
96 /* These macros are defined absent a method for setting them */
97#define SPH_OPTION_BITMAP_WIDTHS FALSE
98#define SPH_OPTION_SET_SUBPIXEL TRUE
99#define SPH_OPTION_SET_GRAYSCALE FALSE
100#define SPH_OPTION_SET_COMPATIBLE_WIDTHS FALSE
101#define SPH_OPTION_SET_RASTERIZER_VERSION 38
102
103#endif /* TT_SUPPORT_SUBPIXEL_HINTING_INFINALITY */
104
105
107
108#endif /* TTSUBPIX_H_ */
109
110
111/* END */
Arabic default style
Definition: afstyles.h:94
#define FT_LOCAL(x)
Definition: ftconfig.h:387
#define FT_END_HEADER
Definition: ftheader.h:54
#define FT_BEGIN_HEADER
Definition: ftheader.h:36
FT_BEGIN_HEADER typedef unsigned char FT_Bool
Definition: fttypes.h:108
char FT_String
Definition: fttypes.h:187
unsigned int FT_UInt
Definition: fttypes.h:231
GLenum GLuint GLint GLenum face
Definition: glext.h:7025