| /* |
| * Copyright 2014 Nikolay Sivov for CodeWeavers |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| import "dwrite_1.idl"; |
| |
| typedef enum DWRITE_OPTICAL_ALIGNMENT |
| { |
| DWRITE_OPTICAL_ALIGNMENT_NONE, |
| DWRITE_OPTICAL_ALIGNMENT_NO_SIDE_BEARINGS |
| } DWRITE_OPTICAL_ALIGNMENT; |
| |
| typedef enum DWRITE_GRID_FIT_MODE |
| { |
| DWRITE_GRID_FIT_MODE_DEFAULT, |
| DWRITE_GRID_FIT_MODE_DISABLED, |
| DWRITE_GRID_FIT_MODE_ENABLED |
| } DWRITE_GRID_FIT_MODE; |
| |
| typedef struct DWRITE_TEXT_METRICS1 |
| { |
| /* DWRITE_TEXT_METRICS fields */ |
| FLOAT left; |
| FLOAT top; |
| FLOAT width; |
| FLOAT widthIncludingTrailingWhitespace; |
| FLOAT height; |
| FLOAT layoutWidth; |
| FLOAT layoutHeight; |
| UINT32 maxBidiReorderingDepth; |
| UINT32 lineCount; |
| /* DWRITE_TEXT_METRICS1 fields */ |
| FLOAT heightIncludingTrailingWhitespace; |
| } DWRITE_TEXT_METRICS1; |
| |
| cpp_quote("#ifndef D3DCOLORVALUE_DEFINED") |
| typedef struct _D3DCOLORVALUE |
| { |
| union { |
| FLOAT r; |
| FLOAT dvR; |
| }; |
| union { |
| FLOAT g; |
| FLOAT dvG; |
| }; |
| union { |
| FLOAT b; |
| FLOAT dvB; |
| }; |
| union { |
| FLOAT a; |
| FLOAT dvA; |
| }; |
| } D3DCOLORVALUE; |
| cpp_quote("#define D3DCOLORVALUE_DEFINED") |
| cpp_quote("#endif") |
| |
| typedef D3DCOLORVALUE DWRITE_COLOR_F; |
| |
| typedef struct DWRITE_COLOR_GLYPH_RUN |
| { |
| DWRITE_GLYPH_RUN glyphRun; |
| DWRITE_GLYPH_RUN_DESCRIPTION* glyphRunDescription; |
| FLOAT baselineOriginX; |
| FLOAT baselineOriginY; |
| DWRITE_COLOR_F runColor; |
| UINT16 paletteIndex; |
| } DWRITE_COLOR_GLYPH_RUN; |
| |
| [ |
| local, |
| object, |
| uuid(d3e0e934-22a0-427e-aae4-7d9574b59db1) |
| ] |
| interface IDWriteTextRenderer1 : IDWriteTextRenderer |
| { |
| HRESULT DrawGlyphRun( |
| [in] void *context, |
| [in] FLOAT originX, |
| [in] FLOAT originY, |
| [in] DWRITE_GLYPH_ORIENTATION_ANGLE angle, |
| [in] DWRITE_MEASURING_MODE mode, |
| [in] DWRITE_GLYPH_RUN const *run, |
| [in] DWRITE_GLYPH_RUN_DESCRIPTION const *rundescr, |
| [in] IUnknown *effect |
| ); |
| HRESULT DrawUnderline( |
| [in] void *context, |
| [in] FLOAT originX, |
| [in] FLOAT originY, |
| [in] DWRITE_GLYPH_ORIENTATION_ANGLE angle, |
| [in] DWRITE_UNDERLINE const *underline, |
| [in] IUnknown *effect |
| ); |
| HRESULT DrawStrikethrough( |
| [in] void *context, |
| [in] FLOAT originX, |
| [in] FLOAT originY, |
| [in] DWRITE_GLYPH_ORIENTATION_ANGLE angle, |
| [in] DWRITE_STRIKETHROUGH const *strikethrough, |
| [in] IUnknown *effect |
| ); |
| HRESULT DrawInlineObject( |
| [in] void *context, |
| [in] FLOAT originX, |
| [in] FLOAT originY, |
| [in] DWRITE_GLYPH_ORIENTATION_ANGLE angle, |
| [in] IDWriteInlineObject *inlineObject, |
| [in] BOOL is_sideways, |
| [in] BOOL is_rtl, |
| [in] IUnknown *effect |
| ); |
| } |
| |
| [ |
| local, |
| object, |
| uuid(efa008f9-f7a1-48bf-b05c-f224713cc0ff) |
| ] |
| interface IDWriteFontFallback : IUnknown |
| { |
| HRESULT MapCharacters( |
| [in] IDWriteTextAnalysisSource *source, |
| [in] UINT32 position, |
| [in] UINT32 length, |
| [in] IDWriteFontCollection *basecollection, |
| [in] const WCHAR *baseFamilyName, |
| [in] DWRITE_FONT_WEIGHT baseWeight, |
| [in] DWRITE_FONT_STYLE baseStyle, |
| [in] DWRITE_FONT_STRETCH baseStretch, |
| [out] UINT32 *mappedLength, |
| [out] IDWriteFont **mappedFont, |
| [out] FLOAT *scale |
| ); |
| } |
| |
| [ |
| local, |
| object, |
| uuid(5f174b49-0d8b-4cfb-8bca-f1cce9d06c67) |
| ] |
| interface IDWriteTextFormat1 : IDWriteTextFormat |
| { |
| HRESULT SetVerticalGlyphOrientation( |
| [in] DWRITE_VERTICAL_GLYPH_ORIENTATION orientation); |
| DWRITE_VERTICAL_GLYPH_ORIENTATION GetVerticalGlyphOrientation(); |
| HRESULT SetLastLineWrapping( |
| [in] BOOL lastline_wrapping_enabled |
| ); |
| BOOL GetLastLineWrapping(); |
| HRESULT SetOpticalAlignment( |
| [in] DWRITE_OPTICAL_ALIGNMENT alignment |
| ); |
| DWRITE_OPTICAL_ALIGNMENT GetOpticalAlignment(); |
| HRESULT SetFontFallback( |
| [in] IDWriteFontFallback *fallback |
| ); |
| HRESULT GetFontFallback( |
| [in] IDWriteFontFallback **fallback |
| ); |
| } |
| |
| [ |
| local, |
| object, |
| uuid(1093c18f-8d5e-43f0-b064-0917311b525e) |
| ] |
| interface IDWriteTextLayout2 : IDWriteTextLayout1 |
| { |
| HRESULT GetMetrics( |
| [out] DWRITE_TEXT_METRICS1 *metrics |
| ); |
| HRESULT SetVerticalGlyphOrientation( |
| [in] DWRITE_VERTICAL_GLYPH_ORIENTATION orientation |
| ); |
| DWRITE_VERTICAL_GLYPH_ORIENTATION GetVerticalGlyphOrientation(); |
| HRESULT SetLastLineWrapping( |
| [in] BOOL lastline_wrapping_enabled |
| ); |
| BOOL GetLastLineWrapping(); |
| HRESULT SetOpticalAlignment( |
| [in] DWRITE_OPTICAL_ALIGNMENT alignment |
| ); |
| DWRITE_OPTICAL_ALIGNMENT GetOpticalAlignment(); |
| HRESULT SetFontFallback( |
| [in] IDWriteFontFallback *fallback |
| ); |
| HRESULT GetFontFallback( |
| [out] IDWriteFontFallback **fallback |
| ); |
| } |
| |
| [ |
| local, |
| object, |
| uuid(553a9ff3-5693-4df7-b52b-74806f7f2eb9) |
| ] |
| interface IDWriteTextAnalyzer2 : IDWriteTextAnalyzer1 |
| { |
| HRESULT GetGlyphOrientationTransform( |
| [in] DWRITE_GLYPH_ORIENTATION_ANGLE angle, |
| [in] BOOL is_sideways, |
| [in] FLOAT originX, |
| [in] FLOAT originY, |
| [out] DWRITE_MATRIX *transform |
| ); |
| HRESULT GetTypographicFeatures( |
| [in] IDWriteFontFace *fontface, |
| [in] DWRITE_SCRIPT_ANALYSIS analysis, |
| [in] const WCHAR *localeName, |
| [in] UINT32 max_tagcount, |
| [out] UINT32 *actual_tagcount, |
| [out] DWRITE_FONT_FEATURE_TAG *tags |
| ); |
| HRESULT CheckTypographicFeature( |
| [in] IDWriteFontFace *fontface, |
| [in] DWRITE_SCRIPT_ANALYSIS analysis, |
| [in] const WCHAR *localeName, |
| [in] DWRITE_FONT_FEATURE_TAG feature, |
| [in] UINT32 glyph_count, |
| [in] const UINT16 *indices, |
| [out] UINT8 *feature_applies |
| ); |
| } |
| |
| [ |
| local, |
| object, |
| uuid(fd882d06-8aba-4fb8-b849-8be8b73e14de) |
| ] |
| interface IDWriteFontFallbackBuilder : IUnknown |
| { |
| HRESULT AddMapping( |
| [in] const DWRITE_UNICODE_RANGE *ranges, |
| [in] UINT32 rangesCount, |
| [in] WCHAR const **targetFamilyNames, |
| [in] UINT32 targetFamilyNamesCount, |
| [in, defaultvalue(NULL)] IDWriteFontCollection *collection, |
| [in, defaultvalue(NULL)] WCHAR const *localeName, |
| [in, defaultvalue(NULL)] WCHAR const *baseFamilyName, |
| [in, defaultvalue(1)] FLOAT scale |
| ); |
| HRESULT AddMappings( |
| [in] IDWriteFontFallback *fallback |
| ); |
| HRESULT CreateFontFallback( |
| [out] IDWriteFontFallback **fallback |
| ); |
| } |
| |
| [ |
| local, |
| object, |
| uuid(29748ed6-8c9c-4a6a-be0b-d912e8538944) |
| ] |
| interface IDWriteFont2 : IDWriteFont1 |
| { |
| BOOL IsColorFont(); |
| } |
| |
| [ |
| local, |
| object, |
| uuid(d8b768ff-64bc-4e66-982b-ec8e87f693f7) |
| ] |
| interface IDWriteFontFace2 : IDWriteFontFace1 |
| { |
| BOOL IsColorFont(); |
| UINT32 GetColorPaletteCount(); |
| UINT32 GetPaletteEntryCount(); |
| HRESULT GetPaletteEntries( |
| [in] UINT32 palette_index, |
| [in] UINT32 first_entry_index, |
| [in] UINT32 entry_count, |
| [out] DWRITE_COLOR_F *entries |
| ); |
| HRESULT GetRecommendedRenderingMode( |
| [in] FLOAT fontEmSize, |
| [in] FLOAT dpiX, |
| [in] FLOAT dpiY, |
| [in] DWRITE_MATRIX const *transform, |
| [in] BOOL is_sideways, |
| [in] DWRITE_OUTLINE_THRESHOLD threshold, |
| [in] DWRITE_MEASURING_MODE measuringmode, |
| [in] IDWriteRenderingParams *params, |
| [out] DWRITE_RENDERING_MODE *renderingmode, |
| [out] DWRITE_GRID_FIT_MODE *gridfitmode |
| ); |
| } |
| |
| [ |
| local, |
| object, |
| uuid(d31fbe17-f157-41a2-8d24-cb779e0560e8) |
| ] |
| interface IDWriteColorGlyphRunEnumerator : IUnknown |
| { |
| HRESULT MoveNext( |
| [out] BOOL *hasRun |
| ); |
| HRESULT GetCurrentRun( |
| [out] DWRITE_COLOR_GLYPH_RUN const **run |
| ); |
| } |
| |
| [ |
| local, |
| object, |
| uuid(f9d711c3-9777-40ae-87e8-3e5aF9bf0948) |
| ] |
| interface IDWriteRenderingParams2 : IDWriteRenderingParams1 |
| { |
| DWRITE_GRID_FIT_MODE GetGridFitMode(); |
| } |
| |
| [ |
| local, |
| object, |
| uuid(0439fc60-ca44-4994-8dee-3a9af7b732ec) |
| ] |
| interface IDWriteFactory2 : IDWriteFactory1 |
| { |
| HRESULT GetSystemFontFallback( |
| [out] IDWriteFontFallback **fallback |
| ); |
| HRESULT CreateFontFallbackBuilder( |
| [out] IDWriteFontFallbackBuilder **fallbackbuilder |
| ); |
| HRESULT TranslateColorGlyphRun( |
| [in] FLOAT originX, |
| [in] FLOAT originY, |
| [in] const DWRITE_GLYPH_RUN *run, |
| [in] const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr, |
| [in] DWRITE_MEASURING_MODE mode, |
| [in] const DWRITE_MATRIX *transform, |
| [in] UINT32 palette_index, |
| [out] IDWriteColorGlyphRunEnumerator **colorlayers |
| ); |
| HRESULT CreateCustomRenderingParams( |
| [in] FLOAT gamma, |
| [in] FLOAT contrast, |
| [in] FLOAT grayscalecontrast, |
| [in] FLOAT cleartypeLevel, |
| [in] DWRITE_PIXEL_GEOMETRY pixelGeometry, |
| [in] DWRITE_RENDERING_MODE renderingMode, |
| [in] DWRITE_GRID_FIT_MODE gridFitMode, |
| [out] IDWriteRenderingParams2 **params |
| ); |
| HRESULT CreateGlyphRunAnalysis( |
| [in] const DWRITE_GLYPH_RUN *run, |
| [in] const DWRITE_MATRIX *transform, |
| [in] DWRITE_RENDERING_MODE renderingMode, |
| [in] DWRITE_MEASURING_MODE measuringMode, |
| [in] DWRITE_GRID_FIT_MODE gridFitMode, |
| [in] DWRITE_TEXT_ANTIALIAS_MODE antialiasMode, |
| [in] FLOAT originX, |
| [in] FLOAT originY, |
| [out] IDWriteGlyphRunAnalysis **analysis |
| ); |
| } |