ReactOS 0.4.17-dev-934-g091855f
dwrite_2.idl
Go to the documentation of this file.
1/*
2 * Copyright 2014 Nikolay Sivov for CodeWeavers
3 *
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.
8 *
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.
13 *
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
17 */
18
19import "dwrite_1.idl";
20
22{
26
28{
33
35{
36 /* DWRITE_TEXT_METRICS fields */
46 /* DWRITE_TEXT_METRICS1 fields */
49
50cpp_quote("#ifndef D3DCOLORVALUE_DEFINED")
52{
53 union {
56 };
57 union {
60 };
61 union {
64 };
65 union {
68 };
70cpp_quote("#define D3DCOLORVALUE_DEFINED")
71cpp_quote("#endif")
72
73typedef D3DCOLORVALUE DWRITE_COLOR_F;
74
75typedef struct DWRITE_COLOR_GLYPH_RUN
76{
77 DWRITE_GLYPH_RUN glyphRun;
78 DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription;
79 FLOAT baselineOriginX;
80 FLOAT baselineOriginY;
81 DWRITE_COLOR_F runColor;
82 UINT16 paletteIndex;
83} DWRITE_COLOR_GLYPH_RUN;
84
85[
86 local,
87 object,
88 uuid(d3e0e934-22a0-427e-aae4-7d9574b59db1)
89]
90interface IDWriteTextRenderer1 : IDWriteTextRenderer
91{
92 HRESULT DrawGlyphRun(
93 [in] void *context,
94 [in] FLOAT originX,
95 [in] FLOAT originY,
96 [in] DWRITE_GLYPH_ORIENTATION_ANGLE angle,
97 [in] DWRITE_MEASURING_MODE mode,
98 [in] DWRITE_GLYPH_RUN const *run,
99 [in] DWRITE_GLYPH_RUN_DESCRIPTION const *rundescr,
100 [in] IUnknown *effect
101 );
102 HRESULT DrawUnderline(
103 [in] void *context,
104 [in] FLOAT originX,
105 [in] FLOAT originY,
106 [in] DWRITE_GLYPH_ORIENTATION_ANGLE angle,
107 [in] DWRITE_UNDERLINE const *underline,
108 [in] IUnknown *effect
109 );
110 HRESULT DrawStrikethrough(
111 [in] void *context,
112 [in] FLOAT originX,
113 [in] FLOAT originY,
114 [in] DWRITE_GLYPH_ORIENTATION_ANGLE angle,
115 [in] DWRITE_STRIKETHROUGH const *strikethrough,
116 [in] IUnknown *effect
117 );
118 HRESULT DrawInlineObject(
119 [in] void *context,
120 [in] FLOAT originX,
121 [in] FLOAT originY,
122 [in] DWRITE_GLYPH_ORIENTATION_ANGLE angle,
123 [in] IDWriteInlineObject *inlineObject,
124 [in] BOOL is_sideways,
125 [in] BOOL is_rtl,
126 [in] IUnknown *effect
127 );
128}
129
130[
131 local,
132 object,
133 uuid(efa008f9-f7a1-48bf-b05c-f224713cc0ff)
134]
135interface IDWriteFontFallback : IUnknown
136{
137 HRESULT MapCharacters(
138 [in] IDWriteTextAnalysisSource *source,
139 [in] UINT32 position,
140 [in] UINT32 length,
141 [in] IDWriteFontCollection *basecollection,
142 [in] const WCHAR *baseFamilyName,
143 [in] DWRITE_FONT_WEIGHT baseWeight,
144 [in] DWRITE_FONT_STYLE baseStyle,
145 [in] DWRITE_FONT_STRETCH baseStretch,
146 [out] UINT32 *mappedLength,
147 [out] IDWriteFont **mappedFont,
148 [out] FLOAT *scale
149 );
150}
151
152[
153 local,
154 object,
155 uuid(5f174b49-0d8b-4cfb-8bca-f1cce9d06c67)
156]
157interface IDWriteTextFormat1 : IDWriteTextFormat
158{
159 HRESULT SetVerticalGlyphOrientation(
160 [in] DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
161 DWRITE_VERTICAL_GLYPH_ORIENTATION GetVerticalGlyphOrientation();
162 HRESULT SetLastLineWrapping(
163 [in] BOOL lastline_wrapping_enabled
164 );
165 BOOL GetLastLineWrapping();
166 HRESULT SetOpticalAlignment(
167 [in] DWRITE_OPTICAL_ALIGNMENT alignment
168 );
169 DWRITE_OPTICAL_ALIGNMENT GetOpticalAlignment();
170 HRESULT SetFontFallback(
171 [in] IDWriteFontFallback *fallback
172 );
173 HRESULT GetFontFallback(
174 [in] IDWriteFontFallback **fallback
175 );
176}
177
178[
179 local,
180 object,
181 uuid(1093c18f-8d5e-43f0-b064-0917311b525e)
182]
183interface IDWriteTextLayout2 : IDWriteTextLayout1
184{
185 HRESULT GetMetrics(
186 [out] DWRITE_TEXT_METRICS1 *metrics
187 );
188 HRESULT SetVerticalGlyphOrientation(
189 [in] DWRITE_VERTICAL_GLYPH_ORIENTATION orientation
190 );
191 DWRITE_VERTICAL_GLYPH_ORIENTATION GetVerticalGlyphOrientation();
192 HRESULT SetLastLineWrapping(
193 [in] BOOL lastline_wrapping_enabled
194 );
195 BOOL GetLastLineWrapping();
196 HRESULT SetOpticalAlignment(
197 [in] DWRITE_OPTICAL_ALIGNMENT alignment
198 );
199 DWRITE_OPTICAL_ALIGNMENT GetOpticalAlignment();
200 HRESULT SetFontFallback(
201 [in] IDWriteFontFallback *fallback
202 );
203 HRESULT GetFontFallback(
204 [out] IDWriteFontFallback **fallback
205 );
206}
207
208[
209 local,
210 object,
211 uuid(553a9ff3-5693-4df7-b52b-74806f7f2eb9)
212]
213interface IDWriteTextAnalyzer2 : IDWriteTextAnalyzer1
214{
215 HRESULT GetGlyphOrientationTransform(
216 [in] DWRITE_GLYPH_ORIENTATION_ANGLE angle,
217 [in] BOOL is_sideways,
218 [in] FLOAT originX,
219 [in] FLOAT originY,
220 [out] DWRITE_MATRIX *transform
221 );
222 HRESULT GetTypographicFeatures(
223 [in] IDWriteFontFace *fontface,
224 [in] DWRITE_SCRIPT_ANALYSIS analysis,
225 [in] const WCHAR *localeName,
226 [in] UINT32 max_tagcount,
227 [out] UINT32 *actual_tagcount,
228 [out] DWRITE_FONT_FEATURE_TAG *tags
229 );
230 HRESULT CheckTypographicFeature(
231 [in] IDWriteFontFace *fontface,
232 [in] DWRITE_SCRIPT_ANALYSIS analysis,
233 [in] const WCHAR *localeName,
234 [in] DWRITE_FONT_FEATURE_TAG feature,
235 [in] UINT32 glyph_count,
236 [in] const UINT16 *indices,
237 [out] UINT8 *feature_applies
238 );
239}
240
241[
242 local,
243 object,
244 uuid(fd882d06-8aba-4fb8-b849-8be8b73e14de)
245]
246interface IDWriteFontFallbackBuilder : IUnknown
247{
248 HRESULT AddMapping(
249 [in] const DWRITE_UNICODE_RANGE *ranges,
250 [in] UINT32 rangesCount,
251 [in] WCHAR const **targetFamilyNames,
252 [in] UINT32 targetFamilyNamesCount,
253 [in, defaultvalue(NULL)] IDWriteFontCollection *collection,
254 [in, defaultvalue(NULL)] WCHAR const *localeName,
255 [in, defaultvalue(NULL)] WCHAR const *baseFamilyName,
256 [in, defaultvalue(1)] FLOAT scale
257 );
258 HRESULT AddMappings(
259 [in] IDWriteFontFallback *fallback
260 );
261 HRESULT CreateFontFallback(
262 [out] IDWriteFontFallback **fallback
263 );
264}
265
266[
267 local,
268 object,
269 uuid(29748ed6-8c9c-4a6a-be0b-d912e8538944)
270]
271interface IDWriteFont2 : IDWriteFont1
272{
273 BOOL IsColorFont();
274}
275
276[
277 local,
278 object,
279 uuid(d8b768ff-64bc-4e66-982b-ec8e87f693f7)
280]
281interface IDWriteFontFace2 : IDWriteFontFace1
282{
283 BOOL IsColorFont();
284 UINT32 GetColorPaletteCount();
285 UINT32 GetPaletteEntryCount();
286 HRESULT GetPaletteEntries(
287 [in] UINT32 palette_index,
288 [in] UINT32 first_entry_index,
289 [in] UINT32 entry_count,
290 [out] DWRITE_COLOR_F *entries
291 );
292 HRESULT GetRecommendedRenderingMode(
293 [in] FLOAT fontEmSize,
294 [in] FLOAT dpiX,
295 [in] FLOAT dpiY,
296 [in] DWRITE_MATRIX const *transform,
297 [in] BOOL is_sideways,
298 [in] DWRITE_OUTLINE_THRESHOLD threshold,
299 [in] DWRITE_MEASURING_MODE measuringmode,
300 [in] IDWriteRenderingParams *params,
301 [out] DWRITE_RENDERING_MODE *renderingmode,
302 [out] DWRITE_GRID_FIT_MODE *gridfitmode
303 );
304}
305
306[
307 local,
308 object,
309 uuid(d31fbe17-f157-41a2-8d24-cb779e0560e8)
310]
311interface IDWriteColorGlyphRunEnumerator : IUnknown
312{
313 HRESULT MoveNext(
314 [out] BOOL *hasRun
315 );
316 HRESULT GetCurrentRun(
317 [out] DWRITE_COLOR_GLYPH_RUN const **run
318 );
319}
320
321[
322 local,
323 object,
324 uuid(f9d711c3-9777-40ae-87e8-3e5aF9bf0948)
325]
326interface IDWriteRenderingParams2 : IDWriteRenderingParams1
327{
328 DWRITE_GRID_FIT_MODE GetGridFitMode();
329}
330
331[
332 local,
333 object,
334 uuid(0439fc60-ca44-4994-8dee-3a9af7b732ec)
335]
336interface IDWriteFactory2 : IDWriteFactory1
337{
338 HRESULT GetSystemFontFallback(
339 [out] IDWriteFontFallback **fallback
340 );
341 HRESULT CreateFontFallbackBuilder(
342 [out] IDWriteFontFallbackBuilder **fallbackbuilder
343 );
344 HRESULT TranslateColorGlyphRun(
345 [in] FLOAT originX,
346 [in] FLOAT originY,
347 [in] const DWRITE_GLYPH_RUN *run,
348 [in] const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
349 [in] DWRITE_MEASURING_MODE mode,
350 [in] const DWRITE_MATRIX *transform,
351 [in] UINT32 palette_index,
352 [out] IDWriteColorGlyphRunEnumerator **colorlayers
353 );
354 HRESULT CreateCustomRenderingParams(
355 [in] FLOAT gamma,
356 [in] FLOAT contrast,
357 [in] FLOAT grayscalecontrast,
358 [in] FLOAT cleartypeLevel,
359 [in] DWRITE_PIXEL_GEOMETRY pixelGeometry,
360 [in] DWRITE_RENDERING_MODE renderingMode,
361 [in] DWRITE_GRID_FIT_MODE gridFitMode,
362 [out] IDWriteRenderingParams2 **params
363 );
364 HRESULT CreateGlyphRunAnalysis(
365 [in] const DWRITE_GLYPH_RUN *run,
366 [in] const DWRITE_MATRIX *transform,
367 [in] DWRITE_RENDERING_MODE renderingMode,
368 [in] DWRITE_MEASURING_MODE measuringMode,
369 [in] DWRITE_GRID_FIT_MODE gridFitMode,
370 [in] DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
371 [in] FLOAT originX,
372 [in] FLOAT originY,
373 [out] IDWriteGlyphRunAnalysis **analysis
374 );
375}
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
Definition: d3d10.idl:496
DWRITE_GRID_FIT_MODE
Definition: dwrite_2.idl:28
@ DWRITE_GRID_FIT_MODE_DEFAULT
Definition: dwrite_2.idl:29
@ DWRITE_GRID_FIT_MODE_DISABLED
Definition: dwrite_2.idl:30
@ DWRITE_GRID_FIT_MODE_ENABLED
Definition: dwrite_2.idl:31
struct _D3DCOLORVALUE D3DCOLORVALUE
DWRITE_OPTICAL_ALIGNMENT
Definition: dwrite_2.idl:22
@ DWRITE_OPTICAL_ALIGNMENT_NONE
Definition: dwrite_2.idl:23
@ DWRITE_OPTICAL_ALIGNMENT_NO_SIDE_BEARINGS
Definition: dwrite_2.idl:24
FLOAT widthIncludingTrailingWhitespace
Definition: dwrite_2.idl:40
UINT32 maxBidiReorderingDepth
Definition: dwrite_2.idl:44
FLOAT heightIncludingTrailingWhitespace
Definition: dwrite_2.idl:47
float FLOAT
Definition: typedefs.h:69
uint32_t UINT32
Definition: typedefs.h:59