Bug 1758688 [wpt PR 33067] - [FedCM] Make revoke a non-static method, a=testonly
[gecko.git] / gfx / 2d / dw-extra.h
blob15de36b1fc71cd9a829038d37917c6188425baf5
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 /*
7 * New DirectWrite interfaces based on Win10 Fall Creators Update versions
8 * of dwrite_3.h and dcommon.h (from SDK 10.0.17061.0). This particular
9 * subset of declarations is intended to be just sufficient to compile the
10 * Gecko DirectWrite font code; it omits many other new interfaces, etc.
13 #ifndef DWRITE_EXTRA_H
14 #define DWRITE_EXTRA_H
16 #pragma once
18 interface IDWriteFontResource;
19 interface IDWriteFontFaceReference1;
21 enum DWRITE_GLYPH_IMAGE_FORMATS {
22 DWRITE_GLYPH_IMAGE_FORMATS_NONE = 0x00000000,
23 DWRITE_GLYPH_IMAGE_FORMATS_TRUETYPE = 0x00000001,
24 DWRITE_GLYPH_IMAGE_FORMATS_CFF = 0x00000002,
25 DWRITE_GLYPH_IMAGE_FORMATS_COLR = 0x00000004,
26 DWRITE_GLYPH_IMAGE_FORMATS_SVG = 0x00000008,
27 DWRITE_GLYPH_IMAGE_FORMATS_PNG = 0x00000010,
28 DWRITE_GLYPH_IMAGE_FORMATS_JPEG = 0x00000020,
29 DWRITE_GLYPH_IMAGE_FORMATS_TIFF = 0x00000040,
30 DWRITE_GLYPH_IMAGE_FORMATS_PREMULTIPLIED_B8G8R8A8 = 0x00000080,
33 #ifdef DEFINE_ENUM_FLAG_OPERATORS
34 DEFINE_ENUM_FLAG_OPERATORS(DWRITE_GLYPH_IMAGE_FORMATS);
35 #endif
37 #define DWRITE_MAKE_FONT_AXIS_TAG(a, b, c, d) \
38 (static_cast<DWRITE_FONT_AXIS_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a, b, c, d)))
40 enum DWRITE_FONT_AXIS_TAG : UINT32 {
41 DWRITE_FONT_AXIS_TAG_WEIGHT = DWRITE_MAKE_FONT_AXIS_TAG('w', 'g', 'h', 't'),
42 DWRITE_FONT_AXIS_TAG_WIDTH = DWRITE_MAKE_FONT_AXIS_TAG('w', 'd', 't', 'h'),
43 DWRITE_FONT_AXIS_TAG_SLANT = DWRITE_MAKE_FONT_AXIS_TAG('s', 'l', 'n', 't'),
44 DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE =
45 DWRITE_MAKE_FONT_AXIS_TAG('o', 'p', 's', 'z'),
46 DWRITE_FONT_AXIS_TAG_ITALIC = DWRITE_MAKE_FONT_AXIS_TAG('i', 't', 'a', 'l'),
49 enum DWRITE_FONT_AXIS_ATTRIBUTES {
50 DWRITE_FONT_AXIS_ATTRIBUTES_NONE = 0x0000,
51 DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE = 0x0001,
52 DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN = 0x0002,
55 struct DWRITE_FONT_AXIS_VALUE {
56 DWRITE_FONT_AXIS_TAG axisTag;
57 FLOAT value;
60 struct DWRITE_FONT_AXIS_RANGE {
61 DWRITE_FONT_AXIS_TAG axisTag;
62 FLOAT minValue;
63 FLOAT maxValue;
66 struct DWRITE_GLYPH_IMAGE_DATA {
67 const void* imageData;
68 UINT32 imageDataSize;
69 UINT32 uniqueDataId;
70 UINT32 pixelsPerEm;
71 D2D1_SIZE_U pixelSize;
72 D2D1_POINT_2L horizontalLeftOrigin;
73 D2D1_POINT_2L horizontalRightOrigin;
74 D2D1_POINT_2L verticalTopOrigin;
75 D2D1_POINT_2L verticalBottomOrigin;
78 interface DWRITE_DECLARE_INTERFACE("27F2A904-4EB8-441D-9678-0563F53E3E2F")
79 IDWriteFontFace4 : public IDWriteFontFace3 {
80 STDMETHOD_(DWRITE_GLYPH_IMAGE_FORMATS, GetGlyphImageFormats)() PURE;
81 STDMETHOD(GetGlyphImageFormats)
82 (UINT16 glyphId, UINT32 pixelsPerEmFirst, UINT32 pixelsPerEmLast,
83 _Out_ DWRITE_GLYPH_IMAGE_FORMATS* glyphImageFormats) PURE;
84 STDMETHOD(GetGlyphImageData)
85 (_In_ UINT16 glyphId, UINT32 pixelsPerEm,
86 DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat,
87 _Out_ DWRITE_GLYPH_IMAGE_DATA* glyphData,
88 _Outptr_result_maybenull_ void** glyphDataContext) PURE;
89 STDMETHOD_(void, ReleaseGlyphImageData)(void* glyphDataContext) PURE;
92 interface DWRITE_DECLARE_INTERFACE("98EFF3A5-B667-479A-B145-E2FA5B9FDC29")
93 IDWriteFontFace5 : public IDWriteFontFace4 {
94 STDMETHOD_(UINT32, GetFontAxisValueCount)() PURE;
95 STDMETHOD(GetFontAxisValues)
96 (_Out_writes_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE* fontAxisValues,
97 UINT32 fontAxisValueCount) PURE;
98 STDMETHOD_(BOOL, HasVariations)() PURE;
99 STDMETHOD(GetFontResource)
100 (_COM_Outptr_ IDWriteFontResource** fontResource) PURE;
101 STDMETHOD_(BOOL, Equals)(IDWriteFontFace* fontFace) PURE;
104 interface DWRITE_DECLARE_INTERFACE("1F803A76-6871-48E8-987F-B975551C50F2")
105 IDWriteFontResource : public IUnknown {
106 STDMETHOD(GetFontFile)(_COM_Outptr_ IDWriteFontFile** fontFile) PURE;
107 STDMETHOD_(UINT32, GetFontFaceIndex)() PURE;
108 STDMETHOD_(UINT32, GetFontAxisCount)() PURE;
109 STDMETHOD(GetDefaultFontAxisValues)
110 (_Out_writes_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE* fontAxisValues,
111 UINT32 fontAxisValueCount) PURE;
112 STDMETHOD(GetFontAxisRanges)
113 (_Out_writes_(fontAxisRangeCount) DWRITE_FONT_AXIS_RANGE* fontAxisRanges,
114 UINT32 fontAxisRangeCount) PURE;
115 STDMETHOD_(DWRITE_FONT_AXIS_ATTRIBUTES, GetFontAxisAttributes)
116 (UINT32 axisIndex) PURE;
117 STDMETHOD(GetAxisNames)
118 (UINT32 axisIndex, _COM_Outptr_ IDWriteLocalizedStrings** names) PURE;
119 STDMETHOD_(UINT32, GetAxisValueNameCount)(UINT32 axisIndex) PURE;
120 STDMETHOD(GetAxisValueNames)
121 (UINT32 axisIndex, UINT32 axisValueIndex,
122 _Out_ DWRITE_FONT_AXIS_RANGE* fontAxisRange,
123 _COM_Outptr_ IDWriteLocalizedStrings** names) PURE;
124 STDMETHOD_(BOOL, HasVariations)() PURE;
125 STDMETHOD(CreateFontFace)
126 (DWRITE_FONT_SIMULATIONS fontSimulations,
127 _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
128 UINT32 fontAxisValueCount, _COM_Outptr_ IDWriteFontFace5** fontFace) PURE;
129 STDMETHOD(CreateFontFaceReference)
130 (DWRITE_FONT_SIMULATIONS fontSimulations,
131 _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
132 UINT32 fontAxisValueCount,
133 _COM_Outptr_ IDWriteFontFaceReference1** fontFaceReference) PURE;
136 #endif /* DWRITE_EXTRA_H */