Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
---
include/dwrite_3.idl | 376 +++++++++++++++++++++++++++++++++++++++++--
1 file changed, 360 insertions(+), 16 deletions(-)
diff --git a/include/dwrite_3.idl b/include/dwrite_3.idl
index af4ffc8797..de14b910ee 100644
--- a/include/dwrite_3.idl
+++ b/include/dwrite_3.idl
@@ -19,10 +19,12 @@
import "dwrite_2.idl";
interface IDWriteFontFaceReference;
+interface IDWriteFontFaceReference1;
interface IDWriteFontFace3;
interface IDWriteFontSet;
interface IDWriteFontDownloadQueue;
-interface IDWriteFontResource;
+interface IDWriteFontFace5;
+interface IDWriteFontList2;
cpp_quote("#ifndef _WINGDI_")
/* already defined in wingdi.h but needed for WIDL */
@@ -73,6 +75,47 @@ typedef struct DWRITE_FONT_PROPERTY
WCHAR const *localeName;
} DWRITE_FONT_PROPERTY;
+typedef enum DWRITE_FONT_AXIS_TAG
+{
+ DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777, /* 'wght' */
+ DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477, /* 'wdth' */
+ DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73, /* 'slnt' */
+ DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f, /* 'opsz' */
+ DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469, /* 'ital' */
+} DWRITE_FONT_AXIS_TAG;
+
+typedef struct DWRITE_FONT_AXIS_VALUE
+{
+ DWRITE_FONT_AXIS_TAG axisTag;
+ FLOAT value;
+} DWRITE_FONT_AXIS_VALUE;
+
+typedef struct DWRITE_FONT_AXIS_RANGE
+{
+ DWRITE_FONT_AXIS_TAG axisTag;
+ FLOAT minValue;
+ FLOAT maxValue;
+} DWRITE_FONT_AXIS_RANGE;
+
+typedef enum DWRITE_AUTOMATIC_FONT_AXES
+{
+ DWRITE_AUTOMATIC_FONT_AXES_NONE,
+ DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE,
+} DWRITE_AUTOMATIC_FONT_AXES;
+
+typedef enum DWRITE_FONT_AXIS_ATTRIBUTES
+{
+ DWRITE_FONT_AXIS_ATTRIBUTES_NONE,
+ DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE,
+ DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN,
+} DWRITE_FONT_AXIS_ATTRIBUTES;
+
+typedef enum DWRITE_FONT_FAMILY_MODEL
+{
+ DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC,
+ DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE,
+} DWRITE_FONT_FAMILY_MODEL;
+
[
local,
object,
@@ -145,6 +188,109 @@ interface IDWriteFontSet : IUnknown
HRESULT GetMatchingFonts(DWRITE_FONT_PROPERTY const *props, UINT32 count, IDWriteFontSet **fontset);
}
+[
+ local,
+ object,
+ uuid(1f803a76-6871-48e8-987f-b975551c50f2)
+]
+interface IDWriteFontResource : IUnknown
+{
+ HRESULT GetFontFile(IDWriteFontFile **fontfile);
+ UINT32 GetFontFaceIndex();
+ UINT32 GetFontAxisCount();
+ HRESULT GetDefaultFontAxisValues(
+ DWRITE_FONT_AXIS_VALUE const *values,
+ UINT32 num_values);
+ HRESULT GetFontAxisRanges(
+ DWRITE_FONT_AXIS_RANGE const *ranges,
+ UINT32 num_ranges);
+ DWRITE_FONT_AXIS_ATTRIBUTES GetFontAxisAttributes(
+ UINT32 axis);
+ HRESULT GetAxisNames(
+ UINT32 axis,
+ IDWriteLocalizedStrings **names);
+ UINT32 GetAxisValueNameCount(
+ UINT32 axis);
+ HRESULT GetAxisValueNames(
+ UINT32 axis,
+ UINT32 axis_value,
+ DWRITE_FONT_AXIS_RANGE *axis_range,
+ IDWriteLocalizedStrings **names);
+ BOOL HasVariations();
+ HRESULT CreateFontFace(
+ DWRITE_FONT_SIMULATIONS simulations,
+ DWRITE_FONT_AXIS_VALUE const *axis_values,
+ UINT32 num_values,
+ IDWriteFontFace5 **fontface);
+ HRESULT CreateFontFaceReference(
+ DWRITE_FONT_SIMULATIONS simulations,
+ DWRITE_FONT_AXIS_VALUE const *axis_values,
+ UINT32 num_values,
+ IDWriteFontFaceReference1 **reference);
+}
+
+[
+ local,
+ object,
+ uuid(7e9fda85-6c92-4053-bc47-7ae3530db4d3)
+]
+interface IDWriteFontSet1 : IDWriteFontSet
+{
+ HRESULT GetMatchingFonts(
+ DWRITE_FONT_PROPERTY const *property,
+ DWRITE_FONT_AXIS_VALUE const *axis_values,
+ UINT32 num_values,
+ IDWriteFontSet1 **fontset);
+ HRESULT GetFirstFontResources(IDWriteFontSet1 **fontset);
+ HRESULT GetFilteredFonts__(
+ UINT32 const *indices,
+ UINT32 num_indices,
+ IDWriteFontSet1 **fontset);
+ HRESULT GetFilteredFonts_(
+ DWRITE_FONT_AXIS_RANGE const *axis_ranges,
+ UINT32 num_ranges,
+ BOOL select_any_range,
+ IDWriteFontSet1 **fontset);
+ HRESULT GetFilteredFonts(
+ DWRITE_FONT_PROPERTY const *props,
+ UINT32 num_properties,
+ BOOL select_any_property,
+ IDWriteFontSet1 **fontset);
+ HRESULT GetFilteredFontIndices_(
+ DWRITE_FONT_AXIS_RANGE const *ranges,
+ UINT32 num_ranges,
+ BOOL select_any_range,
+ UINT32 *indices,
+ UINT32 num_indices,
+ UINT32 *actual_num_indices);
+ HRESULT GetFilteredFontIndices(
+ DWRITE_FONT_PROPERTY const *props,
+ UINT32 num_properties,
+ BOOL select_any_range,
+ UINT32 *indices,
+ UINT32 num_indices,
+ UINT32 *actual_num_indices);
+ HRESULT GetFontAxisRanges_(
+ UINT32 font_index,
+ DWRITE_FONT_AXIS_RANGE *axis_ranges,
+ UINT32 num_ranges,
+ UINT32 *actual_num_ranges);
+ HRESULT GetFontAxisRanges(
+ DWRITE_FONT_AXIS_RANGE *axis_ranges,
+ UINT32 num_ranges,
+ UINT32 *actual_num_ranges);
+ HRESULT GetFontFaceReference(
+ UINT32 index,
+ IDWriteFontFaceReference1 **referece);
+ HRESULT CreateFontResource(
+ UINT32 index,
+ IDWriteFontResource **resource);
+ HRESULT CreateFontFace(
+ UINT32 index,
+ IDWriteFontFace5 **fontface);
+ DWRITE_LOCALITY GetFontLocality(UINT32 index);
+}
+
[
local,
object,
@@ -171,6 +317,20 @@ interface IDWriteFontFamily1 : IDWriteFontFamily
HRESULT GetFontFaceReference(UINT32 index, IDWriteFontFaceReference **reference);
}
+[
+ local,
+ object,
+ uuid(3ed49e77-a398-4261-b9cf-c126c2131ef3)
+]
+interface IDWriteFontFamily2 : IDWriteFontFamily1
+{
+ HRESULT GetMatchingFonts(
+ DWRITE_FONT_AXIS_VALUE const *axis_values,
+ UINT32 num_values,
+ IDWriteFontList2 **fontlist);
+ HRESULT GetFontSet(IDWriteFontSet1 **fontset);
+}
+
[
local,
object,
@@ -182,6 +342,35 @@ interface IDWriteFontCollection1 : IDWriteFontCollection
HRESULT GetFontFamily(UINT32 index, IDWriteFontFamily1 **family);
}
+[
+ local,
+ object,
+ uuid(514039c6-4617-4064-bf8b-92ea83e506e0)
+]
+interface IDWriteFontCollection2 : IDWriteFontCollection1
+{
+ HRESULT GetFontFamily(
+ UINT32 index,
+ IDWriteFontFamily2 **family);
+ HRESULT GetMatchingFonts(
+ const WCHAR *familyname,
+ DWRITE_FONT_AXIS_VALUE const *axis_values,
+ UINT32 num_values,
+ IDWriteFontList2 **fontlist);
+ DWRITE_FONT_FAMILY_MODEL GetFontFamilyModel();
+ HRESULT GetFontSet(IDWriteFontSet1 **fontset);
+}
+
+[
+ local,
+ object,
+ uuid(a4d055a6-f9e3-4e25-93b7-9e309f3af8e9)
+]
+interface IDWriteFontCollection3 : IDWriteFontCollection2
+{
+ HANDLE GetExiprationEvent();
+}
+
[
local,
object,
@@ -206,6 +395,20 @@ interface IDWriteFontFaceReference : IUnknown
HRESULT EnqueueFileFragmentDownloadRequest(UINT64 offset, UINT64 size);
}
+[
+ local,
+ object,
+ uuid(c081fe77-2fd1-41ac-a5a3-34983c4ba61a)
+]
+interface IDWriteFontFaceReference1 : IDWriteFontFaceReference
+{
+ HRESULT CreateFontFace(IDWriteFontFace5 **fontface);
+ UINT32 GetFontAxisValueCount();
+ HRESULT GetFontAxisValues(
+ DWRITE_FONT_AXIS_VALUE *values,
+ UINT32 num_values);
+}
+
[
local,
object,
@@ -218,6 +421,26 @@ interface IDWriteFontList1 : IDWriteFontList
HRESULT GetFontFaceReference(UINT32 index, IDWriteFontFaceReference **reference);
}
+[
+ local,
+ object,
+ uuid(c0763a34-77af-445a-b735-08c37b0a5bf5)
+]
+interface IDWriteFontList2 : IDWriteFontList1
+{
+ HRESULT GetFontSet(IDWriteFontSet1 **fontset);
+}
+
+[
+ local,
+ object,
+ uuid(dc7ead19-e54c-43af-b2da-4e2b79ba3f7f)
+]
+interface IDWriteFontSet2 : IDWriteFontSet1
+{
+ HANDLE GetExpirationEvent();
+}
+
[
local,
object,
@@ -295,6 +518,24 @@ interface IDWriteTextFormat2 : IDWriteTextFormat1
HRESULT GetLineSpacing(DWRITE_LINE_SPACING *spacing);
}
+[
+ local,
+ object,
+ uuid(6d3b5641-e550-430d-a85b-b7bf48a93427)
+]
+interface IDWriteTextFormat3 : IDWriteTextFormat2
+{
+ HRESULT SetFontAxisValues(
+ DWRITE_FONT_AXIS_VALUE const *axis_values,
+ UINT32 num_values);
+ UINT32 GetFontAxisValueCount();
+ HRESULT GetFontAxisValues(
+ DWRITE_FONT_AXIS_VALUE const *axis_values,
+ UINT32 num_values);
+ DWRITE_AUTOMATIC_FONT_AXES GetAutomaticFontAxes();
+ HRESULT SetAutomaticFontAxes(DWRITE_AUTOMATIC_FONT_AXES axes);
+}
+
[
local,
object,
@@ -308,6 +549,47 @@ interface IDWriteTextLayout3 : IDWriteTextLayout2
HRESULT GetLineMetrics(DWRITE_LINE_METRICS1 *metrics, UINT32 max_count, UINT32 *count);
}
+[
+ local,
+ object,
+ uuid(05a9bf42-223f-4441-b5fb-8263685f55e9)
+]
+interface IDWriteTextLayout4 : IDWriteTextLayout3
+{
+ HRESULT SetFontAxisValues(
+ DWRITE_FONT_AXIS_VALUE const *axis_values,
+ UINT32 num_values,
+ DWRITE_TEXT_RANGE range);
+ UINT32 GetFontAxisValueCount(UINT32 pos);
+ HRESULT GetFontAxisValues(
+ UINT32 pos,
+ DWRITE_FONT_AXIS_VALUE *values,
+ UINT32 num_values,
+ DWRITE_TEXT_RANGE *range);
+ DWRITE_AUTOMATIC_FONT_AXES GetAutomaticFontAxes();
+ HRESULT SetAutomaticFontAxes(DWRITE_AUTOMATIC_FONT_AXES axes);
+}
+
+[
+ local,
+ object,
+ uuid(2397599d-dd0d-4681-bd6a-f4f31eaade77)
+]
+interface IDWriteFontFallback1 : IDWriteFontFallback
+{
+ HRESULT MapCharacters(
+ IDWriteTextAnalysisSource *source,
+ UINT32 pos,
+ UINT32 length,
+ IDWriteFontCollection *base_collection,
+ const WCHAR *familyname,
+ DWRITE_FONT_AXIS_VALUE const *axis_values,
+ UINT32 num_values,
+ UINT32 *mapped_length,
+ FLOAT *scale,
+ IDWriteFontFace5 **fontface);
+}
+
[
local,
object,
@@ -353,6 +635,26 @@ interface IDWriteFontSetBuilder1 : IDWriteFontSetBuilder
HRESULT AddFontFile(IDWriteFontFile *file);
}
+[
+ local,
+ object,
+ uuid(ee5ba612-b131-463c-8f4f-3189b9401e45)
+]
+interface IDWriteFontSetBuilder2 : IDWriteFontSetBuilder1
+{
+ HRESULT AddFont(
+ IDWriteFontFile *fontfile,
+ UINT32 face_index,
+ DWRITE_FONT_SIMULATIONS simulations,
+ DWRITE_FONT_AXIS_VALUE const *axis_values,
+ UINT32 num_values,
+ DWRITE_FONT_AXIS_RANGE const *axis_ranges,
+ UINT32 num_ranges,
+ DWRITE_FONT_PROPERTY const *props,
+ UINT32 num_properies);
+ HRESULT AddFontFile(const WCHAR *filepath);
+}
+
[
local,
object,
@@ -458,21 +760,6 @@ interface IDWriteFontFace4 : IDWriteFontFace3
void ReleaseGlyphImageData(void *context);
}
-typedef enum DWRITE_FONT_AXIS_TAG
-{
- DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777, /* 'wght' */
- DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477, /* 'wdth' */
- DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73, /* 'slnt' */
- DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f, /* 'opsz' */
- DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469, /* 'ital' */
-} DWRITE_FONT_AXIS_TAG;
-
-typedef struct DWRITE_FONT_AXIS_VALUE
-{
- DWRITE_FONT_AXIS_TAG axisTag;
- FLOAT value;
-} DWRITE_FONT_AXIS_VALUE;
-
[
local,
object,
@@ -635,3 +922,60 @@ interface IDWriteFactory5 : IDWriteFactory4
UINT32 data_size,
IDWriteFontFileStream **stream);
}
+
+[
+ local,
+ object,
+ uuid(f3744d80-21f7-42eb-b35d-995bc72fc223)
+]
+interface IDWriteFactory6 : IDWriteFactory5
+{
+ HRESULT CreateFontFaceReference(
+ IDWriteFontFile *file,
+ UINT32 face_index,
+ DWRITE_FONT_SIMULATIONS simulations,
+ DWRITE_FONT_AXIS_VALUE const *axis_values,
+ UINT32 num_axis,
+ IDWriteFontFaceReference1 **face_ref);
+ HRESULT CreateFontResource(
+ IDWriteFontFile *file,
+ UINT32 face_index,
+ IDWriteFontResource **resource);
+ HRESULT GetSystemFontSet(
+ BOOL include_downloadable,
+ IDWriteFontSet1 **fontset);
+ HRESULT GetSystemFontCollection(
+ BOOL include_downloadable,
+ DWRITE_FONT_FAMILY_MODEL family_model,
+ IDWriteFontCollection2 **collection);
+ HRESULT CreateFontCollectionFromFontSet(
+ IDWriteFontSet *fontset,
+ DWRITE_FONT_FAMILY_MODEL family_model,
+ IDWriteFontCollection2 **collection);
+ HRESULT CreateFontSetBuilder(
+ IDWriteFontSetBuilder2 **builder);
+ HRESULT CreateTextFormat(
+ const WCHAR *familyname,
+ IDWriteFontCollection *collection,
+ DWRITE_FONT_AXIS_VALUE const *axis_values,
+ UINT32 num_axis,
+ FLOAT fontsize,
+ const WCHAR *localename,
+ IDWriteTextFormat3 **format);
+}
+
+[
+ local,
+ object,
+ uuid(35d0e0b3-9076-4d2e-a016-a91b568a06b4)
+]
+interface IDWriteFactory7 : IDWriteFactory6
+{
+ HRESULT GetSystemFontSet(
+ BOOL include_downloadable,
+ IDWriteFontSet2 **fontset);
+ HRESULT GetSystemFontCollection(
+ BOOL include_downloadable,
+ DWRITE_FONT_FAMILY_MODEL family_model,
+ IDWriteFontCollection3 **collection);
+}
--
2.17.0