"Fossies" - the Fresh Open Source Software Archive 
Member "SDL2_ttf-2.20.2/external/freetype/src/autofit/afblue.hin" (25 May 2022, 5250 Bytes) of package /linux/misc/SDL2_ttf-2.20.2.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style:
standard) with prefixed line numbers and
code folding option.
Alternatively you can here
view or
download the uninterpreted source code file.
1 /****************************************************************************
2 *
3 * afblue.h
4 *
5 * Auto-fitter data for blue strings (specification).
6 *
7 * Copyright (C) 2013-2022 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 AFBLUE_H_
20 #define AFBLUE_H_
21
22
23 FT_BEGIN_HEADER
24
25
26 /* an auxiliary macro to decode a UTF-8 character -- since we only use */
27 /* hard-coded, self-converted data, no error checking is performed */
28 #define GET_UTF8_CHAR( ch, p ) \
29 do \
30 { \
31 ch = (unsigned char)*p++; \
32 if ( ch >= 0x80 ) \
33 { \
34 FT_UInt len_; \
35 \
36 \
37 if ( ch < 0xE0 ) \
38 { \
39 len_ = 1; \
40 ch &= 0x1F; \
41 } \
42 else if ( ch < 0xF0 ) \
43 { \
44 len_ = 2; \
45 ch &= 0x0F; \
46 } \
47 else \
48 { \
49 len_ = 3; \
50 ch &= 0x07; \
51 } \
52 \
53 for ( ; len_ > 0; len_-- ) \
54 ch = ( ch << 6 ) | ( *p++ & 0x3F ); \
55 } \
56 } while ( 0 )
57
58
59 /*************************************************************************/
60 /*************************************************************************/
61 /***** *****/
62 /***** B L U E S T R I N G S *****/
63 /***** *****/
64 /*************************************************************************/
65 /*************************************************************************/
66
67 /* At the bottommost level, we define strings for finding blue zones. */
68
69
70 #define AF_BLUE_STRING_MAX_LEN @AF_BLUE_STRING_MAX_LEN@
71
72 /* The AF_Blue_String enumeration values are offsets into the */
73 /* `af_blue_strings' array. */
74
75 typedef enum AF_Blue_String_
76 {
77 @AF_BLUE_STRING_ENUM@
78
79 AF_BLUE_STRING_MAX /* do not remove */
80
81 } AF_Blue_String;
82
83
84 FT_LOCAL_ARRAY( char )
85 af_blue_strings[];
86
87
88 /*************************************************************************/
89 /*************************************************************************/
90 /***** *****/
91 /***** B L U E S T R I N G S E T S *****/
92 /***** *****/
93 /*************************************************************************/
94 /*************************************************************************/
95
96 /* The next level is to group blue strings into style-specific sets. */
97
98
99 /* Properties are specific to a writing system. We assume that a given */
100 /* blue string can't be used in more than a single writing system, which */
101 /* is a safe bet. */
102 #define AF_BLUE_PROPERTY_LATIN_TOP ( 1U << 0 ) /* must have value 1 */
103 #define AF_BLUE_PROPERTY_LATIN_SUB_TOP ( 1U << 1 )
104 #define AF_BLUE_PROPERTY_LATIN_NEUTRAL ( 1U << 2 )
105 #define AF_BLUE_PROPERTY_LATIN_X_HEIGHT ( 1U << 3 )
106 #define AF_BLUE_PROPERTY_LATIN_LONG ( 1U << 4 )
107
108 #define AF_BLUE_PROPERTY_CJK_TOP ( 1U << 0 ) /* must have value 1 */
109 #define AF_BLUE_PROPERTY_CJK_HORIZ ( 1U << 1 ) /* must have value 2 */
110 #define AF_BLUE_PROPERTY_CJK_RIGHT AF_BLUE_PROPERTY_CJK_TOP
111
112
113 #define AF_BLUE_STRINGSET_MAX_LEN @AF_BLUE_STRINGSET_MAX_LEN@
114
115 /* The AF_Blue_Stringset enumeration values are offsets into the */
116 /* `af_blue_stringsets' array. */
117
118 typedef enum AF_Blue_Stringset_
119 {
120 @AF_BLUE_STRINGSET_ENUM@
121
122 AF_BLUE_STRINGSET_MAX /* do not remove */
123
124 } AF_Blue_Stringset;
125
126
127 typedef struct AF_Blue_StringRec_
128 {
129 AF_Blue_String string;
130 FT_UShort properties;
131
132 } AF_Blue_StringRec;
133
134
135 FT_LOCAL_ARRAY( AF_Blue_StringRec )
136 af_blue_stringsets[];
137
138 /* */
139
140 FT_END_HEADER
141
142
143 #endif /* AFBLUE_H_ */
144
145
146 /* END */