wined3d: Simplify DISCARD / READONLY handling in wined3d_buffer_map() a bit.
[wine/multimedia.git] / include / dwrite_1.idl
blob138b86948e4b1902970df876075fdce665ef7301
1 /*
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
19 import "dwrite.idl";
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_VARIANTION;
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
423 } DWRITE_BASELINE;
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;
442 UINT16 ascent;
443 UINT16 descent;
444 INT16 lineGap;
445 UINT16 capHeight;
446 UINT16 xHeight;
447 INT16 underlinePosition;
448 UINT16 underlineThickness;
449 INT16 strikethroughPosition;
450 UINT16 strikethroughThickness;
451 INT16 glyphBoxLeft;
452 INT16 glyphBoxTop;
453 INT16 glyphBoxRight;
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
468 INT16 slopeRise;
469 INT16 slopeRun;
470 INT16 offset;
471 } DWRITE_CARET_METRICS;
473 typedef union DWRITE_PANOSE
475 UINT8 values[10];
476 UINT8 familyKind;
477 struct
479 UINT8 familyKind;
480 UINT8 serifStyle;
481 UINT8 weight;
482 UINT8 proportion;
483 UINT8 contrast;
484 UINT8 strokeVariation;
485 UINT8 armStyle;
486 UINT8 letterform;
487 UINT8 midline;
488 UINT8 xHeight;
489 } text;
490 struct
492 UINT8 familyKind;
493 UINT8 toolKind;
494 UINT8 weight;
495 UINT8 spacing;
496 UINT8 aspectRatio;
497 UINT8 contrast;
498 UINT8 scriptTopology;
499 UINT8 scriptForm;
500 UINT8 finials;
501 UINT8 xAscent;
502 } script;
503 struct
505 UINT8 familyKind;
506 UINT8 decorativeClass;
507 UINT8 weight;
508 UINT8 aspect;
509 UINT8 contrast;
510 UINT8 serifVariant;
511 UINT8 fill;
512 UINT8 lining;
513 UINT8 decorativeTopology;
514 UINT8 characterRange;
515 } decorative;
516 struct
518 UINT8 familyKind;
519 UINT8 symbolKind;
520 UINT8 weight;
521 UINT8 spacing;
522 UINT8 aspectRatioAndContrast;
523 UINT8 aspectRatio94;
524 UINT8 aspectRatio119;
525 UINT8 aspectRatio157;
526 UINT8 aspectRatio163;
527 UINT8 aspectRatio211;
528 } symbol;
529 } DWRITE_PANOSE;
531 typedef struct DWRITE_UNICODE_RANGE
533 UINT32 first;
534 UINT32 last;
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;
572 local,
573 object,
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,
581 FLOAT enhcontrast,
582 FLOAT enhcontrast_grayscale,
583 FLOAT cleartype_level,
584 DWRITE_PIXEL_GEOMETRY geometry,
585 DWRITE_RENDERING_MODE mode,
586 IDWriteRenderingParams1** params);
590 local,
591 object,
592 uuid(a71efdb4-9fdb-4838-ad90-cfc3be8c3daf)
594 interface IDWriteFontFace1 : IDWriteFontFace
596 HRESULT 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,
604 UINT32 *count);
605 BOOL IsMonospacedFont();
606 HRESULT GetDesignGlyphAdvances(UINT32 glyph_count,
607 UINT16 const *indices,
608 INT32 *advances,
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,
614 BOOL is_sideways,
615 UINT32 glyph_count,
616 const UINT16 *indices,
617 INT32 *advances);
619 HRESULT GetKerningPairAdjustments(UINT32 glyph_count,
620 const UINT16 *indices,
621 INT32 *adjustments);
622 BOOL HasKerningPairs();
623 HRESULT GetRecommendedRenderingMode(FLOAT font_emsize,
624 FLOAT dpiX,
625 FLOAT dpiY,
626 const DWRITE_MATRIX *transform,
627 BOOL is_sideways,
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();
639 local,
640 object,
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,
649 UINT32 *count);
650 BOOL IsMonospacedFont();
654 local,
655 object,
656 uuid(94413cf4-a6fc-4248-8b50-6674348fcad3)
658 interface IDWriteRenderingParams1 : IDWriteRenderingParams
660 FLOAT GetGrayscaleEnhancedContrast();
664 local,
665 object,
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,
673 UINT32 len,
674 UINT32 glyph_count,
675 UINT16 const *clustermap,
676 FLOAT const *advances,
677 DWRITE_GLYPH_OFFSET const *offsets,
678 /*DWRITE_SHAPING_GLYPH_PROPERTIES const *properties, */
679 FLOAT *modified_advances,
680 DWRITE_GLYPH_OFFSET *modified_offsets);
681 HRESULT GetBaseline(IDWriteFontFace *face,
682 DWRITE_BASELINE baseline,
683 BOOL vertical,
684 BOOL is_simulation_allowed,
685 DWRITE_SCRIPT_ANALYSIS sa,
686 const WCHAR *localeName,
687 INT32 *baseline_coord,
688 BOOL *exists);
690 HRESULT AnalyzeVerticalGlyphOrientation(
691 IDWriteTextAnalysisSource1* source,
692 UINT32 text_pos,
693 UINT32 len,
694 IDWriteTextAnalysisSink1 *sink);
696 HRESULT GetGlyphOrientationTransform(
697 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
698 BOOL is_sideways,
699 DWRITE_MATRIX *transform);
702 * HRESULT GetScriptProperties(DWRITE_SCRIPT_ANALYSIS sa,
703 * DWRITE_SCRIPT_PROPERTIES *properties);
706 HRESULT GetTextComplexity(const WCHAR *text,
707 UINT32 len,
708 IDWriteFontFace *face,
709 BOOL *is_simple,
710 UINT32 *len_read,
711 UINT16 *indices);
712 HRESULT GetJustificationOpportunities(
713 IDWriteFontFace *face,
714 FLOAT font_em_size,
715 DWRITE_SCRIPT_ANALYSIS sa,
716 UINT32 length,
717 UINT32 glyph_count,
718 const WCHAR *text,
719 const UINT16 *clustermap,
720 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,
721 DWRITE_JUSTIFICATION_OPPORTUNITY *jo);
723 HRESULT JustifyGlyphAdvances(
724 FLOAT width,
725 UINT32 glyph_count,
726 const DWRITE_JUSTIFICATION_OPPORTUNITY *jo,
727 const FLOAT *advances,
728 const DWRITE_GLYPH_OFFSET *offsets,
729 FLOAT *justifiedadvances,
730 DWRITE_GLYPH_OFFSET *justifiedoffsets);
732 HRESULT GetJustifiedGlyphs(
733 IDWriteFontFace *face,
734 FLOAT font_em_size,
735 DWRITE_SCRIPT_ANALYSIS sa,
736 UINT32 length,
737 UINT32 glyph_count,
738 UINT32 max_glyphcount,
739 const UINT16 *clustermap,
740 const UINT16 *indices,
741 const FLOAT *advances,
742 const FLOAT *justifiedadvances,
743 const DWRITE_GLYPH_OFFSET *justifiedoffsets,
744 const DWRITE_SHAPING_GLYPH_PROPERTIES *prop,
745 UINT32 *actual_count,
746 UINT16 *modified_clustermap,
747 UINT16 *modified_indices,
748 FLOAT *modified_advances,
749 DWRITE_GLYPH_OFFSET *modified_offsets);
753 local,
754 object,
755 uuid(639cfad8-0fb4-4b21-a58a-067920120009)
757 interface IDWriteTextAnalysisSource1 : IDWriteTextAnalysisSource
759 HRESULT GetVerticalGlyphOrientation(
760 UINT32 pos,
761 UINT32 *length,
762 DWRITE_VERTICAL_GLYPH_ORIENTATION *orientation,
763 UINT8 *bidi_level);
767 local,
768 object,
769 uuid(b0d941a0-85e7-4d8b-9fd3-5ced9934482a)
771 interface IDWriteTextAnalysisSink1 : IDWriteTextAnalysisSink
773 HRESULT SetGlyphOrientation(
774 UINT32 pos,
775 UINT32 length,
776 DWRITE_GLYPH_ORIENTATION_ANGLE angle,
777 UINT8 adjusted_bidilevel,
778 BOOL is_sideways,
779 BOOL is_rtl);
783 local,
784 object,
785 uuid(9064d822-80a7-465c-a986-df65f78b8feb)
787 interface IDWriteTextLayout1 : IDWriteTextLayout
789 HRESULT SetPairKerning(
790 BOOL is_pairkerning_enabled,
791 DWRITE_TEXT_RANGE range);
793 HRESULT GetPairKerning(
794 UINT32 position,
795 BOOL *is_pairkerning_enabled,
796 DWRITE_TEXT_RANGE *range);
798 HRESULT SetCharacterSpacing(
799 FLOAT leading_spacing,
800 FLOAT trailing_spacing,
801 FLOAT minimum_advance_width,
802 DWRITE_TEXT_RANGE range);
804 HRESULT GetCharacterSpacing(
805 UINT32 position,
806 FLOAT* leading_spacing,
807 FLOAT* trailing_spacing,
808 FLOAT* minimum_advance_width,
809 [defaultvalue(NULL)] DWRITE_TEXT_RANGE *range);
812 typedef enum DWRITE_TEXT_ANTIALIAS_MODE
814 DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE,
815 DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE
816 } DWRITE_TEXT_ANTIALIAS_MODE;
819 local,
820 object,
821 uuid(791e8298-3ef3-4230-9880-c9bdecc42064)
823 interface IDWriteBitmapRenderTarget1 : IDWriteBitmapRenderTarget
825 DWRITE_TEXT_ANTIALIAS_MODE GetTextAntialiasMode();
826 HRESULT SetTextAntialiasMode(DWRITE_TEXT_ANTIALIAS_MODE mode);