blob: 527c80f428b2e0edda8beb43f83c1a85a4fafeaf [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_1_H_INCLUDED
#define DWRITE_1_H_INCLUDED
#include <dwrite.h>
#ifndef __IDWriteFont1_FWD_DEFINED__
#define __IDWriteFont1_FWD_DEFINED__
typedef struct IDWriteFont1 IDWriteFont1;
#endif
#ifndef __IDWriteFontFace1_FWD_DEFINED__
#define __IDWriteFontFace1_FWD_DEFINED__
typedef struct IDWriteFontFace1 IDWriteFontFace1;
#endif
#ifndef __IDWriteRenderingParams1_FWD_DEFINED__
#define __IDWriteRenderingParams1_FWD_DEFINED__
typedef struct IDWriteRenderingParams1 IDWriteRenderingParams1;
#endif
#ifndef __IDWriteTextAnalysisSource1_FWD_DEFINED__
#define __IDWriteTextAnalysisSource1_FWD_DEFINED__
typedef struct IDWriteTextAnalysisSource1 IDWriteTextAnalysisSource1;
#endif
#ifndef __IDWriteTextAnalysisSink1_FWD_DEFINED__
#define __IDWriteTextAnalysisSink1_FWD_DEFINED__
typedef struct IDWriteTextAnalysisSink1 IDWriteTextAnalysisSink1;
#endif
#ifndef __IDWriteTextAnalyzer1_FWD_DEFINED__
#define __IDWriteTextAnalyzer1_FWD_DEFINED__
typedef struct IDWriteTextAnalyzer1 IDWriteTextAnalyzer1;
#endif
#ifndef __IDWriteTextLayout1_FWD_DEFINED__
#define __IDWriteTextLayout1_FWD_DEFINED__
typedef struct IDWriteTextLayout1 IDWriteTextLayout1;
#endif
#ifndef __IDWriteFactory1_FWD_DEFINED__
#define __IDWriteFactory1_FWD_DEFINED__
typedef struct IDWriteFactory1 IDWriteFactory1;
#endif
#ifndef __IDWriteBitmapRenderTarget1_FWD_DEFINED__
#define __IDWriteBitmapRenderTarget1_FWD_DEFINED__
typedef struct IDWriteBitmapRenderTarget1 IDWriteBitmapRenderTarget1;
#endif
enum DWRITE_OUTLINE_THRESHOLD {
DWRITE_OUTLINE_THRESHOLD_ANTIALIASED,
DWRITE_OUTLINE_THRESHOLD_ALIASED
};
enum DWRITE_BASELINE
{
DWRITE_BASELINE_DEFAULT,
DWRITE_BASELINE_ROMAN,
DWRITE_BASELINE_CENTRAL,
DWRITE_BASELINE_MATH,
DWRITE_BASELINE_HANGING,
DWRITE_BASELINE_IDEOGRAPHIC_BOTTOM,
DWRITE_BASELINE_IDEOGRAPHIC_TOP,
DWRITE_BASELINE_MINIMUM,
DWRITE_BASELINE_MAXIMUM,
};
enum DWRITE_GLYPH_ORIENTATION_ANGLE
{
DWRITE_GLYPH_ORIENTATION_ANGLE_0_DEGREES,
DWRITE_GLYPH_ORIENTATION_ANGLE_90_DEGREES,
DWRITE_GLYPH_ORIENTATION_ANGLE_180_DEGREES,
DWRITE_GLYPH_ORIENTATION_ANGLE_270_DEGREES,
};
enum DWRITE_TEXT_ANTIALIAS_MODE
{
DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE,
DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE
};
enum DWRITE_VERTICAL_GLYPH_ORIENTATION
{
DWRITE_VERTICAL_GLYPH_ORIENTATION_DEFAULT,
DWRITE_VERTICAL_GLYPH_ORIENTATION_STACKED
};
struct DWRITE_CARET_METRICS {
INT16 slopeRise;
INT16 slopeRun;
INT16 offset;
};
struct DWRITE_UNICODE_RANGE {
UINT32 first;
UINT32 last;
};
struct DWRITE_FONT_METRICS1
#ifdef __cplusplus
: public DWRITE_FONT_METRICS
#endif
{
#ifndef __cplusplus
UINT16 designUnitsPerEm;
UINT16 ascent;
UINT16 descent;
INT16 lineGap;
UINT16 capHeight;
UINT16 xHeight;
INT16 underlinePosition;
UINT16 underlineThickness;
INT16 strikethroughPosition;
UINT16 strikethroughThickness;
#endif
INT16 glyphBoxLeft;
INT16 glyphBoxTop;
INT16 glyphBoxRight;
INT16 glyphBoxBottom;
INT16 subscriptPositionX;
INT16 subscriptPositionY;
INT16 subscriptSizeX;
INT16 subscriptSizeY;
INT16 superscriptPositionX;
INT16 superscriptPositionY;
INT16 superscriptSizeX;
INT16 superscriptSizeY;
WINBOOL hasTypographicMetrics;
};
struct DWRITE_SCRIPT_PROPERTIES
{
UINT32 isoScriptCode;
UINT32 isoScriptNumber;
UINT32 clusterLookahead;
UINT32 justificationCharacter;
UINT32 restrictCaretToClusters : 1;
UINT32 usesWordDividers : 1;
UINT32 isDiscreteWriting : 1;
UINT32 isBlockWriting : 1;
UINT32 isDistributedWithinCluster : 1;
UINT32 isConnectedWriting : 1;
UINT32 isCursiveWriting : 1;
UINT32 reserved : 25;
};
struct DWRITE_JUSTIFICATION_OPPORTUNITY
{
FLOAT expansionMinimum;
FLOAT expansionMaximum;
FLOAT compressionMaximum;
UINT32 expansionPriority : 8;
UINT32 compressionPriority : 8;
UINT32 allowResidualExpansion : 1;
UINT32 allowResidualCompression : 1;
UINT32 applyToLeadingEdge : 1;
UINT32 applyToTrailingEdge : 1;
UINT32 reserved : 12;
};
union DWRITE_PANOSE {
UINT8 values[10];
UINT8 familyKind;
struct {
UINT8 familyKind;
UINT8 serifStyle;
UINT8 weight;
UINT8 proportion;
UINT8 contrast;
UINT8 strokeVariation;
UINT8 armStyle;
UINT8 letterform;
UINT8 midline;
UINT8 xHeight;
} text;
struct {
UINT8 familyKind;
UINT8 toolKind;
UINT8 weight;
UINT8 spacing;
UINT8 aspectRatio;
UINT8 contrast;
UINT8 scriptTopology;
UINT8 scriptForm;
UINT8 finials;
UINT8 xAscent;
} script;
struct {
UINT8 familyKind;
UINT8 decorativeClass;
UINT8 weight;
UINT8 aspect;
UINT8 contrast;
UINT8 serifVariant;
UINT8 fill;
UINT8 lining;
UINT8 decorativeTopology;
UINT8 characterRange;
} decorative;
struct {
UINT8 familyKind;
UINT8 symbolKind;
UINT8 weight;
UINT8 spacing;
UINT8 aspectRatioAndContrast;
UINT8 aspectRatio94;
UINT8 aspectRatio119;
UINT8 aspectRatio157;
UINT8 aspectRatio163;
UINT8 aspectRatio211;
} symbol;
};
#ifndef D2D_USE_C_DEFINITIONS
#undef INTERFACE
#define INTERFACE IDWriteFont1
DECLARE_INTERFACE_(IDWriteFont1,IDWriteFont)
{
BEGIN_INTERFACE
STDMETHOD_(void, GetMetrics)(DWRITE_FONT_METRICS1 *fontMetrics) PURE;
STDMETHOD_(void, GetPanose)(DWRITE_PANOSE *panose) PURE;
STDMETHOD(GetUnicodeRanges)(UINT32 maxCount,
DWRITE_UNICODE_RANGE *ranges,
UINT32 *actualCount) PURE;
END_INTERFACE
};
#else /* D2D_USE_C_DEFINITIONS */
typedef struct IDWriteFont1Vtbl
{
IDWriteFontVtbl Base;
STDMETHOD_(void, GetMetrics)(IDWriteFont1 *This,
struct DWRITE_FONT_METRICS1 *fontMetrics) PURE;
STDMETHOD_(void, GetPanose)(IDWriteFont1 *This,
union DWRITE_PANOSE *panose) PURE;
STDMETHOD(GetUnicodeRanges)(IDWriteFont1 *This,
UINT32 maxCount,
struct DWRITE_UNICODE_RANGE *ranges,
UINT32 *actualCount) PURE;
}
IDWriteFont1Vtbl;
interface IDWriteFont1
{
const IDWriteFont1Vtbl *lpVtbl;
};
#endif /* D2D_USE_C_DEFINITIONS */
__CRT_UUID_DECL(IDWriteFont1, 0xacd16696,0x8c14,0x4f5d,0x87,0x7e,0xfe,0x3f,0xc1,0xd3,0x27,0x38);
#ifndef D2D_USE_C_DEFINITIONS
#undef INTERFACE
#define INTERFACE IDWriteFontFace1
DECLARE_INTERFACE_(IDWriteFontFace1, IDWriteFontFace)
{
BEGIN_INTERFACE
STDMETHOD_(void, GetMetrics)(DWRITE_FONT_METRICS1*) PURE;
STDMETHOD(GetGdiCompatibleMetrics)(FLOAT,FLOAT,DWRITE_MATRIX const*,DWRITE_FONT_METRICS1*) PURE;
STDMETHOD_(void, GetCaretMetrics)(DWRITE_CARET_METRICS*) PURE;
STDMETHOD(GetUnicodeRanges)(UINT32, DWRITE_UNICODE_RANGE*,UINT32*) PURE;
STDMETHOD_(BOOL, IsMonospacedFont)(void) PURE;
STDMETHOD(GetDesignGlyphAdvances)(UINT32,UINT16 const*,INT32*,BOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
STDMETHOD(GetGdiCompatibleGlyphAdvances)(FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,BOOL,UINT32,
UINT16 const*,INT32*) PURE;
STDMETHOD(GetKerningPairAdjustments)(UINT32,UINT16 const*,INT32*) PURE;
STDMETHOD_(BOOL, HasKerningPairs)(void);
STDMETHOD(GetRecommendedRenderingMode)(FLOAT,FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,
DWRITE_OUTLINE_THRESHOLD,DWRITE_MEASURING_MODE,DWRITE_RENDERING_MODE*) PURE;
STDMETHOD(GetVerticalGlyphVariants)(UINT32,UINT16 const*,UINT16*);
STDMETHOD_(BOOL, HasVerticalGlyphVariants)(void);
END_INTERFACE
};
#else /* D2D_USE_C_DEFINITIONS */
typedef struct IDWriteFontFace1Vtbl
{
IDWriteFontFaceVtbl Base;
STDMETHOD_(void, GetMetrics)(IDWriteFontFace1 *This, struct DWRITE_FONT_METRICS1*) PURE;
STDMETHOD(GetGdiCompatibleMetrics)(IDWriteFontFace1 *This, FLOAT,FLOAT,DWRITE_MATRIX const*,struct DWRITE_FONT_METRICS1*) PURE;
STDMETHOD_(void, GetCaretMetrics)(IDWriteFontFace1 *This, struct DWRITE_CARET_METRICS*) PURE;
STDMETHOD(GetUnicodeRanges)(IDWriteFontFace1 *This, UINT32, struct DWRITE_UNICODE_RANGE*,UINT32*) PURE;
STDMETHOD_(BOOL, IsMonospacedFont)(IDWriteFontFace1 *This) PURE;
STDMETHOD(GetDesignGlyphAdvances)(IDWriteFontFace1 *This, UINT32,UINT16 const*,INT32*,BOOL isSideways) PURE;
STDMETHOD(GetGdiCompatibleGlyphAdvances)(IDWriteFontFace1 *This, FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,BOOL,UINT32,
UINT16 const*,INT32*) PURE;
STDMETHOD(GetKerningPairAdjustments)(IDWriteFontFace1 *This, UINT32,UINT16 const*,INT32*) PURE;
STDMETHOD_(BOOL, HasKerningPairs)(IDWriteFontFace1 *This);
STDMETHOD(GetRecommendedRenderingMode)(IDWriteFontFace1 *This, FLOAT,FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,
enum DWRITE_OUTLINE_THRESHOLD,DWRITE_MEASURING_MODE,DWRITE_RENDERING_MODE*) PURE;
STDMETHOD(GetVerticalGlyphVariants)(IDWriteFontFace1 *This, UINT32,UINT16 const*,UINT16*);
STDMETHOD_(BOOL, HasVerticalGlyphVariants)(IDWriteFontFace1 *This);
}
IDWriteFontFace1Vtbl;
interface IDWriteFontFace1
{
const IDWriteFontFace1Vtbl *lpVtbl;
};
#endif /* D2D_USE_C_DEFINITIONS */
__CRT_UUID_DECL(IDWriteFontFace1, 0xa71efdb4,0x9fdb,0x4838,0xad,0x90,0xcf,0xc3,0xbe,0x8c,0x3d,0xaf);
#ifndef D2D_USE_C_DEFINITIONS
#undef INTERFACE
#define INTERFACE IDWriteRenderingParams1
DECLARE_INTERFACE_(IDWriteRenderingParams1,IDWriteRenderingParams)
{
BEGIN_INTERFACE
STDMETHOD_(FLOAT, GetGrayscaleEnhancedContrast)(void) PURE;
END_INTERFACE
};
#else /* D2D_USE_C_DEFINITIONS */
typedef struct IDWriteRenderingParams1Vtbl
{
IDWriteRenderingParamsVtbl Base;
STDMETHOD_(FLOAT, GetGrayscaleEnhancedContrast)(IDWriteRenderingParams1 *This) PURE;
}
IDWriteRenderingParams1Vtbl;
interface IDWriteRenderingParams1
{
const IDWriteRenderingParams1Vtbl *lpVtbl;
};
#endif /* D2D_USE_C_DEFINITIONS */
__CRT_UUID_DECL(IDWriteRenderingParams1, 0x94413cf4,0xa6fc,0x4248,0x8b,0x50,0x66,0x74,0x34,0x8f,0xca,0xd3)
#ifndef D2D_USE_C_DEFINITIONS
#undef INTERFACE
#define INTERFACE IDWriteTextAnalysisSource1
DECLARE_INTERFACE_(IDWriteTextAnalysisSource1,IDWriteTextAnalysisSource)
{
BEGIN_INTERFACE
STDMETHOD(GetVerticalGlyphOrientation)(
UINT32 textPosition,
UINT32 *textLength,
DWRITE_VERTICAL_GLYPH_ORIENTATION *orientation,
UINT8 *bidiLevel) PURE;
END_INTERFACE
};
#else /* D2D_USE_C_DEFINITIONS */
typedef struct IDWriteTextAnalysisSource1Vtbl
{
IDWriteTextAnalysisSourceVtbl Base;
STDMETHOD(GetVerticalGlyphOrientation)(IDWriteTextAnalysisSource1 *This,
UINT32 textPosition,
UINT32 *textLength,
enum DWRITE_VERTICAL_GLYPH_ORIENTATION *orientation,
UINT8 *bidiLevel) PURE;
}
IDWriteTextAnalysisSource1Vtbl;
interface IDWriteTextAnalysisSource1
{
const IDWriteTextAnalysisSource1Vtbl *lpVtbl;
};
#endif /* D2D_USE_C_DEFINITIONS */
__CRT_UUID_DECL(IDWriteTextAnalysisSource1, 0x639cfad8,0x0fb4,0x4b21,0xa5,0x8a,0x06,0x79,0x20,0x12,0x00,0x09);
#ifndef D2D_USE_C_DEFINITIONS
#undef INTERFACE
#define INTERFACE IDWriteTextAnalysisSink1
DECLARE_INTERFACE_(IDWriteTextAnalysisSink1,IDWriteTextAnalysisSink)
{
BEGIN_INTERFACE
STDMETHOD(SetGlyphOrientation)(
UINT32 textPosition,
UINT32 textLength,
DWRITE_GLYPH_ORIENTATION_ANGLE angle,
UINT8 adjustedBidilevel,
WINBOOL isSideways,
WINBOOL isRtl) PURE;
END_INTERFACE
};
#else /* D2D_USE_C_DEFINITIONS */
typedef struct IDWriteTextAnalysisSink1Vtbl
{
IDWriteTextAnalysisSinkVtbl Base;
STDMETHOD(SetGlyphOrientation)(IDWriteTextAnalysisSink1 *This,
UINT32 textPosition,
UINT32 textLength,
enum DWRITE_GLYPH_ORIENTATION_ANGLE angle,
UINT8 adjustedBidilevel,
WINBOOL isSideways,
WINBOOL isRtl) PURE;
}
IDWriteTextAnalysisSink1Vtbl;
interface IDWriteTextAnalysisSink1
{
const IDWriteTextAnalysisSink1Vtbl *lpVtbl;
};
#endif /* D2D_USE_C_DEFINITIONS */
__CRT_UUID_DECL(IDWriteTextAnalysisSink1, 0xb0d941a0,0x85e7,0x4d8b,0x9f,0xd3,0x5c,0xed,0x99,0x34,0x48,0x2a);
#ifndef D2D_USE_C_DEFINITIONS
#undef INTERFACE
#define INTERFACE IDWriteTextAnalyzer1
DECLARE_INTERFACE_(IDWriteTextAnalyzer1,IDWriteTextAnalyzer)
{
BEGIN_INTERFACE
STDMETHOD(ApplyCharacterSpacing)(
FLOAT leadingSpacing,
FLOAT trailingSpacing,
FLOAT minimumAdvanceWidth,
UINT32 textLength,
UINT32 glyphCount,
UINT16 const* clusterMap,
FLOAT const* glyphAdvances,
DWRITE_GLYPH_OFFSET const* glyphOffsets,
DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties,
FLOAT* modifiedGlyphAdvances,
DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets) PURE;
STDMETHOD(GetBaseline)(
IDWriteFontFace* fontFace,
DWRITE_BASELINE baseline,
BOOL isVertical,
BOOL isSimulationAllowed,
DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
WCHAR const* localeName,
INT32* baselineCoordinate,
BOOL* exists
) PURE;
STDMETHOD(AnalyzeVerticalGlyphOrientation)(
IDWriteTextAnalysisSource1* analysisSource,
UINT32 textPosition,
UINT32 textLength,
IDWriteTextAnalysisSink1* analysisSink
) PURE;
STDMETHOD(GetGlyphOrientationTransform)(
DWRITE_GLYPH_ORIENTATION_ANGLE glyphOrientationAngle,
BOOL isSideways,
DWRITE_MATRIX* transform
) PURE;
STDMETHOD(GetScriptProperties)(
DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
DWRITE_SCRIPT_PROPERTIES* scriptProperties
) PURE;
STDMETHOD(GetTextComplexity)(
WCHAR const* textString,
UINT32 textLength,
IDWriteFontFace* fontFace,
BOOL* isTextSimple,
UINT32* textLengthRead,
UINT16* glyphIndices
) PURE;
STDMETHOD(GetJustificationOpportunities)(
IDWriteFontFace* fontFace,
FLOAT fontEmSize,
DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
UINT32 textLength,
UINT32 glyphCount,
WCHAR const* textString,
UINT16 const* clusterMap,
DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties,
DWRITE_JUSTIFICATION_OPPORTUNITY* justificationOpportunities
) PURE;
STDMETHOD(JustifyGlyphAdvances)(
FLOAT lineWidth,
UINT32 glyphCount,
DWRITE_JUSTIFICATION_OPPORTUNITY const* justificationOpportunities,
FLOAT const* glyphAdvances,
DWRITE_GLYPH_OFFSET const* glyphOffsets,
FLOAT* justifiedGlyphAdvances,
DWRITE_GLYPH_OFFSET* justifiedGlyphOffsets
) PURE;
STDMETHOD(GetJustifiedGlyphs)(
IDWriteFontFace* fontFace,
FLOAT fontEmSize,
DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
UINT32 textLength,
UINT32 glyphCount,
UINT32 maxGlyphCount,
UINT16 const* clusterMap,
UINT16 const* glyphIndices,
FLOAT const* glyphAdvances,
FLOAT const* justifiedGlyphAdvances,
DWRITE_GLYPH_OFFSET const* justifiedGlyphOffsets,
DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties,
UINT32* actualGlyphCount,
UINT16* modifiedClusterMap,
UINT16* modifiedGlyphIndices,
FLOAT* modifiedGlyphAdvances,
DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets
) PURE;
END_INTERFACE
};
#else /* D2D_USE_C_DEFINITIONS */
typedef struct IDWriteTextAnalyzer1Vtbl
{
IDWriteTextAnalyzerVtbl Base;
STDMETHOD(ApplyCharacterSpacing)(IDWriteTextAnalyzer1 *This,
FLOAT leadingSpacing,
FLOAT trailingSpacing,
FLOAT minimumAdvanceWidth,
UINT32 textLength,
UINT32 glyphCount,
UINT16 const* clusterMap,
FLOAT const* glyphAdvances,
DWRITE_GLYPH_OFFSET const* glyphOffsets,
DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties,
FLOAT* modifiedGlyphAdvances,
DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets) PURE;
STDMETHOD(GetBaseline)(IDWriteTextAnalyzer1 *This,
IDWriteFontFace* fontFace,
enum DWRITE_BASELINE baseline,
BOOL isVertical,
BOOL isSimulationAllowed,
DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
WCHAR const* localeName,
INT32* baselineCoordinate,
BOOL* exists
) PURE;
STDMETHOD(AnalyzeVerticalGlyphOrientation)(IDWriteTextAnalyzer1 *This,
IDWriteTextAnalysisSource1* analysisSource,
UINT32 textPosition,
UINT32 textLength,
IDWriteTextAnalysisSink1* analysisSink
) PURE;
STDMETHOD(GetGlyphOrientationTransform)(IDWriteTextAnalyzer1 *This,
enum DWRITE_GLYPH_ORIENTATION_ANGLE glyphOrientationAngle,
BOOL isSideways,
DWRITE_MATRIX* transform
) PURE;
STDMETHOD(GetScriptProperties)(IDWriteTextAnalyzer1 *This,
DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
struct DWRITE_SCRIPT_PROPERTIES* scriptProperties
) PURE;
STDMETHOD(GetTextComplexity)(IDWriteTextAnalyzer1 *This,
WCHAR const* textString,
UINT32 textLength,
IDWriteFontFace* fontFace,
BOOL* isTextSimple,
UINT32* textLengthRead,
UINT16* glyphIndices
) PURE;
STDMETHOD(GetJustificationOpportunities)(IDWriteTextAnalyzer1 *This,
IDWriteFontFace* fontFace,
FLOAT fontEmSize,
DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
UINT32 textLength,
UINT32 glyphCount,
WCHAR const* textString,
UINT16 const* clusterMap,
DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties,
struct DWRITE_JUSTIFICATION_OPPORTUNITY* justificationOpportunities
) PURE;
STDMETHOD(JustifyGlyphAdvances)(IDWriteTextAnalyzer1 *This,
FLOAT lineWidth,
UINT32 glyphCount,
struct DWRITE_JUSTIFICATION_OPPORTUNITY const* justificationOpportunities,
FLOAT const* glyphAdvances,
DWRITE_GLYPH_OFFSET const* glyphOffsets,
FLOAT* justifiedGlyphAdvances,
DWRITE_GLYPH_OFFSET* justifiedGlyphOffsets
) PURE;
STDMETHOD(GetJustifiedGlyphs)(IDWriteTextAnalyzer1 *This,
IDWriteFontFace* fontFace,
FLOAT fontEmSize,
DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
UINT32 textLength,
UINT32 glyphCount,
UINT32 maxGlyphCount,
UINT16 const* clusterMap,
UINT16 const* glyphIndices,
FLOAT const* glyphAdvances,
FLOAT const* justifiedGlyphAdvances,
DWRITE_GLYPH_OFFSET const* justifiedGlyphOffsets,
DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties,
UINT32* actualGlyphCount,
UINT16* modifiedClusterMap,
UINT16* modifiedGlyphIndices,
FLOAT* modifiedGlyphAdvances,
DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets
) PURE;
}
IDWriteTextAnalyzer1Vtbl;
interface IDWriteTextAnalyzer1
{
const IDWriteTextAnalyzer1Vtbl *lpVtbl;
};
#endif /* D2D_USE_C_DEFINITIONS */
__CRT_UUID_DECL(IDWriteTextAnalyzer1, 0x80dad800,0xe21f,0x4e83,0x4e,0xce,0xbf,0xcc,0xe5,0x00,0xdb,0x7c);
#ifndef D2D_USE_C_DEFINITIONS
#undef INTERFACE
#define INTERFACE IDWriteTextLayout1
DECLARE_INTERFACE_(IDWriteTextLayout1,IDWriteTextLayout)
{
BEGIN_INTERFACE
STDMETHOD(SetPairKerning)(WINBOOL isPairKerningEnabled,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(GetPairKerning)(UINT32 position,
WINBOOL *isPairKerningEnabled,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
STDMETHOD(SetCharacterSpacing)(FLOAT leadingSpacing,
FLOAT trailingSpacing,
FLOAT minimumAdvance,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(GetCharacterSpacing)(FLOAT *leadingSpacing,
FLOAT *trailingSpacing,
FLOAT *minimumAdvance,
DWRITE_TEXT_RANGE *textRange __MINGW_DEF_ARG_VAL(NULL)) PURE;
END_INTERFACE
};
#else /* D2D_USE_C_DEFINITIONS */
typedef struct IDWriteTextLayout1Vtbl
{
IDWriteTextLayoutVtbl Base;
STDMETHOD(SetPairKerning)(IDWriteTextLayout1 *This,
WINBOOL isPairKerningEnabled,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(GetPairKerning)(IDWriteTextLayout1 *This,
UINT32 position,
WINBOOL *isPairKerningEnabled,
DWRITE_TEXT_RANGE *textRange) PURE;
STDMETHOD(SetCharacterSpacing)(IDWriteTextLayout1 *This,
FLOAT leadingSpacing,
FLOAT trailingSpacing,
FLOAT minimumAdvance,
DWRITE_TEXT_RANGE textRange) PURE;
STDMETHOD(GetCharacterSpacing)(IDWriteTextLayout1 *This,
FLOAT *leadingSpacing,
FLOAT *trailingSpacing,
FLOAT *minimumAdvance,
DWRITE_TEXT_RANGE *textRange) PURE;
}
IDWriteTextLayout1Vtbl;
interface IDWriteTextLayout1
{
const IDWriteTextLayout1Vtbl *lpVtbl;
};
#endif /* D2D_USE_C_DEFINITIONS */
__CRT_UUID_DECL(IDWriteTextLayout1, 0x9064d822,0x80a7,0x465c,0xa9,0x86,0xdf,0x65,0xf7,0x8b,0x8f,0xeb)
#ifndef D2D_USE_C_DEFINITIONS
#undef INTERFACE
#define INTERFACE IDWriteFactory1
DECLARE_INTERFACE_(IDWriteFactory1,IDWriteFactory)
{
BEGIN_INTERFACE
STDMETHOD(GetEudcFontCollection)(IDWriteFontCollection **fontCollection,
BOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE;
STDMETHOD(CreateCustomRenderingParams)(FLOAT gamma,
FLOAT enhancedContrast,
FLOAT enhancedContrastGrayscale,
FLOAT clearTypeLevel,
DWRITE_PIXEL_GEOMETRY pixelGeometry,
DWRITE_RENDERING_MODE renderingMode,
IDWriteRenderingParams1 **renderingParams) PURE;
using IDWriteFactory::CreateCustomRenderingParams;
END_INTERFACE
};
#else /* D2D_USE_C_DEFINITIONS */
typedef struct IDWriteFactory1Vtbl
{
IDWriteFactoryVtbl Base;
STDMETHOD(GetEudcFontCollection)(IDWriteFactory1 *This,
IDWriteFontCollection **fontCollection,
BOOL checkForUpdates) PURE;
STDMETHOD(CreateCustomRenderingParams)(IDWriteFactory1 *This,
FLOAT gamma,
FLOAT enhancedContrast,
FLOAT enhancedContrastGrayscale,
FLOAT clearTypeLevel,
DWRITE_PIXEL_GEOMETRY pixelGeometry,
DWRITE_RENDERING_MODE renderingMode,
IDWriteRenderingParams1 **renderingParams) PURE;
}
IDWriteFactory1Vtbl;
interface IDWriteFactory1
{
const IDWriteFactory1Vtbl *lpVtbl;
};
#endif /* D2D_USE_C_DEFINITIONS */
DEFINE_GUID(IID_IDWriteFactory1, 0x30572f99,0xdac6,0x41db,0xa1,0x6e,0x04,0x86,0x30,0x7e,0x60,0x6a);
__CRT_UUID_DECL(IDWriteFactory1, 0x30572f99,0xdac6,0x41db,0xa1,0x6e,0x04,0x86,0x30,0x7e,0x60,0x6a)
#ifndef D2D_USE_C_DEFINITIONS
#undef INTERFACE
#define INTERFACE IDWriteBitmapRenderTarget1
DECLARE_INTERFACE_(IDWriteBitmapRenderTarget1,IDWriteBitmapRenderTarget)
{
BEGIN_INTERFACE
STDMETHOD_(DWRITE_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(void) PURE;
STDMETHOD(SetTextAntialiasMode)(
DWRITE_TEXT_ANTIALIAS_MODE antialiasMode) PURE;
END_INTERFACE
};
#else /* D2D_USE_C_DEFINITIONS */
typedef struct IDWriteBitmapRenderTarget1Vtbl
{
IDWriteBitmapRenderTargetVtbl Base;
STDMETHOD_(enum DWRITE_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(IDWriteBitmapRenderTarget1 *This) PURE;
STDMETHOD(SetTextAntialiasMode)(IDWriteBitmapRenderTarget1 *This,
enum DWRITE_TEXT_ANTIALIAS_MODE antialiasMode) PURE;
}
IDWriteBitmapRenderTarget1Vtbl;
interface IDWriteBitmapRenderTarget1
{
const IDWriteBitmapRenderTarget1Vtbl *lpVtbl;
};
#endif /* D2D_USE_C_DEFINITIONS */
__CRT_UUID_DECL(IDWriteBitmapRenderTarget1, 0x791e8298,0x3ef3,0x4230,0x98,0x80,0xc9,0xbd,0xec,0xc4,0x20,0x64)
#endif /* DWRITE_1_H_INCLUDED */