blob: 9c17173105ba9004be1255d75c11be9517f95d15 [file] [log] [blame]
/**
* This file has no copyright assigned and is placed in the Public Domain.
* This file is part of the mingw-w64 runtime package.
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
*/
#ifndef DWRITE_3_H_INCLUDED
#define DWRITE_3_H_INCLUDED
#include <dwrite_2.h>
#define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) \
(static_cast<DWRITE_FONT_AXIS_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))
enum DWRITE_RENDERING_MODE1 {
DWRITE_RENDERING_MODE1_DEFAULT = DWRITE_RENDERING_MODE_DEFAULT,
DWRITE_RENDERING_MODE1_ALIASED = DWRITE_RENDERING_MODE_ALIASED,
DWRITE_RENDERING_MODE1_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC,
DWRITE_RENDERING_MODE1_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL,
DWRITE_RENDERING_MODE1_NATURAL = DWRITE_RENDERING_MODE_NATURAL,
DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC,
DWRITE_RENDERING_MODE1_OUTLINE = DWRITE_RENDERING_MODE_OUTLINE,
DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED
};
enum DWRITE_FONT_AXIS_TAG : UINT32 {
DWRITE_FONT_AXIS_TAG_WEIGHT = DWRITE_MAKE_FONT_AXIS_TAG('w','g','h','t'),
DWRITE_FONT_AXIS_TAG_WIDTH = DWRITE_MAKE_FONT_AXIS_TAG('w','d','t','h'),
DWRITE_FONT_AXIS_TAG_SLANT = DWRITE_MAKE_FONT_AXIS_TAG('s','l','n','t'),
DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = DWRITE_MAKE_FONT_AXIS_TAG('o','p','s','z'),
DWRITE_FONT_AXIS_TAG_ITALIC = DWRITE_MAKE_FONT_AXIS_TAG('i','t','a','l')
};
enum DWRITE_FONT_AXIS_ATTRIBUTES {
DWRITE_FONT_AXIS_ATTRIBUTES_NONE = 0x0000,
DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE = 0x0001,
DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN = 0x0002
};
struct DWRITE_GLYPH_IMAGE_DATA {
void const *imageData;
UINT32 imageDataSize;
UINT32 uniqueDataId;
UINT32 pixelsPerEm;
D2D1_SIZE_U pixelSize;
D2D1_POINT_2L horizontalLeftOrigin;
D2D1_POINT_2L horizontalRightOrigin;
D2D1_POINT_2L verticalTopOrigin;
D2D1_POINT_2L verticalBottomOrigin;
};
struct DWRITE_FONT_AXIS_VALUE {
DWRITE_FONT_AXIS_TAG axisTag;
FLOAT value;
};
struct DWRITE_FONT_AXIS_RANGE {
DWRITE_FONT_AXIS_TAG axisTag;
FLOAT minValue;
FLOAT maxValue;
};
interface IDWriteFontResource;
interface IDWriteFontFaceReference1;
interface IDWriteFontFaceReference;
#undef INTERFACE
#define INTERFACE IDWriteFontFace3
DECLARE_INTERFACE_(IDWriteFontFace3,IDWriteFontFace2)
{
BEGIN_INTERFACE
#ifndef __cplusplus
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFontFace methods */
STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE;
STDMETHOD(GetFiles)(THIS_
UINT32 *numberOfFiles,
IDWriteFontFile **fontFiles) PURE;
STDMETHOD_(UINT32, GetIndex)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE;
STDMETHOD_(void, GetMetrics)(THIS_
DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
STDMETHOD_(UINT16, GetGlyphCount)(THIS) PURE;
STDMETHOD(GetDesignGlyphMetrics)(THIS_
UINT16 const *glyphIndices,
UINT32 glyphCount,
DWRITE_GLYPH_METRICS *glyphMetrics,
WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
STDMETHOD(GetGlyphIndices)(THIS_
UINT32 const *codePoints,
UINT32 codePointCount,
UINT16 *glyphIndices) PURE;
STDMETHOD(TryGetFontTable)(THIS_
UINT32 openTypeTableTag,
const void **tableData,
UINT32 *tableSize,
void **tableContext,
WINBOOL *exists) PURE;
STDMETHOD_(void, ReleaseFontTable)(THIS_
void *tableContext) PURE;
STDMETHOD(GetGlyphRunOutline)(THIS_
FLOAT emSize,
UINT16 const *glyphIndices,
FLOAT const *glyphAdvances,
DWRITE_GLYPH_OFFSET const *glyphOffsets,
UINT32 glyphCount,
WINBOOL isSideways,
WINBOOL isRightToLeft,
IDWriteGeometrySink *geometrySink) PURE;
STDMETHOD(GetRecommendedRenderingMode)(THIS_
FLOAT emSize,
FLOAT pixelsPerDip,
DWRITE_MEASURING_MODE measuringMode,
IDWriteRenderingParams *renderingParams,
DWRITE_RENDERING_MODE *renderingMode) PURE;
STDMETHOD(GetGdiCompatibleMetrics)(THIS_
FLOAT emSize,
FLOAT pixelsPerDip,
DWRITE_MATRIX const *transform,
DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
STDMETHOD(GetGdiCompatibleGlyphMetrics)(THIS_
FLOAT emSize,
FLOAT pixelsPerDip,
DWRITE_MATRIX const *transform,
WINBOOL useGdiNatural,
UINT16 const *glyphIndices,
UINT32 glyphCount,
DWRITE_GLYPH_METRICS *glyphMetrics,
WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
/* IDWriteFontFace1 methods */
STDMETHOD_(void, GetMetrics)(THIS_ DWRITE_FONT_METRICS1*) PURE;
STDMETHOD(GetGdiCompatibleMetrics)(THIS_ FLOAT,FLOAT,DWRITE_MATRIX const*,DWRITE_FONT_METRICS1*) PURE;
STDMETHOD_(void, GetCaretMetrics)(THIS_ DWRITE_CARET_METRICS*) PURE;
STDMETHOD(GetUnicodeRanges)(THIS_ UINT32, DWRITE_UNICODE_RANGE*,UINT32*) PURE;
STDMETHOD_(BOOL, IsMonospacedFont)(THIS) PURE;
STDMETHOD(GetDesignGlyphAdvances)(THIS_ UINT32,UINT16 const*,INT32*,BOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
STDMETHOD(GetGdiCompatibleGlyphAdvances)(THIS_ FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,BOOL,UINT32,
UINT16 const*,INT32*) PURE;
STDMETHOD(GetKerningPairAdjustments)(THIS_ UINT32,UINT16 const*,INT32*) PURE;
STDMETHOD_(BOOL, HasKerningPairs)(THIS);
STDMETHOD(GetRecommendedRenderingMode)(FLOAT,FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,
DWRITE_OUTLINE_THRESHOLD,DWRITE_MEASURING_MODE,DWRITE_RENDERING_MODE*) PURE;
STDMETHOD(GetVerticalGlyphVariants)(THIS_ UINT32,UINT16 const*,UINT16*);
STDMETHOD_(BOOL, HasVerticalGlyphVariants)(THIS);
/* IDWriteFontFace2 methods */
STDMETHOD_(BOOL, IsColorFont)(THIS) PURE;
STDMETHOD_(UINT32, GetColorPaletteCount)(THIS) PURE;
STDMETHOD_(UINT32, GetPaletteEntryCount)(THIS) PURE;
STDMETHOD(GetPaletteEntries)(THIS_
UINT32 colorPaletteIndex,
UINT32 firstEntryIndex,
UINT32 entryCount,
DWRITE_COLOR_F* paletteEntries
) PURE;
STDMETHOD(GetRecommendedRenderingMode)(THIS_
FLOAT fontEmSize,
FLOAT dpiX,
FLOAT dpiY,
DWRITE_MATRIX const* transform,
BOOL isSideways,
DWRITE_OUTLINE_THRESHOLD outlineThreshold,
DWRITE_MEASURING_MODE measuringMode,
IDWriteRenderingParams* renderingParams,
DWRITE_RENDERING_MODE* renderingMode,
DWRITE_GRID_FIT_MODE* gridFitMode
) PURE;
#endif
/* IDWriteFontFace3 methods */
STDMETHOD(GetFontFaceReference)(THIS_ IDWriteFontFaceReference **fontFaceReference) PURE;
STDMETHOD_(void, GetPanose)(THIS_ DWRITE_PANOSE *panose) PURE;
STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)(THIS) PURE;
STDMETHOD(GetFamilyNames)(THIS_ IDWriteLocalizedStrings **names) PURE;
STDMETHOD(GetFaceNames)(THIS_ IDWriteLocalizedStrings **names) PURE;
STDMETHOD(GetInformationalStrings)(THIS_ DWRITE_INFORMATIONAL_STRING_ID informationalStringID,
IDWriteLocalizedStrings **informationalStrings, BOOL *exists) PURE;
STDMETHOD_(BOOL, HasCharacter)(THIS_ UINT32 unicodeValue) PURE;
STDMETHOD(GetRecommendedRenderingMode)(THIS_ FLOAT fontEmSize, FLOAT dpiX, FLOAT dpiY,
DWRITE_MATRIX const *transform, BOOL isSideways, DWRITE_OUTLINE_THRESHOLD outlineThreshold,
DWRITE_MEASURING_MODE measuringMode, IDWriteRenderingParams *renderingParams,
DWRITE_RENDERING_MODE1 *renderingMode, DWRITE_GRID_FIT_MODE *gridFitMode) PURE;
#ifdef __cplusplus
using IDWriteFontFace2::GetRecommendedRenderingMode;
#endif
STDMETHOD_(BOOL, IsCharacterLocal)(THIS_ UINT32 unicodeValue) PURE;
STDMETHOD_(BOOL, IsGlyphLocal)(THIS_ UINT16 glyphId) PURE;
STDMETHOD(AreCharactersLocal)(THIS_ WCHAR const *characters, UINT32 characterCount,
BOOL enqueueIfNotLocal, BOOL *isLocal) PURE;
STDMETHOD(AreGlyphsLocal)(THIS_ UINT16 const *glyphIndices, UINT32 glyphCount,
BOOL enqueueIfNotLocal, BOOL *isLocal) PURE;
END_INTERFACE
};
__CRT_UUID_DECL(IDWriteFontFace3, 0xd37d7598,0x09be,0x4222,0xa2,0x36,0x20,0x81,0x34,0x1c,0xc1,0xf2)
#undef INTERFACE
#define INTERFACE IDWriteFontFace4
DECLARE_INTERFACE_(IDWriteFontFace4,IDWriteFontFace3)
{
BEGIN_INTERFACE
#ifndef __cplusplus
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFontFace methods */
STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE;
STDMETHOD(GetFiles)(THIS_
UINT32 *numberOfFiles,
IDWriteFontFile **fontFiles) PURE;
STDMETHOD_(UINT32, GetIndex)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE;
STDMETHOD_(void, GetMetrics)(THIS_
DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
STDMETHOD_(UINT16, GetGlyphCount)(THIS) PURE;
STDMETHOD(GetDesignGlyphMetrics)(THIS_
UINT16 const *glyphIndices,
UINT32 glyphCount,
DWRITE_GLYPH_METRICS *glyphMetrics,
WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
STDMETHOD(GetGlyphIndices)(THIS_
UINT32 const *codePoints,
UINT32 codePointCount,
UINT16 *glyphIndices) PURE;
STDMETHOD(TryGetFontTable)(THIS_
UINT32 openTypeTableTag,
const void **tableData,
UINT32 *tableSize,
void **tableContext,
WINBOOL *exists) PURE;
STDMETHOD_(void, ReleaseFontTable)(THIS_
void *tableContext) PURE;
STDMETHOD(GetGlyphRunOutline)(THIS_
FLOAT emSize,
UINT16 const *glyphIndices,
FLOAT const *glyphAdvances,
DWRITE_GLYPH_OFFSET const *glyphOffsets,
UINT32 glyphCount,
WINBOOL isSideways,
WINBOOL isRightToLeft,
IDWriteGeometrySink *geometrySink) PURE;
STDMETHOD(GetRecommendedRenderingMode)(THIS_
FLOAT emSize,
FLOAT pixelsPerDip,
DWRITE_MEASURING_MODE measuringMode,
IDWriteRenderingParams *renderingParams,
DWRITE_RENDERING_MODE *renderingMode) PURE;
STDMETHOD(GetGdiCompatibleMetrics)(THIS_
FLOAT emSize,
FLOAT pixelsPerDip,
DWRITE_MATRIX const *transform,
DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
STDMETHOD(GetGdiCompatibleGlyphMetrics)(THIS_
FLOAT emSize,
FLOAT pixelsPerDip,
DWRITE_MATRIX const *transform,
WINBOOL useGdiNatural,
UINT16 const *glyphIndices,
UINT32 glyphCount,
DWRITE_GLYPH_METRICS *glyphMetrics,
WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
/* IDWriteFontFace1 methods */
STDMETHOD_(void, GetMetrics)(THIS_ DWRITE_FONT_METRICS1*) PURE;
STDMETHOD(GetGdiCompatibleMetrics)(THIS_ FLOAT,FLOAT,DWRITE_MATRIX const*,DWRITE_FONT_METRICS1*) PURE;
STDMETHOD_(void, GetCaretMetrics)(THIS_ DWRITE_CARET_METRICS*) PURE;
STDMETHOD(GetUnicodeRanges)(THIS_ UINT32, DWRITE_UNICODE_RANGE*,UINT32*) PURE;
STDMETHOD_(BOOL, IsMonospacedFont)(THIS) PURE;
STDMETHOD(GetDesignGlyphAdvances)(THIS_ UINT32,UINT16 const*,INT32*,BOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
STDMETHOD(GetGdiCompatibleGlyphAdvances)(THIS_ FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,BOOL,UINT32,
UINT16 const*,INT32*) PURE;
STDMETHOD(GetKerningPairAdjustments)(THIS_ UINT32,UINT16 const*,INT32*) PURE;
STDMETHOD_(BOOL, HasKerningPairs)(THIS);
STDMETHOD(GetRecommendedRenderingMode)(FLOAT,FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,
DWRITE_OUTLINE_THRESHOLD,DWRITE_MEASURING_MODE,DWRITE_RENDERING_MODE*) PURE;
STDMETHOD(GetVerticalGlyphVariants)(THIS_ UINT32,UINT16 const*,UINT16*);
STDMETHOD_(BOOL, HasVerticalGlyphVariants)(THIS);
/* IDWriteFontFace2 methods */
STDMETHOD_(BOOL, IsColorFont)(THIS) PURE;
STDMETHOD_(UINT32, GetColorPaletteCount)(THIS) PURE;
STDMETHOD_(UINT32, GetPaletteEntryCount)(THIS) PURE;
STDMETHOD(GetPaletteEntries)(THIS_
UINT32 colorPaletteIndex,
UINT32 firstEntryIndex,
UINT32 entryCount,
DWRITE_COLOR_F* paletteEntries
) PURE;
STDMETHOD(GetRecommendedRenderingMode)(THIS_
FLOAT fontEmSize,
FLOAT dpiX,
FLOAT dpiY,
DWRITE_MATRIX const* transform,
BOOL isSideways,
DWRITE_OUTLINE_THRESHOLD outlineThreshold,
DWRITE_MEASURING_MODE measuringMode,
IDWriteRenderingParams* renderingParams,
DWRITE_RENDERING_MODE* renderingMode,
DWRITE_GRID_FIT_MODE* gridFitMode
) PURE;
/* IDWriteFontFace3 methods */
STDMETHOD(GetFontFaceReference)(THIS_ IDWriteFontFaceReference **fontFaceReference) PURE;
STDMETHOD_(void, GetPanose)(THIS_ DWRITE_PANOSE *panose) PURE;
STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)(THIS) PURE;
STDMETHOD(GetFamilyNames)(THIS_ IDWriteLocalizedStrings **names) PURE;
STDMETHOD(GetFaceNames)(THIS_ IDWriteLocalizedStrings **names) PURE;
STDMETHOD(GetInformationalStrings)(THIS_ DWRITE_INFORMATIONAL_STRING_ID informationalStringID,
IDWriteLocalizedStrings **informationalStrings, BOOL *exists) PURE;
STDMETHOD_(BOOL, HasCharacter)(THIS_ UINT32 unicodeValue) PURE;
STDMETHOD(GetRecommendedRenderingMode)(THIS_ FLOAT fontEmSize, FLOAT dpiX, FLOAT dpiY,
DWRITE_MATRIX const *transform, BOOL isSideways, DWRITE_OUTLINE_THRESHOLD outlineThreshold,
DWRITE_MEASURING_MODE measuringMode, IDWriteRenderingParams *renderingParams,
DWRITE_RENDERING_MODE1 *renderingMode, DWRITE_GRID_FIT_MODE *gridFitMode) PURE;
STDMETHOD_(BOOL, IsCharacterLocal)(THIS_ UINT32 unicodeValue) PURE;
STDMETHOD_(BOOL, IsGlyphLocal)(THIS_ UINT16 glyphId) PURE;
STDMETHOD(AreCharactersLocal)(THIS_ WCHAR const *characters, UINT32 characterCount,
BOOL enqueueIfNotLocal, BOOL *isLocal) PURE;
STDMETHOD(AreGlyphsLocal)(THIS_ UINT16 const *glyphIndices, UINT32 glyphCount,
BOOL enqueueIfNotLocal, BOOL *isLocal) PURE;
#endif
/* IDWriteFontFace4 methods */
STDMETHOD_(DWRITE_GLYPH_IMAGE_FORMATS, GetGlyphImageFormats)(THIS) PURE;
STDMETHOD(GetGlyphImageFormats)(THIS_ UINT16 glyphId, UINT32 pixelsPerEmFirst,
UINT32 pixelsPerEmLast, DWRITE_GLYPH_IMAGE_FORMATS *glyphImageFormats) PURE;
STDMETHOD(GetGlyphImageData)(THIS_ UINT16 glyphId, UINT32 pixelsPerEm,
DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat, DWRITE_GLYPH_IMAGE_DATA *glyphData,
void **glyphDataContext) PURE;
STDMETHOD_(void, ReleaseGlyphImageData)(THIS_ void *glyphDataContext) PURE;
END_INTERFACE
};
__CRT_UUID_DECL(IDWriteFontFace4, 0x27f2a904,0x4eb8,0x441d,0x96,0x78,0x05,0x63,0xf5,0x3e,0x3e,0x2f)
#undef INTERFACE
#define INTERFACE IDWriteFontFace5
DECLARE_INTERFACE_(IDWriteFontFace5,IDWriteFontFace4)
{
BEGIN_INTERFACE
#ifndef __cplusplus
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
/* IDWriteFontFace methods */
STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE;
STDMETHOD(GetFiles)(THIS_
UINT32 *numberOfFiles,
IDWriteFontFile **fontFiles) PURE;
STDMETHOD_(UINT32, GetIndex)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE;
STDMETHOD_(void, GetMetrics)(THIS_
DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
STDMETHOD_(UINT16, GetGlyphCount)(THIS) PURE;
STDMETHOD(GetDesignGlyphMetrics)(THIS_
UINT16 const *glyphIndices,
UINT32 glyphCount,
DWRITE_GLYPH_METRICS *glyphMetrics,
WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
STDMETHOD(GetGlyphIndices)(THIS_
UINT32 const *codePoints,
UINT32 codePointCount,
UINT16 *glyphIndices) PURE;
STDMETHOD(TryGetFontTable)(THIS_
UINT32 openTypeTableTag,
const void **tableData,
UINT32 *tableSize,
void **tableContext,
WINBOOL *exists) PURE;
STDMETHOD_(void, ReleaseFontTable)(THIS_
void *tableContext) PURE;
STDMETHOD(GetGlyphRunOutline)(THIS_
FLOAT emSize,
UINT16 const *glyphIndices,
FLOAT const *glyphAdvances,
DWRITE_GLYPH_OFFSET const *glyphOffsets,
UINT32 glyphCount,
WINBOOL isSideways,
WINBOOL isRightToLeft,
IDWriteGeometrySink *geometrySink) PURE;
STDMETHOD(GetRecommendedRenderingMode)(THIS_
FLOAT emSize,
FLOAT pixelsPerDip,
DWRITE_MEASURING_MODE measuringMode,
IDWriteRenderingParams *renderingParams,
DWRITE_RENDERING_MODE *renderingMode) PURE;
STDMETHOD(GetGdiCompatibleMetrics)(THIS_
FLOAT emSize,
FLOAT pixelsPerDip,
DWRITE_MATRIX const *transform,
DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
STDMETHOD(GetGdiCompatibleGlyphMetrics)(THIS_
FLOAT emSize,
FLOAT pixelsPerDip,
DWRITE_MATRIX const *transform,
WINBOOL useGdiNatural,
UINT16 const *glyphIndices,
UINT32 glyphCount,
DWRITE_GLYPH_METRICS *glyphMetrics,
WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
/* IDWriteFontFace1 methods */
STDMETHOD_(void, GetMetrics)(THIS_ DWRITE_FONT_METRICS1*) PURE;
STDMETHOD(GetGdiCompatibleMetrics)(THIS_ FLOAT,FLOAT,DWRITE_MATRIX const*,DWRITE_FONT_METRICS1*) PURE;
STDMETHOD_(void, GetCaretMetrics)(THIS_ DWRITE_CARET_METRICS*) PURE;
STDMETHOD(GetUnicodeRanges)(THIS_ UINT32, DWRITE_UNICODE_RANGE*,UINT32*) PURE;
STDMETHOD_(BOOL, IsMonospacedFont)(THIS) PURE;
STDMETHOD(GetDesignGlyphAdvances)(THIS_ UINT32,UINT16 const*,INT32*,BOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
STDMETHOD(GetGdiCompatibleGlyphAdvances)(THIS_ FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,BOOL,UINT32,
UINT16 const*,INT32*) PURE;
STDMETHOD(GetKerningPairAdjustments)(THIS_ UINT32,UINT16 const*,INT32*) PURE;
STDMETHOD_(BOOL, HasKerningPairs)(THIS);
STDMETHOD(GetRecommendedRenderingMode)(FLOAT,FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,
DWRITE_OUTLINE_THRESHOLD,DWRITE_MEASURING_MODE,DWRITE_RENDERING_MODE*) PURE;
STDMETHOD(GetVerticalGlyphVariants)(THIS_ UINT32,UINT16 const*,UINT16*);
STDMETHOD_(BOOL, HasVerticalGlyphVariants)(THIS);
/* IDWriteFontFace2 methods */
STDMETHOD_(BOOL, IsColorFont)(THIS) PURE;
STDMETHOD_(UINT32, GetColorPaletteCount)(THIS) PURE;
STDMETHOD_(UINT32, GetPaletteEntryCount)(THIS) PURE;
STDMETHOD(GetPaletteEntries)(THIS_
UINT32 colorPaletteIndex,
UINT32 firstEntryIndex,
UINT32 entryCount,
DWRITE_COLOR_F* paletteEntries
) PURE;
STDMETHOD(GetRecommendedRenderingMode)(THIS_
FLOAT fontEmSize,
FLOAT dpiX,
FLOAT dpiY,
DWRITE_MATRIX const* transform,
BOOL isSideways,
DWRITE_OUTLINE_THRESHOLD outlineThreshold,
DWRITE_MEASURING_MODE measuringMode,
IDWriteRenderingParams* renderingParams,
DWRITE_RENDERING_MODE* renderingMode,
DWRITE_GRID_FIT_MODE* gridFitMode
) PURE;
/* IDWriteFontFace3 methods */
STDMETHOD(GetFontFaceReference)(THIS_ IDWriteFontFaceReference **fontFaceReference) PURE;
STDMETHOD_(void, GetPanose)(THIS_ DWRITE_PANOSE *panose) PURE;
STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)(THIS) PURE;
STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)(THIS) PURE;
STDMETHOD(GetFamilyNames)(THIS_ IDWriteLocalizedStrings **names) PURE;
STDMETHOD(GetFaceNames)(THIS_ IDWriteLocalizedStrings **names) PURE;
STDMETHOD(GetInformationalStrings)(THIS_ DWRITE_INFORMATIONAL_STRING_ID informationalStringID,
IDWriteLocalizedStrings **informationalStrings, BOOL *exists) PURE;
STDMETHOD_(BOOL, HasCharacter)(THIS_ UINT32 unicodeValue) PURE;
STDMETHOD(GetRecommendedRenderingMode)(THIS_ FLOAT fontEmSize, FLOAT dpiX, FLOAT dpiY,
DWRITE_MATRIX const *transform, BOOL isSideways, DWRITE_OUTLINE_THRESHOLD outlineThreshold,
DWRITE_MEASURING_MODE measuringMode, IDWriteRenderingParams *renderingParams,
DWRITE_RENDERING_MODE1 *renderingMode, DWRITE_GRID_FIT_MODE *gridFitMode) PURE;
STDMETHOD_(BOOL, IsCharacterLocal)(THIS_ UINT32 unicodeValue) PURE;
STDMETHOD_(BOOL, IsGlyphLocal)(THIS_ UINT16 glyphId) PURE;
STDMETHOD(AreCharactersLocal)(THIS_ WCHAR const *characters, UINT32 characterCount,
BOOL enqueueIfNotLocal, BOOL *isLocal) PURE;
STDMETHOD(AreGlyphsLocal)(THIS_ UINT16 const *glyphIndices, UINT32 glyphCount,
BOOL enqueueIfNotLocal, BOOL *isLocal) PURE;
/* IDWriteFontFace4 methods */
STDMETHOD_(DWRITE_GLYPH_IMAGE_FORMATS, GetGlyphImageFormats)(THIS) PURE;
STDMETHOD(GetGlyphImageFormats)(THIS_ UINT16 glyphId, UINT32 pixelsPerEmFirst,
UINT32 pixelsPerEmLast, DWRITE_GLYPH_IMAGE_FORMATS *glyphImageFormats) PURE;
STDMETHOD(GetGlyphImageData)(THIS_ UINT16 glyphId, UINT32 pixelsPerEm,
DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat, DWRITE_GLYPH_IMAGE_DATA *glyphData,
void **glyphDataContext) PURE;
STDMETHOD_(void, ReleaseGlyphImageData)(THIS_ void *glyphDataContext) PURE;
#endif
/* IDWriteFontFace5 methods */
STDMETHOD_(UINT32, GetFontAxisValueCount)(THIS) PURE;
STDMETHOD(GetFontAxisValues)(THIS_ DWRITE_FONT_AXIS_VALUE *fontAxisValues,
UINT32 fontAxisValueCount) PURE;
STDMETHOD_(BOOL, HasVariations)(THIS) PURE;
STDMETHOD(GetFontResource)(THIS_ IDWriteFontResource **fontResource) PURE;
STDMETHOD_(BOOL, Equals)(THIS_ IDWriteFontFace *fontFace) PURE;
END_INTERFACE
};
__CRT_UUID_DECL(IDWriteFontFace5, 0x98eff3a5,0xb667,0x479a,0xb1,0x45,0xe2,0xfa,0x5b,0x9f,0xdc,0x29)
#undef INTERFACE
#define INTERFACE IDWriteFontResource
DECLARE_INTERFACE_(IDWriteFontResource,IUnknown)
{
BEGIN_INTERFACE
#ifndef __cplusplus
/* IUnknown methods */
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
#endif
STDMETHOD(GetFontFile)(THIS_ IDWriteFontFile **fontFile) PURE;
STDMETHOD_(UINT32, GetFontFaceIndex)(THIS) PURE;
STDMETHOD_(UINT32, GetFontAxisCount)(THIS) PURE;
STDMETHOD(GetDefaultFontAxisValues)(THIS_ DWRITE_FONT_AXIS_VALUE *fontAxisValues,
UINT32 fontAxisValueCount) PURE;
STDMETHOD(GetFontAxisRanges)(THIS_ DWRITE_FONT_AXIS_RANGE *fontAxisRanges,
UINT32 fontAxisRangeCount) PURE;
STDMETHOD_(DWRITE_FONT_AXIS_ATTRIBUTES, GetFontAxisAttributes)(THIS_ UINT32 axisIndex) PURE;
STDMETHOD(GetAxisNames)(THIS_ UINT32 axisIndex, IDWriteLocalizedStrings **names) PURE;
STDMETHOD_(UINT32, GetAxisValueNameCount)(THIS_ UINT32 axisIndex) PURE;
STDMETHOD(GetAxisValueNames)(THIS_ UINT32 axisIndex, UINT32 axisValueIndex,
DWRITE_FONT_AXIS_RANGE* fontAxisRange, IDWriteLocalizedStrings **names) PURE;
STDMETHOD_(BOOL, HasVariations)(THIS) PURE;
STDMETHOD(CreateFontFace)(THIS_ DWRITE_FONT_SIMULATIONS fontSimulations,
DWRITE_FONT_AXIS_VALUE const *fontAxisValues, UINT32 fontAxisValueCount,
IDWriteFontFace5 **fontFace) PURE;
STDMETHOD(CreateFontFaceReference)(THIS_ DWRITE_FONT_SIMULATIONS fontSimulations,
DWRITE_FONT_AXIS_VALUE const *fontAxisValues, UINT32 fontAxisValueCount,
IDWriteFontFaceReference1 **fontFaceReference) PURE;
END_INTERFACE
};
__CRT_UUID_DECL(IDWriteFontResource, 0x1f803a76,0x6871,0x48e8,0x98,0x7f,0xb9,0x75,0x55,0x1c,0x50,0xf2)
#endif /* DWRITE_3_H_INCLUDED */