2 * Copyright 2013 Nikolay Sivov for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 typedef enum DWRITE_PANOSE_FAMILY
23 DWRITE_PANOSE_FAMILY_ANY
,
24 DWRITE_PANOSE_FAMILY_NO_FIT
,
25 DWRITE_PANOSE_FAMILY_TEXT_DISPLAY
,
26 DWRITE_PANOSE_FAMILY_SCRIPT
,
27 DWRITE_PANOSE_FAMILY_DECORATIVE
,
28 DWRITE_PANOSE_FAMILY_SYMBOL
,
29 DWRITE_PANOSE_FAMILY_PICTORIAL
= DWRITE_PANOSE_FAMILY_SYMBOL
30 } DWRITE_PANOSE_FAMILY
;
32 typedef enum DWRITE_PANOSE_SERIF_STYLE
34 DWRITE_PANOSE_SERIF_STYLE_ANY
,
35 DWRITE_PANOSE_SERIF_STYLE_NO_FIT
,
36 DWRITE_PANOSE_SERIF_STYLE_COVE
,
37 DWRITE_PANOSE_SERIF_STYLE_OBTUSE_COVE
,
38 DWRITE_PANOSE_SERIF_STYLE_SQUARE_COVE
,
39 DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SQUARE_COVE
,
40 DWRITE_PANOSE_SERIF_STYLE_SQUARE
,
41 DWRITE_PANOSE_SERIF_STYLE_THIN
,
42 DWRITE_PANOSE_SERIF_STYLE_OVAL
,
43 DWRITE_PANOSE_SERIF_STYLE_EXAGGERATED
,
44 DWRITE_PANOSE_SERIF_STYLE_TRIANGLE
,
45 DWRITE_PANOSE_SERIF_STYLE_NORMAL_SANS
,
46 DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SANS
,
47 DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS
,
48 DWRITE_PANOSE_SERIF_STYLE_FLARED
,
49 DWRITE_PANOSE_SERIF_STYLE_ROUNDED
,
50 DWRITE_PANOSE_SERIF_STYLE_SCRIPT
,
51 DWRITE_PANOSE_SERIF_STYLE_PERP_SANS
= DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS
,
52 DWRITE_PANOSE_SERIF_STYLE_BONE
= DWRITE_PANOSE_SERIF_STYLE_OVAL
53 } DWRITE_PANOSE_SERIF_STYLE
;
55 typedef enum DWRITE_PANOSE_WEIGHT
57 DWRITE_PANOSE_WEIGHT_ANY
,
58 DWRITE_PANOSE_WEIGHT_NO_FIT
,
59 DWRITE_PANOSE_WEIGHT_VERY_LIGHT
,
60 DWRITE_PANOSE_WEIGHT_LIGHT
,
61 DWRITE_PANOSE_WEIGHT_THIN
,
62 DWRITE_PANOSE_WEIGHT_BOOK
,
63 DWRITE_PANOSE_WEIGHT_MEDIUM
,
64 DWRITE_PANOSE_WEIGHT_DEMI
,
65 DWRITE_PANOSE_WEIGHT_BOLD
,
66 DWRITE_PANOSE_WEIGHT_HEAVY
,
67 DWRITE_PANOSE_WEIGHT_BLACK
,
68 DWRITE_PANOSE_WEIGHT_EXTRA_BLACK
,
69 DWRITE_PANOSE_WEIGHT_NORD
= DWRITE_PANOSE_WEIGHT_EXTRA_BLACK
70 } DWRITE_PANOSE_WEIGHT
;
72 typedef enum DWRITE_PANOSE_PROPORTION
74 DWRITE_PANOSE_PROPORTION_ANY
,
75 DWRITE_PANOSE_PROPORTION_NO_FIT
,
76 DWRITE_PANOSE_PROPORTION_OLD_STYLE
,
77 DWRITE_PANOSE_PROPORTION_MODERN
,
78 DWRITE_PANOSE_PROPORTION_EVEN_WIDTH
,
79 DWRITE_PANOSE_PROPORTION_EXPANDED
,
80 DWRITE_PANOSE_PROPORTION_CONDENSED
,
81 DWRITE_PANOSE_PROPORTION_VERY_EXPANDED
,
82 DWRITE_PANOSE_PROPORTION_VERY_CONDENSED
,
83 DWRITE_PANOSE_PROPORTION_MONOSPACED
84 } DWRITE_PANOSE_PROPORTION
;
86 typedef enum DWRITE_PANOSE_CONTRAST
88 DWRITE_PANOSE_CONTRAST_ANY
,
89 DWRITE_PANOSE_CONTRAST_NO_FIT
,
90 DWRITE_PANOSE_CONTRAST_NONE
,
91 DWRITE_PANOSE_CONTRAST_VERY_LOW
,
92 DWRITE_PANOSE_CONTRAST_LOW
,
93 DWRITE_PANOSE_CONTRAST_MEDIUM_LOW
,
94 DWRITE_PANOSE_CONTRAST_MEDIUM
,
95 DWRITE_PANOSE_CONTRAST_MEDIUM_HIGH
,
96 DWRITE_PANOSE_CONTRAST_HIGH
,
97 DWRITE_PANOSE_CONTRAST_VERY_HIGH
,
98 DWRITE_PANOSE_CONTRAST_HORIZONTAL_LOW
,
99 DWRITE_PANOSE_CONTRAST_HORIZONTAL_MEDIUM
,
100 DWRITE_PANOSE_CONTRAST_HORIZONTAL_HIGH
,
101 DWRITE_PANOSE_CONTRAST_BROKEN
102 } DWRITE_PANOSE_CONTRAST
;
104 typedef enum DWRITE_PANOSE_STROKE_VARIATION
106 DWRITE_PANOSE_STROKE_VARIATION_ANY
,
107 DWRITE_PANOSE_STROKE_VARIATION_NO_FIT
,
108 DWRITE_PANOSE_STROKE_VARIATION_NO_VARIATION
,
109 DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_DIAGONAL
,
110 DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_TRANSITIONAL
,
111 DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_VERTICAL
,
112 DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_HORIZONTAL
,
113 DWRITE_PANOSE_STROKE_VARIATION_RAPID_VERTICAL
,
114 DWRITE_PANOSE_STROKE_VARIATION_RAPID_HORIZONTAL
,
115 DWRITE_PANOSE_STROKE_VARIATION_INSTANT_VERTICAL
,
116 DWRITE_PANOSE_STROKE_VARIATION_INSTANT_HORIZONTAL
117 } DWRITE_PANOSE_STROKE_VARIATION
;
119 typedef enum DWRITE_PANOSE_ARM_STYLE
121 DWRITE_PANOSE_ARM_STYLE_ANY
,
122 DWRITE_PANOSE_ARM_STYLE_NO_FIT
,
123 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL
,
124 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_WEDGE
,
125 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL
,
126 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_SINGLE_SERIF
,
127 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_DOUBLE_SERIF
,
128 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL
,
129 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE
,
130 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL
,
131 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF
,
132 DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF
,
133 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORZ
= DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL
,
134 DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERT
= DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL
,
135 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_HORZ
= DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL
,
136 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_WEDGE
= DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE
,
137 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_VERT
= DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL
,
138 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_SINGLE_SERIF
= DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF
,
139 DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_DOUBLE_SERIF
= DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF
140 } DWRITE_PANOSE_ARM_STYLE
;
142 typedef enum DWRITE_PANOSE_LETTERFORM
144 DWRITE_PANOSE_LETTERFORM_ANY
,
145 DWRITE_PANOSE_LETTERFORM_NO_FIT
,
146 DWRITE_PANOSE_LETTERFORM_NORMAL_CONTACT
,
147 DWRITE_PANOSE_LETTERFORM_NORMAL_WEIGHTED
,
148 DWRITE_PANOSE_LETTERFORM_NORMAL_BOXED
,
149 DWRITE_PANOSE_LETTERFORM_NORMAL_FLATTENED
,
150 DWRITE_PANOSE_LETTERFORM_NORMAL_ROUNDED
,
151 DWRITE_PANOSE_LETTERFORM_NORMAL_OFF_CENTER
,
152 DWRITE_PANOSE_LETTERFORM_NORMAL_SQUARE
,
153 DWRITE_PANOSE_LETTERFORM_OBLIQUE_CONTACT
,
154 DWRITE_PANOSE_LETTERFORM_OBLIQUE_WEIGHTED
,
155 DWRITE_PANOSE_LETTERFORM_OBLIQUE_BOXED
,
156 DWRITE_PANOSE_LETTERFORM_OBLIQUE_FLATTENED
,
157 DWRITE_PANOSE_LETTERFORM_OBLIQUE_ROUNDED
,
158 DWRITE_PANOSE_LETTERFORM_OBLIQUE_OFF_CENTER
,
159 DWRITE_PANOSE_LETTERFORM_OBLIQUE_SQUARE
160 } DWRITE_PANOSE_LETTERFORM
;
162 typedef enum DWRITE_PANOSE_MIDLINE
164 DWRITE_PANOSE_MIDLINE_ANY
,
165 DWRITE_PANOSE_MIDLINE_NO_FIT
,
166 DWRITE_PANOSE_MIDLINE_STANDARD_TRIMMED
,
167 DWRITE_PANOSE_MIDLINE_STANDARD_POINTED
,
168 DWRITE_PANOSE_MIDLINE_STANDARD_SERIFED
,
169 DWRITE_PANOSE_MIDLINE_HIGH_TRIMMED
,
170 DWRITE_PANOSE_MIDLINE_HIGH_POINTED
,
171 DWRITE_PANOSE_MIDLINE_HIGH_SERIFED
,
172 DWRITE_PANOSE_MIDLINE_CONSTANT_TRIMMED
,
173 DWRITE_PANOSE_MIDLINE_CONSTANT_POINTED
,
174 DWRITE_PANOSE_MIDLINE_CONSTANT_SERIFED
,
175 DWRITE_PANOSE_MIDLINE_LOW_TRIMMED
,
176 DWRITE_PANOSE_MIDLINE_LOW_POINTED
,
177 DWRITE_PANOSE_MIDLINE_LOW_SERIFED
178 } DWRITE_PANOSE_MIDLINE
;
180 typedef enum DWRITE_PANOSE_XHEIGHT
182 DWRITE_PANOSE_XHEIGHT_ANY
,
183 DWRITE_PANOSE_XHEIGHT_NO_FIT
,
184 DWRITE_PANOSE_XHEIGHT_CONSTANT_SMALL
,
185 DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD
,
186 DWRITE_PANOSE_XHEIGHT_CONSTANT_LARGE
,
187 DWRITE_PANOSE_XHEIGHT_DUCKING_SMALL
,
188 DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD
,
189 DWRITE_PANOSE_XHEIGHT_DUCKING_LARGE
,
190 DWRITE_PANOSE_XHEIGHT_CONSTANT_STD
= DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD
,
191 DWRITE_PANOSE_XHEIGHT_DUCKING_STD
= DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD
192 } DWRITE_PANOSE_XHEIGHT
;
194 typedef enum DWRITE_PANOSE_TOOL_KIND
196 DWRITE_PANOSE_TOOL_KIND_ANY
,
197 DWRITE_PANOSE_TOOL_KIND_NO_FIT
,
198 DWRITE_PANOSE_TOOL_KIND_FLAT_NIB
,
199 DWRITE_PANOSE_TOOL_KIND_PRESSURE_POINT
,
200 DWRITE_PANOSE_TOOL_KIND_ENGRAVED
,
201 DWRITE_PANOSE_TOOL_KIND_BALL
,
202 DWRITE_PANOSE_TOOL_KIND_BRUSH
,
203 DWRITE_PANOSE_TOOL_KIND_ROUGH
,
204 DWRITE_PANOSE_TOOL_KIND_FELT_PEN_BRUSH_TIP
,
205 DWRITE_PANOSE_TOOL_KIND_WILD_BRUSH
206 } DWRITE_PANOSE_TOOL_KIND
;
208 typedef enum DWRITE_PANOSE_SPACING
210 DWRITE_PANOSE_SPACING_ANY
,
211 DWRITE_PANOSE_SPACING_NO_FIT
,
212 DWRITE_PANOSE_SPACING_PROPORTIONAL_SPACED
,
213 DWRITE_PANOSE_SPACING_MONOSPACED
214 } DWRITE_PANOSE_SPACING
;
216 typedef enum DWRITE_PANOSE_ASPECT_RATIO
218 DWRITE_PANOSE_ASPECT_RATIO_ANY
,
219 DWRITE_PANOSE_ASPECT_RATIO_NO_FIT
,
220 DWRITE_PANOSE_ASPECT_RATIO_VERY_CONDENSED
,
221 DWRITE_PANOSE_ASPECT_RATIO_CONDENSED
,
222 DWRITE_PANOSE_ASPECT_RATIO_NORMAL
,
223 DWRITE_PANOSE_ASPECT_RATIO_EXPANDED
,
224 DWRITE_PANOSE_ASPECT_RATIO_VERY_EXPANDED
225 } DWRITE_PANOSE_ASPECT_RATIO
;
227 typedef enum DWRITE_PANOSE_SCRIPT_TOPOLOGY
229 DWRITE_PANOSE_SCRIPT_TOPOLOGY_ANY
,
230 DWRITE_PANOSE_SCRIPT_TOPOLOGY_NO_FIT
,
231 DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_DISCONNECTED
,
232 DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_TRAILING
,
233 DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_CONNECTED
,
234 DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_DISCONNECTED
,
235 DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_TRAILING
,
236 DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_CONNECTED
,
237 DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_DISCONNECTED
,
238 DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_TRAILING
,
239 DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_CONNECTED
240 } DWRITE_PANOSE_SCRIPT_TOPOLOGY
;
242 typedef enum DWRITE_PANOSE_SCRIPT_FORM
244 DWRITE_PANOSE_SCRIPT_FORM_ANY
,
245 DWRITE_PANOSE_SCRIPT_FORM_NO_FIT
,
246 DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_NO_WRAPPING
,
247 DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_SOME_WRAPPING
,
248 DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_MORE_WRAPPING
,
249 DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_EXTREME_WRAPPING
,
250 DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_NO_WRAPPING
,
251 DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_SOME_WRAPPING
,
252 DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_MORE_WRAPPING
,
253 DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_EXTREME_WRAPPING
,
254 DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_NO_WRAPPING
,
255 DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_SOME_WRAPPING
,
256 DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_MORE_WRAPPING
,
257 DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_EXTREME_WRAPPING
258 } DWRITE_PANOSE_SCRIPT_FORM
;
260 typedef enum DWRITE_PANOSE_FINIALS
262 DWRITE_PANOSE_FINIALS_ANY
,
263 DWRITE_PANOSE_FINIALS_NO_FIT
,
264 DWRITE_PANOSE_FINIALS_NONE_NO_LOOPS
,
265 DWRITE_PANOSE_FINIALS_NONE_CLOSED_LOOPS
,
266 DWRITE_PANOSE_FINIALS_NONE_OPEN_LOOPS
,
267 DWRITE_PANOSE_FINIALS_SHARP_NO_LOOPS
,
268 DWRITE_PANOSE_FINIALS_SHARP_CLOSED_LOOPS
,
269 DWRITE_PANOSE_FINIALS_SHARP_OPEN_LOOPS
,
270 DWRITE_PANOSE_FINIALS_TAPERED_NO_LOOPS
,
271 DWRITE_PANOSE_FINIALS_TAPERED_CLOSED_LOOPS
,
272 DWRITE_PANOSE_FINIALS_TAPERED_OPEN_LOOPS
,
273 DWRITE_PANOSE_FINIALS_ROUND_NO_LOOPS
,
274 DWRITE_PANOSE_FINIALS_ROUND_CLOSED_LOOPS
,
275 DWRITE_PANOSE_FINIALS_ROUND_OPEN_LOOPS
276 } DWRITE_PANOSE_FINIALS
;
278 typedef enum DWRITE_PANOSE_XASCENT
280 DWRITE_PANOSE_XASCENT_ANY
,
281 DWRITE_PANOSE_XASCENT_NO_FIT
,
282 DWRITE_PANOSE_XASCENT_VERY_LOW
,
283 DWRITE_PANOSE_XASCENT_LOW
,
284 DWRITE_PANOSE_XASCENT_MEDIUM
,
285 DWRITE_PANOSE_XASCENT_HIGH
,
286 DWRITE_PANOSE_XASCENT_VERY_HIGH
287 } DWRITE_PANOSE_XASCENT
;
289 typedef enum DWRITE_PANOSE_DECORATIVE_CLASS
291 DWRITE_PANOSE_DECORATIVE_CLASS_ANY
,
292 DWRITE_PANOSE_DECORATIVE_CLASS_NO_FIT
,
293 DWRITE_PANOSE_DECORATIVE_CLASS_DERIVATIVE
,
294 DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_TOPOLOGY
,
295 DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ELEMENTS
,
296 DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ASPECT
,
297 DWRITE_PANOSE_DECORATIVE_CLASS_INITIALS
,
298 DWRITE_PANOSE_DECORATIVE_CLASS_CARTOON
,
299 DWRITE_PANOSE_DECORATIVE_CLASS_PICTURE_STEMS
,
300 DWRITE_PANOSE_DECORATIVE_CLASS_ORNAMENTED
,
301 DWRITE_PANOSE_DECORATIVE_CLASS_TEXT_AND_BACKGROUND
,
302 DWRITE_PANOSE_DECORATIVE_CLASS_COLLAGE
,
303 DWRITE_PANOSE_DECORATIVE_CLASS_MONTAGE
304 } DWRITE_PANOSE_DECORATIVE_CLASS
;
306 typedef enum DWRITE_PANOSE_ASPECT
308 DWRITE_PANOSE_ASPECT_ANY
,
309 DWRITE_PANOSE_ASPECT_NO_FIT
,
310 DWRITE_PANOSE_ASPECT_SUPER_CONDENSED
,
311 DWRITE_PANOSE_ASPECT_VERY_CONDENSED
,
312 DWRITE_PANOSE_ASPECT_CONDENSED
,
313 DWRITE_PANOSE_ASPECT_NORMAL
,
314 DWRITE_PANOSE_ASPECT_EXTENDED
,
315 DWRITE_PANOSE_ASPECT_VERY_EXTENDED
,
316 DWRITE_PANOSE_ASPECT_SUPER_EXTENDED
,
317 DWRITE_PANOSE_ASPECT_MONOSPACED
318 } DWRITE_PANOSE_ASPECT
;
320 typedef enum DWRITE_PANOSE_FILL
322 DWRITE_PANOSE_FILL_ANY
,
323 DWRITE_PANOSE_FILL_NO_FIT
,
324 DWRITE_PANOSE_FILL_STANDARD_SOLID_FILL
,
325 DWRITE_PANOSE_FILL_NO_FILL
,
326 DWRITE_PANOSE_FILL_PATTERNED_FILL
,
327 DWRITE_PANOSE_FILL_COMPLEX_FILL
,
328 DWRITE_PANOSE_FILL_SHAPED_FILL
,
329 DWRITE_PANOSE_FILL_DRAWN_DISTRESSED
330 } DWRITE_PANOSE_FILL
;
332 typedef enum DWRITE_PANOSE_LINING
334 DWRITE_PANOSE_LINING_ANY
,
335 DWRITE_PANOSE_LINING_NO_FIT
,
336 DWRITE_PANOSE_LINING_NONE
,
337 DWRITE_PANOSE_LINING_INLINE
,
338 DWRITE_PANOSE_LINING_OUTLINE
,
339 DWRITE_PANOSE_LINING_ENGRAVED
,
340 DWRITE_PANOSE_LINING_SHADOW
,
341 DWRITE_PANOSE_LINING_RELIEF
,
342 DWRITE_PANOSE_LINING_BACKDROP
343 } DWRITE_PANOSE_LINING
;
345 typedef enum DWRITE_PANOSE_DECORATIVE_TOPOLOGY
347 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ANY
,
348 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_NO_FIT
,
349 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_STANDARD
,
350 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SQUARE
,
351 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_MULTIPLE_SEGMENT
,
352 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ART_DECO
,
353 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UNEVEN_WEIGHTING
,
354 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_ARMS
,
355 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_FORMS
,
356 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_LOMBARDIC_FORMS
,
357 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UPPER_CASE_IN_LOWER_CASE
,
358 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_IMPLIED_TOPOLOGY
,
359 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_HORSESHOE_E_AND_A
,
360 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_CURSIVE
,
361 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_BLACKLETTER
,
362 DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SWASH_VARIANCE
363 } DWRITE_PANOSE_DECORATIVE_TOPOLOGY
;
365 typedef enum DWRITE_PANOSE_CHARACTER_RANGES
367 DWRITE_PANOSE_CHARACTER_RANGES_ANY
,
368 DWRITE_PANOSE_CHARACTER_RANGES_NO_FIT
,
369 DWRITE_PANOSE_CHARACTER_RANGES_EXTENDED_COLLECTION
,
370 DWRITE_PANOSE_CHARACTER_RANGES_LITERALS
,
371 DWRITE_PANOSE_CHARACTER_RANGES_NO_LOWER_CASE
,
372 DWRITE_PANOSE_CHARACTER_RANGES_SMALL_CAPS
373 } DWRITE_PANOSE_CHARACTER_RANGES
;
375 typedef enum DWRITE_PANOSE_SYMBOL_KIND
377 DWRITE_PANOSE_SYMBOL_KIND_ANY
,
378 DWRITE_PANOSE_SYMBOL_KIND_NO_FIT
,
379 DWRITE_PANOSE_SYMBOL_KIND_MONTAGES
,
380 DWRITE_PANOSE_SYMBOL_KIND_PICTURES
,
381 DWRITE_PANOSE_SYMBOL_KIND_SHAPES
,
382 DWRITE_PANOSE_SYMBOL_KIND_SCIENTIFIC
,
383 DWRITE_PANOSE_SYMBOL_KIND_MUSIC
,
384 DWRITE_PANOSE_SYMBOL_KIND_EXPERT
,
385 DWRITE_PANOSE_SYMBOL_KIND_PATTERNS
,
386 DWRITE_PANOSE_SYMBOL_KIND_BOARDERS
,
387 DWRITE_PANOSE_SYMBOL_KIND_ICONS
,
388 DWRITE_PANOSE_SYMBOL_KIND_LOGOS
,
389 DWRITE_PANOSE_SYMBOL_KIND_INDUSTRY_SPECIFIC
390 } DWRITE_PANOSE_SYMBOL_KIND
;
392 typedef enum DWRITE_PANOSE_SYMBOL_ASPECT_RATIO
394 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_ANY
,
395 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_FIT
,
396 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_WIDTH
,
397 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_EXCEPTIONALLY_WIDE
,
398 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_SUPER_WIDE
,
399 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_WIDE
,
400 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_WIDE
,
401 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NORMAL
,
402 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NARROW
,
403 DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_NARROW
404 } DWRITE_PANOSE_SYMBOL_ASPECT_RATIO
;
406 typedef enum DWRITE_OUTLINE_THRESHOLD
408 DWRITE_OUTLINE_THRESHOLD_ANTIALIASED
,
409 DWRITE_OUTLINE_THRESHOLD_ALIASED
410 } DWRITE_OUTLINE_THRESHOLD
;
412 typedef enum DWRITE_BASELINE
414 DWRITE_BASELINE_DEFAULT
,
415 DWRITE_BASELINE_ROMAN
,
416 DWRITE_BASELINE_CENTRAL
,
417 DWRITE_BASELINE_MATH
,
418 DWRITE_BASELINE_HANGING
,
419 DWRITE_BASELINE_IDEOGRAPHIC_BOTTOM
,
420 DWRITE_BASELINE_IDEOGRAPHIC_TOP
,
421 DWRITE_BASELINE_MINIMUM
,
422 DWRITE_BASELINE_MAXIMUM
425 typedef enum DWRITE_VERTICAL_GLYPH_ORIENTATION
427 DWRITE_VERTICAL_GLYPH_ORIENTATION_DEFAULT
,
428 DWRITE_VERTICAL_GLYPH_ORIENTATION_STACKED
429 } DWRITE_VERTICAL_GLYPH_ORIENTATION
;
431 typedef enum DWRITE_GLYPH_ORIENTATION_ANGLE
433 DWRITE_GLYPH_ORIENTATION_ANGLE_0_DEGREES
,
434 DWRITE_GLYPH_ORIENTATION_ANGLE_90_DEGREES
,
435 DWRITE_GLYPH_ORIENTATION_ANGLE_180_DEGREES
,
436 DWRITE_GLYPH_ORIENTATION_ANGLE_270_DEGREES
437 } DWRITE_GLYPH_ORIENTATION_ANGLE
;
439 typedef struct DWRITE_FONT_METRICS1
441 UINT16 designUnitsPerEm
;
447 INT16 underlinePosition
;
448 UINT16 underlineThickness
;
449 INT16 strikethroughPosition
;
450 UINT16 strikethroughThickness
;
454 INT16 glyphBoxBottom
;
455 INT16 subscriptPositionX
;
456 INT16 subscriptPositionY
;
457 INT16 subscriptSizeX
;
458 INT16 subscriptSizeY
;
459 INT16 superscriptPositionX
;
460 INT16 superscriptPositionY
;
461 INT16 superscriptSizeX
;
462 INT16 superscriptSizeY
;
463 BOOL hasTypographicMetrics
;
464 } DWRITE_FONT_METRICS1
;
466 typedef struct DWRITE_CARET_METRICS
471 } DWRITE_CARET_METRICS
;
473 typedef union DWRITE_PANOSE
484 UINT8 strokeVariation
;
498 UINT8 scriptTopology
;
506 UINT8 decorativeClass
;
513 UINT8 decorativeTopology
;
514 UINT8 characterRange
;
522 UINT8 aspectRatioAndContrast
;
524 UINT8 aspectRatio119
;
525 UINT8 aspectRatio157
;
526 UINT8 aspectRatio163
;
527 UINT8 aspectRatio211
;
531 typedef struct DWRITE_UNICODE_RANGE
535 } DWRITE_UNICODE_RANGE
;
537 typedef struct DWRITE_SCRIPT_PROPERTIES
539 UINT32 isoScriptCode
;
540 UINT32 isoScriptNumber
;
541 UINT32 clusterLookahead
;
542 UINT32 justificationCharacter
;
543 UINT32 restrictCaretToClusters
: 1;
544 UINT32 usesWordDividers
: 1;
545 UINT32 isDiscreteWriting
: 1;
546 UINT32 isBlockWriting
: 1;
547 UINT32 isDistributedWithinCluster
: 1;
548 UINT32 isConnectedWriting
: 1;
549 UINT32 isCursiveWriting
: 1;
550 UINT32 reserved
: 25;
551 } DWRITE_SCRIPT_PROPERTIES
;
553 typedef struct DWRITE_JUSTIFICATION_OPPORTUNITY
555 FLOAT expansionMinimum
;
556 FLOAT expansionMaximum
;
557 FLOAT compressionMaximum
;
558 UINT32 expansionPriority
: 8;
559 UINT32 compressionPriority
: 8;
560 UINT32 allowResidualExpansion
: 1;
561 UINT32 allowResidualCompression
: 1;
562 UINT32 applyToLeadingEdge
: 1;
563 UINT32 applyToTrailingEdge
: 1;
564 UINT32 reserved
: 12;
565 } DWRITE_JUSTIFICATION_OPPORTUNITY
;
567 interface IDWriteTextAnalysisSource1
;
568 interface IDWriteTextAnalysisSink1
;
569 interface IDWriteRenderingParams1
;
574 uuid(30572f99
-dac6
-41db
-a16e
-0486307e606a
)
576 interface IDWriteFactory1
: IDWriteFactory
578 HRESULT GetEudcFontCollection
(IDWriteFontCollection
**collection
,
579 [defaultvalue(FALSE
)] BOOL check_for_updates
);
580 HRESULT CreateCustomRenderingParams
(FLOAT gamma
,
582 FLOAT enhcontrast_grayscale
,
583 FLOAT cleartype_level
,
584 DWRITE_PIXEL_GEOMETRY geometry
,
585 DWRITE_RENDERING_MODE mode
,
586 IDWriteRenderingParams1
** params
);
592 uuid(a71efdb4
-9fdb
-4838-ad90
-cfc3be8c3daf
)
594 interface IDWriteFontFace1
: IDWriteFontFace
596 void GetMetrics
(DWRITE_FONT_METRICS1
*metrics
);
597 HRESULT GetGdiCompatibleMetrics
(FLOAT em_size
,
598 FLOAT pixels_per_dip
,
599 const DWRITE_MATRIX
*transform
,
600 DWRITE_FONT_METRICS1
*metrics
);
601 void GetCaretMetrics
(DWRITE_CARET_METRICS
*metrics
);
602 HRESULT GetUnicodeRanges
(UINT32 max_count
,
603 DWRITE_UNICODE_RANGE
*ranges
,
605 BOOL IsMonospacedFont
();
606 HRESULT GetDesignGlyphAdvances
(UINT32 glyph_count
,
607 UINT16
const *indices
,
609 [defaultvalue(FALSE
)] BOOL is_sideways
);
610 HRESULT GetGdiCompatibleGlyphAdvances
(FLOAT em_size
,
611 FLOAT pixels_per_dip
,
612 const DWRITE_MATRIX
*transform
,
613 BOOL use_gdi_natural
,
616 const UINT16
*indices
,
619 HRESULT GetKerningPairAdjustments
(UINT32 glyph_count
,
620 const UINT16
*indices
,
622 BOOL HasKerningPairs
();
623 HRESULT GetRecommendedRenderingMode
(FLOAT font_emsize
,
626 const DWRITE_MATRIX
*transform
,
628 DWRITE_OUTLINE_THRESHOLD threshold
,
629 DWRITE_MEASURING_MODE measuring_mode
,
630 DWRITE_RENDERING_MODE
*rendering_mode
);
632 HRESULT GetVerticalGlyphVariants
(UINT32 glyph_count
,
633 const UINT16
*nominal_indices
,
634 UINT16
*vertical_indices
);
635 BOOL HasVerticalGlyphVariants
();
641 uuid(acd16696
-8c14
-4f5d
-877e
-fe3fc1d32738
)
643 interface IDWriteFont1
: IDWriteFont
645 void GetMetrics
(DWRITE_FONT_METRICS1
*metrics
);
646 void GetPanose
(DWRITE_PANOSE
*panose
);
647 HRESULT GetUnicodeRanges
(UINT32 max_count
,
648 DWRITE_UNICODE_RANGE
*ranges
,
650 BOOL IsMonospacedFont
();
656 uuid(94413cf4
-a6fc
-4248-8b50
-6674348fcad3
)
658 interface IDWriteRenderingParams1
: IDWriteRenderingParams
660 FLOAT GetGrayscaleEnhancedContrast
();
666 uuid(80dad800
-e21f
-4e83
-96ce
-bfcce500db7c
)
668 interface IDWriteTextAnalyzer1
: IDWriteTextAnalyzer
670 HRESULT ApplyCharacterSpacing
(FLOAT leading_spacing
,
671 FLOAT trailing_spacing
,
672 FLOAT min_advance_width
,
675 UINT16
const *clustermap
,
676 FLOAT const *advances
,
677 DWRITE_GLYPH_OFFSET
const *offsets
,
678 DWRITE_SHAPING_GLYPH_PROPERTIES
const *props
,
679 FLOAT *modified_advances
,
680 DWRITE_GLYPH_OFFSET
*modified_offsets
);
681 HRESULT GetBaseline
(IDWriteFontFace
*face
,
682 DWRITE_BASELINE baseline
,
684 BOOL is_simulation_allowed
,
685 DWRITE_SCRIPT_ANALYSIS sa
,
686 const WCHAR
*localeName
,
687 INT32
*baseline_coord
,
690 HRESULT AnalyzeVerticalGlyphOrientation
(
691 IDWriteTextAnalysisSource1
* source,
694 IDWriteTextAnalysisSink1
*sink
);
696 HRESULT GetGlyphOrientationTransform
(
697 DWRITE_GLYPH_ORIENTATION_ANGLE angle
,
699 DWRITE_MATRIX
*transform
);
701 HRESULT GetScriptProperties
(DWRITE_SCRIPT_ANALYSIS sa
, DWRITE_SCRIPT_PROPERTIES
*props
);
703 HRESULT GetTextComplexity
(const WCHAR
*text
,
705 IDWriteFontFace
*face
,
709 HRESULT GetJustificationOpportunities
(
710 IDWriteFontFace
*face
,
712 DWRITE_SCRIPT_ANALYSIS sa
,
716 const UINT16
*clustermap
,
717 const DWRITE_SHAPING_GLYPH_PROPERTIES
*prop
,
718 DWRITE_JUSTIFICATION_OPPORTUNITY
*jo
);
720 HRESULT JustifyGlyphAdvances
(
723 const DWRITE_JUSTIFICATION_OPPORTUNITY
*jo
,
724 const FLOAT *advances
,
725 const DWRITE_GLYPH_OFFSET
*offsets
,
726 FLOAT *justifiedadvances
,
727 DWRITE_GLYPH_OFFSET
*justifiedoffsets
);
729 HRESULT GetJustifiedGlyphs
(
730 IDWriteFontFace
*face
,
732 DWRITE_SCRIPT_ANALYSIS sa
,
735 UINT32 max_glyphcount
,
736 const UINT16
*clustermap
,
737 const UINT16
*indices
,
738 const FLOAT *advances
,
739 const FLOAT *justifiedadvances
,
740 const DWRITE_GLYPH_OFFSET
*justifiedoffsets
,
741 const DWRITE_SHAPING_GLYPH_PROPERTIES
*prop
,
742 UINT32
*actual_count
,
743 UINT16
*modified_clustermap
,
744 UINT16
*modified_indices
,
745 FLOAT *modified_advances
,
746 DWRITE_GLYPH_OFFSET
*modified_offsets
);
752 uuid(639cfad8
-0fb4
-4b21
-a58a
-067920120009)
754 interface IDWriteTextAnalysisSource1
: IDWriteTextAnalysisSource
756 HRESULT GetVerticalGlyphOrientation
(
759 DWRITE_VERTICAL_GLYPH_ORIENTATION
*orientation
,
766 uuid(b0d941a0
-85e7
-4d8b
-9fd3
-5ced9934482a
)
768 interface IDWriteTextAnalysisSink1
: IDWriteTextAnalysisSink
770 HRESULT SetGlyphOrientation
(
773 DWRITE_GLYPH_ORIENTATION_ANGLE angle
,
774 UINT8 adjusted_bidilevel
,
782 uuid(9064d822
-80a7
-465c
-a986
-df65f78b8feb
)
784 interface IDWriteTextLayout1
: IDWriteTextLayout
786 HRESULT SetPairKerning
(
787 BOOL is_pairkerning_enabled
,
788 DWRITE_TEXT_RANGE
range);
790 HRESULT GetPairKerning
(
792 BOOL
*is_pairkerning_enabled
,
793 DWRITE_TEXT_RANGE
*range);
795 HRESULT SetCharacterSpacing
(
796 FLOAT leading_spacing
,
797 FLOAT trailing_spacing
,
798 FLOAT minimum_advance_width
,
799 DWRITE_TEXT_RANGE
range);
801 HRESULT GetCharacterSpacing
(
803 FLOAT* leading_spacing
,
804 FLOAT* trailing_spacing
,
805 FLOAT* minimum_advance_width
,
806 [defaultvalue(NULL
)] DWRITE_TEXT_RANGE
*range);
809 typedef enum DWRITE_TEXT_ANTIALIAS_MODE
811 DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE
,
812 DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE
813 } DWRITE_TEXT_ANTIALIAS_MODE
;
818 uuid(791e8298
-3ef3
-4230-9880-c9bdecc42064
)
820 interface IDWriteBitmapRenderTarget1
: IDWriteBitmapRenderTarget
822 DWRITE_TEXT_ANTIALIAS_MODE GetTextAntialiasMode
();
823 HRESULT SetTextAntialiasMode
(DWRITE_TEXT_ANTIALIAS_MODE mode
);