123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- /*
- * 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(void *context,
- FLOAT originX,
- FLOAT originY,
- DWRITE_GLYPH_ORIENTATION_ANGLE angle,
- DWRITE_MEASURING_MODE mode,
- DWRITE_GLYPH_RUN const *run,
- DWRITE_GLYPH_RUN_DESCRIPTION const *rundescr,
- IUnknown *effect);
- HRESULT DrawUnderline(void *context,
- FLOAT originX,
- FLOAT originY,
- DWRITE_GLYPH_ORIENTATION_ANGLE angle,
- DWRITE_UNDERLINE const *underline,
- IUnknown *effect);
- HRESULT DrawStrikethrough(void *context,
- FLOAT originX,
- FLOAT originY,
- DWRITE_GLYPH_ORIENTATION_ANGLE angle,
- DWRITE_STRIKETHROUGH const *strikethrough,
- IUnknown *effect
- );
- HRESULT DrawInlineObject(void *context,
- FLOAT originX,
- FLOAT originY,
- DWRITE_GLYPH_ORIENTATION_ANGLE angle,
- IDWriteInlineObject *inlineObject,
- BOOL is_sideways,
- BOOL is_rtl,
- IUnknown *effect
- );
- }
- [
- local,
- object,
- uuid(efa008f9-f7a1-48bf-b05c-f224713cc0ff)
- ]
- interface IDWriteFontFallback : IUnknown
- {
- HRESULT MapCharacters(IDWriteTextAnalysisSource *source,
- UINT32 position,
- UINT32 length,
- IDWriteFontCollection *basecollection,
- const WCHAR *baseFamilyName,
- DWRITE_FONT_WEIGHT baseWeight,
- DWRITE_FONT_STYLE baseStyle,
- DWRITE_FONT_STRETCH baseStretch,
- UINT32 *mappedLength,
- IDWriteFont **mappedFont,
- FLOAT *scale
- );
- }
- [
- local,
- object,
- uuid(5f174b49-0d8b-4cfb-8bca-f1cce9d06c67)
- ]
- interface IDWriteTextFormat1 : IDWriteTextFormat
- {
- HRESULT SetVerticalGlyphOrientation(DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
- DWRITE_VERTICAL_GLYPH_ORIENTATION GetVerticalGlyphOrientation();
- HRESULT SetLastLineWrapping(BOOL lastline_wrapping_enabled);
- BOOL GetLastLineWrapping();
- HRESULT SetOpticalAlignment(DWRITE_OPTICAL_ALIGNMENT alignment);
- DWRITE_OPTICAL_ALIGNMENT GetOpticalAlignment();
- HRESULT SetFontFallback(IDWriteFontFallback *fallback);
- HRESULT GetFontFallback(IDWriteFontFallback **fallback);
- }
- [
- local,
- object,
- uuid(1093c18f-8d5e-43f0-b064-0917311b525e)
- ]
- interface IDWriteTextLayout2 : IDWriteTextLayout1
- {
- HRESULT GetMetrics(DWRITE_TEXT_METRICS1 *metrics);
- HRESULT SetVerticalGlyphOrientation(DWRITE_VERTICAL_GLYPH_ORIENTATION orientation);
- DWRITE_VERTICAL_GLYPH_ORIENTATION GetVerticalGlyphOrientation();
- HRESULT SetLastLineWrapping(BOOL lastline_wrapping_enabled);
- BOOL GetLastLineWrapping();
- HRESULT SetOpticalAlignment(DWRITE_OPTICAL_ALIGNMENT alignment);
- DWRITE_OPTICAL_ALIGNMENT GetOpticalAlignment();
- HRESULT SetFontFallback(IDWriteFontFallback *fallback);
- HRESULT GetFontFallback(IDWriteFontFallback **fallback);
- }
- [
- local,
- object,
- uuid(553a9ff3-5693-4df7-b52b-74806f7f2eb9)
- ]
- interface IDWriteTextAnalyzer2 : IDWriteTextAnalyzer1
- {
- HRESULT GetGlyphOrientationTransform(DWRITE_GLYPH_ORIENTATION_ANGLE angle,
- BOOL is_sideways,
- FLOAT originX,
- FLOAT originY,
- DWRITE_MATRIX *transform
- );
- HRESULT GetTypographicFeatures(IDWriteFontFace *fontface,
- DWRITE_SCRIPT_ANALYSIS analysis,
- const WCHAR *localeName,
- UINT32 max_tagcount,
- UINT32 *actual_tagcount,
- DWRITE_FONT_FEATURE_TAG *tags
- );
- HRESULT CheckTypographicFeature(IDWriteFontFace *fontface,
- DWRITE_SCRIPT_ANALYSIS analysis,
- const WCHAR *localeName,
- DWRITE_FONT_FEATURE_TAG feature,
- UINT32 glyph_count,
- const UINT16 *indices,
- UINT8 *feature_applies
- );
- }
- [
- local,
- object,
- uuid(fd882d06-8aba-4fb8-b849-8be8b73e14de)
- ]
- interface IDWriteFontFallbackBuilder : IUnknown
- {
- HRESULT AddMapping(const DWRITE_UNICODE_RANGE *ranges,
- UINT32 rangesCount,
- WCHAR const **targetFamilyNames,
- UINT32 targetFamilyNamesCount,
- [defaultvalue(NULL)] IDWriteFontCollection *collection,
- [defaultvalue(NULL)] WCHAR const *localeName,
- [defaultvalue(NULL)] WCHAR const *baseFamilyName,
- [defaultvalue(1)] FLOAT scale
- );
- HRESULT AddMappings(IDWriteFontFallback *fallback);
- HRESULT CreateFontFallback(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(UINT32 palette_index,
- UINT32 first_entry_index,
- UINT32 entry_count,
- DWRITE_COLOR_F *entries
- );
- HRESULT GetRecommendedRenderingMode(FLOAT fontEmSize,
- FLOAT dpiX,
- FLOAT dpiY,
- DWRITE_MATRIX const *transform,
- BOOL is_sideways,
- DWRITE_OUTLINE_THRESHOLD threshold,
- DWRITE_MEASURING_MODE measuringmode,
- IDWriteRenderingParams *params,
- DWRITE_RENDERING_MODE *renderingmode,
- DWRITE_GRID_FIT_MODE *gridfitmode
- );
- }
- [
- local,
- object,
- uuid(d31fbe17-f157-41a2-8d24-cb779e0560e8)
- ]
- interface IDWriteColorGlyphRunEnumerator : IUnknown
- {
- HRESULT MoveNext(BOOL *hasRun);
- HRESULT GetCurrentRun(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(IDWriteFontFallback **fallback);
- HRESULT CreateFontFallbackBuilder(IDWriteFontFallbackBuilder **fallbackbuilder);
- HRESULT TranslateColorGlyphRun(FLOAT originX,
- FLOAT originY,
- const DWRITE_GLYPH_RUN *run,
- const DWRITE_GLYPH_RUN_DESCRIPTION *rundescr,
- DWRITE_MEASURING_MODE mode,
- const DWRITE_MATRIX *transform,
- UINT32 palette_index,
- IDWriteColorGlyphRunEnumerator **colorlayers
- );
- HRESULT CreateCustomRenderingParams(FLOAT gamma,
- FLOAT contrast,
- FLOAT grayscalecontrast,
- FLOAT cleartypeLevel,
- DWRITE_PIXEL_GEOMETRY pixelGeometry,
- DWRITE_RENDERING_MODE renderingMode,
- DWRITE_GRID_FIT_MODE gridFitMode,
- IDWriteRenderingParams2 **params
- );
- HRESULT CreateGlyphRunAnalysis(const DWRITE_GLYPH_RUN *run,
- const DWRITE_MATRIX *transform,
- DWRITE_RENDERING_MODE renderingMode,
- DWRITE_MEASURING_MODE measuringMode,
- DWRITE_GRID_FIT_MODE gridFitMode,
- DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
- FLOAT originX,
- FLOAT originY,
- IDWriteGlyphRunAnalysis **analysis
- );
- }
|