zigwin32/win32/graphics/direct_write.zig

10752 lines
592 KiB
Zig

//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (7)
//--------------------------------------------------------------------------------
pub const DWRITE_ALPHA_MAX = @as(u32, 255);
pub const FACILITY_DWRITE = @as(u32, 2200);
pub const DWRITE_ERR_BASE = @as(u32, 20480);
pub const DWRITE_E_REMOTEFONT = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2003283955));
pub const DWRITE_E_DOWNLOADCANCELLED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2003283954));
pub const DWRITE_E_DOWNLOADFAILED = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2003283953));
pub const DWRITE_E_TOOMANYDOWNLOADS = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2003283952));
//--------------------------------------------------------------------------------
// Section: Types (194)
//--------------------------------------------------------------------------------
pub const DWRITE_FONT_AXIS_TAG = enum(u32) {
WEIGHT = 1952999287,
WIDTH = 1752458359,
SLANT = 1953393779,
OPTICAL_SIZE = 2054385775,
ITALIC = 1818326121,
};
pub const DWRITE_FONT_AXIS_TAG_WEIGHT = DWRITE_FONT_AXIS_TAG.WEIGHT;
pub const DWRITE_FONT_AXIS_TAG_WIDTH = DWRITE_FONT_AXIS_TAG.WIDTH;
pub const DWRITE_FONT_AXIS_TAG_SLANT = DWRITE_FONT_AXIS_TAG.SLANT;
pub const DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = DWRITE_FONT_AXIS_TAG.OPTICAL_SIZE;
pub const DWRITE_FONT_AXIS_TAG_ITALIC = DWRITE_FONT_AXIS_TAG.ITALIC;
pub const DWRITE_COLOR_F = extern struct {
r: f32,
g: f32,
b: f32,
a: f32,
};
pub const DWRITE_MEASURING_MODE = enum(i32) {
NATURAL = 0,
GDI_CLASSIC = 1,
GDI_NATURAL = 2,
};
pub const DWRITE_MEASURING_MODE_NATURAL = DWRITE_MEASURING_MODE.NATURAL;
pub const DWRITE_MEASURING_MODE_GDI_CLASSIC = DWRITE_MEASURING_MODE.GDI_CLASSIC;
pub const DWRITE_MEASURING_MODE_GDI_NATURAL = DWRITE_MEASURING_MODE.GDI_NATURAL;
pub const DWRITE_GLYPH_IMAGE_FORMATS = enum(u32) {
NONE = 0,
TRUETYPE = 1,
CFF = 2,
COLR = 4,
SVG = 8,
PNG = 16,
JPEG = 32,
TIFF = 64,
PREMULTIPLIED_B8G8R8A8 = 128,
_,
pub fn initFlags(o: struct {
NONE: u1 = 0,
TRUETYPE: u1 = 0,
CFF: u1 = 0,
COLR: u1 = 0,
SVG: u1 = 0,
PNG: u1 = 0,
JPEG: u1 = 0,
TIFF: u1 = 0,
PREMULTIPLIED_B8G8R8A8: u1 = 0,
}) DWRITE_GLYPH_IMAGE_FORMATS {
return @as(DWRITE_GLYPH_IMAGE_FORMATS, @enumFromInt(
(if (o.NONE == 1) @intFromEnum(DWRITE_GLYPH_IMAGE_FORMATS.NONE) else 0)
| (if (o.TRUETYPE == 1) @intFromEnum(DWRITE_GLYPH_IMAGE_FORMATS.TRUETYPE) else 0)
| (if (o.CFF == 1) @intFromEnum(DWRITE_GLYPH_IMAGE_FORMATS.CFF) else 0)
| (if (o.COLR == 1) @intFromEnum(DWRITE_GLYPH_IMAGE_FORMATS.COLR) else 0)
| (if (o.SVG == 1) @intFromEnum(DWRITE_GLYPH_IMAGE_FORMATS.SVG) else 0)
| (if (o.PNG == 1) @intFromEnum(DWRITE_GLYPH_IMAGE_FORMATS.PNG) else 0)
| (if (o.JPEG == 1) @intFromEnum(DWRITE_GLYPH_IMAGE_FORMATS.JPEG) else 0)
| (if (o.TIFF == 1) @intFromEnum(DWRITE_GLYPH_IMAGE_FORMATS.TIFF) else 0)
| (if (o.PREMULTIPLIED_B8G8R8A8 == 1) @intFromEnum(DWRITE_GLYPH_IMAGE_FORMATS.PREMULTIPLIED_B8G8R8A8) else 0)
));
}
};
pub const DWRITE_GLYPH_IMAGE_FORMATS_NONE = DWRITE_GLYPH_IMAGE_FORMATS.NONE;
pub const DWRITE_GLYPH_IMAGE_FORMATS_TRUETYPE = DWRITE_GLYPH_IMAGE_FORMATS.TRUETYPE;
pub const DWRITE_GLYPH_IMAGE_FORMATS_CFF = DWRITE_GLYPH_IMAGE_FORMATS.CFF;
pub const DWRITE_GLYPH_IMAGE_FORMATS_COLR = DWRITE_GLYPH_IMAGE_FORMATS.COLR;
pub const DWRITE_GLYPH_IMAGE_FORMATS_SVG = DWRITE_GLYPH_IMAGE_FORMATS.SVG;
pub const DWRITE_GLYPH_IMAGE_FORMATS_PNG = DWRITE_GLYPH_IMAGE_FORMATS.PNG;
pub const DWRITE_GLYPH_IMAGE_FORMATS_JPEG = DWRITE_GLYPH_IMAGE_FORMATS.JPEG;
pub const DWRITE_GLYPH_IMAGE_FORMATS_TIFF = DWRITE_GLYPH_IMAGE_FORMATS.TIFF;
pub const DWRITE_GLYPH_IMAGE_FORMATS_PREMULTIPLIED_B8G8R8A8 = DWRITE_GLYPH_IMAGE_FORMATS.PREMULTIPLIED_B8G8R8A8;
pub const DWRITE_FONT_FILE_TYPE = enum(i32) {
UNKNOWN = 0,
CFF = 1,
TRUETYPE = 2,
OPENTYPE_COLLECTION = 3,
TYPE1_PFM = 4,
TYPE1_PFB = 5,
VECTOR = 6,
BITMAP = 7,
// TRUETYPE_COLLECTION = 3, this enum value conflicts with OPENTYPE_COLLECTION
};
pub const DWRITE_FONT_FILE_TYPE_UNKNOWN = DWRITE_FONT_FILE_TYPE.UNKNOWN;
pub const DWRITE_FONT_FILE_TYPE_CFF = DWRITE_FONT_FILE_TYPE.CFF;
pub const DWRITE_FONT_FILE_TYPE_TRUETYPE = DWRITE_FONT_FILE_TYPE.TRUETYPE;
pub const DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION = DWRITE_FONT_FILE_TYPE.OPENTYPE_COLLECTION;
pub const DWRITE_FONT_FILE_TYPE_TYPE1_PFM = DWRITE_FONT_FILE_TYPE.TYPE1_PFM;
pub const DWRITE_FONT_FILE_TYPE_TYPE1_PFB = DWRITE_FONT_FILE_TYPE.TYPE1_PFB;
pub const DWRITE_FONT_FILE_TYPE_VECTOR = DWRITE_FONT_FILE_TYPE.VECTOR;
pub const DWRITE_FONT_FILE_TYPE_BITMAP = DWRITE_FONT_FILE_TYPE.BITMAP;
pub const DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FILE_TYPE.OPENTYPE_COLLECTION;
pub const DWRITE_FONT_FACE_TYPE = enum(i32) {
CFF = 0,
TRUETYPE = 1,
OPENTYPE_COLLECTION = 2,
TYPE1 = 3,
VECTOR = 4,
BITMAP = 5,
UNKNOWN = 6,
RAW_CFF = 7,
// TRUETYPE_COLLECTION = 2, this enum value conflicts with OPENTYPE_COLLECTION
};
pub const DWRITE_FONT_FACE_TYPE_CFF = DWRITE_FONT_FACE_TYPE.CFF;
pub const DWRITE_FONT_FACE_TYPE_TRUETYPE = DWRITE_FONT_FACE_TYPE.TRUETYPE;
pub const DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION = DWRITE_FONT_FACE_TYPE.OPENTYPE_COLLECTION;
pub const DWRITE_FONT_FACE_TYPE_TYPE1 = DWRITE_FONT_FACE_TYPE.TYPE1;
pub const DWRITE_FONT_FACE_TYPE_VECTOR = DWRITE_FONT_FACE_TYPE.VECTOR;
pub const DWRITE_FONT_FACE_TYPE_BITMAP = DWRITE_FONT_FACE_TYPE.BITMAP;
pub const DWRITE_FONT_FACE_TYPE_UNKNOWN = DWRITE_FONT_FACE_TYPE.UNKNOWN;
pub const DWRITE_FONT_FACE_TYPE_RAW_CFF = DWRITE_FONT_FACE_TYPE.RAW_CFF;
pub const DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FACE_TYPE.OPENTYPE_COLLECTION;
pub const DWRITE_FONT_SIMULATIONS = enum(u32) {
NONE = 0,
BOLD = 1,
OBLIQUE = 2,
_,
pub fn initFlags(o: struct {
NONE: u1 = 0,
BOLD: u1 = 0,
OBLIQUE: u1 = 0,
}) DWRITE_FONT_SIMULATIONS {
return @as(DWRITE_FONT_SIMULATIONS, @enumFromInt(
(if (o.NONE == 1) @intFromEnum(DWRITE_FONT_SIMULATIONS.NONE) else 0)
| (if (o.BOLD == 1) @intFromEnum(DWRITE_FONT_SIMULATIONS.BOLD) else 0)
| (if (o.OBLIQUE == 1) @intFromEnum(DWRITE_FONT_SIMULATIONS.OBLIQUE) else 0)
));
}
};
pub const DWRITE_FONT_SIMULATIONS_NONE = DWRITE_FONT_SIMULATIONS.NONE;
pub const DWRITE_FONT_SIMULATIONS_BOLD = DWRITE_FONT_SIMULATIONS.BOLD;
pub const DWRITE_FONT_SIMULATIONS_OBLIQUE = DWRITE_FONT_SIMULATIONS.OBLIQUE;
pub const DWRITE_FONT_WEIGHT = enum(i32) {
THIN = 100,
EXTRA_LIGHT = 200,
// ULTRA_LIGHT = 200, this enum value conflicts with EXTRA_LIGHT
LIGHT = 300,
SEMI_LIGHT = 350,
NORMAL = 400,
// REGULAR = 400, this enum value conflicts with NORMAL
MEDIUM = 500,
DEMI_BOLD = 600,
// SEMI_BOLD = 600, this enum value conflicts with DEMI_BOLD
BOLD = 700,
EXTRA_BOLD = 800,
// ULTRA_BOLD = 800, this enum value conflicts with EXTRA_BOLD
BLACK = 900,
// HEAVY = 900, this enum value conflicts with BLACK
EXTRA_BLACK = 950,
// ULTRA_BLACK = 950, this enum value conflicts with EXTRA_BLACK
};
pub const DWRITE_FONT_WEIGHT_THIN = DWRITE_FONT_WEIGHT.THIN;
pub const DWRITE_FONT_WEIGHT_EXTRA_LIGHT = DWRITE_FONT_WEIGHT.EXTRA_LIGHT;
pub const DWRITE_FONT_WEIGHT_ULTRA_LIGHT = DWRITE_FONT_WEIGHT.EXTRA_LIGHT;
pub const DWRITE_FONT_WEIGHT_LIGHT = DWRITE_FONT_WEIGHT.LIGHT;
pub const DWRITE_FONT_WEIGHT_SEMI_LIGHT = DWRITE_FONT_WEIGHT.SEMI_LIGHT;
pub const DWRITE_FONT_WEIGHT_NORMAL = DWRITE_FONT_WEIGHT.NORMAL;
pub const DWRITE_FONT_WEIGHT_REGULAR = DWRITE_FONT_WEIGHT.NORMAL;
pub const DWRITE_FONT_WEIGHT_MEDIUM = DWRITE_FONT_WEIGHT.MEDIUM;
pub const DWRITE_FONT_WEIGHT_DEMI_BOLD = DWRITE_FONT_WEIGHT.DEMI_BOLD;
pub const DWRITE_FONT_WEIGHT_SEMI_BOLD = DWRITE_FONT_WEIGHT.DEMI_BOLD;
pub const DWRITE_FONT_WEIGHT_BOLD = DWRITE_FONT_WEIGHT.BOLD;
pub const DWRITE_FONT_WEIGHT_EXTRA_BOLD = DWRITE_FONT_WEIGHT.EXTRA_BOLD;
pub const DWRITE_FONT_WEIGHT_ULTRA_BOLD = DWRITE_FONT_WEIGHT.EXTRA_BOLD;
pub const DWRITE_FONT_WEIGHT_BLACK = DWRITE_FONT_WEIGHT.BLACK;
pub const DWRITE_FONT_WEIGHT_HEAVY = DWRITE_FONT_WEIGHT.BLACK;
pub const DWRITE_FONT_WEIGHT_EXTRA_BLACK = DWRITE_FONT_WEIGHT.EXTRA_BLACK;
pub const DWRITE_FONT_WEIGHT_ULTRA_BLACK = DWRITE_FONT_WEIGHT.EXTRA_BLACK;
pub const DWRITE_FONT_STRETCH = enum(i32) {
UNDEFINED = 0,
ULTRA_CONDENSED = 1,
EXTRA_CONDENSED = 2,
CONDENSED = 3,
SEMI_CONDENSED = 4,
NORMAL = 5,
// MEDIUM = 5, this enum value conflicts with NORMAL
SEMI_EXPANDED = 6,
EXPANDED = 7,
EXTRA_EXPANDED = 8,
ULTRA_EXPANDED = 9,
};
pub const DWRITE_FONT_STRETCH_UNDEFINED = DWRITE_FONT_STRETCH.UNDEFINED;
pub const DWRITE_FONT_STRETCH_ULTRA_CONDENSED = DWRITE_FONT_STRETCH.ULTRA_CONDENSED;
pub const DWRITE_FONT_STRETCH_EXTRA_CONDENSED = DWRITE_FONT_STRETCH.EXTRA_CONDENSED;
pub const DWRITE_FONT_STRETCH_CONDENSED = DWRITE_FONT_STRETCH.CONDENSED;
pub const DWRITE_FONT_STRETCH_SEMI_CONDENSED = DWRITE_FONT_STRETCH.SEMI_CONDENSED;
pub const DWRITE_FONT_STRETCH_NORMAL = DWRITE_FONT_STRETCH.NORMAL;
pub const DWRITE_FONT_STRETCH_MEDIUM = DWRITE_FONT_STRETCH.NORMAL;
pub const DWRITE_FONT_STRETCH_SEMI_EXPANDED = DWRITE_FONT_STRETCH.SEMI_EXPANDED;
pub const DWRITE_FONT_STRETCH_EXPANDED = DWRITE_FONT_STRETCH.EXPANDED;
pub const DWRITE_FONT_STRETCH_EXTRA_EXPANDED = DWRITE_FONT_STRETCH.EXTRA_EXPANDED;
pub const DWRITE_FONT_STRETCH_ULTRA_EXPANDED = DWRITE_FONT_STRETCH.ULTRA_EXPANDED;
pub const DWRITE_FONT_STYLE = enum(i32) {
NORMAL = 0,
OBLIQUE = 1,
ITALIC = 2,
};
pub const DWRITE_FONT_STYLE_NORMAL = DWRITE_FONT_STYLE.NORMAL;
pub const DWRITE_FONT_STYLE_OBLIQUE = DWRITE_FONT_STYLE.OBLIQUE;
pub const DWRITE_FONT_STYLE_ITALIC = DWRITE_FONT_STYLE.ITALIC;
pub const DWRITE_INFORMATIONAL_STRING_ID = enum(i32) {
NONE = 0,
COPYRIGHT_NOTICE = 1,
VERSION_STRINGS = 2,
TRADEMARK = 3,
MANUFACTURER = 4,
DESIGNER = 5,
DESIGNER_URL = 6,
DESCRIPTION = 7,
FONT_VENDOR_URL = 8,
LICENSE_DESCRIPTION = 9,
LICENSE_INFO_URL = 10,
WIN32_FAMILY_NAMES = 11,
WIN32_SUBFAMILY_NAMES = 12,
TYPOGRAPHIC_FAMILY_NAMES = 13,
TYPOGRAPHIC_SUBFAMILY_NAMES = 14,
SAMPLE_TEXT = 15,
FULL_NAME = 16,
POSTSCRIPT_NAME = 17,
POSTSCRIPT_CID_NAME = 18,
WEIGHT_STRETCH_STYLE_FAMILY_NAME = 19,
DESIGN_SCRIPT_LANGUAGE_TAG = 20,
SUPPORTED_SCRIPT_LANGUAGE_TAG = 21,
// PREFERRED_FAMILY_NAMES = 13, this enum value conflicts with TYPOGRAPHIC_FAMILY_NAMES
// PREFERRED_SUBFAMILY_NAMES = 14, this enum value conflicts with TYPOGRAPHIC_SUBFAMILY_NAMES
// WWS_FAMILY_NAME = 19, this enum value conflicts with WEIGHT_STRETCH_STYLE_FAMILY_NAME
};
pub const DWRITE_INFORMATIONAL_STRING_NONE = DWRITE_INFORMATIONAL_STRING_ID.NONE;
pub const DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE = DWRITE_INFORMATIONAL_STRING_ID.COPYRIGHT_NOTICE;
pub const DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS = DWRITE_INFORMATIONAL_STRING_ID.VERSION_STRINGS;
pub const DWRITE_INFORMATIONAL_STRING_TRADEMARK = DWRITE_INFORMATIONAL_STRING_ID.TRADEMARK;
pub const DWRITE_INFORMATIONAL_STRING_MANUFACTURER = DWRITE_INFORMATIONAL_STRING_ID.MANUFACTURER;
pub const DWRITE_INFORMATIONAL_STRING_DESIGNER = DWRITE_INFORMATIONAL_STRING_ID.DESIGNER;
pub const DWRITE_INFORMATIONAL_STRING_DESIGNER_URL = DWRITE_INFORMATIONAL_STRING_ID.DESIGNER_URL;
pub const DWRITE_INFORMATIONAL_STRING_DESCRIPTION = DWRITE_INFORMATIONAL_STRING_ID.DESCRIPTION;
pub const DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL = DWRITE_INFORMATIONAL_STRING_ID.FONT_VENDOR_URL;
pub const DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION = DWRITE_INFORMATIONAL_STRING_ID.LICENSE_DESCRIPTION;
pub const DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL = DWRITE_INFORMATIONAL_STRING_ID.LICENSE_INFO_URL;
pub const DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_ID.WIN32_FAMILY_NAMES;
pub const DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_ID.WIN32_SUBFAMILY_NAMES;
pub const DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_ID.TYPOGRAPHIC_FAMILY_NAMES;
pub const DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_ID.TYPOGRAPHIC_SUBFAMILY_NAMES;
pub const DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT = DWRITE_INFORMATIONAL_STRING_ID.SAMPLE_TEXT;
pub const DWRITE_INFORMATIONAL_STRING_FULL_NAME = DWRITE_INFORMATIONAL_STRING_ID.FULL_NAME;
pub const DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME = DWRITE_INFORMATIONAL_STRING_ID.POSTSCRIPT_NAME;
pub const DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME = DWRITE_INFORMATIONAL_STRING_ID.POSTSCRIPT_CID_NAME;
pub const DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME = DWRITE_INFORMATIONAL_STRING_ID.WEIGHT_STRETCH_STYLE_FAMILY_NAME;
pub const DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG = DWRITE_INFORMATIONAL_STRING_ID.DESIGN_SCRIPT_LANGUAGE_TAG;
pub const DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG = DWRITE_INFORMATIONAL_STRING_ID.SUPPORTED_SCRIPT_LANGUAGE_TAG;
pub const DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_ID.TYPOGRAPHIC_FAMILY_NAMES;
pub const DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_ID.TYPOGRAPHIC_SUBFAMILY_NAMES;
pub const DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME = DWRITE_INFORMATIONAL_STRING_ID.WEIGHT_STRETCH_STYLE_FAMILY_NAME;
pub const DWRITE_FONT_METRICS = extern struct {
designUnitsPerEm: u16,
ascent: u16,
descent: u16,
lineGap: i16,
capHeight: u16,
xHeight: u16,
underlinePosition: i16,
underlineThickness: u16,
strikethroughPosition: i16,
strikethroughThickness: u16,
};
pub const DWRITE_GLYPH_METRICS = extern struct {
leftSideBearing: i32,
advanceWidth: u32,
rightSideBearing: i32,
topSideBearing: i32,
advanceHeight: u32,
bottomSideBearing: i32,
verticalOriginY: i32,
};
pub const DWRITE_GLYPH_OFFSET = extern struct {
advanceOffset: f32,
ascenderOffset: f32,
};
pub const DWRITE_FACTORY_TYPE = enum(i32) {
SHARED = 0,
ISOLATED = 1,
};
pub const DWRITE_FACTORY_TYPE_SHARED = DWRITE_FACTORY_TYPE.SHARED;
pub const DWRITE_FACTORY_TYPE_ISOLATED = DWRITE_FACTORY_TYPE.ISOLATED;
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteFontFileLoader_Value = Guid.initString("727cad4e-d6af-4c9e-8a08-d695b11caa49");
pub const IID_IDWriteFontFileLoader = &IID_IDWriteFontFileLoader_Value;
pub const IDWriteFontFileLoader = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
CreateStreamFromKey: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFileLoader,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
fontFileStream: ?*?*IDWriteFontFileStream,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFileLoader,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
fontFileStream: ?*?*IDWriteFontFileStream,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFileLoader_CreateStreamFromKey(self: *const T, fontFileReferenceKey: ?*const anyopaque, fontFileReferenceKeySize: u32, fontFileStream: ?*?*IDWriteFontFileStream) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFileLoader.VTable, @ptrCast(self.vtable)).CreateStreamFromKey(@as(*const IDWriteFontFileLoader, @ptrCast(self)), fontFileReferenceKey, fontFileReferenceKeySize, fontFileStream);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteLocalFontFileLoader_Value = Guid.initString("b2d9f3ec-c9fe-4a11-a2ec-d86208f7c0a2");
pub const IID_IDWriteLocalFontFileLoader = &IID_IDWriteLocalFontFileLoader_Value;
pub const IDWriteLocalFontFileLoader = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFileLoader.VTable,
GetFilePathLengthFromKey: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteLocalFontFileLoader,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
filePathLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteLocalFontFileLoader,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
filePathLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFilePathFromKey: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteLocalFontFileLoader,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
filePath: [*:0]u16,
filePathSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteLocalFontFileLoader,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
filePath: [*:0]u16,
filePathSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLastWriteTimeFromKey: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteLocalFontFileLoader,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
lastWriteTime: ?*FILETIME,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteLocalFontFileLoader,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
lastWriteTime: ?*FILETIME,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFileLoader.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteLocalFontFileLoader_GetFilePathLengthFromKey(self: *const T, fontFileReferenceKey: ?*const anyopaque, fontFileReferenceKeySize: u32, filePathLength: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteLocalFontFileLoader.VTable, @ptrCast(self.vtable)).GetFilePathLengthFromKey(@as(*const IDWriteLocalFontFileLoader, @ptrCast(self)), fontFileReferenceKey, fontFileReferenceKeySize, filePathLength);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteLocalFontFileLoader_GetFilePathFromKey(self: *const T, fontFileReferenceKey: ?*const anyopaque, fontFileReferenceKeySize: u32, filePath: [*:0]u16, filePathSize: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteLocalFontFileLoader.VTable, @ptrCast(self.vtable)).GetFilePathFromKey(@as(*const IDWriteLocalFontFileLoader, @ptrCast(self)), fontFileReferenceKey, fontFileReferenceKeySize, filePath, filePathSize);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteLocalFontFileLoader_GetLastWriteTimeFromKey(self: *const T, fontFileReferenceKey: ?*const anyopaque, fontFileReferenceKeySize: u32, lastWriteTime: ?*FILETIME) callconv(.Inline) HRESULT {
return @as(*const IDWriteLocalFontFileLoader.VTable, @ptrCast(self.vtable)).GetLastWriteTimeFromKey(@as(*const IDWriteLocalFontFileLoader, @ptrCast(self)), fontFileReferenceKey, fontFileReferenceKeySize, lastWriteTime);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteFontFileStream_Value = Guid.initString("6d4865fe-0ab8-4d91-8f62-5dd6be34a3e0");
pub const IID_IDWriteFontFileStream = &IID_IDWriteFontFileStream_Value;
pub const IDWriteFontFileStream = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
ReadFileFragment: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFileStream,
fragmentStart: ?*const ?*anyopaque,
fileOffset: u64,
fragmentSize: u64,
fragmentContext: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFileStream,
fragmentStart: ?*const ?*anyopaque,
fileOffset: u64,
fragmentSize: u64,
fragmentContext: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
ReleaseFileFragment: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFileStream,
fragmentContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
self: *const IDWriteFontFileStream,
fragmentContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
},
GetFileSize: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFileStream,
fileSize: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFileStream,
fileSize: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLastWriteTime: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFileStream,
lastWriteTime: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFileStream,
lastWriteTime: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFileStream_ReadFileFragment(self: *const T, fragmentStart: ?*const ?*anyopaque, fileOffset: u64, fragmentSize: u64, fragmentContext: ?*?*anyopaque) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFileStream.VTable, @ptrCast(self.vtable)).ReadFileFragment(@as(*const IDWriteFontFileStream, @ptrCast(self)), fragmentStart, fileOffset, fragmentSize, fragmentContext);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFileStream_ReleaseFileFragment(self: *const T, fragmentContext: ?*anyopaque) callconv(.Inline) void {
return @as(*const IDWriteFontFileStream.VTable, @ptrCast(self.vtable)).ReleaseFileFragment(@as(*const IDWriteFontFileStream, @ptrCast(self)), fragmentContext);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFileStream_GetFileSize(self: *const T, fileSize: ?*u64) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFileStream.VTable, @ptrCast(self.vtable)).GetFileSize(@as(*const IDWriteFontFileStream, @ptrCast(self)), fileSize);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFileStream_GetLastWriteTime(self: *const T, lastWriteTime: ?*u64) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFileStream.VTable, @ptrCast(self.vtable)).GetLastWriteTime(@as(*const IDWriteFontFileStream, @ptrCast(self)), lastWriteTime);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteFontFile_Value = Guid.initString("739d886a-cef5-47dc-8769-1a8b41bebbb0");
pub const IID_IDWriteFontFile = &IID_IDWriteFontFile_Value;
pub const IDWriteFontFile = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetReferenceKey: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFile,
fontFileReferenceKey: ?*const ?*anyopaque,
fontFileReferenceKeySize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFile,
fontFileReferenceKey: ?*const ?*anyopaque,
fontFileReferenceKeySize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLoader: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFile,
fontFileLoader: ?*?*IDWriteFontFileLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFile,
fontFileLoader: ?*?*IDWriteFontFileLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Analyze: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFile,
isSupportedFontType: ?*BOOL,
fontFileType: ?*DWRITE_FONT_FILE_TYPE,
fontFaceType: ?*DWRITE_FONT_FACE_TYPE,
numberOfFaces: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFile,
isSupportedFontType: ?*BOOL,
fontFileType: ?*DWRITE_FONT_FILE_TYPE,
fontFaceType: ?*DWRITE_FONT_FACE_TYPE,
numberOfFaces: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFile_GetReferenceKey(self: *const T, fontFileReferenceKey: ?*const ?*anyopaque, fontFileReferenceKeySize: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFile.VTable, @ptrCast(self.vtable)).GetReferenceKey(@as(*const IDWriteFontFile, @ptrCast(self)), fontFileReferenceKey, fontFileReferenceKeySize);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFile_GetLoader(self: *const T, fontFileLoader: ?*?*IDWriteFontFileLoader) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFile.VTable, @ptrCast(self.vtable)).GetLoader(@as(*const IDWriteFontFile, @ptrCast(self)), fontFileLoader);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFile_Analyze(self: *const T, isSupportedFontType: ?*BOOL, fontFileType: ?*DWRITE_FONT_FILE_TYPE, fontFaceType: ?*DWRITE_FONT_FACE_TYPE, numberOfFaces: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFile.VTable, @ptrCast(self.vtable)).Analyze(@as(*const IDWriteFontFile, @ptrCast(self)), isSupportedFontType, fontFileType, fontFaceType, numberOfFaces);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_PIXEL_GEOMETRY = enum(i32) {
FLAT = 0,
RGB = 1,
BGR = 2,
};
pub const DWRITE_PIXEL_GEOMETRY_FLAT = DWRITE_PIXEL_GEOMETRY.FLAT;
pub const DWRITE_PIXEL_GEOMETRY_RGB = DWRITE_PIXEL_GEOMETRY.RGB;
pub const DWRITE_PIXEL_GEOMETRY_BGR = DWRITE_PIXEL_GEOMETRY.BGR;
pub const DWRITE_RENDERING_MODE = enum(i32) {
DEFAULT = 0,
ALIASED = 1,
GDI_CLASSIC = 2,
GDI_NATURAL = 3,
NATURAL = 4,
NATURAL_SYMMETRIC = 5,
OUTLINE = 6,
// CLEARTYPE_GDI_CLASSIC = 2, this enum value conflicts with GDI_CLASSIC
// CLEARTYPE_GDI_NATURAL = 3, this enum value conflicts with GDI_NATURAL
// CLEARTYPE_NATURAL = 4, this enum value conflicts with NATURAL
// CLEARTYPE_NATURAL_SYMMETRIC = 5, this enum value conflicts with NATURAL_SYMMETRIC
};
pub const DWRITE_RENDERING_MODE_DEFAULT = DWRITE_RENDERING_MODE.DEFAULT;
pub const DWRITE_RENDERING_MODE_ALIASED = DWRITE_RENDERING_MODE.ALIASED;
pub const DWRITE_RENDERING_MODE_GDI_CLASSIC = DWRITE_RENDERING_MODE.GDI_CLASSIC;
pub const DWRITE_RENDERING_MODE_GDI_NATURAL = DWRITE_RENDERING_MODE.GDI_NATURAL;
pub const DWRITE_RENDERING_MODE_NATURAL = DWRITE_RENDERING_MODE.NATURAL;
pub const DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE.NATURAL_SYMMETRIC;
pub const DWRITE_RENDERING_MODE_OUTLINE = DWRITE_RENDERING_MODE.OUTLINE;
pub const DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = DWRITE_RENDERING_MODE.GDI_CLASSIC;
pub const DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = DWRITE_RENDERING_MODE.GDI_NATURAL;
pub const DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = DWRITE_RENDERING_MODE.NATURAL;
pub const DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE.NATURAL_SYMMETRIC;
pub const DWRITE_MATRIX = extern struct {
m11: f32,
m12: f32,
m21: f32,
m22: f32,
dx: f32,
dy: f32,
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteRenderingParams_Value = Guid.initString("2f0da53a-2add-47cd-82ee-d9ec34688e75");
pub const IID_IDWriteRenderingParams = &IID_IDWriteRenderingParams_Value;
pub const IDWriteRenderingParams = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetGamma: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) f32,
else => *const fn(
self: *const IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) f32,
},
GetEnhancedContrast: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) f32,
else => *const fn(
self: *const IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) f32,
},
GetClearTypeLevel: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) f32,
else => *const fn(
self: *const IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) f32,
},
GetPixelGeometry: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) DWRITE_PIXEL_GEOMETRY,
else => *const fn(
self: *const IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) DWRITE_PIXEL_GEOMETRY,
},
GetRenderingMode: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) DWRITE_RENDERING_MODE,
else => *const fn(
self: *const IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) DWRITE_RENDERING_MODE,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRenderingParams_GetGamma(self: *const T) callconv(.Inline) f32 {
return @as(*const IDWriteRenderingParams.VTable, @ptrCast(self.vtable)).GetGamma(@as(*const IDWriteRenderingParams, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRenderingParams_GetEnhancedContrast(self: *const T) callconv(.Inline) f32 {
return @as(*const IDWriteRenderingParams.VTable, @ptrCast(self.vtable)).GetEnhancedContrast(@as(*const IDWriteRenderingParams, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRenderingParams_GetClearTypeLevel(self: *const T) callconv(.Inline) f32 {
return @as(*const IDWriteRenderingParams.VTable, @ptrCast(self.vtable)).GetClearTypeLevel(@as(*const IDWriteRenderingParams, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRenderingParams_GetPixelGeometry(self: *const T) callconv(.Inline) DWRITE_PIXEL_GEOMETRY {
return @as(*const IDWriteRenderingParams.VTable, @ptrCast(self.vtable)).GetPixelGeometry(@as(*const IDWriteRenderingParams, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRenderingParams_GetRenderingMode(self: *const T) callconv(.Inline) DWRITE_RENDERING_MODE {
return @as(*const IDWriteRenderingParams.VTable, @ptrCast(self.vtable)).GetRenderingMode(@as(*const IDWriteRenderingParams, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteFontFace_Value = Guid.initString("5f49804d-7024-4d43-bfa9-d25984f53849");
pub const IID_IDWriteFontFace = &IID_IDWriteFontFace_Value;
pub const IDWriteFontFace = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetType: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_FACE_TYPE,
else => *const fn(
self: *const IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_FACE_TYPE,
},
GetFiles: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
numberOfFiles: ?*u32,
fontFiles: ?[*]?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace,
numberOfFiles: ?*u32,
fontFiles: ?[*]?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetIndex: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetSimulations: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_SIMULATIONS,
else => *const fn(
self: *const IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_SIMULATIONS,
},
IsSymbolFont: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
GetMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
fontFaceMetrics: ?*DWRITE_FONT_METRICS,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
self: *const IDWriteFontFace,
fontFaceMetrics: ?*DWRITE_FONT_METRICS,
) callconv(@import("std").os.windows.WINAPI) void,
},
GetGlyphCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) u16,
else => *const fn(
self: *const IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) u16,
},
GetDesignGlyphMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
glyphIndices: [*:0]const u16,
glyphCount: u32,
glyphMetrics: [*]DWRITE_GLYPH_METRICS,
isSideways: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace,
glyphIndices: [*:0]const u16,
glyphCount: u32,
glyphMetrics: [*]DWRITE_GLYPH_METRICS,
isSideways: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetGlyphIndices: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
codePoints: [*]const u32,
codePointCount: u32,
glyphIndices: [*:0]u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace,
codePoints: [*]const u32,
codePointCount: u32,
glyphIndices: [*:0]u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
TryGetFontTable: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
openTypeTableTag: u32,
tableData: ?*const ?*anyopaque,
tableSize: ?*u32,
tableContext: ?*?*anyopaque,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace,
openTypeTableTag: u32,
tableData: ?*const ?*anyopaque,
tableSize: ?*u32,
tableContext: ?*?*anyopaque,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
ReleaseFontTable: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
tableContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
self: *const IDWriteFontFace,
tableContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
},
GetGlyphRunOutline: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
emSize: f32,
glyphIndices: [*:0]const u16,
glyphAdvances: ?[*]const f32,
glyphOffsets: ?[*]const DWRITE_GLYPH_OFFSET,
glyphCount: u32,
isSideways: BOOL,
isRightToLeft: BOOL,
geometrySink: ?*ID2D1SimplifiedGeometrySink,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace,
emSize: f32,
glyphIndices: [*:0]const u16,
glyphAdvances: ?[*]const f32,
glyphOffsets: ?[*]const DWRITE_GLYPH_OFFSET,
glyphCount: u32,
isSideways: BOOL,
isRightToLeft: BOOL,
geometrySink: ?*ID2D1SimplifiedGeometrySink,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetRecommendedRenderingMode: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
emSize: f32,
pixelsPerDip: f32,
measuringMode: DWRITE_MEASURING_MODE,
renderingParams: ?*IDWriteRenderingParams,
renderingMode: ?*DWRITE_RENDERING_MODE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace,
emSize: f32,
pixelsPerDip: f32,
measuringMode: DWRITE_MEASURING_MODE,
renderingParams: ?*IDWriteRenderingParams,
renderingMode: ?*DWRITE_RENDERING_MODE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetGdiCompatibleMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
emSize: f32,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
fontFaceMetrics: ?*DWRITE_FONT_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace,
emSize: f32,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
fontFaceMetrics: ?*DWRITE_FONT_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetGdiCompatibleGlyphMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace,
emSize: f32,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
useGdiNatural: BOOL,
glyphIndices: [*:0]const u16,
glyphCount: u32,
glyphMetrics: [*]DWRITE_GLYPH_METRICS,
isSideways: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace,
emSize: f32,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
useGdiNatural: BOOL,
glyphIndices: [*:0]const u16,
glyphCount: u32,
glyphMetrics: [*]DWRITE_GLYPH_METRICS,
isSideways: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_GetType(self: *const T) callconv(.Inline) DWRITE_FONT_FACE_TYPE {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).GetType(@as(*const IDWriteFontFace, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_GetFiles(self: *const T, numberOfFiles: ?*u32, fontFiles: ?[*]?*IDWriteFontFile) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).GetFiles(@as(*const IDWriteFontFace, @ptrCast(self)), numberOfFiles, fontFiles);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_GetIndex(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).GetIndex(@as(*const IDWriteFontFace, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_GetSimulations(self: *const T) callconv(.Inline) DWRITE_FONT_SIMULATIONS {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).GetSimulations(@as(*const IDWriteFontFace, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_IsSymbolFont(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).IsSymbolFont(@as(*const IDWriteFontFace, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_GetMetrics(self: *const T, fontFaceMetrics: ?*DWRITE_FONT_METRICS) callconv(.Inline) void {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).GetMetrics(@as(*const IDWriteFontFace, @ptrCast(self)), fontFaceMetrics);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_GetGlyphCount(self: *const T) callconv(.Inline) u16 {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).GetGlyphCount(@as(*const IDWriteFontFace, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_GetDesignGlyphMetrics(self: *const T, glyphIndices: [*:0]const u16, glyphCount: u32, glyphMetrics: [*]DWRITE_GLYPH_METRICS, isSideways: BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).GetDesignGlyphMetrics(@as(*const IDWriteFontFace, @ptrCast(self)), glyphIndices, glyphCount, glyphMetrics, isSideways);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_GetGlyphIndices(self: *const T, codePoints: [*]const u32, codePointCount: u32, glyphIndices: [*:0]u16) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).GetGlyphIndices(@as(*const IDWriteFontFace, @ptrCast(self)), codePoints, codePointCount, glyphIndices);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_TryGetFontTable(self: *const T, openTypeTableTag: u32, tableData: ?*const ?*anyopaque, tableSize: ?*u32, tableContext: ?*?*anyopaque, exists: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).TryGetFontTable(@as(*const IDWriteFontFace, @ptrCast(self)), openTypeTableTag, tableData, tableSize, tableContext, exists);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_ReleaseFontTable(self: *const T, tableContext: ?*anyopaque) callconv(.Inline) void {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).ReleaseFontTable(@as(*const IDWriteFontFace, @ptrCast(self)), tableContext);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_GetGlyphRunOutline(self: *const T, emSize: f32, glyphIndices: [*:0]const u16, glyphAdvances: ?[*]const f32, glyphOffsets: ?[*]const DWRITE_GLYPH_OFFSET, glyphCount: u32, isSideways: BOOL, isRightToLeft: BOOL, geometrySink: ?*ID2D1SimplifiedGeometrySink) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).GetGlyphRunOutline(@as(*const IDWriteFontFace, @ptrCast(self)), emSize, glyphIndices, glyphAdvances, glyphOffsets, glyphCount, isSideways, isRightToLeft, geometrySink);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_GetRecommendedRenderingMode(self: *const T, emSize: f32, pixelsPerDip: f32, measuringMode: DWRITE_MEASURING_MODE, renderingParams: ?*IDWriteRenderingParams, renderingMode: ?*DWRITE_RENDERING_MODE) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).GetRecommendedRenderingMode(@as(*const IDWriteFontFace, @ptrCast(self)), emSize, pixelsPerDip, measuringMode, renderingParams, renderingMode);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_GetGdiCompatibleMetrics(self: *const T, emSize: f32, pixelsPerDip: f32, transform: ?*const DWRITE_MATRIX, fontFaceMetrics: ?*DWRITE_FONT_METRICS) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).GetGdiCompatibleMetrics(@as(*const IDWriteFontFace, @ptrCast(self)), emSize, pixelsPerDip, transform, fontFaceMetrics);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace_GetGdiCompatibleGlyphMetrics(self: *const T, emSize: f32, pixelsPerDip: f32, transform: ?*const DWRITE_MATRIX, useGdiNatural: BOOL, glyphIndices: [*:0]const u16, glyphCount: u32, glyphMetrics: [*]DWRITE_GLYPH_METRICS, isSideways: BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace.VTable, @ptrCast(self.vtable)).GetGdiCompatibleGlyphMetrics(@as(*const IDWriteFontFace, @ptrCast(self)), emSize, pixelsPerDip, transform, useGdiNatural, glyphIndices, glyphCount, glyphMetrics, isSideways);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteFontCollectionLoader_Value = Guid.initString("cca920e4-52f0-492b-bfa8-29c72ee0a468");
pub const IID_IDWriteFontCollectionLoader = &IID_IDWriteFontCollectionLoader_Value;
pub const IDWriteFontCollectionLoader = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
CreateEnumeratorFromKey: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontCollectionLoader,
factory: ?*IDWriteFactory,
// TODO: what to do with BytesParamIndex 2?
collectionKey: ?*const anyopaque,
collectionKeySize: u32,
fontFileEnumerator: ?*?*IDWriteFontFileEnumerator,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontCollectionLoader,
factory: ?*IDWriteFactory,
// TODO: what to do with BytesParamIndex 2?
collectionKey: ?*const anyopaque,
collectionKeySize: u32,
fontFileEnumerator: ?*?*IDWriteFontFileEnumerator,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontCollectionLoader_CreateEnumeratorFromKey(self: *const T, factory: ?*IDWriteFactory, collectionKey: ?*const anyopaque, collectionKeySize: u32, fontFileEnumerator: ?*?*IDWriteFontFileEnumerator) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontCollectionLoader.VTable, @ptrCast(self.vtable)).CreateEnumeratorFromKey(@as(*const IDWriteFontCollectionLoader, @ptrCast(self)), factory, collectionKey, collectionKeySize, fontFileEnumerator);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteFontFileEnumerator_Value = Guid.initString("72755049-5ff7-435d-8348-4be97cfa6c7c");
pub const IID_IDWriteFontFileEnumerator = &IID_IDWriteFontFileEnumerator_Value;
pub const IDWriteFontFileEnumerator = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
MoveNext: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFileEnumerator,
hasCurrentFile: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFileEnumerator,
hasCurrentFile: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetCurrentFontFile: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFileEnumerator,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFileEnumerator,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFileEnumerator_MoveNext(self: *const T, hasCurrentFile: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFileEnumerator.VTable, @ptrCast(self.vtable)).MoveNext(@as(*const IDWriteFontFileEnumerator, @ptrCast(self)), hasCurrentFile);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFileEnumerator_GetCurrentFontFile(self: *const T, fontFile: ?*?*IDWriteFontFile) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFileEnumerator.VTable, @ptrCast(self.vtable)).GetCurrentFontFile(@as(*const IDWriteFontFileEnumerator, @ptrCast(self)), fontFile);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteLocalizedStrings_Value = Guid.initString("08256209-099a-4b34-b86d-c22b110e7771");
pub const IID_IDWriteLocalizedStrings = &IID_IDWriteLocalizedStrings_Value;
pub const IDWriteLocalizedStrings = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) u32,
},
FindLocaleName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteLocalizedStrings,
localeName: ?[*:0]const u16,
index: ?*u32,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteLocalizedStrings,
localeName: ?[*:0]const u16,
index: ?*u32,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLocaleNameLength: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteLocalizedStrings,
index: u32,
length: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteLocalizedStrings,
index: u32,
length: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLocaleName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteLocalizedStrings,
index: u32,
localeName: [*:0]u16,
size: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteLocalizedStrings,
index: u32,
localeName: [*:0]u16,
size: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetStringLength: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteLocalizedStrings,
index: u32,
length: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteLocalizedStrings,
index: u32,
length: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetString: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteLocalizedStrings,
index: u32,
stringBuffer: [*:0]u16,
size: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteLocalizedStrings,
index: u32,
stringBuffer: [*:0]u16,
size: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteLocalizedStrings_GetCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteLocalizedStrings.VTable, @ptrCast(self.vtable)).GetCount(@as(*const IDWriteLocalizedStrings, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteLocalizedStrings_FindLocaleName(self: *const T, localeName: ?[*:0]const u16, index: ?*u32, exists: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteLocalizedStrings.VTable, @ptrCast(self.vtable)).FindLocaleName(@as(*const IDWriteLocalizedStrings, @ptrCast(self)), localeName, index, exists);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteLocalizedStrings_GetLocaleNameLength(self: *const T, index: u32, length: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteLocalizedStrings.VTable, @ptrCast(self.vtable)).GetLocaleNameLength(@as(*const IDWriteLocalizedStrings, @ptrCast(self)), index, length);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteLocalizedStrings_GetLocaleName(self: *const T, index: u32, localeName: [*:0]u16, size: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteLocalizedStrings.VTable, @ptrCast(self.vtable)).GetLocaleName(@as(*const IDWriteLocalizedStrings, @ptrCast(self)), index, localeName, size);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteLocalizedStrings_GetStringLength(self: *const T, index: u32, length: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteLocalizedStrings.VTable, @ptrCast(self.vtable)).GetStringLength(@as(*const IDWriteLocalizedStrings, @ptrCast(self)), index, length);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteLocalizedStrings_GetString(self: *const T, index: u32, stringBuffer: [*:0]u16, size: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteLocalizedStrings.VTable, @ptrCast(self.vtable)).GetString(@as(*const IDWriteLocalizedStrings, @ptrCast(self)), index, stringBuffer, size);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteFontCollection_Value = Guid.initString("a84cee02-3eea-4eee-a827-87c1a02a0fcc");
pub const IID_IDWriteFontCollection = &IID_IDWriteFontCollection_Value;
pub const IDWriteFontCollection = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetFontFamilyCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontCollection,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontCollection,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetFontFamily: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontCollection,
index: u32,
fontFamily: ?*?*IDWriteFontFamily,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontCollection,
index: u32,
fontFamily: ?*?*IDWriteFontFamily,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
FindFamilyName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontCollection,
familyName: ?[*:0]const u16,
index: ?*u32,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontCollection,
familyName: ?[*:0]const u16,
index: ?*u32,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFromFontFace: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontCollection,
fontFace: ?*IDWriteFontFace,
font: ?*?*IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontCollection,
fontFace: ?*IDWriteFontFace,
font: ?*?*IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontCollection_GetFontFamilyCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteFontCollection.VTable, @ptrCast(self.vtable)).GetFontFamilyCount(@as(*const IDWriteFontCollection, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontCollection_GetFontFamily(self: *const T, index: u32, fontFamily: ?*?*IDWriteFontFamily) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontCollection.VTable, @ptrCast(self.vtable)).GetFontFamily(@as(*const IDWriteFontCollection, @ptrCast(self)), index, fontFamily);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontCollection_FindFamilyName(self: *const T, familyName: ?[*:0]const u16, index: ?*u32, exists: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontCollection.VTable, @ptrCast(self.vtable)).FindFamilyName(@as(*const IDWriteFontCollection, @ptrCast(self)), familyName, index, exists);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontCollection_GetFontFromFontFace(self: *const T, fontFace: ?*IDWriteFontFace, font: ?*?*IDWriteFont) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontCollection.VTable, @ptrCast(self.vtable)).GetFontFromFontFace(@as(*const IDWriteFontCollection, @ptrCast(self)), fontFace, font);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteFontList_Value = Guid.initString("1a0d8438-1d97-4ec1-aef9-a2fb86ed6acb");
pub const IID_IDWriteFontList = &IID_IDWriteFontList_Value;
pub const IDWriteFontList = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetFontCollection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontList,
fontCollection: ?*?*IDWriteFontCollection,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontList,
fontCollection: ?*?*IDWriteFontCollection,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontList,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontList,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetFont: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontList,
index: u32,
font: ?*?*IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontList,
index: u32,
font: ?*?*IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontList_GetFontCollection(self: *const T, fontCollection: ?*?*IDWriteFontCollection) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontList.VTable, @ptrCast(self.vtable)).GetFontCollection(@as(*const IDWriteFontList, @ptrCast(self)), fontCollection);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontList_GetFontCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteFontList.VTable, @ptrCast(self.vtable)).GetFontCount(@as(*const IDWriteFontList, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontList_GetFont(self: *const T, index: u32, font: ?*?*IDWriteFont) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontList.VTable, @ptrCast(self.vtable)).GetFont(@as(*const IDWriteFontList, @ptrCast(self)), index, font);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteFontFamily_Value = Guid.initString("da20d8ef-812a-4c43-9802-62ec4abd7add");
pub const IID_IDWriteFontFamily = &IID_IDWriteFontFamily_Value;
pub const IDWriteFontFamily = extern struct {
pub const VTable = extern struct {
base: IDWriteFontList.VTable,
GetFamilyNames: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFamily,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFamily,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFirstMatchingFont: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFamily,
weight: DWRITE_FONT_WEIGHT,
stretch: DWRITE_FONT_STRETCH,
style: DWRITE_FONT_STYLE,
matchingFont: ?*?*IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFamily,
weight: DWRITE_FONT_WEIGHT,
stretch: DWRITE_FONT_STRETCH,
style: DWRITE_FONT_STYLE,
matchingFont: ?*?*IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetMatchingFonts: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFamily,
weight: DWRITE_FONT_WEIGHT,
stretch: DWRITE_FONT_STRETCH,
style: DWRITE_FONT_STYLE,
matchingFonts: ?*?*IDWriteFontList,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFamily,
weight: DWRITE_FONT_WEIGHT,
stretch: DWRITE_FONT_STRETCH,
style: DWRITE_FONT_STYLE,
matchingFonts: ?*?*IDWriteFontList,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontList.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFamily_GetFamilyNames(self: *const T, names: ?*?*IDWriteLocalizedStrings) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFamily.VTable, @ptrCast(self.vtable)).GetFamilyNames(@as(*const IDWriteFontFamily, @ptrCast(self)), names);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFamily_GetFirstMatchingFont(self: *const T, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE, matchingFont: ?*?*IDWriteFont) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFamily.VTable, @ptrCast(self.vtable)).GetFirstMatchingFont(@as(*const IDWriteFontFamily, @ptrCast(self)), weight, stretch, style, matchingFont);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFamily_GetMatchingFonts(self: *const T, weight: DWRITE_FONT_WEIGHT, stretch: DWRITE_FONT_STRETCH, style: DWRITE_FONT_STYLE, matchingFonts: ?*?*IDWriteFontList) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFamily.VTable, @ptrCast(self.vtable)).GetMatchingFonts(@as(*const IDWriteFontFamily, @ptrCast(self)), weight, stretch, style, matchingFonts);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteFont_Value = Guid.initString("acd16696-8c14-4f5d-877e-fe3fc1d32737");
pub const IID_IDWriteFont = &IID_IDWriteFont_Value;
pub const IDWriteFont = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetFontFamily: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont,
fontFamily: ?*?*IDWriteFontFamily,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFont,
fontFamily: ?*?*IDWriteFontFamily,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetWeight: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_WEIGHT,
else => *const fn(
self: *const IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_WEIGHT,
},
GetStretch: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_STRETCH,
else => *const fn(
self: *const IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_STRETCH,
},
GetStyle: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_STYLE,
else => *const fn(
self: *const IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_STYLE,
},
IsSymbolFont: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
GetFaceNames: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFont,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetInformationalStrings: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont,
informationalStringID: DWRITE_INFORMATIONAL_STRING_ID,
informationalStrings: ?*?*IDWriteLocalizedStrings,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFont,
informationalStringID: DWRITE_INFORMATIONAL_STRING_ID,
informationalStrings: ?*?*IDWriteLocalizedStrings,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSimulations: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_SIMULATIONS,
else => *const fn(
self: *const IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_SIMULATIONS,
},
GetMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont,
fontMetrics: ?*DWRITE_FONT_METRICS,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
self: *const IDWriteFont,
fontMetrics: ?*DWRITE_FONT_METRICS,
) callconv(@import("std").os.windows.WINAPI) void,
},
HasCharacter: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont,
unicodeValue: u32,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFont,
unicodeValue: u32,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontFace: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont,
fontFace: ?*?*IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFont,
fontFace: ?*?*IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont_GetFontFamily(self: *const T, fontFamily: ?*?*IDWriteFontFamily) callconv(.Inline) HRESULT {
return @as(*const IDWriteFont.VTable, @ptrCast(self.vtable)).GetFontFamily(@as(*const IDWriteFont, @ptrCast(self)), fontFamily);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont_GetWeight(self: *const T) callconv(.Inline) DWRITE_FONT_WEIGHT {
return @as(*const IDWriteFont.VTable, @ptrCast(self.vtable)).GetWeight(@as(*const IDWriteFont, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont_GetStretch(self: *const T) callconv(.Inline) DWRITE_FONT_STRETCH {
return @as(*const IDWriteFont.VTable, @ptrCast(self.vtable)).GetStretch(@as(*const IDWriteFont, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont_GetStyle(self: *const T) callconv(.Inline) DWRITE_FONT_STYLE {
return @as(*const IDWriteFont.VTable, @ptrCast(self.vtable)).GetStyle(@as(*const IDWriteFont, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont_IsSymbolFont(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteFont.VTable, @ptrCast(self.vtable)).IsSymbolFont(@as(*const IDWriteFont, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont_GetFaceNames(self: *const T, names: ?*?*IDWriteLocalizedStrings) callconv(.Inline) HRESULT {
return @as(*const IDWriteFont.VTable, @ptrCast(self.vtable)).GetFaceNames(@as(*const IDWriteFont, @ptrCast(self)), names);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont_GetInformationalStrings(self: *const T, informationalStringID: DWRITE_INFORMATIONAL_STRING_ID, informationalStrings: ?*?*IDWriteLocalizedStrings, exists: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFont.VTable, @ptrCast(self.vtable)).GetInformationalStrings(@as(*const IDWriteFont, @ptrCast(self)), informationalStringID, informationalStrings, exists);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont_GetSimulations(self: *const T) callconv(.Inline) DWRITE_FONT_SIMULATIONS {
return @as(*const IDWriteFont.VTable, @ptrCast(self.vtable)).GetSimulations(@as(*const IDWriteFont, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont_GetMetrics(self: *const T, fontMetrics: ?*DWRITE_FONT_METRICS) callconv(.Inline) void {
return @as(*const IDWriteFont.VTable, @ptrCast(self.vtable)).GetMetrics(@as(*const IDWriteFont, @ptrCast(self)), fontMetrics);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont_HasCharacter(self: *const T, unicodeValue: u32, exists: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFont.VTable, @ptrCast(self.vtable)).HasCharacter(@as(*const IDWriteFont, @ptrCast(self)), unicodeValue, exists);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont_CreateFontFace(self: *const T, fontFace: ?*?*IDWriteFontFace) callconv(.Inline) HRESULT {
return @as(*const IDWriteFont.VTable, @ptrCast(self.vtable)).CreateFontFace(@as(*const IDWriteFont, @ptrCast(self)), fontFace);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_READING_DIRECTION = enum(i32) {
LEFT_TO_RIGHT = 0,
RIGHT_TO_LEFT = 1,
TOP_TO_BOTTOM = 2,
BOTTOM_TO_TOP = 3,
};
pub const DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = DWRITE_READING_DIRECTION.LEFT_TO_RIGHT;
pub const DWRITE_READING_DIRECTION_RIGHT_TO_LEFT = DWRITE_READING_DIRECTION.RIGHT_TO_LEFT;
pub const DWRITE_READING_DIRECTION_TOP_TO_BOTTOM = DWRITE_READING_DIRECTION.TOP_TO_BOTTOM;
pub const DWRITE_READING_DIRECTION_BOTTOM_TO_TOP = DWRITE_READING_DIRECTION.BOTTOM_TO_TOP;
pub const DWRITE_FLOW_DIRECTION = enum(i32) {
TOP_TO_BOTTOM = 0,
BOTTOM_TO_TOP = 1,
LEFT_TO_RIGHT = 2,
RIGHT_TO_LEFT = 3,
};
pub const DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM = DWRITE_FLOW_DIRECTION.TOP_TO_BOTTOM;
pub const DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP = DWRITE_FLOW_DIRECTION.BOTTOM_TO_TOP;
pub const DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT = DWRITE_FLOW_DIRECTION.LEFT_TO_RIGHT;
pub const DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT = DWRITE_FLOW_DIRECTION.RIGHT_TO_LEFT;
pub const DWRITE_TEXT_ALIGNMENT = enum(i32) {
LEADING = 0,
TRAILING = 1,
CENTER = 2,
JUSTIFIED = 3,
};
pub const DWRITE_TEXT_ALIGNMENT_LEADING = DWRITE_TEXT_ALIGNMENT.LEADING;
pub const DWRITE_TEXT_ALIGNMENT_TRAILING = DWRITE_TEXT_ALIGNMENT.TRAILING;
pub const DWRITE_TEXT_ALIGNMENT_CENTER = DWRITE_TEXT_ALIGNMENT.CENTER;
pub const DWRITE_TEXT_ALIGNMENT_JUSTIFIED = DWRITE_TEXT_ALIGNMENT.JUSTIFIED;
pub const DWRITE_PARAGRAPH_ALIGNMENT = enum(i32) {
NEAR = 0,
FAR = 1,
CENTER = 2,
};
pub const DWRITE_PARAGRAPH_ALIGNMENT_NEAR = DWRITE_PARAGRAPH_ALIGNMENT.NEAR;
pub const DWRITE_PARAGRAPH_ALIGNMENT_FAR = DWRITE_PARAGRAPH_ALIGNMENT.FAR;
pub const DWRITE_PARAGRAPH_ALIGNMENT_CENTER = DWRITE_PARAGRAPH_ALIGNMENT.CENTER;
pub const DWRITE_WORD_WRAPPING = enum(i32) {
WRAP = 0,
NO_WRAP = 1,
EMERGENCY_BREAK = 2,
WHOLE_WORD = 3,
CHARACTER = 4,
};
pub const DWRITE_WORD_WRAPPING_WRAP = DWRITE_WORD_WRAPPING.WRAP;
pub const DWRITE_WORD_WRAPPING_NO_WRAP = DWRITE_WORD_WRAPPING.NO_WRAP;
pub const DWRITE_WORD_WRAPPING_EMERGENCY_BREAK = DWRITE_WORD_WRAPPING.EMERGENCY_BREAK;
pub const DWRITE_WORD_WRAPPING_WHOLE_WORD = DWRITE_WORD_WRAPPING.WHOLE_WORD;
pub const DWRITE_WORD_WRAPPING_CHARACTER = DWRITE_WORD_WRAPPING.CHARACTER;
pub const DWRITE_LINE_SPACING_METHOD = enum(i32) {
DEFAULT = 0,
UNIFORM = 1,
PROPORTIONAL = 2,
};
pub const DWRITE_LINE_SPACING_METHOD_DEFAULT = DWRITE_LINE_SPACING_METHOD.DEFAULT;
pub const DWRITE_LINE_SPACING_METHOD_UNIFORM = DWRITE_LINE_SPACING_METHOD.UNIFORM;
pub const DWRITE_LINE_SPACING_METHOD_PROPORTIONAL = DWRITE_LINE_SPACING_METHOD.PROPORTIONAL;
pub const DWRITE_TRIMMING_GRANULARITY = enum(i32) {
NONE = 0,
CHARACTER = 1,
WORD = 2,
};
pub const DWRITE_TRIMMING_GRANULARITY_NONE = DWRITE_TRIMMING_GRANULARITY.NONE;
pub const DWRITE_TRIMMING_GRANULARITY_CHARACTER = DWRITE_TRIMMING_GRANULARITY.CHARACTER;
pub const DWRITE_TRIMMING_GRANULARITY_WORD = DWRITE_TRIMMING_GRANULARITY.WORD;
pub const DWRITE_FONT_FEATURE_TAG = enum(u32) {
ALTERNATIVE_FRACTIONS = 1668441697,
PETITE_CAPITALS_FROM_CAPITALS = 1668297315,
SMALL_CAPITALS_FROM_CAPITALS = 1668493923,
CONTEXTUAL_ALTERNATES = 1953259875,
CASE_SENSITIVE_FORMS = 1702060387,
GLYPH_COMPOSITION_DECOMPOSITION = 1886217059,
CONTEXTUAL_LIGATURES = 1734962275,
CAPITAL_SPACING = 1886613603,
CONTEXTUAL_SWASH = 1752658787,
CURSIVE_POSITIONING = 1936880995,
DEFAULT = 1953261156,
DISCRETIONARY_LIGATURES = 1734962276,
EXPERT_FORMS = 1953527909,
FRACTIONS = 1667330662,
FULL_WIDTH = 1684633446,
HALF_FORMS = 1718378856,
HALANT_FORMS = 1852596584,
ALTERNATE_HALF_WIDTH = 1953259880,
HISTORICAL_FORMS = 1953720680,
HORIZONTAL_KANA_ALTERNATES = 1634626408,
HISTORICAL_LIGATURES = 1734962280,
HALF_WIDTH = 1684633448,
HOJO_KANJI_FORMS = 1869246312,
JIS04_FORMS = 875589738,
JIS78_FORMS = 943157354,
JIS83_FORMS = 859336810,
JIS90_FORMS = 809070698,
KERNING = 1852990827,
STANDARD_LIGATURES = 1634167148,
LINING_FIGURES = 1836412524,
LOCALIZED_FORMS = 1818455916,
MARK_POSITIONING = 1802658157,
MATHEMATICAL_GREEK = 1802659693,
MARK_TO_MARK_POSITIONING = 1802333037,
ALTERNATE_ANNOTATION_FORMS = 1953259886,
NLC_KANJI_FORMS = 1801677934,
OLD_STYLE_FIGURES = 1836412527,
ORDINALS = 1852076655,
PROPORTIONAL_ALTERNATE_WIDTH = 1953259888,
PETITE_CAPITALS = 1885430640,
PROPORTIONAL_FIGURES = 1836412528,
PROPORTIONAL_WIDTHS = 1684633456,
QUARTER_WIDTHS = 1684633457,
REQUIRED_LIGATURES = 1734962290,
RUBY_NOTATION_FORMS = 2036495730,
STYLISTIC_ALTERNATES = 1953259891,
SCIENTIFIC_INFERIORS = 1718511987,
SMALL_CAPITALS = 1885564275,
SIMPLIFIED_FORMS = 1819307379,
STYLISTIC_SET_1 = 825258867,
STYLISTIC_SET_2 = 842036083,
STYLISTIC_SET_3 = 858813299,
STYLISTIC_SET_4 = 875590515,
STYLISTIC_SET_5 = 892367731,
STYLISTIC_SET_6 = 909144947,
STYLISTIC_SET_7 = 925922163,
STYLISTIC_SET_8 = 942699379,
STYLISTIC_SET_9 = 959476595,
STYLISTIC_SET_10 = 808547187,
STYLISTIC_SET_11 = 825324403,
STYLISTIC_SET_12 = 842101619,
STYLISTIC_SET_13 = 858878835,
STYLISTIC_SET_14 = 875656051,
STYLISTIC_SET_15 = 892433267,
STYLISTIC_SET_16 = 909210483,
STYLISTIC_SET_17 = 925987699,
STYLISTIC_SET_18 = 942764915,
STYLISTIC_SET_19 = 959542131,
STYLISTIC_SET_20 = 808612723,
SUBSCRIPT = 1935832435,
SUPERSCRIPT = 1936749939,
SWASH = 1752397683,
TITLING = 1819568500,
TRADITIONAL_NAME_FORMS = 1835101812,
TABULAR_FIGURES = 1836412532,
TRADITIONAL_FORMS = 1684107892,
THIRD_WIDTHS = 1684633460,
UNICASE = 1667853941,
VERTICAL_WRITING = 1953654134,
VERTICAL_ALTERNATES_AND_ROTATION = 846492278,
SLASHED_ZERO = 1869768058,
};
pub const DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = DWRITE_FONT_FEATURE_TAG.ALTERNATIVE_FRACTIONS;
pub const DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = DWRITE_FONT_FEATURE_TAG.PETITE_CAPITALS_FROM_CAPITALS;
pub const DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = DWRITE_FONT_FEATURE_TAG.SMALL_CAPITALS_FROM_CAPITALS;
pub const DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = DWRITE_FONT_FEATURE_TAG.CONTEXTUAL_ALTERNATES;
pub const DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = DWRITE_FONT_FEATURE_TAG.CASE_SENSITIVE_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = DWRITE_FONT_FEATURE_TAG.GLYPH_COMPOSITION_DECOMPOSITION;
pub const DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = DWRITE_FONT_FEATURE_TAG.CONTEXTUAL_LIGATURES;
pub const DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = DWRITE_FONT_FEATURE_TAG.CAPITAL_SPACING;
pub const DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = DWRITE_FONT_FEATURE_TAG.CONTEXTUAL_SWASH;
pub const DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = DWRITE_FONT_FEATURE_TAG.CURSIVE_POSITIONING;
pub const DWRITE_FONT_FEATURE_TAG_DEFAULT = DWRITE_FONT_FEATURE_TAG.DEFAULT;
pub const DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = DWRITE_FONT_FEATURE_TAG.DISCRETIONARY_LIGATURES;
pub const DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = DWRITE_FONT_FEATURE_TAG.EXPERT_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_FRACTIONS = DWRITE_FONT_FEATURE_TAG.FRACTIONS;
pub const DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = DWRITE_FONT_FEATURE_TAG.FULL_WIDTH;
pub const DWRITE_FONT_FEATURE_TAG_HALF_FORMS = DWRITE_FONT_FEATURE_TAG.HALF_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = DWRITE_FONT_FEATURE_TAG.HALANT_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = DWRITE_FONT_FEATURE_TAG.ALTERNATE_HALF_WIDTH;
pub const DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = DWRITE_FONT_FEATURE_TAG.HISTORICAL_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = DWRITE_FONT_FEATURE_TAG.HORIZONTAL_KANA_ALTERNATES;
pub const DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = DWRITE_FONT_FEATURE_TAG.HISTORICAL_LIGATURES;
pub const DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = DWRITE_FONT_FEATURE_TAG.HALF_WIDTH;
pub const DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = DWRITE_FONT_FEATURE_TAG.HOJO_KANJI_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = DWRITE_FONT_FEATURE_TAG.JIS04_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = DWRITE_FONT_FEATURE_TAG.JIS78_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = DWRITE_FONT_FEATURE_TAG.JIS83_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = DWRITE_FONT_FEATURE_TAG.JIS90_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_KERNING = DWRITE_FONT_FEATURE_TAG.KERNING;
pub const DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = DWRITE_FONT_FEATURE_TAG.STANDARD_LIGATURES;
pub const DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = DWRITE_FONT_FEATURE_TAG.LINING_FIGURES;
pub const DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = DWRITE_FONT_FEATURE_TAG.LOCALIZED_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = DWRITE_FONT_FEATURE_TAG.MARK_POSITIONING;
pub const DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = DWRITE_FONT_FEATURE_TAG.MATHEMATICAL_GREEK;
pub const DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = DWRITE_FONT_FEATURE_TAG.MARK_TO_MARK_POSITIONING;
pub const DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = DWRITE_FONT_FEATURE_TAG.ALTERNATE_ANNOTATION_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = DWRITE_FONT_FEATURE_TAG.NLC_KANJI_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = DWRITE_FONT_FEATURE_TAG.OLD_STYLE_FIGURES;
pub const DWRITE_FONT_FEATURE_TAG_ORDINALS = DWRITE_FONT_FEATURE_TAG.ORDINALS;
pub const DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = DWRITE_FONT_FEATURE_TAG.PROPORTIONAL_ALTERNATE_WIDTH;
pub const DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = DWRITE_FONT_FEATURE_TAG.PETITE_CAPITALS;
pub const DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = DWRITE_FONT_FEATURE_TAG.PROPORTIONAL_FIGURES;
pub const DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = DWRITE_FONT_FEATURE_TAG.PROPORTIONAL_WIDTHS;
pub const DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = DWRITE_FONT_FEATURE_TAG.QUARTER_WIDTHS;
pub const DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = DWRITE_FONT_FEATURE_TAG.REQUIRED_LIGATURES;
pub const DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = DWRITE_FONT_FEATURE_TAG.RUBY_NOTATION_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = DWRITE_FONT_FEATURE_TAG.STYLISTIC_ALTERNATES;
pub const DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = DWRITE_FONT_FEATURE_TAG.SCIENTIFIC_INFERIORS;
pub const DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = DWRITE_FONT_FEATURE_TAG.SMALL_CAPITALS;
pub const DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = DWRITE_FONT_FEATURE_TAG.SIMPLIFIED_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_1;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_2;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_3;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_4;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_5;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_6;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_7;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_8;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_9;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_10;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_11;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_12;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_13;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_14;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_15;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_16;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_17;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_18;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_19;
pub const DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = DWRITE_FONT_FEATURE_TAG.STYLISTIC_SET_20;
pub const DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = DWRITE_FONT_FEATURE_TAG.SUBSCRIPT;
pub const DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = DWRITE_FONT_FEATURE_TAG.SUPERSCRIPT;
pub const DWRITE_FONT_FEATURE_TAG_SWASH = DWRITE_FONT_FEATURE_TAG.SWASH;
pub const DWRITE_FONT_FEATURE_TAG_TITLING = DWRITE_FONT_FEATURE_TAG.TITLING;
pub const DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = DWRITE_FONT_FEATURE_TAG.TRADITIONAL_NAME_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = DWRITE_FONT_FEATURE_TAG.TABULAR_FIGURES;
pub const DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = DWRITE_FONT_FEATURE_TAG.TRADITIONAL_FORMS;
pub const DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = DWRITE_FONT_FEATURE_TAG.THIRD_WIDTHS;
pub const DWRITE_FONT_FEATURE_TAG_UNICASE = DWRITE_FONT_FEATURE_TAG.UNICASE;
pub const DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING = DWRITE_FONT_FEATURE_TAG.VERTICAL_WRITING;
pub const DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION = DWRITE_FONT_FEATURE_TAG.VERTICAL_ALTERNATES_AND_ROTATION;
pub const DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = DWRITE_FONT_FEATURE_TAG.SLASHED_ZERO;
pub const DWRITE_TEXT_RANGE = extern struct {
startPosition: u32,
length: u32,
};
pub const DWRITE_FONT_FEATURE = extern struct {
nameTag: DWRITE_FONT_FEATURE_TAG,
parameter: u32,
};
pub const DWRITE_TYPOGRAPHIC_FEATURES = extern struct {
features: ?*DWRITE_FONT_FEATURE,
featureCount: u32,
};
pub const DWRITE_TRIMMING = extern struct {
granularity: DWRITE_TRIMMING_GRANULARITY,
delimiter: u32,
delimiterCount: u32,
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteTextFormat_Value = Guid.initString("9c906818-31d7-4fd3-a151-7c5e225db55a");
pub const IID_IDWriteTextFormat = &IID_IDWriteTextFormat_Value;
pub const IDWriteTextFormat = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
SetTextAlignment: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
textAlignment: DWRITE_TEXT_ALIGNMENT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
textAlignment: DWRITE_TEXT_ALIGNMENT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetParagraphAlignment: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
paragraphAlignment: DWRITE_PARAGRAPH_ALIGNMENT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
paragraphAlignment: DWRITE_PARAGRAPH_ALIGNMENT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetWordWrapping: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
wordWrapping: DWRITE_WORD_WRAPPING,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
wordWrapping: DWRITE_WORD_WRAPPING,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetReadingDirection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
readingDirection: DWRITE_READING_DIRECTION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
readingDirection: DWRITE_READING_DIRECTION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetFlowDirection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
flowDirection: DWRITE_FLOW_DIRECTION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
flowDirection: DWRITE_FLOW_DIRECTION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetIncrementalTabStop: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
incrementalTabStop: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
incrementalTabStop: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetTrimming: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
trimmingOptions: ?*const DWRITE_TRIMMING,
trimmingSign: ?*IDWriteInlineObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
trimmingOptions: ?*const DWRITE_TRIMMING,
trimmingSign: ?*IDWriteInlineObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetLineSpacing: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
lineSpacingMethod: DWRITE_LINE_SPACING_METHOD,
lineSpacing: f32,
baseline: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
lineSpacingMethod: DWRITE_LINE_SPACING_METHOD,
lineSpacing: f32,
baseline: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetTextAlignment: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_TEXT_ALIGNMENT,
else => *const fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_TEXT_ALIGNMENT,
},
GetParagraphAlignment: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_PARAGRAPH_ALIGNMENT,
else => *const fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_PARAGRAPH_ALIGNMENT,
},
GetWordWrapping: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_WORD_WRAPPING,
else => *const fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_WORD_WRAPPING,
},
GetReadingDirection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_READING_DIRECTION,
else => *const fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_READING_DIRECTION,
},
GetFlowDirection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FLOW_DIRECTION,
else => *const fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FLOW_DIRECTION,
},
GetIncrementalTabStop: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) f32,
else => *const fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) f32,
},
GetTrimming: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
trimmingOptions: ?*DWRITE_TRIMMING,
trimmingSign: ?*?*IDWriteInlineObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
trimmingOptions: ?*DWRITE_TRIMMING,
trimmingSign: ?*?*IDWriteInlineObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLineSpacing: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
lineSpacingMethod: ?*DWRITE_LINE_SPACING_METHOD,
lineSpacing: ?*f32,
baseline: ?*f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
lineSpacingMethod: ?*DWRITE_LINE_SPACING_METHOD,
lineSpacing: ?*f32,
baseline: ?*f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontCollection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
fontCollection: ?*?*IDWriteFontCollection,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
fontCollection: ?*?*IDWriteFontCollection,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFamilyNameLength: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetFontFamilyName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
fontFamilyName: [*:0]u16,
nameSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
fontFamilyName: [*:0]u16,
nameSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontWeight: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_WEIGHT,
else => *const fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_WEIGHT,
},
GetFontStyle: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_STYLE,
else => *const fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_STYLE,
},
GetFontStretch: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_STRETCH,
else => *const fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_STRETCH,
},
GetFontSize: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) f32,
else => *const fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) f32,
},
GetLocaleNameLength: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetLocaleName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat,
localeName: [*:0]u16,
nameSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat,
localeName: [*:0]u16,
nameSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_SetTextAlignment(self: *const T, textAlignment: DWRITE_TEXT_ALIGNMENT) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).SetTextAlignment(@as(*const IDWriteTextFormat, @ptrCast(self)), textAlignment);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_SetParagraphAlignment(self: *const T, paragraphAlignment: DWRITE_PARAGRAPH_ALIGNMENT) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).SetParagraphAlignment(@as(*const IDWriteTextFormat, @ptrCast(self)), paragraphAlignment);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_SetWordWrapping(self: *const T, wordWrapping: DWRITE_WORD_WRAPPING) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).SetWordWrapping(@as(*const IDWriteTextFormat, @ptrCast(self)), wordWrapping);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_SetReadingDirection(self: *const T, readingDirection: DWRITE_READING_DIRECTION) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).SetReadingDirection(@as(*const IDWriteTextFormat, @ptrCast(self)), readingDirection);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_SetFlowDirection(self: *const T, flowDirection: DWRITE_FLOW_DIRECTION) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).SetFlowDirection(@as(*const IDWriteTextFormat, @ptrCast(self)), flowDirection);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_SetIncrementalTabStop(self: *const T, incrementalTabStop: f32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).SetIncrementalTabStop(@as(*const IDWriteTextFormat, @ptrCast(self)), incrementalTabStop);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_SetTrimming(self: *const T, trimmingOptions: ?*const DWRITE_TRIMMING, trimmingSign: ?*IDWriteInlineObject) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).SetTrimming(@as(*const IDWriteTextFormat, @ptrCast(self)), trimmingOptions, trimmingSign);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_SetLineSpacing(self: *const T, lineSpacingMethod: DWRITE_LINE_SPACING_METHOD, lineSpacing: f32, baseline: f32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).SetLineSpacing(@as(*const IDWriteTextFormat, @ptrCast(self)), lineSpacingMethod, lineSpacing, baseline);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetTextAlignment(self: *const T) callconv(.Inline) DWRITE_TEXT_ALIGNMENT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetTextAlignment(@as(*const IDWriteTextFormat, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetParagraphAlignment(self: *const T) callconv(.Inline) DWRITE_PARAGRAPH_ALIGNMENT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetParagraphAlignment(@as(*const IDWriteTextFormat, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetWordWrapping(self: *const T) callconv(.Inline) DWRITE_WORD_WRAPPING {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetWordWrapping(@as(*const IDWriteTextFormat, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetReadingDirection(self: *const T) callconv(.Inline) DWRITE_READING_DIRECTION {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetReadingDirection(@as(*const IDWriteTextFormat, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetFlowDirection(self: *const T) callconv(.Inline) DWRITE_FLOW_DIRECTION {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetFlowDirection(@as(*const IDWriteTextFormat, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetIncrementalTabStop(self: *const T) callconv(.Inline) f32 {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetIncrementalTabStop(@as(*const IDWriteTextFormat, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetTrimming(self: *const T, trimmingOptions: ?*DWRITE_TRIMMING, trimmingSign: ?*?*IDWriteInlineObject) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetTrimming(@as(*const IDWriteTextFormat, @ptrCast(self)), trimmingOptions, trimmingSign);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetLineSpacing(self: *const T, lineSpacingMethod: ?*DWRITE_LINE_SPACING_METHOD, lineSpacing: ?*f32, baseline: ?*f32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetLineSpacing(@as(*const IDWriteTextFormat, @ptrCast(self)), lineSpacingMethod, lineSpacing, baseline);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetFontCollection(self: *const T, fontCollection: ?*?*IDWriteFontCollection) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetFontCollection(@as(*const IDWriteTextFormat, @ptrCast(self)), fontCollection);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetFontFamilyNameLength(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetFontFamilyNameLength(@as(*const IDWriteTextFormat, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetFontFamilyName(self: *const T, fontFamilyName: [*:0]u16, nameSize: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetFontFamilyName(@as(*const IDWriteTextFormat, @ptrCast(self)), fontFamilyName, nameSize);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetFontWeight(self: *const T) callconv(.Inline) DWRITE_FONT_WEIGHT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetFontWeight(@as(*const IDWriteTextFormat, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetFontStyle(self: *const T) callconv(.Inline) DWRITE_FONT_STYLE {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetFontStyle(@as(*const IDWriteTextFormat, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetFontStretch(self: *const T) callconv(.Inline) DWRITE_FONT_STRETCH {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetFontStretch(@as(*const IDWriteTextFormat, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetFontSize(self: *const T) callconv(.Inline) f32 {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetFontSize(@as(*const IDWriteTextFormat, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetLocaleNameLength(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetLocaleNameLength(@as(*const IDWriteTextFormat, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat_GetLocaleName(self: *const T, localeName: [*:0]u16, nameSize: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat.VTable, @ptrCast(self.vtable)).GetLocaleName(@as(*const IDWriteTextFormat, @ptrCast(self)), localeName, nameSize);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteTypography_Value = Guid.initString("55f1112b-1dc2-4b3c-9541-f46894ed85b6");
pub const IID_IDWriteTypography = &IID_IDWriteTypography_Value;
pub const IDWriteTypography = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
AddFontFeature: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTypography,
fontFeature: DWRITE_FONT_FEATURE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTypography,
fontFeature: DWRITE_FONT_FEATURE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFeatureCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTypography,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteTypography,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetFontFeature: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTypography,
fontFeatureIndex: u32,
fontFeature: ?*DWRITE_FONT_FEATURE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTypography,
fontFeatureIndex: u32,
fontFeature: ?*DWRITE_FONT_FEATURE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTypography_AddFontFeature(self: *const T, fontFeature: DWRITE_FONT_FEATURE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTypography.VTable, @ptrCast(self.vtable)).AddFontFeature(@as(*const IDWriteTypography, @ptrCast(self)), fontFeature);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTypography_GetFontFeatureCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteTypography.VTable, @ptrCast(self.vtable)).GetFontFeatureCount(@as(*const IDWriteTypography, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTypography_GetFontFeature(self: *const T, fontFeatureIndex: u32, fontFeature: ?*DWRITE_FONT_FEATURE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTypography.VTable, @ptrCast(self.vtable)).GetFontFeature(@as(*const IDWriteTypography, @ptrCast(self)), fontFeatureIndex, fontFeature);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_SCRIPT_SHAPES = enum(u32) {
DEFAULT = 0,
NO_VISUAL = 1,
_,
pub fn initFlags(o: struct {
DEFAULT: u1 = 0,
NO_VISUAL: u1 = 0,
}) DWRITE_SCRIPT_SHAPES {
return @as(DWRITE_SCRIPT_SHAPES, @enumFromInt(
(if (o.DEFAULT == 1) @intFromEnum(DWRITE_SCRIPT_SHAPES.DEFAULT) else 0)
| (if (o.NO_VISUAL == 1) @intFromEnum(DWRITE_SCRIPT_SHAPES.NO_VISUAL) else 0)
));
}
};
pub const DWRITE_SCRIPT_SHAPES_DEFAULT = DWRITE_SCRIPT_SHAPES.DEFAULT;
pub const DWRITE_SCRIPT_SHAPES_NO_VISUAL = DWRITE_SCRIPT_SHAPES.NO_VISUAL;
pub const DWRITE_SCRIPT_ANALYSIS = extern struct {
script: u16,
shapes: DWRITE_SCRIPT_SHAPES,
};
pub const DWRITE_BREAK_CONDITION = enum(i32) {
NEUTRAL = 0,
CAN_BREAK = 1,
MAY_NOT_BREAK = 2,
MUST_BREAK = 3,
};
pub const DWRITE_BREAK_CONDITION_NEUTRAL = DWRITE_BREAK_CONDITION.NEUTRAL;
pub const DWRITE_BREAK_CONDITION_CAN_BREAK = DWRITE_BREAK_CONDITION.CAN_BREAK;
pub const DWRITE_BREAK_CONDITION_MAY_NOT_BREAK = DWRITE_BREAK_CONDITION.MAY_NOT_BREAK;
pub const DWRITE_BREAK_CONDITION_MUST_BREAK = DWRITE_BREAK_CONDITION.MUST_BREAK;
pub const DWRITE_LINE_BREAKPOINT = extern struct {
_bitfield: u8,
};
pub const DWRITE_NUMBER_SUBSTITUTION_METHOD = enum(i32) {
FROM_CULTURE = 0,
CONTEXTUAL = 1,
NONE = 2,
NATIONAL = 3,
TRADITIONAL = 4,
};
pub const DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE = DWRITE_NUMBER_SUBSTITUTION_METHOD.FROM_CULTURE;
pub const DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL = DWRITE_NUMBER_SUBSTITUTION_METHOD.CONTEXTUAL;
pub const DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE = DWRITE_NUMBER_SUBSTITUTION_METHOD.NONE;
pub const DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL = DWRITE_NUMBER_SUBSTITUTION_METHOD.NATIONAL;
pub const DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL = DWRITE_NUMBER_SUBSTITUTION_METHOD.TRADITIONAL;
const IID_IDWriteNumberSubstitution_Value = Guid.initString("14885cc9-bab0-4f90-b6ed-5c366a2cd03d");
pub const IID_IDWriteNumberSubstitution = &IID_IDWriteNumberSubstitution_Value;
pub const IDWriteNumberSubstitution = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_SHAPING_TEXT_PROPERTIES = extern struct {
_bitfield: u16,
};
pub const DWRITE_SHAPING_GLYPH_PROPERTIES = extern struct {
_bitfield: u16,
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteTextAnalysisSource_Value = Guid.initString("688e1a58-5094-47c8-adc8-fbcea60ae92b");
pub const IID_IDWriteTextAnalysisSource = &IID_IDWriteTextAnalysisSource_Value;
pub const IDWriteTextAnalysisSource = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetTextAtPosition: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalysisSource,
textPosition: u32,
textString: ?*const ?*u16,
textLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalysisSource,
textPosition: u32,
textString: ?*const ?*u16,
textLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetTextBeforePosition: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalysisSource,
textPosition: u32,
textString: ?*const ?*u16,
textLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalysisSource,
textPosition: u32,
textString: ?*const ?*u16,
textLength: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetParagraphReadingDirection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalysisSource,
) callconv(@import("std").os.windows.WINAPI) DWRITE_READING_DIRECTION,
else => *const fn(
self: *const IDWriteTextAnalysisSource,
) callconv(@import("std").os.windows.WINAPI) DWRITE_READING_DIRECTION,
},
GetLocaleName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalysisSource,
textPosition: u32,
textLength: ?*u32,
localeName: ?*const ?*u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalysisSource,
textPosition: u32,
textLength: ?*u32,
localeName: ?*const ?*u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetNumberSubstitution: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalysisSource,
textPosition: u32,
textLength: ?*u32,
numberSubstitution: ?*?*IDWriteNumberSubstitution,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalysisSource,
textPosition: u32,
textLength: ?*u32,
numberSubstitution: ?*?*IDWriteNumberSubstitution,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalysisSource_GetTextAtPosition(self: *const T, textPosition: u32, textString: ?*const ?*u16, textLength: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalysisSource.VTable, @ptrCast(self.vtable)).GetTextAtPosition(@as(*const IDWriteTextAnalysisSource, @ptrCast(self)), textPosition, textString, textLength);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalysisSource_GetTextBeforePosition(self: *const T, textPosition: u32, textString: ?*const ?*u16, textLength: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalysisSource.VTable, @ptrCast(self.vtable)).GetTextBeforePosition(@as(*const IDWriteTextAnalysisSource, @ptrCast(self)), textPosition, textString, textLength);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalysisSource_GetParagraphReadingDirection(self: *const T) callconv(.Inline) DWRITE_READING_DIRECTION {
return @as(*const IDWriteTextAnalysisSource.VTable, @ptrCast(self.vtable)).GetParagraphReadingDirection(@as(*const IDWriteTextAnalysisSource, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalysisSource_GetLocaleName(self: *const T, textPosition: u32, textLength: ?*u32, localeName: ?*const ?*u16) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalysisSource.VTable, @ptrCast(self.vtable)).GetLocaleName(@as(*const IDWriteTextAnalysisSource, @ptrCast(self)), textPosition, textLength, localeName);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalysisSource_GetNumberSubstitution(self: *const T, textPosition: u32, textLength: ?*u32, numberSubstitution: ?*?*IDWriteNumberSubstitution) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalysisSource.VTable, @ptrCast(self.vtable)).GetNumberSubstitution(@as(*const IDWriteTextAnalysisSource, @ptrCast(self)), textPosition, textLength, numberSubstitution);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteTextAnalysisSink_Value = Guid.initString("5810cd44-0ca0-4701-b3fa-bec5182ae4f6");
pub const IID_IDWriteTextAnalysisSink = &IID_IDWriteTextAnalysisSink_Value;
pub const IDWriteTextAnalysisSink = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
SetScriptAnalysis: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalysisSink,
textPosition: u32,
textLength: u32,
scriptAnalysis: ?*const DWRITE_SCRIPT_ANALYSIS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalysisSink,
textPosition: u32,
textLength: u32,
scriptAnalysis: ?*const DWRITE_SCRIPT_ANALYSIS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetLineBreakpoints: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalysisSink,
textPosition: u32,
textLength: u32,
lineBreakpoints: [*]const DWRITE_LINE_BREAKPOINT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalysisSink,
textPosition: u32,
textLength: u32,
lineBreakpoints: [*]const DWRITE_LINE_BREAKPOINT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetBidiLevel: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalysisSink,
textPosition: u32,
textLength: u32,
explicitLevel: u8,
resolvedLevel: u8,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalysisSink,
textPosition: u32,
textLength: u32,
explicitLevel: u8,
resolvedLevel: u8,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetNumberSubstitution: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalysisSink,
textPosition: u32,
textLength: u32,
numberSubstitution: ?*IDWriteNumberSubstitution,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalysisSink,
textPosition: u32,
textLength: u32,
numberSubstitution: ?*IDWriteNumberSubstitution,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalysisSink_SetScriptAnalysis(self: *const T, textPosition: u32, textLength: u32, scriptAnalysis: ?*const DWRITE_SCRIPT_ANALYSIS) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalysisSink.VTable, @ptrCast(self.vtable)).SetScriptAnalysis(@as(*const IDWriteTextAnalysisSink, @ptrCast(self)), textPosition, textLength, scriptAnalysis);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalysisSink_SetLineBreakpoints(self: *const T, textPosition: u32, textLength: u32, lineBreakpoints: [*]const DWRITE_LINE_BREAKPOINT) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalysisSink.VTable, @ptrCast(self.vtable)).SetLineBreakpoints(@as(*const IDWriteTextAnalysisSink, @ptrCast(self)), textPosition, textLength, lineBreakpoints);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalysisSink_SetBidiLevel(self: *const T, textPosition: u32, textLength: u32, explicitLevel: u8, resolvedLevel: u8) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalysisSink.VTable, @ptrCast(self.vtable)).SetBidiLevel(@as(*const IDWriteTextAnalysisSink, @ptrCast(self)), textPosition, textLength, explicitLevel, resolvedLevel);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalysisSink_SetNumberSubstitution(self: *const T, textPosition: u32, textLength: u32, numberSubstitution: ?*IDWriteNumberSubstitution) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalysisSink.VTable, @ptrCast(self.vtable)).SetNumberSubstitution(@as(*const IDWriteTextAnalysisSink, @ptrCast(self)), textPosition, textLength, numberSubstitution);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteTextAnalyzer_Value = Guid.initString("b7e6163e-7f46-43b4-84b3-e4e6249c365d");
pub const IID_IDWriteTextAnalyzer = &IID_IDWriteTextAnalyzer_Value;
pub const IDWriteTextAnalyzer = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
AnalyzeScript: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer,
analysisSource: ?*IDWriteTextAnalysisSource,
textPosition: u32,
textLength: u32,
analysisSink: ?*IDWriteTextAnalysisSink,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer,
analysisSource: ?*IDWriteTextAnalysisSource,
textPosition: u32,
textLength: u32,
analysisSink: ?*IDWriteTextAnalysisSink,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AnalyzeBidi: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer,
analysisSource: ?*IDWriteTextAnalysisSource,
textPosition: u32,
textLength: u32,
analysisSink: ?*IDWriteTextAnalysisSink,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer,
analysisSource: ?*IDWriteTextAnalysisSource,
textPosition: u32,
textLength: u32,
analysisSink: ?*IDWriteTextAnalysisSink,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AnalyzeNumberSubstitution: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer,
analysisSource: ?*IDWriteTextAnalysisSource,
textPosition: u32,
textLength: u32,
analysisSink: ?*IDWriteTextAnalysisSink,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer,
analysisSource: ?*IDWriteTextAnalysisSource,
textPosition: u32,
textLength: u32,
analysisSink: ?*IDWriteTextAnalysisSink,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AnalyzeLineBreakpoints: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer,
analysisSource: ?*IDWriteTextAnalysisSource,
textPosition: u32,
textLength: u32,
analysisSink: ?*IDWriteTextAnalysisSink,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer,
analysisSource: ?*IDWriteTextAnalysisSource,
textPosition: u32,
textLength: u32,
analysisSink: ?*IDWriteTextAnalysisSink,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetGlyphs: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer,
textString: [*:0]const u16,
textLength: u32,
fontFace: ?*IDWriteFontFace,
isSideways: BOOL,
isRightToLeft: BOOL,
scriptAnalysis: ?*const DWRITE_SCRIPT_ANALYSIS,
localeName: ?[*:0]const u16,
numberSubstitution: ?*IDWriteNumberSubstitution,
features: ?[*]const ?*const DWRITE_TYPOGRAPHIC_FEATURES,
featureRangeLengths: ?[*]const u32,
featureRanges: u32,
maxGlyphCount: u32,
clusterMap: [*:0]u16,
textProps: [*]DWRITE_SHAPING_TEXT_PROPERTIES,
glyphIndices: [*:0]u16,
glyphProps: [*]DWRITE_SHAPING_GLYPH_PROPERTIES,
actualGlyphCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer,
textString: [*:0]const u16,
textLength: u32,
fontFace: ?*IDWriteFontFace,
isSideways: BOOL,
isRightToLeft: BOOL,
scriptAnalysis: ?*const DWRITE_SCRIPT_ANALYSIS,
localeName: ?[*:0]const u16,
numberSubstitution: ?*IDWriteNumberSubstitution,
features: ?[*]const ?*const DWRITE_TYPOGRAPHIC_FEATURES,
featureRangeLengths: ?[*]const u32,
featureRanges: u32,
maxGlyphCount: u32,
clusterMap: [*:0]u16,
textProps: [*]DWRITE_SHAPING_TEXT_PROPERTIES,
glyphIndices: [*:0]u16,
glyphProps: [*]DWRITE_SHAPING_GLYPH_PROPERTIES,
actualGlyphCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetGlyphPlacements: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer,
textString: [*:0]const u16,
clusterMap: [*:0]const u16,
textProps: [*]DWRITE_SHAPING_TEXT_PROPERTIES,
textLength: u32,
glyphIndices: [*:0]const u16,
glyphProps: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES,
glyphCount: u32,
fontFace: ?*IDWriteFontFace,
fontEmSize: f32,
isSideways: BOOL,
isRightToLeft: BOOL,
scriptAnalysis: ?*const DWRITE_SCRIPT_ANALYSIS,
localeName: ?[*:0]const u16,
features: ?[*]const ?*const DWRITE_TYPOGRAPHIC_FEATURES,
featureRangeLengths: ?[*]const u32,
featureRanges: u32,
glyphAdvances: [*]f32,
glyphOffsets: [*]DWRITE_GLYPH_OFFSET,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer,
textString: [*:0]const u16,
clusterMap: [*:0]const u16,
textProps: [*]DWRITE_SHAPING_TEXT_PROPERTIES,
textLength: u32,
glyphIndices: [*:0]const u16,
glyphProps: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES,
glyphCount: u32,
fontFace: ?*IDWriteFontFace,
fontEmSize: f32,
isSideways: BOOL,
isRightToLeft: BOOL,
scriptAnalysis: ?*const DWRITE_SCRIPT_ANALYSIS,
localeName: ?[*:0]const u16,
features: ?[*]const ?*const DWRITE_TYPOGRAPHIC_FEATURES,
featureRangeLengths: ?[*]const u32,
featureRanges: u32,
glyphAdvances: [*]f32,
glyphOffsets: [*]DWRITE_GLYPH_OFFSET,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetGdiCompatibleGlyphPlacements: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer,
textString: [*:0]const u16,
clusterMap: [*:0]const u16,
textProps: [*]DWRITE_SHAPING_TEXT_PROPERTIES,
textLength: u32,
glyphIndices: [*:0]const u16,
glyphProps: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES,
glyphCount: u32,
fontFace: ?*IDWriteFontFace,
fontEmSize: f32,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
useGdiNatural: BOOL,
isSideways: BOOL,
isRightToLeft: BOOL,
scriptAnalysis: ?*const DWRITE_SCRIPT_ANALYSIS,
localeName: ?[*:0]const u16,
features: ?[*]const ?*const DWRITE_TYPOGRAPHIC_FEATURES,
featureRangeLengths: ?[*]const u32,
featureRanges: u32,
glyphAdvances: [*]f32,
glyphOffsets: [*]DWRITE_GLYPH_OFFSET,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer,
textString: [*:0]const u16,
clusterMap: [*:0]const u16,
textProps: [*]DWRITE_SHAPING_TEXT_PROPERTIES,
textLength: u32,
glyphIndices: [*:0]const u16,
glyphProps: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES,
glyphCount: u32,
fontFace: ?*IDWriteFontFace,
fontEmSize: f32,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
useGdiNatural: BOOL,
isSideways: BOOL,
isRightToLeft: BOOL,
scriptAnalysis: ?*const DWRITE_SCRIPT_ANALYSIS,
localeName: ?[*:0]const u16,
features: ?[*]const ?*const DWRITE_TYPOGRAPHIC_FEATURES,
featureRangeLengths: ?[*]const u32,
featureRanges: u32,
glyphAdvances: [*]f32,
glyphOffsets: [*]DWRITE_GLYPH_OFFSET,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer_AnalyzeScript(self: *const T, analysisSource: ?*IDWriteTextAnalysisSource, textPosition: u32, textLength: u32, analysisSink: ?*IDWriteTextAnalysisSink) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer.VTable, @ptrCast(self.vtable)).AnalyzeScript(@as(*const IDWriteTextAnalyzer, @ptrCast(self)), analysisSource, textPosition, textLength, analysisSink);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer_AnalyzeBidi(self: *const T, analysisSource: ?*IDWriteTextAnalysisSource, textPosition: u32, textLength: u32, analysisSink: ?*IDWriteTextAnalysisSink) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer.VTable, @ptrCast(self.vtable)).AnalyzeBidi(@as(*const IDWriteTextAnalyzer, @ptrCast(self)), analysisSource, textPosition, textLength, analysisSink);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer_AnalyzeNumberSubstitution(self: *const T, analysisSource: ?*IDWriteTextAnalysisSource, textPosition: u32, textLength: u32, analysisSink: ?*IDWriteTextAnalysisSink) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer.VTable, @ptrCast(self.vtable)).AnalyzeNumberSubstitution(@as(*const IDWriteTextAnalyzer, @ptrCast(self)), analysisSource, textPosition, textLength, analysisSink);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer_AnalyzeLineBreakpoints(self: *const T, analysisSource: ?*IDWriteTextAnalysisSource, textPosition: u32, textLength: u32, analysisSink: ?*IDWriteTextAnalysisSink) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer.VTable, @ptrCast(self.vtable)).AnalyzeLineBreakpoints(@as(*const IDWriteTextAnalyzer, @ptrCast(self)), analysisSource, textPosition, textLength, analysisSink);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer_GetGlyphs(self: *const T, textString: [*:0]const u16, textLength: u32, fontFace: ?*IDWriteFontFace, isSideways: BOOL, isRightToLeft: BOOL, scriptAnalysis: ?*const DWRITE_SCRIPT_ANALYSIS, localeName: ?[*:0]const u16, numberSubstitution: ?*IDWriteNumberSubstitution, features: ?[*]const ?*const DWRITE_TYPOGRAPHIC_FEATURES, featureRangeLengths: ?[*]const u32, featureRanges: u32, maxGlyphCount: u32, clusterMap: [*:0]u16, textProps: [*]DWRITE_SHAPING_TEXT_PROPERTIES, glyphIndices: [*:0]u16, glyphProps: [*]DWRITE_SHAPING_GLYPH_PROPERTIES, actualGlyphCount: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer.VTable, @ptrCast(self.vtable)).GetGlyphs(@as(*const IDWriteTextAnalyzer, @ptrCast(self)), textString, textLength, fontFace, isSideways, isRightToLeft, scriptAnalysis, localeName, numberSubstitution, features, featureRangeLengths, featureRanges, maxGlyphCount, clusterMap, textProps, glyphIndices, glyphProps, actualGlyphCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer_GetGlyphPlacements(self: *const T, textString: [*:0]const u16, clusterMap: [*:0]const u16, textProps: [*]DWRITE_SHAPING_TEXT_PROPERTIES, textLength: u32, glyphIndices: [*:0]const u16, glyphProps: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphCount: u32, fontFace: ?*IDWriteFontFace, fontEmSize: f32, isSideways: BOOL, isRightToLeft: BOOL, scriptAnalysis: ?*const DWRITE_SCRIPT_ANALYSIS, localeName: ?[*:0]const u16, features: ?[*]const ?*const DWRITE_TYPOGRAPHIC_FEATURES, featureRangeLengths: ?[*]const u32, featureRanges: u32, glyphAdvances: [*]f32, glyphOffsets: [*]DWRITE_GLYPH_OFFSET) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer.VTable, @ptrCast(self.vtable)).GetGlyphPlacements(@as(*const IDWriteTextAnalyzer, @ptrCast(self)), textString, clusterMap, textProps, textLength, glyphIndices, glyphProps, glyphCount, fontFace, fontEmSize, isSideways, isRightToLeft, scriptAnalysis, localeName, features, featureRangeLengths, featureRanges, glyphAdvances, glyphOffsets);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer_GetGdiCompatibleGlyphPlacements(self: *const T, textString: [*:0]const u16, clusterMap: [*:0]const u16, textProps: [*]DWRITE_SHAPING_TEXT_PROPERTIES, textLength: u32, glyphIndices: [*:0]const u16, glyphProps: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES, glyphCount: u32, fontFace: ?*IDWriteFontFace, fontEmSize: f32, pixelsPerDip: f32, transform: ?*const DWRITE_MATRIX, useGdiNatural: BOOL, isSideways: BOOL, isRightToLeft: BOOL, scriptAnalysis: ?*const DWRITE_SCRIPT_ANALYSIS, localeName: ?[*:0]const u16, features: ?[*]const ?*const DWRITE_TYPOGRAPHIC_FEATURES, featureRangeLengths: ?[*]const u32, featureRanges: u32, glyphAdvances: [*]f32, glyphOffsets: [*]DWRITE_GLYPH_OFFSET) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer.VTable, @ptrCast(self.vtable)).GetGdiCompatibleGlyphPlacements(@as(*const IDWriteTextAnalyzer, @ptrCast(self)), textString, clusterMap, textProps, textLength, glyphIndices, glyphProps, glyphCount, fontFace, fontEmSize, pixelsPerDip, transform, useGdiNatural, isSideways, isRightToLeft, scriptAnalysis, localeName, features, featureRangeLengths, featureRanges, glyphAdvances, glyphOffsets);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_GLYPH_RUN = extern struct {
fontFace: ?*IDWriteFontFace,
fontEmSize: f32,
glyphCount: u32,
glyphIndices: ?*const u16,
glyphAdvances: ?*const f32,
glyphOffsets: ?*const DWRITE_GLYPH_OFFSET,
isSideways: BOOL,
bidiLevel: u32,
};
pub const DWRITE_GLYPH_RUN_DESCRIPTION = extern struct {
localeName: ?[*:0]const u16,
string: ?[*:0]const u16,
stringLength: u32,
clusterMap: ?*const u16,
textPosition: u32,
};
pub const DWRITE_UNDERLINE = extern struct {
width: f32,
thickness: f32,
offset: f32,
runHeight: f32,
readingDirection: DWRITE_READING_DIRECTION,
flowDirection: DWRITE_FLOW_DIRECTION,
localeName: ?[*:0]const u16,
measuringMode: DWRITE_MEASURING_MODE,
};
pub const DWRITE_STRIKETHROUGH = extern struct {
width: f32,
thickness: f32,
offset: f32,
readingDirection: DWRITE_READING_DIRECTION,
flowDirection: DWRITE_FLOW_DIRECTION,
localeName: ?[*:0]const u16,
measuringMode: DWRITE_MEASURING_MODE,
};
pub const DWRITE_LINE_METRICS = extern struct {
length: u32,
trailingWhitespaceLength: u32,
newlineLength: u32,
height: f32,
baseline: f32,
isTrimmed: BOOL,
};
pub const DWRITE_CLUSTER_METRICS = extern struct {
width: f32,
length: u16,
_bitfield: u16,
};
pub const DWRITE_TEXT_METRICS = extern struct {
left: f32,
top: f32,
width: f32,
widthIncludingTrailingWhitespace: f32,
height: f32,
layoutWidth: f32,
layoutHeight: f32,
maxBidiReorderingDepth: u32,
lineCount: u32,
};
pub const DWRITE_INLINE_OBJECT_METRICS = extern struct {
width: f32,
height: f32,
baseline: f32,
supportsSideways: BOOL,
};
pub const DWRITE_OVERHANG_METRICS = extern struct {
left: f32,
top: f32,
right: f32,
bottom: f32,
};
pub const DWRITE_HIT_TEST_METRICS = extern struct {
textPosition: u32,
length: u32,
left: f32,
top: f32,
width: f32,
height: f32,
bidiLevel: u32,
isText: BOOL,
isTrimmed: BOOL,
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteInlineObject_Value = Guid.initString("8339fde3-106f-47ab-8373-1c6295eb10b3");
pub const IID_IDWriteInlineObject = &IID_IDWriteInlineObject_Value;
pub const IDWriteInlineObject = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
Draw: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteInlineObject,
clientDrawingContext: ?*anyopaque,
renderer: ?*IDWriteTextRenderer,
originX: f32,
originY: f32,
isSideways: BOOL,
isRightToLeft: BOOL,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteInlineObject,
clientDrawingContext: ?*anyopaque,
renderer: ?*IDWriteTextRenderer,
originX: f32,
originY: f32,
isSideways: BOOL,
isRightToLeft: BOOL,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteInlineObject,
metrics: ?*DWRITE_INLINE_OBJECT_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteInlineObject,
metrics: ?*DWRITE_INLINE_OBJECT_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetOverhangMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteInlineObject,
overhangs: ?*DWRITE_OVERHANG_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteInlineObject,
overhangs: ?*DWRITE_OVERHANG_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetBreakConditions: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteInlineObject,
breakConditionBefore: ?*DWRITE_BREAK_CONDITION,
breakConditionAfter: ?*DWRITE_BREAK_CONDITION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteInlineObject,
breakConditionBefore: ?*DWRITE_BREAK_CONDITION,
breakConditionAfter: ?*DWRITE_BREAK_CONDITION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteInlineObject_Draw(self: *const T, clientDrawingContext: ?*anyopaque, renderer: ?*IDWriteTextRenderer, originX: f32, originY: f32, isSideways: BOOL, isRightToLeft: BOOL, clientDrawingEffect: ?*IUnknown) callconv(.Inline) HRESULT {
return @as(*const IDWriteInlineObject.VTable, @ptrCast(self.vtable)).Draw(@as(*const IDWriteInlineObject, @ptrCast(self)), clientDrawingContext, renderer, originX, originY, isSideways, isRightToLeft, clientDrawingEffect);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteInlineObject_GetMetrics(self: *const T, metrics: ?*DWRITE_INLINE_OBJECT_METRICS) callconv(.Inline) HRESULT {
return @as(*const IDWriteInlineObject.VTable, @ptrCast(self.vtable)).GetMetrics(@as(*const IDWriteInlineObject, @ptrCast(self)), metrics);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteInlineObject_GetOverhangMetrics(self: *const T, overhangs: ?*DWRITE_OVERHANG_METRICS) callconv(.Inline) HRESULT {
return @as(*const IDWriteInlineObject.VTable, @ptrCast(self.vtable)).GetOverhangMetrics(@as(*const IDWriteInlineObject, @ptrCast(self)), overhangs);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteInlineObject_GetBreakConditions(self: *const T, breakConditionBefore: ?*DWRITE_BREAK_CONDITION, breakConditionAfter: ?*DWRITE_BREAK_CONDITION) callconv(.Inline) HRESULT {
return @as(*const IDWriteInlineObject.VTable, @ptrCast(self.vtable)).GetBreakConditions(@as(*const IDWriteInlineObject, @ptrCast(self)), breakConditionBefore, breakConditionAfter);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWritePixelSnapping_Value = Guid.initString("eaf3a2da-ecf4-4d24-b644-b34f6842024b");
pub const IID_IDWritePixelSnapping = &IID_IDWritePixelSnapping_Value;
pub const IDWritePixelSnapping = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
IsPixelSnappingDisabled: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWritePixelSnapping,
clientDrawingContext: ?*anyopaque,
isDisabled: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWritePixelSnapping,
clientDrawingContext: ?*anyopaque,
isDisabled: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetCurrentTransform: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWritePixelSnapping,
clientDrawingContext: ?*anyopaque,
transform: ?*DWRITE_MATRIX,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWritePixelSnapping,
clientDrawingContext: ?*anyopaque,
transform: ?*DWRITE_MATRIX,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetPixelsPerDip: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWritePixelSnapping,
clientDrawingContext: ?*anyopaque,
pixelsPerDip: ?*f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWritePixelSnapping,
clientDrawingContext: ?*anyopaque,
pixelsPerDip: ?*f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWritePixelSnapping_IsPixelSnappingDisabled(self: *const T, clientDrawingContext: ?*anyopaque, isDisabled: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWritePixelSnapping.VTable, @ptrCast(self.vtable)).IsPixelSnappingDisabled(@as(*const IDWritePixelSnapping, @ptrCast(self)), clientDrawingContext, isDisabled);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWritePixelSnapping_GetCurrentTransform(self: *const T, clientDrawingContext: ?*anyopaque, transform: ?*DWRITE_MATRIX) callconv(.Inline) HRESULT {
return @as(*const IDWritePixelSnapping.VTable, @ptrCast(self.vtable)).GetCurrentTransform(@as(*const IDWritePixelSnapping, @ptrCast(self)), clientDrawingContext, transform);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWritePixelSnapping_GetPixelsPerDip(self: *const T, clientDrawingContext: ?*anyopaque, pixelsPerDip: ?*f32) callconv(.Inline) HRESULT {
return @as(*const IDWritePixelSnapping.VTable, @ptrCast(self.vtable)).GetPixelsPerDip(@as(*const IDWritePixelSnapping, @ptrCast(self)), clientDrawingContext, pixelsPerDip);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteTextRenderer_Value = Guid.initString("ef8a8135-5cc6-45fe-8825-c5a0724eb819");
pub const IID_IDWriteTextRenderer = &IID_IDWriteTextRenderer_Value;
pub const IDWriteTextRenderer = extern struct {
pub const VTable = extern struct {
base: IDWritePixelSnapping.VTable,
DrawGlyphRun: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextRenderer,
clientDrawingContext: ?*anyopaque,
baselineOriginX: f32,
baselineOriginY: f32,
measuringMode: DWRITE_MEASURING_MODE,
glyphRun: ?*const DWRITE_GLYPH_RUN,
glyphRunDescription: ?*const DWRITE_GLYPH_RUN_DESCRIPTION,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextRenderer,
clientDrawingContext: ?*anyopaque,
baselineOriginX: f32,
baselineOriginY: f32,
measuringMode: DWRITE_MEASURING_MODE,
glyphRun: ?*const DWRITE_GLYPH_RUN,
glyphRunDescription: ?*const DWRITE_GLYPH_RUN_DESCRIPTION,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
DrawUnderline: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextRenderer,
clientDrawingContext: ?*anyopaque,
baselineOriginX: f32,
baselineOriginY: f32,
underline: ?*const DWRITE_UNDERLINE,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextRenderer,
clientDrawingContext: ?*anyopaque,
baselineOriginX: f32,
baselineOriginY: f32,
underline: ?*const DWRITE_UNDERLINE,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
DrawStrikethrough: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextRenderer,
clientDrawingContext: ?*anyopaque,
baselineOriginX: f32,
baselineOriginY: f32,
strikethrough: ?*const DWRITE_STRIKETHROUGH,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextRenderer,
clientDrawingContext: ?*anyopaque,
baselineOriginX: f32,
baselineOriginY: f32,
strikethrough: ?*const DWRITE_STRIKETHROUGH,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
DrawInlineObject: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextRenderer,
clientDrawingContext: ?*anyopaque,
originX: f32,
originY: f32,
inlineObject: ?*IDWriteInlineObject,
isSideways: BOOL,
isRightToLeft: BOOL,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextRenderer,
clientDrawingContext: ?*anyopaque,
originX: f32,
originY: f32,
inlineObject: ?*IDWriteInlineObject,
isSideways: BOOL,
isRightToLeft: BOOL,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWritePixelSnapping.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextRenderer_DrawGlyphRun(self: *const T, clientDrawingContext: ?*anyopaque, baselineOriginX: f32, baselineOriginY: f32, measuringMode: DWRITE_MEASURING_MODE, glyphRun: ?*const DWRITE_GLYPH_RUN, glyphRunDescription: ?*const DWRITE_GLYPH_RUN_DESCRIPTION, clientDrawingEffect: ?*IUnknown) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextRenderer.VTable, @ptrCast(self.vtable)).DrawGlyphRun(@as(*const IDWriteTextRenderer, @ptrCast(self)), clientDrawingContext, baselineOriginX, baselineOriginY, measuringMode, glyphRun, glyphRunDescription, clientDrawingEffect);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextRenderer_DrawUnderline(self: *const T, clientDrawingContext: ?*anyopaque, baselineOriginX: f32, baselineOriginY: f32, underline: ?*const DWRITE_UNDERLINE, clientDrawingEffect: ?*IUnknown) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextRenderer.VTable, @ptrCast(self.vtable)).DrawUnderline(@as(*const IDWriteTextRenderer, @ptrCast(self)), clientDrawingContext, baselineOriginX, baselineOriginY, underline, clientDrawingEffect);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextRenderer_DrawStrikethrough(self: *const T, clientDrawingContext: ?*anyopaque, baselineOriginX: f32, baselineOriginY: f32, strikethrough: ?*const DWRITE_STRIKETHROUGH, clientDrawingEffect: ?*IUnknown) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextRenderer.VTable, @ptrCast(self.vtable)).DrawStrikethrough(@as(*const IDWriteTextRenderer, @ptrCast(self)), clientDrawingContext, baselineOriginX, baselineOriginY, strikethrough, clientDrawingEffect);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextRenderer_DrawInlineObject(self: *const T, clientDrawingContext: ?*anyopaque, originX: f32, originY: f32, inlineObject: ?*IDWriteInlineObject, isSideways: BOOL, isRightToLeft: BOOL, clientDrawingEffect: ?*IUnknown) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextRenderer.VTable, @ptrCast(self.vtable)).DrawInlineObject(@as(*const IDWriteTextRenderer, @ptrCast(self)), clientDrawingContext, originX, originY, inlineObject, isSideways, isRightToLeft, clientDrawingEffect);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteTextLayout_Value = Guid.initString("53737037-6d14-410b-9bfe-0b182bb70961");
pub const IID_IDWriteTextLayout = &IID_IDWriteTextLayout_Value;
pub const IDWriteTextLayout = extern struct {
pub const VTable = extern struct {
base: IDWriteTextFormat.VTable,
SetMaxWidth: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
maxWidth: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
maxWidth: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetMaxHeight: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
maxHeight: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
maxHeight: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetFontCollection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
fontCollection: ?*IDWriteFontCollection,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
fontCollection: ?*IDWriteFontCollection,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetFontFamilyName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
fontFamilyName: ?[*:0]const u16,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
fontFamilyName: ?[*:0]const u16,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetFontWeight: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
fontWeight: DWRITE_FONT_WEIGHT,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
fontWeight: DWRITE_FONT_WEIGHT,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetFontStyle: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
fontStyle: DWRITE_FONT_STYLE,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
fontStyle: DWRITE_FONT_STYLE,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetFontStretch: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
fontStretch: DWRITE_FONT_STRETCH,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
fontStretch: DWRITE_FONT_STRETCH,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetFontSize: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
fontSize: f32,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
fontSize: f32,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetUnderline: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
hasUnderline: BOOL,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
hasUnderline: BOOL,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetStrikethrough: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
hasStrikethrough: BOOL,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
hasStrikethrough: BOOL,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetDrawingEffect: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
drawingEffect: ?*IUnknown,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
drawingEffect: ?*IUnknown,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetInlineObject: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
inlineObject: ?*IDWriteInlineObject,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
inlineObject: ?*IDWriteInlineObject,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetTypography: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
typography: ?*IDWriteTypography,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
typography: ?*IDWriteTypography,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetLocaleName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
localeName: ?[*:0]const u16,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
localeName: ?[*:0]const u16,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetMaxWidth: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
) callconv(@import("std").os.windows.WINAPI) f32,
else => *const fn(
self: *const IDWriteTextLayout,
) callconv(@import("std").os.windows.WINAPI) f32,
},
GetMaxHeight: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
) callconv(@import("std").os.windows.WINAPI) f32,
else => *const fn(
self: *const IDWriteTextLayout,
) callconv(@import("std").os.windows.WINAPI) f32,
},
GetFontCollection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
fontCollection: ?*?*IDWriteFontCollection,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
fontCollection: ?*?*IDWriteFontCollection,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFamilyNameLength: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
nameLength: ?*u32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
nameLength: ?*u32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFamilyName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
fontFamilyName: [*:0]u16,
nameSize: u32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
fontFamilyName: [*:0]u16,
nameSize: u32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontWeight: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
fontWeight: ?*DWRITE_FONT_WEIGHT,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
fontWeight: ?*DWRITE_FONT_WEIGHT,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontStyle: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
fontStyle: ?*DWRITE_FONT_STYLE,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
fontStyle: ?*DWRITE_FONT_STYLE,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontStretch: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
fontStretch: ?*DWRITE_FONT_STRETCH,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
fontStretch: ?*DWRITE_FONT_STRETCH,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontSize: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
fontSize: ?*f32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
fontSize: ?*f32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetUnderline: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
hasUnderline: ?*BOOL,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
hasUnderline: ?*BOOL,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetStrikethrough: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
hasStrikethrough: ?*BOOL,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
hasStrikethrough: ?*BOOL,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetDrawingEffect: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
drawingEffect: ?*?*IUnknown,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
drawingEffect: ?*?*IUnknown,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetInlineObject: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
inlineObject: ?*?*IDWriteInlineObject,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
inlineObject: ?*?*IDWriteInlineObject,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetTypography: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
typography: ?*?*IDWriteTypography,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
typography: ?*?*IDWriteTypography,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLocaleNameLength: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
nameLength: ?*u32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
nameLength: ?*u32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLocaleName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
localeName: [*:0]u16,
nameSize: u32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
currentPosition: u32,
localeName: [*:0]u16,
nameSize: u32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Draw: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
clientDrawingContext: ?*anyopaque,
renderer: ?*IDWriteTextRenderer,
originX: f32,
originY: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
clientDrawingContext: ?*anyopaque,
renderer: ?*IDWriteTextRenderer,
originX: f32,
originY: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLineMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
lineMetrics: ?[*]DWRITE_LINE_METRICS,
maxLineCount: u32,
actualLineCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
lineMetrics: ?[*]DWRITE_LINE_METRICS,
maxLineCount: u32,
actualLineCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
textMetrics: ?*DWRITE_TEXT_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
textMetrics: ?*DWRITE_TEXT_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetOverhangMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
overhangs: ?*DWRITE_OVERHANG_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
overhangs: ?*DWRITE_OVERHANG_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetClusterMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
clusterMetrics: ?[*]DWRITE_CLUSTER_METRICS,
maxClusterCount: u32,
actualClusterCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
clusterMetrics: ?[*]DWRITE_CLUSTER_METRICS,
maxClusterCount: u32,
actualClusterCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
DetermineMinWidth: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
minWidth: ?*f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
minWidth: ?*f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
HitTestPoint: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
pointX: f32,
pointY: f32,
isTrailingHit: ?*BOOL,
isInside: ?*BOOL,
hitTestMetrics: ?*DWRITE_HIT_TEST_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
pointX: f32,
pointY: f32,
isTrailingHit: ?*BOOL,
isInside: ?*BOOL,
hitTestMetrics: ?*DWRITE_HIT_TEST_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
HitTestTextPosition: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
textPosition: u32,
isTrailingHit: BOOL,
pointX: ?*f32,
pointY: ?*f32,
hitTestMetrics: ?*DWRITE_HIT_TEST_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
textPosition: u32,
isTrailingHit: BOOL,
pointX: ?*f32,
pointY: ?*f32,
hitTestMetrics: ?*DWRITE_HIT_TEST_METRICS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
HitTestTextRange: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout,
textPosition: u32,
textLength: u32,
originX: f32,
originY: f32,
hitTestMetrics: ?[*]DWRITE_HIT_TEST_METRICS,
maxHitTestMetricsCount: u32,
actualHitTestMetricsCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout,
textPosition: u32,
textLength: u32,
originX: f32,
originY: f32,
hitTestMetrics: ?[*]DWRITE_HIT_TEST_METRICS,
maxHitTestMetricsCount: u32,
actualHitTestMetricsCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextFormat.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetMaxWidth(self: *const T, maxWidth: f32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetMaxWidth(@as(*const IDWriteTextLayout, @ptrCast(self)), maxWidth);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetMaxHeight(self: *const T, maxHeight: f32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetMaxHeight(@as(*const IDWriteTextLayout, @ptrCast(self)), maxHeight);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetFontCollection(self: *const T, fontCollection: ?*IDWriteFontCollection, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetFontCollection(@as(*const IDWriteTextLayout, @ptrCast(self)), fontCollection, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetFontFamilyName(self: *const T, fontFamilyName: ?[*:0]const u16, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetFontFamilyName(@as(*const IDWriteTextLayout, @ptrCast(self)), fontFamilyName, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetFontWeight(self: *const T, fontWeight: DWRITE_FONT_WEIGHT, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetFontWeight(@as(*const IDWriteTextLayout, @ptrCast(self)), fontWeight, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetFontStyle(self: *const T, fontStyle: DWRITE_FONT_STYLE, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetFontStyle(@as(*const IDWriteTextLayout, @ptrCast(self)), fontStyle, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetFontStretch(self: *const T, fontStretch: DWRITE_FONT_STRETCH, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetFontStretch(@as(*const IDWriteTextLayout, @ptrCast(self)), fontStretch, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetFontSize(self: *const T, fontSize: f32, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetFontSize(@as(*const IDWriteTextLayout, @ptrCast(self)), fontSize, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetUnderline(self: *const T, hasUnderline: BOOL, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetUnderline(@as(*const IDWriteTextLayout, @ptrCast(self)), hasUnderline, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetStrikethrough(self: *const T, hasStrikethrough: BOOL, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetStrikethrough(@as(*const IDWriteTextLayout, @ptrCast(self)), hasStrikethrough, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetDrawingEffect(self: *const T, drawingEffect: ?*IUnknown, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetDrawingEffect(@as(*const IDWriteTextLayout, @ptrCast(self)), drawingEffect, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetInlineObject(self: *const T, inlineObject: ?*IDWriteInlineObject, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetInlineObject(@as(*const IDWriteTextLayout, @ptrCast(self)), inlineObject, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetTypography(self: *const T, typography: ?*IDWriteTypography, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetTypography(@as(*const IDWriteTextLayout, @ptrCast(self)), typography, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_SetLocaleName(self: *const T, localeName: ?[*:0]const u16, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).SetLocaleName(@as(*const IDWriteTextLayout, @ptrCast(self)), localeName, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetMaxWidth(self: *const T) callconv(.Inline) f32 {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetMaxWidth(@as(*const IDWriteTextLayout, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetMaxHeight(self: *const T) callconv(.Inline) f32 {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetMaxHeight(@as(*const IDWriteTextLayout, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetFontCollection(self: *const T, currentPosition: u32, fontCollection: ?*?*IDWriteFontCollection, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetFontCollection(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, fontCollection, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetFontFamilyNameLength(self: *const T, currentPosition: u32, nameLength: ?*u32, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetFontFamilyNameLength(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, nameLength, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetFontFamilyName(self: *const T, currentPosition: u32, fontFamilyName: [*:0]u16, nameSize: u32, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetFontFamilyName(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, fontFamilyName, nameSize, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetFontWeight(self: *const T, currentPosition: u32, fontWeight: ?*DWRITE_FONT_WEIGHT, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetFontWeight(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, fontWeight, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetFontStyle(self: *const T, currentPosition: u32, fontStyle: ?*DWRITE_FONT_STYLE, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetFontStyle(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, fontStyle, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetFontStretch(self: *const T, currentPosition: u32, fontStretch: ?*DWRITE_FONT_STRETCH, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetFontStretch(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, fontStretch, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetFontSize(self: *const T, currentPosition: u32, fontSize: ?*f32, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetFontSize(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, fontSize, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetUnderline(self: *const T, currentPosition: u32, hasUnderline: ?*BOOL, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetUnderline(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, hasUnderline, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetStrikethrough(self: *const T, currentPosition: u32, hasStrikethrough: ?*BOOL, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetStrikethrough(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, hasStrikethrough, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetDrawingEffect(self: *const T, currentPosition: u32, drawingEffect: ?*?*IUnknown, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetDrawingEffect(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, drawingEffect, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetInlineObject(self: *const T, currentPosition: u32, inlineObject: ?*?*IDWriteInlineObject, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetInlineObject(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, inlineObject, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetTypography(self: *const T, currentPosition: u32, typography: ?*?*IDWriteTypography, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetTypography(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, typography, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetLocaleNameLength(self: *const T, currentPosition: u32, nameLength: ?*u32, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetLocaleNameLength(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, nameLength, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetLocaleName(self: *const T, currentPosition: u32, localeName: [*:0]u16, nameSize: u32, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetLocaleName(@as(*const IDWriteTextLayout, @ptrCast(self)), currentPosition, localeName, nameSize, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_Draw(self: *const T, clientDrawingContext: ?*anyopaque, renderer: ?*IDWriteTextRenderer, originX: f32, originY: f32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).Draw(@as(*const IDWriteTextLayout, @ptrCast(self)), clientDrawingContext, renderer, originX, originY);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetLineMetrics(self: *const T, lineMetrics: ?[*]DWRITE_LINE_METRICS, maxLineCount: u32, actualLineCount: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetLineMetrics(@as(*const IDWriteTextLayout, @ptrCast(self)), lineMetrics, maxLineCount, actualLineCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetMetrics(self: *const T, textMetrics: ?*DWRITE_TEXT_METRICS) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetMetrics(@as(*const IDWriteTextLayout, @ptrCast(self)), textMetrics);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetOverhangMetrics(self: *const T, overhangs: ?*DWRITE_OVERHANG_METRICS) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetOverhangMetrics(@as(*const IDWriteTextLayout, @ptrCast(self)), overhangs);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_GetClusterMetrics(self: *const T, clusterMetrics: ?[*]DWRITE_CLUSTER_METRICS, maxClusterCount: u32, actualClusterCount: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).GetClusterMetrics(@as(*const IDWriteTextLayout, @ptrCast(self)), clusterMetrics, maxClusterCount, actualClusterCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_DetermineMinWidth(self: *const T, minWidth: ?*f32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).DetermineMinWidth(@as(*const IDWriteTextLayout, @ptrCast(self)), minWidth);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_HitTestPoint(self: *const T, pointX: f32, pointY: f32, isTrailingHit: ?*BOOL, isInside: ?*BOOL, hitTestMetrics: ?*DWRITE_HIT_TEST_METRICS) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).HitTestPoint(@as(*const IDWriteTextLayout, @ptrCast(self)), pointX, pointY, isTrailingHit, isInside, hitTestMetrics);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_HitTestTextPosition(self: *const T, textPosition: u32, isTrailingHit: BOOL, pointX: ?*f32, pointY: ?*f32, hitTestMetrics: ?*DWRITE_HIT_TEST_METRICS) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).HitTestTextPosition(@as(*const IDWriteTextLayout, @ptrCast(self)), textPosition, isTrailingHit, pointX, pointY, hitTestMetrics);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout_HitTestTextRange(self: *const T, textPosition: u32, textLength: u32, originX: f32, originY: f32, hitTestMetrics: ?[*]DWRITE_HIT_TEST_METRICS, maxHitTestMetricsCount: u32, actualHitTestMetricsCount: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout.VTable, @ptrCast(self.vtable)).HitTestTextRange(@as(*const IDWriteTextLayout, @ptrCast(self)), textPosition, textLength, originX, originY, hitTestMetrics, maxHitTestMetricsCount, actualHitTestMetricsCount);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteBitmapRenderTarget_Value = Guid.initString("5e5a32a3-8dff-4773-9ff6-0696eab77267");
pub const IID_IDWriteBitmapRenderTarget = &IID_IDWriteBitmapRenderTarget_Value;
pub const IDWriteBitmapRenderTarget = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
DrawGlyphRun: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteBitmapRenderTarget,
baselineOriginX: f32,
baselineOriginY: f32,
measuringMode: DWRITE_MEASURING_MODE,
glyphRun: ?*const DWRITE_GLYPH_RUN,
renderingParams: ?*IDWriteRenderingParams,
textColor: u32,
blackBoxRect: ?*RECT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteBitmapRenderTarget,
baselineOriginX: f32,
baselineOriginY: f32,
measuringMode: DWRITE_MEASURING_MODE,
glyphRun: ?*const DWRITE_GLYPH_RUN,
renderingParams: ?*IDWriteRenderingParams,
textColor: u32,
blackBoxRect: ?*RECT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetMemoryDC: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteBitmapRenderTarget,
) callconv(@import("std").os.windows.WINAPI) ?HDC,
else => *const fn(
self: *const IDWriteBitmapRenderTarget,
) callconv(@import("std").os.windows.WINAPI) ?HDC,
},
GetPixelsPerDip: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteBitmapRenderTarget,
) callconv(@import("std").os.windows.WINAPI) f32,
else => *const fn(
self: *const IDWriteBitmapRenderTarget,
) callconv(@import("std").os.windows.WINAPI) f32,
},
SetPixelsPerDip: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteBitmapRenderTarget,
pixelsPerDip: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteBitmapRenderTarget,
pixelsPerDip: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetCurrentTransform: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteBitmapRenderTarget,
transform: ?*DWRITE_MATRIX,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteBitmapRenderTarget,
transform: ?*DWRITE_MATRIX,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetCurrentTransform: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteBitmapRenderTarget,
transform: ?*const DWRITE_MATRIX,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteBitmapRenderTarget,
transform: ?*const DWRITE_MATRIX,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSize: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteBitmapRenderTarget,
size: ?*SIZE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteBitmapRenderTarget,
size: ?*SIZE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Resize: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteBitmapRenderTarget,
width: u32,
height: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteBitmapRenderTarget,
width: u32,
height: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteBitmapRenderTarget_DrawGlyphRun(self: *const T, baselineOriginX: f32, baselineOriginY: f32, measuringMode: DWRITE_MEASURING_MODE, glyphRun: ?*const DWRITE_GLYPH_RUN, renderingParams: ?*IDWriteRenderingParams, textColor: u32, blackBoxRect: ?*RECT) callconv(.Inline) HRESULT {
return @as(*const IDWriteBitmapRenderTarget.VTable, @ptrCast(self.vtable)).DrawGlyphRun(@as(*const IDWriteBitmapRenderTarget, @ptrCast(self)), baselineOriginX, baselineOriginY, measuringMode, glyphRun, renderingParams, textColor, blackBoxRect);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteBitmapRenderTarget_GetMemoryDC(self: *const T) callconv(.Inline) ?HDC {
return @as(*const IDWriteBitmapRenderTarget.VTable, @ptrCast(self.vtable)).GetMemoryDC(@as(*const IDWriteBitmapRenderTarget, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteBitmapRenderTarget_GetPixelsPerDip(self: *const T) callconv(.Inline) f32 {
return @as(*const IDWriteBitmapRenderTarget.VTable, @ptrCast(self.vtable)).GetPixelsPerDip(@as(*const IDWriteBitmapRenderTarget, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteBitmapRenderTarget_SetPixelsPerDip(self: *const T, pixelsPerDip: f32) callconv(.Inline) HRESULT {
return @as(*const IDWriteBitmapRenderTarget.VTable, @ptrCast(self.vtable)).SetPixelsPerDip(@as(*const IDWriteBitmapRenderTarget, @ptrCast(self)), pixelsPerDip);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteBitmapRenderTarget_GetCurrentTransform(self: *const T, transform: ?*DWRITE_MATRIX) callconv(.Inline) HRESULT {
return @as(*const IDWriteBitmapRenderTarget.VTable, @ptrCast(self.vtable)).GetCurrentTransform(@as(*const IDWriteBitmapRenderTarget, @ptrCast(self)), transform);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteBitmapRenderTarget_SetCurrentTransform(self: *const T, transform: ?*const DWRITE_MATRIX) callconv(.Inline) HRESULT {
return @as(*const IDWriteBitmapRenderTarget.VTable, @ptrCast(self.vtable)).SetCurrentTransform(@as(*const IDWriteBitmapRenderTarget, @ptrCast(self)), transform);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteBitmapRenderTarget_GetSize(self: *const T, size: ?*SIZE) callconv(.Inline) HRESULT {
return @as(*const IDWriteBitmapRenderTarget.VTable, @ptrCast(self.vtable)).GetSize(@as(*const IDWriteBitmapRenderTarget, @ptrCast(self)), size);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteBitmapRenderTarget_Resize(self: *const T, width: u32, height: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteBitmapRenderTarget.VTable, @ptrCast(self.vtable)).Resize(@as(*const IDWriteBitmapRenderTarget, @ptrCast(self)), width, height);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteGdiInterop_Value = Guid.initString("1edd9491-9853-4299-898f-6432983b6f3a");
pub const IID_IDWriteGdiInterop = &IID_IDWriteGdiInterop_Value;
pub const IDWriteGdiInterop = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
CreateFontFromLOGFONT: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteGdiInterop,
logFont: ?*const LOGFONTW,
font: ?*?*IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteGdiInterop,
logFont: ?*const LOGFONTW,
font: ?*?*IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
ConvertFontToLOGFONT: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteGdiInterop,
font: ?*IDWriteFont,
logFont: ?*LOGFONTW,
isSystemFont: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteGdiInterop,
font: ?*IDWriteFont,
logFont: ?*LOGFONTW,
isSystemFont: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
ConvertFontFaceToLOGFONT: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteGdiInterop,
font: ?*IDWriteFontFace,
logFont: ?*LOGFONTW,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteGdiInterop,
font: ?*IDWriteFontFace,
logFont: ?*LOGFONTW,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontFaceFromHdc: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteGdiInterop,
hdc: ?HDC,
fontFace: ?*?*IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteGdiInterop,
hdc: ?HDC,
fontFace: ?*?*IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateBitmapRenderTarget: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteGdiInterop,
hdc: ?HDC,
width: u32,
height: u32,
renderTarget: ?*?*IDWriteBitmapRenderTarget,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteGdiInterop,
hdc: ?HDC,
width: u32,
height: u32,
renderTarget: ?*?*IDWriteBitmapRenderTarget,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteGdiInterop_CreateFontFromLOGFONT(self: *const T, logFont: ?*const LOGFONTW, font: ?*?*IDWriteFont) callconv(.Inline) HRESULT {
return @as(*const IDWriteGdiInterop.VTable, @ptrCast(self.vtable)).CreateFontFromLOGFONT(@as(*const IDWriteGdiInterop, @ptrCast(self)), logFont, font);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteGdiInterop_ConvertFontToLOGFONT(self: *const T, font: ?*IDWriteFont, logFont: ?*LOGFONTW, isSystemFont: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteGdiInterop.VTable, @ptrCast(self.vtable)).ConvertFontToLOGFONT(@as(*const IDWriteGdiInterop, @ptrCast(self)), font, logFont, isSystemFont);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteGdiInterop_ConvertFontFaceToLOGFONT(self: *const T, font: ?*IDWriteFontFace, logFont: ?*LOGFONTW) callconv(.Inline) HRESULT {
return @as(*const IDWriteGdiInterop.VTable, @ptrCast(self.vtable)).ConvertFontFaceToLOGFONT(@as(*const IDWriteGdiInterop, @ptrCast(self)), font, logFont);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteGdiInterop_CreateFontFaceFromHdc(self: *const T, hdc: ?HDC, fontFace: ?*?*IDWriteFontFace) callconv(.Inline) HRESULT {
return @as(*const IDWriteGdiInterop.VTable, @ptrCast(self.vtable)).CreateFontFaceFromHdc(@as(*const IDWriteGdiInterop, @ptrCast(self)), hdc, fontFace);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteGdiInterop_CreateBitmapRenderTarget(self: *const T, hdc: ?HDC, width: u32, height: u32, renderTarget: ?*?*IDWriteBitmapRenderTarget) callconv(.Inline) HRESULT {
return @as(*const IDWriteGdiInterop.VTable, @ptrCast(self.vtable)).CreateBitmapRenderTarget(@as(*const IDWriteGdiInterop, @ptrCast(self)), hdc, width, height, renderTarget);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_TEXTURE_TYPE = enum(i32) {
ALIASED_1x1 = 0,
CLEARTYPE_3x1 = 1,
};
pub const DWRITE_TEXTURE_ALIASED_1x1 = DWRITE_TEXTURE_TYPE.ALIASED_1x1;
pub const DWRITE_TEXTURE_CLEARTYPE_3x1 = DWRITE_TEXTURE_TYPE.CLEARTYPE_3x1;
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteGlyphRunAnalysis_Value = Guid.initString("7d97dbf7-e085-42d4-81e3-6a883bded118");
pub const IID_IDWriteGlyphRunAnalysis = &IID_IDWriteGlyphRunAnalysis_Value;
pub const IDWriteGlyphRunAnalysis = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetAlphaTextureBounds: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteGlyphRunAnalysis,
textureType: DWRITE_TEXTURE_TYPE,
textureBounds: ?*RECT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteGlyphRunAnalysis,
textureType: DWRITE_TEXTURE_TYPE,
textureBounds: ?*RECT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateAlphaTexture: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteGlyphRunAnalysis,
textureType: DWRITE_TEXTURE_TYPE,
textureBounds: ?*const RECT,
// TODO: what to do with BytesParamIndex 3?
alphaValues: ?*u8,
bufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteGlyphRunAnalysis,
textureType: DWRITE_TEXTURE_TYPE,
textureBounds: ?*const RECT,
// TODO: what to do with BytesParamIndex 3?
alphaValues: ?*u8,
bufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetAlphaBlendParams: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteGlyphRunAnalysis,
renderingParams: ?*IDWriteRenderingParams,
blendGamma: ?*f32,
blendEnhancedContrast: ?*f32,
blendClearTypeLevel: ?*f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteGlyphRunAnalysis,
renderingParams: ?*IDWriteRenderingParams,
blendGamma: ?*f32,
blendEnhancedContrast: ?*f32,
blendClearTypeLevel: ?*f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteGlyphRunAnalysis_GetAlphaTextureBounds(self: *const T, textureType: DWRITE_TEXTURE_TYPE, textureBounds: ?*RECT) callconv(.Inline) HRESULT {
return @as(*const IDWriteGlyphRunAnalysis.VTable, @ptrCast(self.vtable)).GetAlphaTextureBounds(@as(*const IDWriteGlyphRunAnalysis, @ptrCast(self)), textureType, textureBounds);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteGlyphRunAnalysis_CreateAlphaTexture(self: *const T, textureType: DWRITE_TEXTURE_TYPE, textureBounds: ?*const RECT, alphaValues: ?*u8, bufferSize: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteGlyphRunAnalysis.VTable, @ptrCast(self.vtable)).CreateAlphaTexture(@as(*const IDWriteGlyphRunAnalysis, @ptrCast(self)), textureType, textureBounds, alphaValues, bufferSize);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteGlyphRunAnalysis_GetAlphaBlendParams(self: *const T, renderingParams: ?*IDWriteRenderingParams, blendGamma: ?*f32, blendEnhancedContrast: ?*f32, blendClearTypeLevel: ?*f32) callconv(.Inline) HRESULT {
return @as(*const IDWriteGlyphRunAnalysis.VTable, @ptrCast(self.vtable)).GetAlphaBlendParams(@as(*const IDWriteGlyphRunAnalysis, @ptrCast(self)), renderingParams, blendGamma, blendEnhancedContrast, blendClearTypeLevel);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteFactory_Value = Guid.initString("b859ee5a-d838-4b5b-a2e8-1adc7d93db48");
pub const IID_IDWriteFactory = &IID_IDWriteFactory_Value;
pub const IDWriteFactory = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetSystemFontCollection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
fontCollection: ?*?*IDWriteFontCollection,
checkForUpdates: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
fontCollection: ?*?*IDWriteFontCollection,
checkForUpdates: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateCustomFontCollection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
collectionLoader: ?*IDWriteFontCollectionLoader,
// TODO: what to do with BytesParamIndex 2?
collectionKey: ?*const anyopaque,
collectionKeySize: u32,
fontCollection: ?*?*IDWriteFontCollection,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
collectionLoader: ?*IDWriteFontCollectionLoader,
// TODO: what to do with BytesParamIndex 2?
collectionKey: ?*const anyopaque,
collectionKeySize: u32,
fontCollection: ?*?*IDWriteFontCollection,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
RegisterFontCollectionLoader: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
fontCollectionLoader: ?*IDWriteFontCollectionLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
fontCollectionLoader: ?*IDWriteFontCollectionLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
UnregisterFontCollectionLoader: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
fontCollectionLoader: ?*IDWriteFontCollectionLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
fontCollectionLoader: ?*IDWriteFontCollectionLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontFileReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
filePath: ?[*:0]const u16,
lastWriteTime: ?*const FILETIME,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
filePath: ?[*:0]const u16,
lastWriteTime: ?*const FILETIME,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateCustomFontFileReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
fontFileLoader: ?*IDWriteFontFileLoader,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
fontFileLoader: ?*IDWriteFontFileLoader,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontFace: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
fontFaceType: DWRITE_FONT_FACE_TYPE,
numberOfFiles: u32,
fontFiles: [*]?*IDWriteFontFile,
faceIndex: u32,
fontFaceSimulationFlags: DWRITE_FONT_SIMULATIONS,
fontFace: ?*?*IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
fontFaceType: DWRITE_FONT_FACE_TYPE,
numberOfFiles: u32,
fontFiles: [*]?*IDWriteFontFile,
faceIndex: u32,
fontFaceSimulationFlags: DWRITE_FONT_SIMULATIONS,
fontFace: ?*?*IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateRenderingParams: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
renderingParams: ?*?*IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
renderingParams: ?*?*IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateMonitorRenderingParams: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
monitor: ?HMONITOR,
renderingParams: ?*?*IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
monitor: ?HMONITOR,
renderingParams: ?*?*IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateCustomRenderingParams: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
gamma: f32,
enhancedContrast: f32,
clearTypeLevel: f32,
pixelGeometry: DWRITE_PIXEL_GEOMETRY,
renderingMode: DWRITE_RENDERING_MODE,
renderingParams: ?*?*IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
gamma: f32,
enhancedContrast: f32,
clearTypeLevel: f32,
pixelGeometry: DWRITE_PIXEL_GEOMETRY,
renderingMode: DWRITE_RENDERING_MODE,
renderingParams: ?*?*IDWriteRenderingParams,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
RegisterFontFileLoader: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
fontFileLoader: ?*IDWriteFontFileLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
fontFileLoader: ?*IDWriteFontFileLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
UnregisterFontFileLoader: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
fontFileLoader: ?*IDWriteFontFileLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
fontFileLoader: ?*IDWriteFontFileLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateTextFormat: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
fontFamilyName: ?[*:0]const u16,
fontCollection: ?*IDWriteFontCollection,
fontWeight: DWRITE_FONT_WEIGHT,
fontStyle: DWRITE_FONT_STYLE,
fontStretch: DWRITE_FONT_STRETCH,
fontSize: f32,
localeName: ?[*:0]const u16,
textFormat: ?*?*IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
fontFamilyName: ?[*:0]const u16,
fontCollection: ?*IDWriteFontCollection,
fontWeight: DWRITE_FONT_WEIGHT,
fontStyle: DWRITE_FONT_STYLE,
fontStretch: DWRITE_FONT_STRETCH,
fontSize: f32,
localeName: ?[*:0]const u16,
textFormat: ?*?*IDWriteTextFormat,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateTypography: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
typography: ?*?*IDWriteTypography,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
typography: ?*?*IDWriteTypography,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetGdiInterop: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
gdiInterop: ?*?*IDWriteGdiInterop,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
gdiInterop: ?*?*IDWriteGdiInterop,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateTextLayout: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
string: [*:0]const u16,
stringLength: u32,
textFormat: ?*IDWriteTextFormat,
maxWidth: f32,
maxHeight: f32,
textLayout: ?*?*IDWriteTextLayout,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
string: [*:0]const u16,
stringLength: u32,
textFormat: ?*IDWriteTextFormat,
maxWidth: f32,
maxHeight: f32,
textLayout: ?*?*IDWriteTextLayout,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateGdiCompatibleTextLayout: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
string: [*:0]const u16,
stringLength: u32,
textFormat: ?*IDWriteTextFormat,
layoutWidth: f32,
layoutHeight: f32,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
useGdiNatural: BOOL,
textLayout: ?*?*IDWriteTextLayout,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
string: [*:0]const u16,
stringLength: u32,
textFormat: ?*IDWriteTextFormat,
layoutWidth: f32,
layoutHeight: f32,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
useGdiNatural: BOOL,
textLayout: ?*?*IDWriteTextLayout,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateEllipsisTrimmingSign: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
textFormat: ?*IDWriteTextFormat,
trimmingSign: ?*?*IDWriteInlineObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
textFormat: ?*IDWriteTextFormat,
trimmingSign: ?*?*IDWriteInlineObject,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateTextAnalyzer: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
textAnalyzer: ?*?*IDWriteTextAnalyzer,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
textAnalyzer: ?*?*IDWriteTextAnalyzer,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateNumberSubstitution: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
substitutionMethod: DWRITE_NUMBER_SUBSTITUTION_METHOD,
localeName: ?[*:0]const u16,
ignoreUserOverride: BOOL,
numberSubstitution: ?*?*IDWriteNumberSubstitution,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
substitutionMethod: DWRITE_NUMBER_SUBSTITUTION_METHOD,
localeName: ?[*:0]const u16,
ignoreUserOverride: BOOL,
numberSubstitution: ?*?*IDWriteNumberSubstitution,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateGlyphRunAnalysis: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory,
glyphRun: ?*const DWRITE_GLYPH_RUN,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
renderingMode: DWRITE_RENDERING_MODE,
measuringMode: DWRITE_MEASURING_MODE,
baselineOriginX: f32,
baselineOriginY: f32,
glyphRunAnalysis: ?*?*IDWriteGlyphRunAnalysis,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory,
glyphRun: ?*const DWRITE_GLYPH_RUN,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
renderingMode: DWRITE_RENDERING_MODE,
measuringMode: DWRITE_MEASURING_MODE,
baselineOriginX: f32,
baselineOriginY: f32,
glyphRunAnalysis: ?*?*IDWriteGlyphRunAnalysis,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_GetSystemFontCollection(self: *const T, fontCollection: ?*?*IDWriteFontCollection, checkForUpdates: BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).GetSystemFontCollection(@as(*const IDWriteFactory, @ptrCast(self)), fontCollection, checkForUpdates);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateCustomFontCollection(self: *const T, collectionLoader: ?*IDWriteFontCollectionLoader, collectionKey: ?*const anyopaque, collectionKeySize: u32, fontCollection: ?*?*IDWriteFontCollection) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateCustomFontCollection(@as(*const IDWriteFactory, @ptrCast(self)), collectionLoader, collectionKey, collectionKeySize, fontCollection);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_RegisterFontCollectionLoader(self: *const T, fontCollectionLoader: ?*IDWriteFontCollectionLoader) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).RegisterFontCollectionLoader(@as(*const IDWriteFactory, @ptrCast(self)), fontCollectionLoader);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_UnregisterFontCollectionLoader(self: *const T, fontCollectionLoader: ?*IDWriteFontCollectionLoader) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).UnregisterFontCollectionLoader(@as(*const IDWriteFactory, @ptrCast(self)), fontCollectionLoader);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateFontFileReference(self: *const T, filePath: ?[*:0]const u16, lastWriteTime: ?*const FILETIME, fontFile: ?*?*IDWriteFontFile) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateFontFileReference(@as(*const IDWriteFactory, @ptrCast(self)), filePath, lastWriteTime, fontFile);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateCustomFontFileReference(self: *const T, fontFileReferenceKey: ?*const anyopaque, fontFileReferenceKeySize: u32, fontFileLoader: ?*IDWriteFontFileLoader, fontFile: ?*?*IDWriteFontFile) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateCustomFontFileReference(@as(*const IDWriteFactory, @ptrCast(self)), fontFileReferenceKey, fontFileReferenceKeySize, fontFileLoader, fontFile);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateFontFace(self: *const T, fontFaceType: DWRITE_FONT_FACE_TYPE, numberOfFiles: u32, fontFiles: [*]?*IDWriteFontFile, faceIndex: u32, fontFaceSimulationFlags: DWRITE_FONT_SIMULATIONS, fontFace: ?*?*IDWriteFontFace) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateFontFace(@as(*const IDWriteFactory, @ptrCast(self)), fontFaceType, numberOfFiles, fontFiles, faceIndex, fontFaceSimulationFlags, fontFace);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateRenderingParams(self: *const T, renderingParams: ?*?*IDWriteRenderingParams) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateRenderingParams(@as(*const IDWriteFactory, @ptrCast(self)), renderingParams);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateMonitorRenderingParams(self: *const T, monitor: ?HMONITOR, renderingParams: ?*?*IDWriteRenderingParams) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateMonitorRenderingParams(@as(*const IDWriteFactory, @ptrCast(self)), monitor, renderingParams);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateCustomRenderingParams(self: *const T, gamma: f32, enhancedContrast: f32, clearTypeLevel: f32, pixelGeometry: DWRITE_PIXEL_GEOMETRY, renderingMode: DWRITE_RENDERING_MODE, renderingParams: ?*?*IDWriteRenderingParams) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateCustomRenderingParams(@as(*const IDWriteFactory, @ptrCast(self)), gamma, enhancedContrast, clearTypeLevel, pixelGeometry, renderingMode, renderingParams);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_RegisterFontFileLoader(self: *const T, fontFileLoader: ?*IDWriteFontFileLoader) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).RegisterFontFileLoader(@as(*const IDWriteFactory, @ptrCast(self)), fontFileLoader);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_UnregisterFontFileLoader(self: *const T, fontFileLoader: ?*IDWriteFontFileLoader) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).UnregisterFontFileLoader(@as(*const IDWriteFactory, @ptrCast(self)), fontFileLoader);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateTextFormat(self: *const T, fontFamilyName: ?[*:0]const u16, fontCollection: ?*IDWriteFontCollection, fontWeight: DWRITE_FONT_WEIGHT, fontStyle: DWRITE_FONT_STYLE, fontStretch: DWRITE_FONT_STRETCH, fontSize: f32, localeName: ?[*:0]const u16, textFormat: ?*?*IDWriteTextFormat) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateTextFormat(@as(*const IDWriteFactory, @ptrCast(self)), fontFamilyName, fontCollection, fontWeight, fontStyle, fontStretch, fontSize, localeName, textFormat);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateTypography(self: *const T, typography: ?*?*IDWriteTypography) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateTypography(@as(*const IDWriteFactory, @ptrCast(self)), typography);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_GetGdiInterop(self: *const T, gdiInterop: ?*?*IDWriteGdiInterop) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).GetGdiInterop(@as(*const IDWriteFactory, @ptrCast(self)), gdiInterop);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateTextLayout(self: *const T, string: [*:0]const u16, stringLength: u32, textFormat: ?*IDWriteTextFormat, maxWidth: f32, maxHeight: f32, textLayout: ?*?*IDWriteTextLayout) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateTextLayout(@as(*const IDWriteFactory, @ptrCast(self)), string, stringLength, textFormat, maxWidth, maxHeight, textLayout);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateGdiCompatibleTextLayout(self: *const T, string: [*:0]const u16, stringLength: u32, textFormat: ?*IDWriteTextFormat, layoutWidth: f32, layoutHeight: f32, pixelsPerDip: f32, transform: ?*const DWRITE_MATRIX, useGdiNatural: BOOL, textLayout: ?*?*IDWriteTextLayout) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateGdiCompatibleTextLayout(@as(*const IDWriteFactory, @ptrCast(self)), string, stringLength, textFormat, layoutWidth, layoutHeight, pixelsPerDip, transform, useGdiNatural, textLayout);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateEllipsisTrimmingSign(self: *const T, textFormat: ?*IDWriteTextFormat, trimmingSign: ?*?*IDWriteInlineObject) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateEllipsisTrimmingSign(@as(*const IDWriteFactory, @ptrCast(self)), textFormat, trimmingSign);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateTextAnalyzer(self: *const T, textAnalyzer: ?*?*IDWriteTextAnalyzer) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateTextAnalyzer(@as(*const IDWriteFactory, @ptrCast(self)), textAnalyzer);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateNumberSubstitution(self: *const T, substitutionMethod: DWRITE_NUMBER_SUBSTITUTION_METHOD, localeName: ?[*:0]const u16, ignoreUserOverride: BOOL, numberSubstitution: ?*?*IDWriteNumberSubstitution) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateNumberSubstitution(@as(*const IDWriteFactory, @ptrCast(self)), substitutionMethod, localeName, ignoreUserOverride, numberSubstitution);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory_CreateGlyphRunAnalysis(self: *const T, glyphRun: ?*const DWRITE_GLYPH_RUN, pixelsPerDip: f32, transform: ?*const DWRITE_MATRIX, renderingMode: DWRITE_RENDERING_MODE, measuringMode: DWRITE_MEASURING_MODE, baselineOriginX: f32, baselineOriginY: f32, glyphRunAnalysis: ?*?*IDWriteGlyphRunAnalysis) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory.VTable, @ptrCast(self.vtable)).CreateGlyphRunAnalysis(@as(*const IDWriteFactory, @ptrCast(self)), glyphRun, pixelsPerDip, transform, renderingMode, measuringMode, baselineOriginX, baselineOriginY, glyphRunAnalysis);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_PANOSE_FAMILY = enum(i32) {
ANY = 0,
NO_FIT = 1,
TEXT_DISPLAY = 2,
SCRIPT = 3,
DECORATIVE = 4,
SYMBOL = 5,
// PICTORIAL = 5, this enum value conflicts with SYMBOL
};
pub const DWRITE_PANOSE_FAMILY_ANY = DWRITE_PANOSE_FAMILY.ANY;
pub const DWRITE_PANOSE_FAMILY_NO_FIT = DWRITE_PANOSE_FAMILY.NO_FIT;
pub const DWRITE_PANOSE_FAMILY_TEXT_DISPLAY = DWRITE_PANOSE_FAMILY.TEXT_DISPLAY;
pub const DWRITE_PANOSE_FAMILY_SCRIPT = DWRITE_PANOSE_FAMILY.SCRIPT;
pub const DWRITE_PANOSE_FAMILY_DECORATIVE = DWRITE_PANOSE_FAMILY.DECORATIVE;
pub const DWRITE_PANOSE_FAMILY_SYMBOL = DWRITE_PANOSE_FAMILY.SYMBOL;
pub const DWRITE_PANOSE_FAMILY_PICTORIAL = DWRITE_PANOSE_FAMILY.SYMBOL;
pub const DWRITE_PANOSE_SERIF_STYLE = enum(i32) {
ANY = 0,
NO_FIT = 1,
COVE = 2,
OBTUSE_COVE = 3,
SQUARE_COVE = 4,
OBTUSE_SQUARE_COVE = 5,
SQUARE = 6,
THIN = 7,
OVAL = 8,
EXAGGERATED = 9,
TRIANGLE = 10,
NORMAL_SANS = 11,
OBTUSE_SANS = 12,
PERPENDICULAR_SANS = 13,
FLARED = 14,
ROUNDED = 15,
SCRIPT = 16,
// PERP_SANS = 13, this enum value conflicts with PERPENDICULAR_SANS
// BONE = 8, this enum value conflicts with OVAL
};
pub const DWRITE_PANOSE_SERIF_STYLE_ANY = DWRITE_PANOSE_SERIF_STYLE.ANY;
pub const DWRITE_PANOSE_SERIF_STYLE_NO_FIT = DWRITE_PANOSE_SERIF_STYLE.NO_FIT;
pub const DWRITE_PANOSE_SERIF_STYLE_COVE = DWRITE_PANOSE_SERIF_STYLE.COVE;
pub const DWRITE_PANOSE_SERIF_STYLE_OBTUSE_COVE = DWRITE_PANOSE_SERIF_STYLE.OBTUSE_COVE;
pub const DWRITE_PANOSE_SERIF_STYLE_SQUARE_COVE = DWRITE_PANOSE_SERIF_STYLE.SQUARE_COVE;
pub const DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SQUARE_COVE = DWRITE_PANOSE_SERIF_STYLE.OBTUSE_SQUARE_COVE;
pub const DWRITE_PANOSE_SERIF_STYLE_SQUARE = DWRITE_PANOSE_SERIF_STYLE.SQUARE;
pub const DWRITE_PANOSE_SERIF_STYLE_THIN = DWRITE_PANOSE_SERIF_STYLE.THIN;
pub const DWRITE_PANOSE_SERIF_STYLE_OVAL = DWRITE_PANOSE_SERIF_STYLE.OVAL;
pub const DWRITE_PANOSE_SERIF_STYLE_EXAGGERATED = DWRITE_PANOSE_SERIF_STYLE.EXAGGERATED;
pub const DWRITE_PANOSE_SERIF_STYLE_TRIANGLE = DWRITE_PANOSE_SERIF_STYLE.TRIANGLE;
pub const DWRITE_PANOSE_SERIF_STYLE_NORMAL_SANS = DWRITE_PANOSE_SERIF_STYLE.NORMAL_SANS;
pub const DWRITE_PANOSE_SERIF_STYLE_OBTUSE_SANS = DWRITE_PANOSE_SERIF_STYLE.OBTUSE_SANS;
pub const DWRITE_PANOSE_SERIF_STYLE_PERPENDICULAR_SANS = DWRITE_PANOSE_SERIF_STYLE.PERPENDICULAR_SANS;
pub const DWRITE_PANOSE_SERIF_STYLE_FLARED = DWRITE_PANOSE_SERIF_STYLE.FLARED;
pub const DWRITE_PANOSE_SERIF_STYLE_ROUNDED = DWRITE_PANOSE_SERIF_STYLE.ROUNDED;
pub const DWRITE_PANOSE_SERIF_STYLE_SCRIPT = DWRITE_PANOSE_SERIF_STYLE.SCRIPT;
pub const DWRITE_PANOSE_SERIF_STYLE_PERP_SANS = DWRITE_PANOSE_SERIF_STYLE.PERPENDICULAR_SANS;
pub const DWRITE_PANOSE_SERIF_STYLE_BONE = DWRITE_PANOSE_SERIF_STYLE.OVAL;
pub const DWRITE_PANOSE_WEIGHT = enum(i32) {
ANY = 0,
NO_FIT = 1,
VERY_LIGHT = 2,
LIGHT = 3,
THIN = 4,
BOOK = 5,
MEDIUM = 6,
DEMI = 7,
BOLD = 8,
HEAVY = 9,
BLACK = 10,
EXTRA_BLACK = 11,
// NORD = 11, this enum value conflicts with EXTRA_BLACK
};
pub const DWRITE_PANOSE_WEIGHT_ANY = DWRITE_PANOSE_WEIGHT.ANY;
pub const DWRITE_PANOSE_WEIGHT_NO_FIT = DWRITE_PANOSE_WEIGHT.NO_FIT;
pub const DWRITE_PANOSE_WEIGHT_VERY_LIGHT = DWRITE_PANOSE_WEIGHT.VERY_LIGHT;
pub const DWRITE_PANOSE_WEIGHT_LIGHT = DWRITE_PANOSE_WEIGHT.LIGHT;
pub const DWRITE_PANOSE_WEIGHT_THIN = DWRITE_PANOSE_WEIGHT.THIN;
pub const DWRITE_PANOSE_WEIGHT_BOOK = DWRITE_PANOSE_WEIGHT.BOOK;
pub const DWRITE_PANOSE_WEIGHT_MEDIUM = DWRITE_PANOSE_WEIGHT.MEDIUM;
pub const DWRITE_PANOSE_WEIGHT_DEMI = DWRITE_PANOSE_WEIGHT.DEMI;
pub const DWRITE_PANOSE_WEIGHT_BOLD = DWRITE_PANOSE_WEIGHT.BOLD;
pub const DWRITE_PANOSE_WEIGHT_HEAVY = DWRITE_PANOSE_WEIGHT.HEAVY;
pub const DWRITE_PANOSE_WEIGHT_BLACK = DWRITE_PANOSE_WEIGHT.BLACK;
pub const DWRITE_PANOSE_WEIGHT_EXTRA_BLACK = DWRITE_PANOSE_WEIGHT.EXTRA_BLACK;
pub const DWRITE_PANOSE_WEIGHT_NORD = DWRITE_PANOSE_WEIGHT.EXTRA_BLACK;
pub const DWRITE_PANOSE_PROPORTION = enum(i32) {
ANY = 0,
NO_FIT = 1,
OLD_STYLE = 2,
MODERN = 3,
EVEN_WIDTH = 4,
EXPANDED = 5,
CONDENSED = 6,
VERY_EXPANDED = 7,
VERY_CONDENSED = 8,
MONOSPACED = 9,
};
pub const DWRITE_PANOSE_PROPORTION_ANY = DWRITE_PANOSE_PROPORTION.ANY;
pub const DWRITE_PANOSE_PROPORTION_NO_FIT = DWRITE_PANOSE_PROPORTION.NO_FIT;
pub const DWRITE_PANOSE_PROPORTION_OLD_STYLE = DWRITE_PANOSE_PROPORTION.OLD_STYLE;
pub const DWRITE_PANOSE_PROPORTION_MODERN = DWRITE_PANOSE_PROPORTION.MODERN;
pub const DWRITE_PANOSE_PROPORTION_EVEN_WIDTH = DWRITE_PANOSE_PROPORTION.EVEN_WIDTH;
pub const DWRITE_PANOSE_PROPORTION_EXPANDED = DWRITE_PANOSE_PROPORTION.EXPANDED;
pub const DWRITE_PANOSE_PROPORTION_CONDENSED = DWRITE_PANOSE_PROPORTION.CONDENSED;
pub const DWRITE_PANOSE_PROPORTION_VERY_EXPANDED = DWRITE_PANOSE_PROPORTION.VERY_EXPANDED;
pub const DWRITE_PANOSE_PROPORTION_VERY_CONDENSED = DWRITE_PANOSE_PROPORTION.VERY_CONDENSED;
pub const DWRITE_PANOSE_PROPORTION_MONOSPACED = DWRITE_PANOSE_PROPORTION.MONOSPACED;
pub const DWRITE_PANOSE_CONTRAST = enum(i32) {
ANY = 0,
NO_FIT = 1,
NONE = 2,
VERY_LOW = 3,
LOW = 4,
MEDIUM_LOW = 5,
MEDIUM = 6,
MEDIUM_HIGH = 7,
HIGH = 8,
VERY_HIGH = 9,
HORIZONTAL_LOW = 10,
HORIZONTAL_MEDIUM = 11,
HORIZONTAL_HIGH = 12,
BROKEN = 13,
};
pub const DWRITE_PANOSE_CONTRAST_ANY = DWRITE_PANOSE_CONTRAST.ANY;
pub const DWRITE_PANOSE_CONTRAST_NO_FIT = DWRITE_PANOSE_CONTRAST.NO_FIT;
pub const DWRITE_PANOSE_CONTRAST_NONE = DWRITE_PANOSE_CONTRAST.NONE;
pub const DWRITE_PANOSE_CONTRAST_VERY_LOW = DWRITE_PANOSE_CONTRAST.VERY_LOW;
pub const DWRITE_PANOSE_CONTRAST_LOW = DWRITE_PANOSE_CONTRAST.LOW;
pub const DWRITE_PANOSE_CONTRAST_MEDIUM_LOW = DWRITE_PANOSE_CONTRAST.MEDIUM_LOW;
pub const DWRITE_PANOSE_CONTRAST_MEDIUM = DWRITE_PANOSE_CONTRAST.MEDIUM;
pub const DWRITE_PANOSE_CONTRAST_MEDIUM_HIGH = DWRITE_PANOSE_CONTRAST.MEDIUM_HIGH;
pub const DWRITE_PANOSE_CONTRAST_HIGH = DWRITE_PANOSE_CONTRAST.HIGH;
pub const DWRITE_PANOSE_CONTRAST_VERY_HIGH = DWRITE_PANOSE_CONTRAST.VERY_HIGH;
pub const DWRITE_PANOSE_CONTRAST_HORIZONTAL_LOW = DWRITE_PANOSE_CONTRAST.HORIZONTAL_LOW;
pub const DWRITE_PANOSE_CONTRAST_HORIZONTAL_MEDIUM = DWRITE_PANOSE_CONTRAST.HORIZONTAL_MEDIUM;
pub const DWRITE_PANOSE_CONTRAST_HORIZONTAL_HIGH = DWRITE_PANOSE_CONTRAST.HORIZONTAL_HIGH;
pub const DWRITE_PANOSE_CONTRAST_BROKEN = DWRITE_PANOSE_CONTRAST.BROKEN;
pub const DWRITE_PANOSE_STROKE_VARIATION = enum(i32) {
ANY = 0,
NO_FIT = 1,
NO_VARIATION = 2,
GRADUAL_DIAGONAL = 3,
GRADUAL_TRANSITIONAL = 4,
GRADUAL_VERTICAL = 5,
GRADUAL_HORIZONTAL = 6,
RAPID_VERTICAL = 7,
RAPID_HORIZONTAL = 8,
INSTANT_VERTICAL = 9,
INSTANT_HORIZONTAL = 10,
};
pub const DWRITE_PANOSE_STROKE_VARIATION_ANY = DWRITE_PANOSE_STROKE_VARIATION.ANY;
pub const DWRITE_PANOSE_STROKE_VARIATION_NO_FIT = DWRITE_PANOSE_STROKE_VARIATION.NO_FIT;
pub const DWRITE_PANOSE_STROKE_VARIATION_NO_VARIATION = DWRITE_PANOSE_STROKE_VARIATION.NO_VARIATION;
pub const DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_DIAGONAL = DWRITE_PANOSE_STROKE_VARIATION.GRADUAL_DIAGONAL;
pub const DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_TRANSITIONAL = DWRITE_PANOSE_STROKE_VARIATION.GRADUAL_TRANSITIONAL;
pub const DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_VERTICAL = DWRITE_PANOSE_STROKE_VARIATION.GRADUAL_VERTICAL;
pub const DWRITE_PANOSE_STROKE_VARIATION_GRADUAL_HORIZONTAL = DWRITE_PANOSE_STROKE_VARIATION.GRADUAL_HORIZONTAL;
pub const DWRITE_PANOSE_STROKE_VARIATION_RAPID_VERTICAL = DWRITE_PANOSE_STROKE_VARIATION.RAPID_VERTICAL;
pub const DWRITE_PANOSE_STROKE_VARIATION_RAPID_HORIZONTAL = DWRITE_PANOSE_STROKE_VARIATION.RAPID_HORIZONTAL;
pub const DWRITE_PANOSE_STROKE_VARIATION_INSTANT_VERTICAL = DWRITE_PANOSE_STROKE_VARIATION.INSTANT_VERTICAL;
pub const DWRITE_PANOSE_STROKE_VARIATION_INSTANT_HORIZONTAL = DWRITE_PANOSE_STROKE_VARIATION.INSTANT_HORIZONTAL;
pub const DWRITE_PANOSE_ARM_STYLE = enum(i32) {
ANY = 0,
NO_FIT = 1,
STRAIGHT_ARMS_HORIZONTAL = 2,
STRAIGHT_ARMS_WEDGE = 3,
STRAIGHT_ARMS_VERTICAL = 4,
STRAIGHT_ARMS_SINGLE_SERIF = 5,
STRAIGHT_ARMS_DOUBLE_SERIF = 6,
NONSTRAIGHT_ARMS_HORIZONTAL = 7,
NONSTRAIGHT_ARMS_WEDGE = 8,
NONSTRAIGHT_ARMS_VERTICAL = 9,
NONSTRAIGHT_ARMS_SINGLE_SERIF = 10,
NONSTRAIGHT_ARMS_DOUBLE_SERIF = 11,
// STRAIGHT_ARMS_HORZ = 2, this enum value conflicts with STRAIGHT_ARMS_HORIZONTAL
// STRAIGHT_ARMS_VERT = 4, this enum value conflicts with STRAIGHT_ARMS_VERTICAL
// BENT_ARMS_HORZ = 7, this enum value conflicts with NONSTRAIGHT_ARMS_HORIZONTAL
// BENT_ARMS_WEDGE = 8, this enum value conflicts with NONSTRAIGHT_ARMS_WEDGE
// BENT_ARMS_VERT = 9, this enum value conflicts with NONSTRAIGHT_ARMS_VERTICAL
// BENT_ARMS_SINGLE_SERIF = 10, this enum value conflicts with NONSTRAIGHT_ARMS_SINGLE_SERIF
// BENT_ARMS_DOUBLE_SERIF = 11, this enum value conflicts with NONSTRAIGHT_ARMS_DOUBLE_SERIF
};
pub const DWRITE_PANOSE_ARM_STYLE_ANY = DWRITE_PANOSE_ARM_STYLE.ANY;
pub const DWRITE_PANOSE_ARM_STYLE_NO_FIT = DWRITE_PANOSE_ARM_STYLE.NO_FIT;
pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORIZONTAL = DWRITE_PANOSE_ARM_STYLE.STRAIGHT_ARMS_HORIZONTAL;
pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_WEDGE = DWRITE_PANOSE_ARM_STYLE.STRAIGHT_ARMS_WEDGE;
pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERTICAL = DWRITE_PANOSE_ARM_STYLE.STRAIGHT_ARMS_VERTICAL;
pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_SINGLE_SERIF = DWRITE_PANOSE_ARM_STYLE.STRAIGHT_ARMS_SINGLE_SERIF;
pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_DOUBLE_SERIF = DWRITE_PANOSE_ARM_STYLE.STRAIGHT_ARMS_DOUBLE_SERIF;
pub const DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_HORIZONTAL = DWRITE_PANOSE_ARM_STYLE.NONSTRAIGHT_ARMS_HORIZONTAL;
pub const DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_WEDGE = DWRITE_PANOSE_ARM_STYLE.NONSTRAIGHT_ARMS_WEDGE;
pub const DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_VERTICAL = DWRITE_PANOSE_ARM_STYLE.NONSTRAIGHT_ARMS_VERTICAL;
pub const DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_SINGLE_SERIF = DWRITE_PANOSE_ARM_STYLE.NONSTRAIGHT_ARMS_SINGLE_SERIF;
pub const DWRITE_PANOSE_ARM_STYLE_NONSTRAIGHT_ARMS_DOUBLE_SERIF = DWRITE_PANOSE_ARM_STYLE.NONSTRAIGHT_ARMS_DOUBLE_SERIF;
pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_HORZ = DWRITE_PANOSE_ARM_STYLE.STRAIGHT_ARMS_HORIZONTAL;
pub const DWRITE_PANOSE_ARM_STYLE_STRAIGHT_ARMS_VERT = DWRITE_PANOSE_ARM_STYLE.STRAIGHT_ARMS_VERTICAL;
pub const DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_HORZ = DWRITE_PANOSE_ARM_STYLE.NONSTRAIGHT_ARMS_HORIZONTAL;
pub const DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_WEDGE = DWRITE_PANOSE_ARM_STYLE.NONSTRAIGHT_ARMS_WEDGE;
pub const DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_VERT = DWRITE_PANOSE_ARM_STYLE.NONSTRAIGHT_ARMS_VERTICAL;
pub const DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_SINGLE_SERIF = DWRITE_PANOSE_ARM_STYLE.NONSTRAIGHT_ARMS_SINGLE_SERIF;
pub const DWRITE_PANOSE_ARM_STYLE_BENT_ARMS_DOUBLE_SERIF = DWRITE_PANOSE_ARM_STYLE.NONSTRAIGHT_ARMS_DOUBLE_SERIF;
pub const DWRITE_PANOSE_LETTERFORM = enum(i32) {
ANY = 0,
NO_FIT = 1,
NORMAL_CONTACT = 2,
NORMAL_WEIGHTED = 3,
NORMAL_BOXED = 4,
NORMAL_FLATTENED = 5,
NORMAL_ROUNDED = 6,
NORMAL_OFF_CENTER = 7,
NORMAL_SQUARE = 8,
OBLIQUE_CONTACT = 9,
OBLIQUE_WEIGHTED = 10,
OBLIQUE_BOXED = 11,
OBLIQUE_FLATTENED = 12,
OBLIQUE_ROUNDED = 13,
OBLIQUE_OFF_CENTER = 14,
OBLIQUE_SQUARE = 15,
};
pub const DWRITE_PANOSE_LETTERFORM_ANY = DWRITE_PANOSE_LETTERFORM.ANY;
pub const DWRITE_PANOSE_LETTERFORM_NO_FIT = DWRITE_PANOSE_LETTERFORM.NO_FIT;
pub const DWRITE_PANOSE_LETTERFORM_NORMAL_CONTACT = DWRITE_PANOSE_LETTERFORM.NORMAL_CONTACT;
pub const DWRITE_PANOSE_LETTERFORM_NORMAL_WEIGHTED = DWRITE_PANOSE_LETTERFORM.NORMAL_WEIGHTED;
pub const DWRITE_PANOSE_LETTERFORM_NORMAL_BOXED = DWRITE_PANOSE_LETTERFORM.NORMAL_BOXED;
pub const DWRITE_PANOSE_LETTERFORM_NORMAL_FLATTENED = DWRITE_PANOSE_LETTERFORM.NORMAL_FLATTENED;
pub const DWRITE_PANOSE_LETTERFORM_NORMAL_ROUNDED = DWRITE_PANOSE_LETTERFORM.NORMAL_ROUNDED;
pub const DWRITE_PANOSE_LETTERFORM_NORMAL_OFF_CENTER = DWRITE_PANOSE_LETTERFORM.NORMAL_OFF_CENTER;
pub const DWRITE_PANOSE_LETTERFORM_NORMAL_SQUARE = DWRITE_PANOSE_LETTERFORM.NORMAL_SQUARE;
pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_CONTACT = DWRITE_PANOSE_LETTERFORM.OBLIQUE_CONTACT;
pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_WEIGHTED = DWRITE_PANOSE_LETTERFORM.OBLIQUE_WEIGHTED;
pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_BOXED = DWRITE_PANOSE_LETTERFORM.OBLIQUE_BOXED;
pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_FLATTENED = DWRITE_PANOSE_LETTERFORM.OBLIQUE_FLATTENED;
pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_ROUNDED = DWRITE_PANOSE_LETTERFORM.OBLIQUE_ROUNDED;
pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_OFF_CENTER = DWRITE_PANOSE_LETTERFORM.OBLIQUE_OFF_CENTER;
pub const DWRITE_PANOSE_LETTERFORM_OBLIQUE_SQUARE = DWRITE_PANOSE_LETTERFORM.OBLIQUE_SQUARE;
pub const DWRITE_PANOSE_MIDLINE = enum(i32) {
ANY = 0,
NO_FIT = 1,
STANDARD_TRIMMED = 2,
STANDARD_POINTED = 3,
STANDARD_SERIFED = 4,
HIGH_TRIMMED = 5,
HIGH_POINTED = 6,
HIGH_SERIFED = 7,
CONSTANT_TRIMMED = 8,
CONSTANT_POINTED = 9,
CONSTANT_SERIFED = 10,
LOW_TRIMMED = 11,
LOW_POINTED = 12,
LOW_SERIFED = 13,
};
pub const DWRITE_PANOSE_MIDLINE_ANY = DWRITE_PANOSE_MIDLINE.ANY;
pub const DWRITE_PANOSE_MIDLINE_NO_FIT = DWRITE_PANOSE_MIDLINE.NO_FIT;
pub const DWRITE_PANOSE_MIDLINE_STANDARD_TRIMMED = DWRITE_PANOSE_MIDLINE.STANDARD_TRIMMED;
pub const DWRITE_PANOSE_MIDLINE_STANDARD_POINTED = DWRITE_PANOSE_MIDLINE.STANDARD_POINTED;
pub const DWRITE_PANOSE_MIDLINE_STANDARD_SERIFED = DWRITE_PANOSE_MIDLINE.STANDARD_SERIFED;
pub const DWRITE_PANOSE_MIDLINE_HIGH_TRIMMED = DWRITE_PANOSE_MIDLINE.HIGH_TRIMMED;
pub const DWRITE_PANOSE_MIDLINE_HIGH_POINTED = DWRITE_PANOSE_MIDLINE.HIGH_POINTED;
pub const DWRITE_PANOSE_MIDLINE_HIGH_SERIFED = DWRITE_PANOSE_MIDLINE.HIGH_SERIFED;
pub const DWRITE_PANOSE_MIDLINE_CONSTANT_TRIMMED = DWRITE_PANOSE_MIDLINE.CONSTANT_TRIMMED;
pub const DWRITE_PANOSE_MIDLINE_CONSTANT_POINTED = DWRITE_PANOSE_MIDLINE.CONSTANT_POINTED;
pub const DWRITE_PANOSE_MIDLINE_CONSTANT_SERIFED = DWRITE_PANOSE_MIDLINE.CONSTANT_SERIFED;
pub const DWRITE_PANOSE_MIDLINE_LOW_TRIMMED = DWRITE_PANOSE_MIDLINE.LOW_TRIMMED;
pub const DWRITE_PANOSE_MIDLINE_LOW_POINTED = DWRITE_PANOSE_MIDLINE.LOW_POINTED;
pub const DWRITE_PANOSE_MIDLINE_LOW_SERIFED = DWRITE_PANOSE_MIDLINE.LOW_SERIFED;
pub const DWRITE_PANOSE_XHEIGHT = enum(i32) {
ANY = 0,
NO_FIT = 1,
CONSTANT_SMALL = 2,
CONSTANT_STANDARD = 3,
CONSTANT_LARGE = 4,
DUCKING_SMALL = 5,
DUCKING_STANDARD = 6,
DUCKING_LARGE = 7,
// CONSTANT_STD = 3, this enum value conflicts with CONSTANT_STANDARD
// DUCKING_STD = 6, this enum value conflicts with DUCKING_STANDARD
};
pub const DWRITE_PANOSE_XHEIGHT_ANY = DWRITE_PANOSE_XHEIGHT.ANY;
pub const DWRITE_PANOSE_XHEIGHT_NO_FIT = DWRITE_PANOSE_XHEIGHT.NO_FIT;
pub const DWRITE_PANOSE_XHEIGHT_CONSTANT_SMALL = DWRITE_PANOSE_XHEIGHT.CONSTANT_SMALL;
pub const DWRITE_PANOSE_XHEIGHT_CONSTANT_STANDARD = DWRITE_PANOSE_XHEIGHT.CONSTANT_STANDARD;
pub const DWRITE_PANOSE_XHEIGHT_CONSTANT_LARGE = DWRITE_PANOSE_XHEIGHT.CONSTANT_LARGE;
pub const DWRITE_PANOSE_XHEIGHT_DUCKING_SMALL = DWRITE_PANOSE_XHEIGHT.DUCKING_SMALL;
pub const DWRITE_PANOSE_XHEIGHT_DUCKING_STANDARD = DWRITE_PANOSE_XHEIGHT.DUCKING_STANDARD;
pub const DWRITE_PANOSE_XHEIGHT_DUCKING_LARGE = DWRITE_PANOSE_XHEIGHT.DUCKING_LARGE;
pub const DWRITE_PANOSE_XHEIGHT_CONSTANT_STD = DWRITE_PANOSE_XHEIGHT.CONSTANT_STANDARD;
pub const DWRITE_PANOSE_XHEIGHT_DUCKING_STD = DWRITE_PANOSE_XHEIGHT.DUCKING_STANDARD;
pub const DWRITE_PANOSE_TOOL_KIND = enum(i32) {
ANY = 0,
NO_FIT = 1,
FLAT_NIB = 2,
PRESSURE_POINT = 3,
ENGRAVED = 4,
BALL = 5,
BRUSH = 6,
ROUGH = 7,
FELT_PEN_BRUSH_TIP = 8,
WILD_BRUSH = 9,
};
pub const DWRITE_PANOSE_TOOL_KIND_ANY = DWRITE_PANOSE_TOOL_KIND.ANY;
pub const DWRITE_PANOSE_TOOL_KIND_NO_FIT = DWRITE_PANOSE_TOOL_KIND.NO_FIT;
pub const DWRITE_PANOSE_TOOL_KIND_FLAT_NIB = DWRITE_PANOSE_TOOL_KIND.FLAT_NIB;
pub const DWRITE_PANOSE_TOOL_KIND_PRESSURE_POINT = DWRITE_PANOSE_TOOL_KIND.PRESSURE_POINT;
pub const DWRITE_PANOSE_TOOL_KIND_ENGRAVED = DWRITE_PANOSE_TOOL_KIND.ENGRAVED;
pub const DWRITE_PANOSE_TOOL_KIND_BALL = DWRITE_PANOSE_TOOL_KIND.BALL;
pub const DWRITE_PANOSE_TOOL_KIND_BRUSH = DWRITE_PANOSE_TOOL_KIND.BRUSH;
pub const DWRITE_PANOSE_TOOL_KIND_ROUGH = DWRITE_PANOSE_TOOL_KIND.ROUGH;
pub const DWRITE_PANOSE_TOOL_KIND_FELT_PEN_BRUSH_TIP = DWRITE_PANOSE_TOOL_KIND.FELT_PEN_BRUSH_TIP;
pub const DWRITE_PANOSE_TOOL_KIND_WILD_BRUSH = DWRITE_PANOSE_TOOL_KIND.WILD_BRUSH;
pub const DWRITE_PANOSE_SPACING = enum(i32) {
ANY = 0,
NO_FIT = 1,
PROPORTIONAL_SPACED = 2,
MONOSPACED = 3,
};
pub const DWRITE_PANOSE_SPACING_ANY = DWRITE_PANOSE_SPACING.ANY;
pub const DWRITE_PANOSE_SPACING_NO_FIT = DWRITE_PANOSE_SPACING.NO_FIT;
pub const DWRITE_PANOSE_SPACING_PROPORTIONAL_SPACED = DWRITE_PANOSE_SPACING.PROPORTIONAL_SPACED;
pub const DWRITE_PANOSE_SPACING_MONOSPACED = DWRITE_PANOSE_SPACING.MONOSPACED;
pub const DWRITE_PANOSE_ASPECT_RATIO = enum(i32) {
ANY = 0,
NO_FIT = 1,
VERY_CONDENSED = 2,
CONDENSED = 3,
NORMAL = 4,
EXPANDED = 5,
VERY_EXPANDED = 6,
};
pub const DWRITE_PANOSE_ASPECT_RATIO_ANY = DWRITE_PANOSE_ASPECT_RATIO.ANY;
pub const DWRITE_PANOSE_ASPECT_RATIO_NO_FIT = DWRITE_PANOSE_ASPECT_RATIO.NO_FIT;
pub const DWRITE_PANOSE_ASPECT_RATIO_VERY_CONDENSED = DWRITE_PANOSE_ASPECT_RATIO.VERY_CONDENSED;
pub const DWRITE_PANOSE_ASPECT_RATIO_CONDENSED = DWRITE_PANOSE_ASPECT_RATIO.CONDENSED;
pub const DWRITE_PANOSE_ASPECT_RATIO_NORMAL = DWRITE_PANOSE_ASPECT_RATIO.NORMAL;
pub const DWRITE_PANOSE_ASPECT_RATIO_EXPANDED = DWRITE_PANOSE_ASPECT_RATIO.EXPANDED;
pub const DWRITE_PANOSE_ASPECT_RATIO_VERY_EXPANDED = DWRITE_PANOSE_ASPECT_RATIO.VERY_EXPANDED;
pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY = enum(i32) {
ANY = 0,
NO_FIT = 1,
ROMAN_DISCONNECTED = 2,
ROMAN_TRAILING = 3,
ROMAN_CONNECTED = 4,
CURSIVE_DISCONNECTED = 5,
CURSIVE_TRAILING = 6,
CURSIVE_CONNECTED = 7,
BLACKLETTER_DISCONNECTED = 8,
BLACKLETTER_TRAILING = 9,
BLACKLETTER_CONNECTED = 10,
};
pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_ANY = DWRITE_PANOSE_SCRIPT_TOPOLOGY.ANY;
pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_NO_FIT = DWRITE_PANOSE_SCRIPT_TOPOLOGY.NO_FIT;
pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_DISCONNECTED = DWRITE_PANOSE_SCRIPT_TOPOLOGY.ROMAN_DISCONNECTED;
pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_TRAILING = DWRITE_PANOSE_SCRIPT_TOPOLOGY.ROMAN_TRAILING;
pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_ROMAN_CONNECTED = DWRITE_PANOSE_SCRIPT_TOPOLOGY.ROMAN_CONNECTED;
pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_DISCONNECTED = DWRITE_PANOSE_SCRIPT_TOPOLOGY.CURSIVE_DISCONNECTED;
pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_TRAILING = DWRITE_PANOSE_SCRIPT_TOPOLOGY.CURSIVE_TRAILING;
pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_CURSIVE_CONNECTED = DWRITE_PANOSE_SCRIPT_TOPOLOGY.CURSIVE_CONNECTED;
pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_DISCONNECTED = DWRITE_PANOSE_SCRIPT_TOPOLOGY.BLACKLETTER_DISCONNECTED;
pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_TRAILING = DWRITE_PANOSE_SCRIPT_TOPOLOGY.BLACKLETTER_TRAILING;
pub const DWRITE_PANOSE_SCRIPT_TOPOLOGY_BLACKLETTER_CONNECTED = DWRITE_PANOSE_SCRIPT_TOPOLOGY.BLACKLETTER_CONNECTED;
pub const DWRITE_PANOSE_SCRIPT_FORM = enum(i32) {
ANY = 0,
NO_FIT = 1,
UPRIGHT_NO_WRAPPING = 2,
UPRIGHT_SOME_WRAPPING = 3,
UPRIGHT_MORE_WRAPPING = 4,
UPRIGHT_EXTREME_WRAPPING = 5,
OBLIQUE_NO_WRAPPING = 6,
OBLIQUE_SOME_WRAPPING = 7,
OBLIQUE_MORE_WRAPPING = 8,
OBLIQUE_EXTREME_WRAPPING = 9,
EXAGGERATED_NO_WRAPPING = 10,
EXAGGERATED_SOME_WRAPPING = 11,
EXAGGERATED_MORE_WRAPPING = 12,
EXAGGERATED_EXTREME_WRAPPING = 13,
};
pub const DWRITE_PANOSE_SCRIPT_FORM_ANY = DWRITE_PANOSE_SCRIPT_FORM.ANY;
pub const DWRITE_PANOSE_SCRIPT_FORM_NO_FIT = DWRITE_PANOSE_SCRIPT_FORM.NO_FIT;
pub const DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_NO_WRAPPING = DWRITE_PANOSE_SCRIPT_FORM.UPRIGHT_NO_WRAPPING;
pub const DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_SOME_WRAPPING = DWRITE_PANOSE_SCRIPT_FORM.UPRIGHT_SOME_WRAPPING;
pub const DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_MORE_WRAPPING = DWRITE_PANOSE_SCRIPT_FORM.UPRIGHT_MORE_WRAPPING;
pub const DWRITE_PANOSE_SCRIPT_FORM_UPRIGHT_EXTREME_WRAPPING = DWRITE_PANOSE_SCRIPT_FORM.UPRIGHT_EXTREME_WRAPPING;
pub const DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_NO_WRAPPING = DWRITE_PANOSE_SCRIPT_FORM.OBLIQUE_NO_WRAPPING;
pub const DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_SOME_WRAPPING = DWRITE_PANOSE_SCRIPT_FORM.OBLIQUE_SOME_WRAPPING;
pub const DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_MORE_WRAPPING = DWRITE_PANOSE_SCRIPT_FORM.OBLIQUE_MORE_WRAPPING;
pub const DWRITE_PANOSE_SCRIPT_FORM_OBLIQUE_EXTREME_WRAPPING = DWRITE_PANOSE_SCRIPT_FORM.OBLIQUE_EXTREME_WRAPPING;
pub const DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_NO_WRAPPING = DWRITE_PANOSE_SCRIPT_FORM.EXAGGERATED_NO_WRAPPING;
pub const DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_SOME_WRAPPING = DWRITE_PANOSE_SCRIPT_FORM.EXAGGERATED_SOME_WRAPPING;
pub const DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_MORE_WRAPPING = DWRITE_PANOSE_SCRIPT_FORM.EXAGGERATED_MORE_WRAPPING;
pub const DWRITE_PANOSE_SCRIPT_FORM_EXAGGERATED_EXTREME_WRAPPING = DWRITE_PANOSE_SCRIPT_FORM.EXAGGERATED_EXTREME_WRAPPING;
pub const DWRITE_PANOSE_FINIALS = enum(i32) {
ANY = 0,
NO_FIT = 1,
NONE_NO_LOOPS = 2,
NONE_CLOSED_LOOPS = 3,
NONE_OPEN_LOOPS = 4,
SHARP_NO_LOOPS = 5,
SHARP_CLOSED_LOOPS = 6,
SHARP_OPEN_LOOPS = 7,
TAPERED_NO_LOOPS = 8,
TAPERED_CLOSED_LOOPS = 9,
TAPERED_OPEN_LOOPS = 10,
ROUND_NO_LOOPS = 11,
ROUND_CLOSED_LOOPS = 12,
ROUND_OPEN_LOOPS = 13,
};
pub const DWRITE_PANOSE_FINIALS_ANY = DWRITE_PANOSE_FINIALS.ANY;
pub const DWRITE_PANOSE_FINIALS_NO_FIT = DWRITE_PANOSE_FINIALS.NO_FIT;
pub const DWRITE_PANOSE_FINIALS_NONE_NO_LOOPS = DWRITE_PANOSE_FINIALS.NONE_NO_LOOPS;
pub const DWRITE_PANOSE_FINIALS_NONE_CLOSED_LOOPS = DWRITE_PANOSE_FINIALS.NONE_CLOSED_LOOPS;
pub const DWRITE_PANOSE_FINIALS_NONE_OPEN_LOOPS = DWRITE_PANOSE_FINIALS.NONE_OPEN_LOOPS;
pub const DWRITE_PANOSE_FINIALS_SHARP_NO_LOOPS = DWRITE_PANOSE_FINIALS.SHARP_NO_LOOPS;
pub const DWRITE_PANOSE_FINIALS_SHARP_CLOSED_LOOPS = DWRITE_PANOSE_FINIALS.SHARP_CLOSED_LOOPS;
pub const DWRITE_PANOSE_FINIALS_SHARP_OPEN_LOOPS = DWRITE_PANOSE_FINIALS.SHARP_OPEN_LOOPS;
pub const DWRITE_PANOSE_FINIALS_TAPERED_NO_LOOPS = DWRITE_PANOSE_FINIALS.TAPERED_NO_LOOPS;
pub const DWRITE_PANOSE_FINIALS_TAPERED_CLOSED_LOOPS = DWRITE_PANOSE_FINIALS.TAPERED_CLOSED_LOOPS;
pub const DWRITE_PANOSE_FINIALS_TAPERED_OPEN_LOOPS = DWRITE_PANOSE_FINIALS.TAPERED_OPEN_LOOPS;
pub const DWRITE_PANOSE_FINIALS_ROUND_NO_LOOPS = DWRITE_PANOSE_FINIALS.ROUND_NO_LOOPS;
pub const DWRITE_PANOSE_FINIALS_ROUND_CLOSED_LOOPS = DWRITE_PANOSE_FINIALS.ROUND_CLOSED_LOOPS;
pub const DWRITE_PANOSE_FINIALS_ROUND_OPEN_LOOPS = DWRITE_PANOSE_FINIALS.ROUND_OPEN_LOOPS;
pub const DWRITE_PANOSE_XASCENT = enum(i32) {
ANY = 0,
NO_FIT = 1,
VERY_LOW = 2,
LOW = 3,
MEDIUM = 4,
HIGH = 5,
VERY_HIGH = 6,
};
pub const DWRITE_PANOSE_XASCENT_ANY = DWRITE_PANOSE_XASCENT.ANY;
pub const DWRITE_PANOSE_XASCENT_NO_FIT = DWRITE_PANOSE_XASCENT.NO_FIT;
pub const DWRITE_PANOSE_XASCENT_VERY_LOW = DWRITE_PANOSE_XASCENT.VERY_LOW;
pub const DWRITE_PANOSE_XASCENT_LOW = DWRITE_PANOSE_XASCENT.LOW;
pub const DWRITE_PANOSE_XASCENT_MEDIUM = DWRITE_PANOSE_XASCENT.MEDIUM;
pub const DWRITE_PANOSE_XASCENT_HIGH = DWRITE_PANOSE_XASCENT.HIGH;
pub const DWRITE_PANOSE_XASCENT_VERY_HIGH = DWRITE_PANOSE_XASCENT.VERY_HIGH;
pub const DWRITE_PANOSE_DECORATIVE_CLASS = enum(i32) {
ANY = 0,
NO_FIT = 1,
DERIVATIVE = 2,
NONSTANDARD_TOPOLOGY = 3,
NONSTANDARD_ELEMENTS = 4,
NONSTANDARD_ASPECT = 5,
INITIALS = 6,
CARTOON = 7,
PICTURE_STEMS = 8,
ORNAMENTED = 9,
TEXT_AND_BACKGROUND = 10,
COLLAGE = 11,
MONTAGE = 12,
};
pub const DWRITE_PANOSE_DECORATIVE_CLASS_ANY = DWRITE_PANOSE_DECORATIVE_CLASS.ANY;
pub const DWRITE_PANOSE_DECORATIVE_CLASS_NO_FIT = DWRITE_PANOSE_DECORATIVE_CLASS.NO_FIT;
pub const DWRITE_PANOSE_DECORATIVE_CLASS_DERIVATIVE = DWRITE_PANOSE_DECORATIVE_CLASS.DERIVATIVE;
pub const DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_CLASS.NONSTANDARD_TOPOLOGY;
pub const DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ELEMENTS = DWRITE_PANOSE_DECORATIVE_CLASS.NONSTANDARD_ELEMENTS;
pub const DWRITE_PANOSE_DECORATIVE_CLASS_NONSTANDARD_ASPECT = DWRITE_PANOSE_DECORATIVE_CLASS.NONSTANDARD_ASPECT;
pub const DWRITE_PANOSE_DECORATIVE_CLASS_INITIALS = DWRITE_PANOSE_DECORATIVE_CLASS.INITIALS;
pub const DWRITE_PANOSE_DECORATIVE_CLASS_CARTOON = DWRITE_PANOSE_DECORATIVE_CLASS.CARTOON;
pub const DWRITE_PANOSE_DECORATIVE_CLASS_PICTURE_STEMS = DWRITE_PANOSE_DECORATIVE_CLASS.PICTURE_STEMS;
pub const DWRITE_PANOSE_DECORATIVE_CLASS_ORNAMENTED = DWRITE_PANOSE_DECORATIVE_CLASS.ORNAMENTED;
pub const DWRITE_PANOSE_DECORATIVE_CLASS_TEXT_AND_BACKGROUND = DWRITE_PANOSE_DECORATIVE_CLASS.TEXT_AND_BACKGROUND;
pub const DWRITE_PANOSE_DECORATIVE_CLASS_COLLAGE = DWRITE_PANOSE_DECORATIVE_CLASS.COLLAGE;
pub const DWRITE_PANOSE_DECORATIVE_CLASS_MONTAGE = DWRITE_PANOSE_DECORATIVE_CLASS.MONTAGE;
pub const DWRITE_PANOSE_ASPECT = enum(i32) {
ANY = 0,
NO_FIT = 1,
SUPER_CONDENSED = 2,
VERY_CONDENSED = 3,
CONDENSED = 4,
NORMAL = 5,
EXTENDED = 6,
VERY_EXTENDED = 7,
SUPER_EXTENDED = 8,
MONOSPACED = 9,
};
pub const DWRITE_PANOSE_ASPECT_ANY = DWRITE_PANOSE_ASPECT.ANY;
pub const DWRITE_PANOSE_ASPECT_NO_FIT = DWRITE_PANOSE_ASPECT.NO_FIT;
pub const DWRITE_PANOSE_ASPECT_SUPER_CONDENSED = DWRITE_PANOSE_ASPECT.SUPER_CONDENSED;
pub const DWRITE_PANOSE_ASPECT_VERY_CONDENSED = DWRITE_PANOSE_ASPECT.VERY_CONDENSED;
pub const DWRITE_PANOSE_ASPECT_CONDENSED = DWRITE_PANOSE_ASPECT.CONDENSED;
pub const DWRITE_PANOSE_ASPECT_NORMAL = DWRITE_PANOSE_ASPECT.NORMAL;
pub const DWRITE_PANOSE_ASPECT_EXTENDED = DWRITE_PANOSE_ASPECT.EXTENDED;
pub const DWRITE_PANOSE_ASPECT_VERY_EXTENDED = DWRITE_PANOSE_ASPECT.VERY_EXTENDED;
pub const DWRITE_PANOSE_ASPECT_SUPER_EXTENDED = DWRITE_PANOSE_ASPECT.SUPER_EXTENDED;
pub const DWRITE_PANOSE_ASPECT_MONOSPACED = DWRITE_PANOSE_ASPECT.MONOSPACED;
pub const DWRITE_PANOSE_FILL = enum(i32) {
ANY = 0,
NO_FIT = 1,
STANDARD_SOLID_FILL = 2,
NO_FILL = 3,
PATTERNED_FILL = 4,
COMPLEX_FILL = 5,
SHAPED_FILL = 6,
DRAWN_DISTRESSED = 7,
};
pub const DWRITE_PANOSE_FILL_ANY = DWRITE_PANOSE_FILL.ANY;
pub const DWRITE_PANOSE_FILL_NO_FIT = DWRITE_PANOSE_FILL.NO_FIT;
pub const DWRITE_PANOSE_FILL_STANDARD_SOLID_FILL = DWRITE_PANOSE_FILL.STANDARD_SOLID_FILL;
pub const DWRITE_PANOSE_FILL_NO_FILL = DWRITE_PANOSE_FILL.NO_FILL;
pub const DWRITE_PANOSE_FILL_PATTERNED_FILL = DWRITE_PANOSE_FILL.PATTERNED_FILL;
pub const DWRITE_PANOSE_FILL_COMPLEX_FILL = DWRITE_PANOSE_FILL.COMPLEX_FILL;
pub const DWRITE_PANOSE_FILL_SHAPED_FILL = DWRITE_PANOSE_FILL.SHAPED_FILL;
pub const DWRITE_PANOSE_FILL_DRAWN_DISTRESSED = DWRITE_PANOSE_FILL.DRAWN_DISTRESSED;
pub const DWRITE_PANOSE_LINING = enum(i32) {
ANY = 0,
NO_FIT = 1,
NONE = 2,
INLINE = 3,
OUTLINE = 4,
ENGRAVED = 5,
SHADOW = 6,
RELIEF = 7,
BACKDROP = 8,
};
pub const DWRITE_PANOSE_LINING_ANY = DWRITE_PANOSE_LINING.ANY;
pub const DWRITE_PANOSE_LINING_NO_FIT = DWRITE_PANOSE_LINING.NO_FIT;
pub const DWRITE_PANOSE_LINING_NONE = DWRITE_PANOSE_LINING.NONE;
pub const DWRITE_PANOSE_LINING_INLINE = DWRITE_PANOSE_LINING.INLINE;
pub const DWRITE_PANOSE_LINING_OUTLINE = DWRITE_PANOSE_LINING.OUTLINE;
pub const DWRITE_PANOSE_LINING_ENGRAVED = DWRITE_PANOSE_LINING.ENGRAVED;
pub const DWRITE_PANOSE_LINING_SHADOW = DWRITE_PANOSE_LINING.SHADOW;
pub const DWRITE_PANOSE_LINING_RELIEF = DWRITE_PANOSE_LINING.RELIEF;
pub const DWRITE_PANOSE_LINING_BACKDROP = DWRITE_PANOSE_LINING.BACKDROP;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY = enum(i32) {
ANY = 0,
NO_FIT = 1,
STANDARD = 2,
SQUARE = 3,
MULTIPLE_SEGMENT = 4,
ART_DECO = 5,
UNEVEN_WEIGHTING = 6,
DIVERSE_ARMS = 7,
DIVERSE_FORMS = 8,
LOMBARDIC_FORMS = 9,
UPPER_CASE_IN_LOWER_CASE = 10,
IMPLIED_TOPOLOGY = 11,
HORSESHOE_E_AND_A = 12,
CURSIVE = 13,
BLACKLETTER = 14,
SWASH_VARIANCE = 15,
};
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ANY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.ANY;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_NO_FIT = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.NO_FIT;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_STANDARD = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.STANDARD;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SQUARE = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.SQUARE;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_MULTIPLE_SEGMENT = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.MULTIPLE_SEGMENT;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_ART_DECO = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.ART_DECO;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UNEVEN_WEIGHTING = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.UNEVEN_WEIGHTING;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_ARMS = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.DIVERSE_ARMS;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_DIVERSE_FORMS = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.DIVERSE_FORMS;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_LOMBARDIC_FORMS = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.LOMBARDIC_FORMS;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_UPPER_CASE_IN_LOWER_CASE = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.UPPER_CASE_IN_LOWER_CASE;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_IMPLIED_TOPOLOGY = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.IMPLIED_TOPOLOGY;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_HORSESHOE_E_AND_A = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.HORSESHOE_E_AND_A;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_CURSIVE = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.CURSIVE;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_BLACKLETTER = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.BLACKLETTER;
pub const DWRITE_PANOSE_DECORATIVE_TOPOLOGY_SWASH_VARIANCE = DWRITE_PANOSE_DECORATIVE_TOPOLOGY.SWASH_VARIANCE;
pub const DWRITE_PANOSE_CHARACTER_RANGES = enum(i32) {
ANY = 0,
NO_FIT = 1,
EXTENDED_COLLECTION = 2,
LITERALS = 3,
NO_LOWER_CASE = 4,
SMALL_CAPS = 5,
};
pub const DWRITE_PANOSE_CHARACTER_RANGES_ANY = DWRITE_PANOSE_CHARACTER_RANGES.ANY;
pub const DWRITE_PANOSE_CHARACTER_RANGES_NO_FIT = DWRITE_PANOSE_CHARACTER_RANGES.NO_FIT;
pub const DWRITE_PANOSE_CHARACTER_RANGES_EXTENDED_COLLECTION = DWRITE_PANOSE_CHARACTER_RANGES.EXTENDED_COLLECTION;
pub const DWRITE_PANOSE_CHARACTER_RANGES_LITERALS = DWRITE_PANOSE_CHARACTER_RANGES.LITERALS;
pub const DWRITE_PANOSE_CHARACTER_RANGES_NO_LOWER_CASE = DWRITE_PANOSE_CHARACTER_RANGES.NO_LOWER_CASE;
pub const DWRITE_PANOSE_CHARACTER_RANGES_SMALL_CAPS = DWRITE_PANOSE_CHARACTER_RANGES.SMALL_CAPS;
pub const DWRITE_PANOSE_SYMBOL_KIND = enum(i32) {
ANY = 0,
NO_FIT = 1,
MONTAGES = 2,
PICTURES = 3,
SHAPES = 4,
SCIENTIFIC = 5,
MUSIC = 6,
EXPERT = 7,
PATTERNS = 8,
BOARDERS = 9,
ICONS = 10,
LOGOS = 11,
INDUSTRY_SPECIFIC = 12,
};
pub const DWRITE_PANOSE_SYMBOL_KIND_ANY = DWRITE_PANOSE_SYMBOL_KIND.ANY;
pub const DWRITE_PANOSE_SYMBOL_KIND_NO_FIT = DWRITE_PANOSE_SYMBOL_KIND.NO_FIT;
pub const DWRITE_PANOSE_SYMBOL_KIND_MONTAGES = DWRITE_PANOSE_SYMBOL_KIND.MONTAGES;
pub const DWRITE_PANOSE_SYMBOL_KIND_PICTURES = DWRITE_PANOSE_SYMBOL_KIND.PICTURES;
pub const DWRITE_PANOSE_SYMBOL_KIND_SHAPES = DWRITE_PANOSE_SYMBOL_KIND.SHAPES;
pub const DWRITE_PANOSE_SYMBOL_KIND_SCIENTIFIC = DWRITE_PANOSE_SYMBOL_KIND.SCIENTIFIC;
pub const DWRITE_PANOSE_SYMBOL_KIND_MUSIC = DWRITE_PANOSE_SYMBOL_KIND.MUSIC;
pub const DWRITE_PANOSE_SYMBOL_KIND_EXPERT = DWRITE_PANOSE_SYMBOL_KIND.EXPERT;
pub const DWRITE_PANOSE_SYMBOL_KIND_PATTERNS = DWRITE_PANOSE_SYMBOL_KIND.PATTERNS;
pub const DWRITE_PANOSE_SYMBOL_KIND_BOARDERS = DWRITE_PANOSE_SYMBOL_KIND.BOARDERS;
pub const DWRITE_PANOSE_SYMBOL_KIND_ICONS = DWRITE_PANOSE_SYMBOL_KIND.ICONS;
pub const DWRITE_PANOSE_SYMBOL_KIND_LOGOS = DWRITE_PANOSE_SYMBOL_KIND.LOGOS;
pub const DWRITE_PANOSE_SYMBOL_KIND_INDUSTRY_SPECIFIC = DWRITE_PANOSE_SYMBOL_KIND.INDUSTRY_SPECIFIC;
pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO = enum(i32) {
ANY = 0,
NO_FIT = 1,
NO_WIDTH = 2,
EXCEPTIONALLY_WIDE = 3,
SUPER_WIDE = 4,
VERY_WIDE = 5,
WIDE = 6,
NORMAL = 7,
NARROW = 8,
VERY_NARROW = 9,
};
pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_ANY = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO.ANY;
pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_FIT = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO.NO_FIT;
pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NO_WIDTH = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO.NO_WIDTH;
pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_EXCEPTIONALLY_WIDE = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO.EXCEPTIONALLY_WIDE;
pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_SUPER_WIDE = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO.SUPER_WIDE;
pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_WIDE = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO.VERY_WIDE;
pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_WIDE = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO.WIDE;
pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NORMAL = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO.NORMAL;
pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_NARROW = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO.NARROW;
pub const DWRITE_PANOSE_SYMBOL_ASPECT_RATIO_VERY_NARROW = DWRITE_PANOSE_SYMBOL_ASPECT_RATIO.VERY_NARROW;
pub const DWRITE_OUTLINE_THRESHOLD = enum(i32) {
NTIALIASED = 0,
LIASED = 1,
};
pub const DWRITE_OUTLINE_THRESHOLD_ANTIALIASED = DWRITE_OUTLINE_THRESHOLD.NTIALIASED;
pub const DWRITE_OUTLINE_THRESHOLD_ALIASED = DWRITE_OUTLINE_THRESHOLD.LIASED;
pub const DWRITE_BASELINE = enum(i32) {
DEFAULT = 0,
ROMAN = 1,
CENTRAL = 2,
MATH = 3,
HANGING = 4,
IDEOGRAPHIC_BOTTOM = 5,
IDEOGRAPHIC_TOP = 6,
MINIMUM = 7,
MAXIMUM = 8,
};
pub const DWRITE_BASELINE_DEFAULT = DWRITE_BASELINE.DEFAULT;
pub const DWRITE_BASELINE_ROMAN = DWRITE_BASELINE.ROMAN;
pub const DWRITE_BASELINE_CENTRAL = DWRITE_BASELINE.CENTRAL;
pub const DWRITE_BASELINE_MATH = DWRITE_BASELINE.MATH;
pub const DWRITE_BASELINE_HANGING = DWRITE_BASELINE.HANGING;
pub const DWRITE_BASELINE_IDEOGRAPHIC_BOTTOM = DWRITE_BASELINE.IDEOGRAPHIC_BOTTOM;
pub const DWRITE_BASELINE_IDEOGRAPHIC_TOP = DWRITE_BASELINE.IDEOGRAPHIC_TOP;
pub const DWRITE_BASELINE_MINIMUM = DWRITE_BASELINE.MINIMUM;
pub const DWRITE_BASELINE_MAXIMUM = DWRITE_BASELINE.MAXIMUM;
pub const DWRITE_VERTICAL_GLYPH_ORIENTATION = enum(i32) {
DEFAULT = 0,
STACKED = 1,
};
pub const DWRITE_VERTICAL_GLYPH_ORIENTATION_DEFAULT = DWRITE_VERTICAL_GLYPH_ORIENTATION.DEFAULT;
pub const DWRITE_VERTICAL_GLYPH_ORIENTATION_STACKED = DWRITE_VERTICAL_GLYPH_ORIENTATION.STACKED;
pub const DWRITE_GLYPH_ORIENTATION_ANGLE = enum(i32) {
@"0_DEGREES" = 0,
@"90_DEGREES" = 1,
@"180_DEGREES" = 2,
@"270_DEGREES" = 3,
};
pub const DWRITE_GLYPH_ORIENTATION_ANGLE_0_DEGREES = DWRITE_GLYPH_ORIENTATION_ANGLE.@"0_DEGREES";
pub const DWRITE_GLYPH_ORIENTATION_ANGLE_90_DEGREES = DWRITE_GLYPH_ORIENTATION_ANGLE.@"90_DEGREES";
pub const DWRITE_GLYPH_ORIENTATION_ANGLE_180_DEGREES = DWRITE_GLYPH_ORIENTATION_ANGLE.@"180_DEGREES";
pub const DWRITE_GLYPH_ORIENTATION_ANGLE_270_DEGREES = DWRITE_GLYPH_ORIENTATION_ANGLE.@"270_DEGREES";
pub const DWRITE_FONT_METRICS1 = extern struct {
__AnonymousBase_DWrite_1_L627_C38: DWRITE_FONT_METRICS,
glyphBoxLeft: i16,
glyphBoxTop: i16,
glyphBoxRight: i16,
glyphBoxBottom: i16,
subscriptPositionX: i16,
subscriptPositionY: i16,
subscriptSizeX: i16,
subscriptSizeY: i16,
superscriptPositionX: i16,
superscriptPositionY: i16,
superscriptSizeX: i16,
superscriptSizeY: i16,
hasTypographicMetrics: BOOL,
};
pub const DWRITE_CARET_METRICS = extern struct {
slopeRise: i16,
slopeRun: i16,
offset: i16,
};
pub const DWRITE_PANOSE = extern union {
values: [10]u8,
familyKind: u8,
text: extern struct {
familyKind: u8,
serifStyle: u8,
weight: u8,
proportion: u8,
contrast: u8,
strokeVariation: u8,
armStyle: u8,
letterform: u8,
midline: u8,
xHeight: u8,
},
script: extern struct {
familyKind: u8,
toolKind: u8,
weight: u8,
spacing: u8,
aspectRatio: u8,
contrast: u8,
scriptTopology: u8,
scriptForm: u8,
finials: u8,
xAscent: u8,
},
decorative: extern struct {
familyKind: u8,
decorativeClass: u8,
weight: u8,
aspect: u8,
contrast: u8,
serifVariant: u8,
fill: u8,
lining: u8,
decorativeTopology: u8,
characterRange: u8,
},
symbol: extern struct {
familyKind: u8,
symbolKind: u8,
weight: u8,
spacing: u8,
aspectRatioAndContrast: u8,
aspectRatio94: u8,
aspectRatio119: u8,
aspectRatio157: u8,
aspectRatio163: u8,
aspectRatio211: u8,
},
};
pub const DWRITE_UNICODE_RANGE = extern struct {
first: u32,
last: u32,
};
pub const DWRITE_SCRIPT_PROPERTIES = extern struct {
isoScriptCode: u32,
isoScriptNumber: u32,
clusterLookahead: u32,
justificationCharacter: u32,
_bitfield: u32,
};
pub const DWRITE_JUSTIFICATION_OPPORTUNITY = extern struct {
expansionMinimum: f32,
expansionMaximum: f32,
compressionMaximum: f32,
_bitfield: u32,
};
// TODO: this type is limited to platform 'windows8.0'
const IID_IDWriteFactory1_Value = Guid.initString("30572f99-dac6-41db-a16e-0486307e606a");
pub const IID_IDWriteFactory1 = &IID_IDWriteFactory1_Value;
pub const IDWriteFactory1 = extern struct {
pub const VTable = extern struct {
base: IDWriteFactory.VTable,
GetEudcFontCollection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory1,
fontCollection: ?*?*IDWriteFontCollection,
checkForUpdates: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory1,
fontCollection: ?*?*IDWriteFontCollection,
checkForUpdates: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateCustomRenderingParams: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory1,
gamma: f32,
enhancedContrast: f32,
enhancedContrastGrayscale: f32,
clearTypeLevel: f32,
pixelGeometry: DWRITE_PIXEL_GEOMETRY,
renderingMode: DWRITE_RENDERING_MODE,
renderingParams: ?*?*IDWriteRenderingParams1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory1,
gamma: f32,
enhancedContrast: f32,
enhancedContrastGrayscale: f32,
clearTypeLevel: f32,
pixelGeometry: DWRITE_PIXEL_GEOMETRY,
renderingMode: DWRITE_RENDERING_MODE,
renderingParams: ?*?*IDWriteRenderingParams1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFactory.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory1_GetEudcFontCollection(self: *const T, fontCollection: ?*?*IDWriteFontCollection, checkForUpdates: BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory1.VTable, @ptrCast(self.vtable)).GetEudcFontCollection(@as(*const IDWriteFactory1, @ptrCast(self)), fontCollection, checkForUpdates);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory1_CreateCustomRenderingParams(self: *const T, gamma: f32, enhancedContrast: f32, enhancedContrastGrayscale: f32, clearTypeLevel: f32, pixelGeometry: DWRITE_PIXEL_GEOMETRY, renderingMode: DWRITE_RENDERING_MODE, renderingParams: ?*?*IDWriteRenderingParams1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory1.VTable, @ptrCast(self.vtable)).CreateCustomRenderingParams(@as(*const IDWriteFactory1, @ptrCast(self)), gamma, enhancedContrast, enhancedContrastGrayscale, clearTypeLevel, pixelGeometry, renderingMode, renderingParams);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.0'
const IID_IDWriteFontFace1_Value = Guid.initString("a71efdb4-9fdb-4838-ad90-cfc3be8c3daf");
pub const IID_IDWriteFontFace1 = &IID_IDWriteFontFace1_Value;
pub const IDWriteFontFace1 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFace.VTable,
GetMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace1,
fontMetrics: ?*DWRITE_FONT_METRICS1,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
self: *const IDWriteFontFace1,
fontMetrics: ?*DWRITE_FONT_METRICS1,
) callconv(@import("std").os.windows.WINAPI) void,
},
GetGdiCompatibleMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace1,
emSize: f32,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
fontMetrics: ?*DWRITE_FONT_METRICS1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace1,
emSize: f32,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
fontMetrics: ?*DWRITE_FONT_METRICS1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetCaretMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace1,
caretMetrics: ?*DWRITE_CARET_METRICS,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
self: *const IDWriteFontFace1,
caretMetrics: ?*DWRITE_CARET_METRICS,
) callconv(@import("std").os.windows.WINAPI) void,
},
GetUnicodeRanges: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace1,
maxRangeCount: u32,
unicodeRanges: ?[*]DWRITE_UNICODE_RANGE,
actualRangeCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace1,
maxRangeCount: u32,
unicodeRanges: ?[*]DWRITE_UNICODE_RANGE,
actualRangeCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
IsMonospacedFont: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace1,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontFace1,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
GetDesignGlyphAdvances: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace1,
glyphCount: u32,
glyphIndices: [*:0]const u16,
glyphAdvances: [*]i32,
isSideways: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace1,
glyphCount: u32,
glyphIndices: [*:0]const u16,
glyphAdvances: [*]i32,
isSideways: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetGdiCompatibleGlyphAdvances: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace1,
emSize: f32,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
useGdiNatural: BOOL,
isSideways: BOOL,
glyphCount: u32,
glyphIndices: [*:0]const u16,
glyphAdvances: [*]i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace1,
emSize: f32,
pixelsPerDip: f32,
transform: ?*const DWRITE_MATRIX,
useGdiNatural: BOOL,
isSideways: BOOL,
glyphCount: u32,
glyphIndices: [*:0]const u16,
glyphAdvances: [*]i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetKerningPairAdjustments: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace1,
glyphCount: u32,
glyphIndices: [*:0]const u16,
glyphAdvanceAdjustments: [*]i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace1,
glyphCount: u32,
glyphIndices: [*:0]const u16,
glyphAdvanceAdjustments: [*]i32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
HasKerningPairs: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace1,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontFace1,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
GetRecommendedRenderingMode: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace1,
fontEmSize: f32,
dpiX: f32,
dpiY: f32,
transform: ?*const DWRITE_MATRIX,
isSideways: BOOL,
outlineThreshold: DWRITE_OUTLINE_THRESHOLD,
measuringMode: DWRITE_MEASURING_MODE,
renderingMode: ?*DWRITE_RENDERING_MODE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace1,
fontEmSize: f32,
dpiX: f32,
dpiY: f32,
transform: ?*const DWRITE_MATRIX,
isSideways: BOOL,
outlineThreshold: DWRITE_OUTLINE_THRESHOLD,
measuringMode: DWRITE_MEASURING_MODE,
renderingMode: ?*DWRITE_RENDERING_MODE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetVerticalGlyphVariants: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace1,
glyphCount: u32,
nominalGlyphIndices: [*:0]const u16,
verticalGlyphIndices: [*:0]u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace1,
glyphCount: u32,
nominalGlyphIndices: [*:0]const u16,
verticalGlyphIndices: [*:0]u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
HasVerticalGlyphVariants: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace1,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontFace1,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFace.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace1_GetMetrics(self: *const T, fontMetrics: ?*DWRITE_FONT_METRICS1) callconv(.Inline) void {
return @as(*const IDWriteFontFace1.VTable, @ptrCast(self.vtable)).GetMetrics(@as(*const IDWriteFontFace1, @ptrCast(self)), fontMetrics);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace1_GetGdiCompatibleMetrics(self: *const T, emSize: f32, pixelsPerDip: f32, transform: ?*const DWRITE_MATRIX, fontMetrics: ?*DWRITE_FONT_METRICS1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace1.VTable, @ptrCast(self.vtable)).GetGdiCompatibleMetrics(@as(*const IDWriteFontFace1, @ptrCast(self)), emSize, pixelsPerDip, transform, fontMetrics);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace1_GetCaretMetrics(self: *const T, caretMetrics: ?*DWRITE_CARET_METRICS) callconv(.Inline) void {
return @as(*const IDWriteFontFace1.VTable, @ptrCast(self.vtable)).GetCaretMetrics(@as(*const IDWriteFontFace1, @ptrCast(self)), caretMetrics);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace1_GetUnicodeRanges(self: *const T, maxRangeCount: u32, unicodeRanges: ?[*]DWRITE_UNICODE_RANGE, actualRangeCount: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace1.VTable, @ptrCast(self.vtable)).GetUnicodeRanges(@as(*const IDWriteFontFace1, @ptrCast(self)), maxRangeCount, unicodeRanges, actualRangeCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace1_IsMonospacedFont(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteFontFace1.VTable, @ptrCast(self.vtable)).IsMonospacedFont(@as(*const IDWriteFontFace1, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace1_GetDesignGlyphAdvances(self: *const T, glyphCount: u32, glyphIndices: [*:0]const u16, glyphAdvances: [*]i32, isSideways: BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace1.VTable, @ptrCast(self.vtable)).GetDesignGlyphAdvances(@as(*const IDWriteFontFace1, @ptrCast(self)), glyphCount, glyphIndices, glyphAdvances, isSideways);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace1_GetGdiCompatibleGlyphAdvances(self: *const T, emSize: f32, pixelsPerDip: f32, transform: ?*const DWRITE_MATRIX, useGdiNatural: BOOL, isSideways: BOOL, glyphCount: u32, glyphIndices: [*:0]const u16, glyphAdvances: [*]i32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace1.VTable, @ptrCast(self.vtable)).GetGdiCompatibleGlyphAdvances(@as(*const IDWriteFontFace1, @ptrCast(self)), emSize, pixelsPerDip, transform, useGdiNatural, isSideways, glyphCount, glyphIndices, glyphAdvances);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace1_GetKerningPairAdjustments(self: *const T, glyphCount: u32, glyphIndices: [*:0]const u16, glyphAdvanceAdjustments: [*]i32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace1.VTable, @ptrCast(self.vtable)).GetKerningPairAdjustments(@as(*const IDWriteFontFace1, @ptrCast(self)), glyphCount, glyphIndices, glyphAdvanceAdjustments);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace1_HasKerningPairs(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteFontFace1.VTable, @ptrCast(self.vtable)).HasKerningPairs(@as(*const IDWriteFontFace1, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace1_GetRecommendedRenderingMode(self: *const T, fontEmSize: f32, dpiX: f32, dpiY: f32, transform: ?*const DWRITE_MATRIX, isSideways: BOOL, outlineThreshold: DWRITE_OUTLINE_THRESHOLD, measuringMode: DWRITE_MEASURING_MODE, renderingMode: ?*DWRITE_RENDERING_MODE) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace1.VTable, @ptrCast(self.vtable)).GetRecommendedRenderingMode(@as(*const IDWriteFontFace1, @ptrCast(self)), fontEmSize, dpiX, dpiY, transform, isSideways, outlineThreshold, measuringMode, renderingMode);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace1_GetVerticalGlyphVariants(self: *const T, glyphCount: u32, nominalGlyphIndices: [*:0]const u16, verticalGlyphIndices: [*:0]u16) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace1.VTable, @ptrCast(self.vtable)).GetVerticalGlyphVariants(@as(*const IDWriteFontFace1, @ptrCast(self)), glyphCount, nominalGlyphIndices, verticalGlyphIndices);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace1_HasVerticalGlyphVariants(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteFontFace1.VTable, @ptrCast(self.vtable)).HasVerticalGlyphVariants(@as(*const IDWriteFontFace1, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.0'
const IID_IDWriteFont1_Value = Guid.initString("acd16696-8c14-4f5d-877e-fe3fc1d32738");
pub const IID_IDWriteFont1 = &IID_IDWriteFont1_Value;
pub const IDWriteFont1 = extern struct {
pub const VTable = extern struct {
base: IDWriteFont.VTable,
GetMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont1,
fontMetrics: ?*DWRITE_FONT_METRICS1,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
self: *const IDWriteFont1,
fontMetrics: ?*DWRITE_FONT_METRICS1,
) callconv(@import("std").os.windows.WINAPI) void,
},
GetPanose: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont1,
panose: ?*DWRITE_PANOSE,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
self: *const IDWriteFont1,
panose: ?*DWRITE_PANOSE,
) callconv(@import("std").os.windows.WINAPI) void,
},
GetUnicodeRanges: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont1,
maxRangeCount: u32,
unicodeRanges: ?[*]DWRITE_UNICODE_RANGE,
actualRangeCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFont1,
maxRangeCount: u32,
unicodeRanges: ?[*]DWRITE_UNICODE_RANGE,
actualRangeCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
IsMonospacedFont: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont1,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFont1,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFont.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont1_GetMetrics(self: *const T, fontMetrics: ?*DWRITE_FONT_METRICS1) callconv(.Inline) void {
return @as(*const IDWriteFont1.VTable, @ptrCast(self.vtable)).GetMetrics(@as(*const IDWriteFont1, @ptrCast(self)), fontMetrics);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont1_GetPanose(self: *const T, panose: ?*DWRITE_PANOSE) callconv(.Inline) void {
return @as(*const IDWriteFont1.VTable, @ptrCast(self.vtable)).GetPanose(@as(*const IDWriteFont1, @ptrCast(self)), panose);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont1_GetUnicodeRanges(self: *const T, maxRangeCount: u32, unicodeRanges: ?[*]DWRITE_UNICODE_RANGE, actualRangeCount: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFont1.VTable, @ptrCast(self.vtable)).GetUnicodeRanges(@as(*const IDWriteFont1, @ptrCast(self)), maxRangeCount, unicodeRanges, actualRangeCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont1_IsMonospacedFont(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteFont1.VTable, @ptrCast(self.vtable)).IsMonospacedFont(@as(*const IDWriteFont1, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.0'
const IID_IDWriteRenderingParams1_Value = Guid.initString("94413cf4-a6fc-4248-8b50-6674348fcad3");
pub const IID_IDWriteRenderingParams1 = &IID_IDWriteRenderingParams1_Value;
pub const IDWriteRenderingParams1 = extern struct {
pub const VTable = extern struct {
base: IDWriteRenderingParams.VTable,
GetGrayscaleEnhancedContrast: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRenderingParams1,
) callconv(@import("std").os.windows.WINAPI) f32,
else => *const fn(
self: *const IDWriteRenderingParams1,
) callconv(@import("std").os.windows.WINAPI) f32,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteRenderingParams.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRenderingParams1_GetGrayscaleEnhancedContrast(self: *const T) callconv(.Inline) f32 {
return @as(*const IDWriteRenderingParams1.VTable, @ptrCast(self.vtable)).GetGrayscaleEnhancedContrast(@as(*const IDWriteRenderingParams1, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.0'
const IID_IDWriteTextAnalyzer1_Value = Guid.initString("80dad800-e21f-4e83-96ce-bfcce500db7c");
pub const IID_IDWriteTextAnalyzer1 = &IID_IDWriteTextAnalyzer1_Value;
pub const IDWriteTextAnalyzer1 = extern struct {
pub const VTable = extern struct {
base: IDWriteTextAnalyzer.VTable,
ApplyCharacterSpacing: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer1,
leadingSpacing: f32,
trailingSpacing: f32,
minimumAdvanceWidth: f32,
textLength: u32,
glyphCount: u32,
clusterMap: [*:0]const u16,
glyphAdvances: [*]const f32,
glyphOffsets: [*]const DWRITE_GLYPH_OFFSET,
glyphProperties: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES,
modifiedGlyphAdvances: [*]f32,
modifiedGlyphOffsets: [*]DWRITE_GLYPH_OFFSET,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer1,
leadingSpacing: f32,
trailingSpacing: f32,
minimumAdvanceWidth: f32,
textLength: u32,
glyphCount: u32,
clusterMap: [*:0]const u16,
glyphAdvances: [*]const f32,
glyphOffsets: [*]const DWRITE_GLYPH_OFFSET,
glyphProperties: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES,
modifiedGlyphAdvances: [*]f32,
modifiedGlyphOffsets: [*]DWRITE_GLYPH_OFFSET,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetBaseline: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer1,
fontFace: ?*IDWriteFontFace,
baseline: DWRITE_BASELINE,
isVertical: BOOL,
isSimulationAllowed: BOOL,
scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
localeName: ?[*:0]const u16,
baselineCoordinate: ?*i32,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer1,
fontFace: ?*IDWriteFontFace,
baseline: DWRITE_BASELINE,
isVertical: BOOL,
isSimulationAllowed: BOOL,
scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
localeName: ?[*:0]const u16,
baselineCoordinate: ?*i32,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AnalyzeVerticalGlyphOrientation: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer1,
analysisSource: ?*IDWriteTextAnalysisSource1,
textPosition: u32,
textLength: u32,
analysisSink: ?*IDWriteTextAnalysisSink1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer1,
analysisSource: ?*IDWriteTextAnalysisSource1,
textPosition: u32,
textLength: u32,
analysisSink: ?*IDWriteTextAnalysisSink1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetGlyphOrientationTransform: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer1,
glyphOrientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
isSideways: BOOL,
transform: ?*DWRITE_MATRIX,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer1,
glyphOrientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
isSideways: BOOL,
transform: ?*DWRITE_MATRIX,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetScriptProperties: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer1,
scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
scriptProperties: ?*DWRITE_SCRIPT_PROPERTIES,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer1,
scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
scriptProperties: ?*DWRITE_SCRIPT_PROPERTIES,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetTextComplexity: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer1,
textString: [*:0]const u16,
textLength: u32,
fontFace: ?*IDWriteFontFace,
isTextSimple: ?*BOOL,
textLengthRead: ?*u32,
glyphIndices: ?[*:0]u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer1,
textString: [*:0]const u16,
textLength: u32,
fontFace: ?*IDWriteFontFace,
isTextSimple: ?*BOOL,
textLengthRead: ?*u32,
glyphIndices: ?[*:0]u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetJustificationOpportunities: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer1,
fontFace: ?*IDWriteFontFace,
fontEmSize: f32,
scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
textLength: u32,
glyphCount: u32,
textString: [*:0]const u16,
clusterMap: [*:0]const u16,
glyphProperties: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES,
justificationOpportunities: [*]DWRITE_JUSTIFICATION_OPPORTUNITY,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer1,
fontFace: ?*IDWriteFontFace,
fontEmSize: f32,
scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
textLength: u32,
glyphCount: u32,
textString: [*:0]const u16,
clusterMap: [*:0]const u16,
glyphProperties: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES,
justificationOpportunities: [*]DWRITE_JUSTIFICATION_OPPORTUNITY,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
JustifyGlyphAdvances: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer1,
lineWidth: f32,
glyphCount: u32,
justificationOpportunities: [*]const DWRITE_JUSTIFICATION_OPPORTUNITY,
glyphAdvances: [*]const f32,
glyphOffsets: [*]const DWRITE_GLYPH_OFFSET,
justifiedGlyphAdvances: [*]f32,
justifiedGlyphOffsets: ?[*]DWRITE_GLYPH_OFFSET,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer1,
lineWidth: f32,
glyphCount: u32,
justificationOpportunities: [*]const DWRITE_JUSTIFICATION_OPPORTUNITY,
glyphAdvances: [*]const f32,
glyphOffsets: [*]const DWRITE_GLYPH_OFFSET,
justifiedGlyphAdvances: [*]f32,
justifiedGlyphOffsets: ?[*]DWRITE_GLYPH_OFFSET,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetJustifiedGlyphs: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer1,
fontFace: ?*IDWriteFontFace,
fontEmSize: f32,
scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
textLength: u32,
glyphCount: u32,
maxGlyphCount: u32,
clusterMap: ?[*:0]const u16,
glyphIndices: [*:0]const u16,
glyphAdvances: [*]const f32,
justifiedGlyphAdvances: [*]const f32,
justifiedGlyphOffsets: [*]const DWRITE_GLYPH_OFFSET,
glyphProperties: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES,
actualGlyphCount: ?*u32,
modifiedClusterMap: ?[*:0]u16,
modifiedGlyphIndices: [*:0]u16,
modifiedGlyphAdvances: [*]f32,
modifiedGlyphOffsets: [*]DWRITE_GLYPH_OFFSET,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer1,
fontFace: ?*IDWriteFontFace,
fontEmSize: f32,
scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
textLength: u32,
glyphCount: u32,
maxGlyphCount: u32,
clusterMap: ?[*:0]const u16,
glyphIndices: [*:0]const u16,
glyphAdvances: [*]const f32,
justifiedGlyphAdvances: [*]const f32,
justifiedGlyphOffsets: [*]const DWRITE_GLYPH_OFFSET,
glyphProperties: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES,
actualGlyphCount: ?*u32,
modifiedClusterMap: ?[*:0]u16,
modifiedGlyphIndices: [*:0]u16,
modifiedGlyphAdvances: [*]f32,
modifiedGlyphOffsets: [*]DWRITE_GLYPH_OFFSET,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextAnalyzer.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer1_ApplyCharacterSpacing(self: *const T, leadingSpacing: f32, trailingSpacing: f32, minimumAdvanceWidth: f32, textLength: u32, glyphCount: u32, clusterMap: [*:0]const u16, glyphAdvances: [*]const f32, glyphOffsets: [*]const DWRITE_GLYPH_OFFSET, glyphProperties: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES, modifiedGlyphAdvances: [*]f32, modifiedGlyphOffsets: [*]DWRITE_GLYPH_OFFSET) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer1.VTable, @ptrCast(self.vtable)).ApplyCharacterSpacing(@as(*const IDWriteTextAnalyzer1, @ptrCast(self)), leadingSpacing, trailingSpacing, minimumAdvanceWidth, textLength, glyphCount, clusterMap, glyphAdvances, glyphOffsets, glyphProperties, modifiedGlyphAdvances, modifiedGlyphOffsets);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer1_GetBaseline(self: *const T, fontFace: ?*IDWriteFontFace, baseline: DWRITE_BASELINE, isVertical: BOOL, isSimulationAllowed: BOOL, scriptAnalysis: DWRITE_SCRIPT_ANALYSIS, localeName: ?[*:0]const u16, baselineCoordinate: ?*i32, exists: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer1.VTable, @ptrCast(self.vtable)).GetBaseline(@as(*const IDWriteTextAnalyzer1, @ptrCast(self)), fontFace, baseline, isVertical, isSimulationAllowed, scriptAnalysis, localeName, baselineCoordinate, exists);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer1_AnalyzeVerticalGlyphOrientation(self: *const T, analysisSource: ?*IDWriteTextAnalysisSource1, textPosition: u32, textLength: u32, analysisSink: ?*IDWriteTextAnalysisSink1) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer1.VTable, @ptrCast(self.vtable)).AnalyzeVerticalGlyphOrientation(@as(*const IDWriteTextAnalyzer1, @ptrCast(self)), analysisSource, textPosition, textLength, analysisSink);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer1_GetGlyphOrientationTransform(self: *const T, glyphOrientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE, isSideways: BOOL, transform: ?*DWRITE_MATRIX) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer1.VTable, @ptrCast(self.vtable)).GetGlyphOrientationTransform(@as(*const IDWriteTextAnalyzer1, @ptrCast(self)), glyphOrientationAngle, isSideways, transform);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer1_GetScriptProperties(self: *const T, scriptAnalysis: DWRITE_SCRIPT_ANALYSIS, scriptProperties: ?*DWRITE_SCRIPT_PROPERTIES) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer1.VTable, @ptrCast(self.vtable)).GetScriptProperties(@as(*const IDWriteTextAnalyzer1, @ptrCast(self)), scriptAnalysis, scriptProperties);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer1_GetTextComplexity(self: *const T, textString: [*:0]const u16, textLength: u32, fontFace: ?*IDWriteFontFace, isTextSimple: ?*BOOL, textLengthRead: ?*u32, glyphIndices: ?[*:0]u16) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer1.VTable, @ptrCast(self.vtable)).GetTextComplexity(@as(*const IDWriteTextAnalyzer1, @ptrCast(self)), textString, textLength, fontFace, isTextSimple, textLengthRead, glyphIndices);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer1_GetJustificationOpportunities(self: *const T, fontFace: ?*IDWriteFontFace, fontEmSize: f32, scriptAnalysis: DWRITE_SCRIPT_ANALYSIS, textLength: u32, glyphCount: u32, textString: [*:0]const u16, clusterMap: [*:0]const u16, glyphProperties: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES, justificationOpportunities: [*]DWRITE_JUSTIFICATION_OPPORTUNITY) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer1.VTable, @ptrCast(self.vtable)).GetJustificationOpportunities(@as(*const IDWriteTextAnalyzer1, @ptrCast(self)), fontFace, fontEmSize, scriptAnalysis, textLength, glyphCount, textString, clusterMap, glyphProperties, justificationOpportunities);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer1_JustifyGlyphAdvances(self: *const T, lineWidth: f32, glyphCount: u32, justificationOpportunities: [*]const DWRITE_JUSTIFICATION_OPPORTUNITY, glyphAdvances: [*]const f32, glyphOffsets: [*]const DWRITE_GLYPH_OFFSET, justifiedGlyphAdvances: [*]f32, justifiedGlyphOffsets: ?[*]DWRITE_GLYPH_OFFSET) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer1.VTable, @ptrCast(self.vtable)).JustifyGlyphAdvances(@as(*const IDWriteTextAnalyzer1, @ptrCast(self)), lineWidth, glyphCount, justificationOpportunities, glyphAdvances, glyphOffsets, justifiedGlyphAdvances, justifiedGlyphOffsets);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer1_GetJustifiedGlyphs(self: *const T, fontFace: ?*IDWriteFontFace, fontEmSize: f32, scriptAnalysis: DWRITE_SCRIPT_ANALYSIS, textLength: u32, glyphCount: u32, maxGlyphCount: u32, clusterMap: ?[*:0]const u16, glyphIndices: [*:0]const u16, glyphAdvances: [*]const f32, justifiedGlyphAdvances: [*]const f32, justifiedGlyphOffsets: [*]const DWRITE_GLYPH_OFFSET, glyphProperties: [*]const DWRITE_SHAPING_GLYPH_PROPERTIES, actualGlyphCount: ?*u32, modifiedClusterMap: ?[*:0]u16, modifiedGlyphIndices: [*:0]u16, modifiedGlyphAdvances: [*]f32, modifiedGlyphOffsets: [*]DWRITE_GLYPH_OFFSET) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer1.VTable, @ptrCast(self.vtable)).GetJustifiedGlyphs(@as(*const IDWriteTextAnalyzer1, @ptrCast(self)), fontFace, fontEmSize, scriptAnalysis, textLength, glyphCount, maxGlyphCount, clusterMap, glyphIndices, glyphAdvances, justifiedGlyphAdvances, justifiedGlyphOffsets, glyphProperties, actualGlyphCount, modifiedClusterMap, modifiedGlyphIndices, modifiedGlyphAdvances, modifiedGlyphOffsets);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.0'
const IID_IDWriteTextAnalysisSource1_Value = Guid.initString("639cfad8-0fb4-4b21-a58a-067920120009");
pub const IID_IDWriteTextAnalysisSource1 = &IID_IDWriteTextAnalysisSource1_Value;
pub const IDWriteTextAnalysisSource1 = extern struct {
pub const VTable = extern struct {
base: IDWriteTextAnalysisSource.VTable,
GetVerticalGlyphOrientation: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalysisSource1,
textPosition: u32,
textLength: ?*u32,
glyphOrientation: ?*DWRITE_VERTICAL_GLYPH_ORIENTATION,
bidiLevel: ?*u8,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalysisSource1,
textPosition: u32,
textLength: ?*u32,
glyphOrientation: ?*DWRITE_VERTICAL_GLYPH_ORIENTATION,
bidiLevel: ?*u8,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextAnalysisSource.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalysisSource1_GetVerticalGlyphOrientation(self: *const T, textPosition: u32, textLength: ?*u32, glyphOrientation: ?*DWRITE_VERTICAL_GLYPH_ORIENTATION, bidiLevel: ?*u8) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalysisSource1.VTable, @ptrCast(self.vtable)).GetVerticalGlyphOrientation(@as(*const IDWriteTextAnalysisSource1, @ptrCast(self)), textPosition, textLength, glyphOrientation, bidiLevel);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.0'
const IID_IDWriteTextAnalysisSink1_Value = Guid.initString("b0d941a0-85e7-4d8b-9fd3-5ced9934482a");
pub const IID_IDWriteTextAnalysisSink1 = &IID_IDWriteTextAnalysisSink1_Value;
pub const IDWriteTextAnalysisSink1 = extern struct {
pub const VTable = extern struct {
base: IDWriteTextAnalysisSink.VTable,
SetGlyphOrientation: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalysisSink1,
textPosition: u32,
textLength: u32,
glyphOrientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
adjustedBidiLevel: u8,
isSideways: BOOL,
isRightToLeft: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalysisSink1,
textPosition: u32,
textLength: u32,
glyphOrientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
adjustedBidiLevel: u8,
isSideways: BOOL,
isRightToLeft: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextAnalysisSink.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalysisSink1_SetGlyphOrientation(self: *const T, textPosition: u32, textLength: u32, glyphOrientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE, adjustedBidiLevel: u8, isSideways: BOOL, isRightToLeft: BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalysisSink1.VTable, @ptrCast(self.vtable)).SetGlyphOrientation(@as(*const IDWriteTextAnalysisSink1, @ptrCast(self)), textPosition, textLength, glyphOrientationAngle, adjustedBidiLevel, isSideways, isRightToLeft);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.0'
const IID_IDWriteTextLayout1_Value = Guid.initString("9064d822-80a7-465c-a986-df65f78b8feb");
pub const IID_IDWriteTextLayout1 = &IID_IDWriteTextLayout1_Value;
pub const IDWriteTextLayout1 = extern struct {
pub const VTable = extern struct {
base: IDWriteTextLayout.VTable,
SetPairKerning: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout1,
isPairKerningEnabled: BOOL,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout1,
isPairKerningEnabled: BOOL,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetPairKerning: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout1,
currentPosition: u32,
isPairKerningEnabled: ?*BOOL,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout1,
currentPosition: u32,
isPairKerningEnabled: ?*BOOL,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetCharacterSpacing: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout1,
leadingSpacing: f32,
trailingSpacing: f32,
minimumAdvanceWidth: f32,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout1,
leadingSpacing: f32,
trailingSpacing: f32,
minimumAdvanceWidth: f32,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetCharacterSpacing: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout1,
currentPosition: u32,
leadingSpacing: ?*f32,
trailingSpacing: ?*f32,
minimumAdvanceWidth: ?*f32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout1,
currentPosition: u32,
leadingSpacing: ?*f32,
trailingSpacing: ?*f32,
minimumAdvanceWidth: ?*f32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextLayout.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout1_SetPairKerning(self: *const T, isPairKerningEnabled: BOOL, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout1.VTable, @ptrCast(self.vtable)).SetPairKerning(@as(*const IDWriteTextLayout1, @ptrCast(self)), isPairKerningEnabled, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout1_GetPairKerning(self: *const T, currentPosition: u32, isPairKerningEnabled: ?*BOOL, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout1.VTable, @ptrCast(self.vtable)).GetPairKerning(@as(*const IDWriteTextLayout1, @ptrCast(self)), currentPosition, isPairKerningEnabled, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout1_SetCharacterSpacing(self: *const T, leadingSpacing: f32, trailingSpacing: f32, minimumAdvanceWidth: f32, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout1.VTable, @ptrCast(self.vtable)).SetCharacterSpacing(@as(*const IDWriteTextLayout1, @ptrCast(self)), leadingSpacing, trailingSpacing, minimumAdvanceWidth, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout1_GetCharacterSpacing(self: *const T, currentPosition: u32, leadingSpacing: ?*f32, trailingSpacing: ?*f32, minimumAdvanceWidth: ?*f32, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout1.VTable, @ptrCast(self.vtable)).GetCharacterSpacing(@as(*const IDWriteTextLayout1, @ptrCast(self)), currentPosition, leadingSpacing, trailingSpacing, minimumAdvanceWidth, textRange);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_TEXT_ANTIALIAS_MODE = enum(i32) {
CLEARTYPE = 0,
GRAYSCALE = 1,
};
pub const DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE = DWRITE_TEXT_ANTIALIAS_MODE.CLEARTYPE;
pub const DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE = DWRITE_TEXT_ANTIALIAS_MODE.GRAYSCALE;
// TODO: this type is limited to platform 'windows8.0'
const IID_IDWriteBitmapRenderTarget1_Value = Guid.initString("791e8298-3ef3-4230-9880-c9bdecc42064");
pub const IID_IDWriteBitmapRenderTarget1 = &IID_IDWriteBitmapRenderTarget1_Value;
pub const IDWriteBitmapRenderTarget1 = extern struct {
pub const VTable = extern struct {
base: IDWriteBitmapRenderTarget.VTable,
GetTextAntialiasMode: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteBitmapRenderTarget1,
) callconv(@import("std").os.windows.WINAPI) DWRITE_TEXT_ANTIALIAS_MODE,
else => *const fn(
self: *const IDWriteBitmapRenderTarget1,
) callconv(@import("std").os.windows.WINAPI) DWRITE_TEXT_ANTIALIAS_MODE,
},
SetTextAntialiasMode: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteBitmapRenderTarget1,
antialiasMode: DWRITE_TEXT_ANTIALIAS_MODE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteBitmapRenderTarget1,
antialiasMode: DWRITE_TEXT_ANTIALIAS_MODE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteBitmapRenderTarget.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteBitmapRenderTarget1_GetTextAntialiasMode(self: *const T) callconv(.Inline) DWRITE_TEXT_ANTIALIAS_MODE {
return @as(*const IDWriteBitmapRenderTarget1.VTable, @ptrCast(self.vtable)).GetTextAntialiasMode(@as(*const IDWriteBitmapRenderTarget1, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteBitmapRenderTarget1_SetTextAntialiasMode(self: *const T, antialiasMode: DWRITE_TEXT_ANTIALIAS_MODE) callconv(.Inline) HRESULT {
return @as(*const IDWriteBitmapRenderTarget1.VTable, @ptrCast(self.vtable)).SetTextAntialiasMode(@as(*const IDWriteBitmapRenderTarget1, @ptrCast(self)), antialiasMode);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_OPTICAL_ALIGNMENT = enum(i32) {
NE = 0,
_SIDE_BEARINGS = 1,
};
pub const DWRITE_OPTICAL_ALIGNMENT_NONE = DWRITE_OPTICAL_ALIGNMENT.NE;
pub const DWRITE_OPTICAL_ALIGNMENT_NO_SIDE_BEARINGS = DWRITE_OPTICAL_ALIGNMENT._SIDE_BEARINGS;
pub const DWRITE_GRID_FIT_MODE = enum(i32) {
DEFAULT = 0,
DISABLED = 1,
ENABLED = 2,
};
pub const DWRITE_GRID_FIT_MODE_DEFAULT = DWRITE_GRID_FIT_MODE.DEFAULT;
pub const DWRITE_GRID_FIT_MODE_DISABLED = DWRITE_GRID_FIT_MODE.DISABLED;
pub const DWRITE_GRID_FIT_MODE_ENABLED = DWRITE_GRID_FIT_MODE.ENABLED;
pub const DWRITE_TEXT_METRICS1 = extern struct {
Base: DWRITE_TEXT_METRICS,
heightIncludingTrailingWhitespace: f32,
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteTextRenderer1_Value = Guid.initString("d3e0e934-22a0-427e-aae4-7d9574b59db1");
pub const IID_IDWriteTextRenderer1 = &IID_IDWriteTextRenderer1_Value;
pub const IDWriteTextRenderer1 = extern struct {
pub const VTable = extern struct {
base: IDWriteTextRenderer.VTable,
DrawGlyphRun: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextRenderer1,
clientDrawingContext: ?*anyopaque,
baselineOriginX: f32,
baselineOriginY: f32,
orientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
measuringMode: DWRITE_MEASURING_MODE,
glyphRun: ?*const DWRITE_GLYPH_RUN,
glyphRunDescription: ?*const DWRITE_GLYPH_RUN_DESCRIPTION,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextRenderer1,
clientDrawingContext: ?*anyopaque,
baselineOriginX: f32,
baselineOriginY: f32,
orientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
measuringMode: DWRITE_MEASURING_MODE,
glyphRun: ?*const DWRITE_GLYPH_RUN,
glyphRunDescription: ?*const DWRITE_GLYPH_RUN_DESCRIPTION,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
DrawUnderline: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextRenderer1,
clientDrawingContext: ?*anyopaque,
baselineOriginX: f32,
baselineOriginY: f32,
orientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
underline: ?*const DWRITE_UNDERLINE,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextRenderer1,
clientDrawingContext: ?*anyopaque,
baselineOriginX: f32,
baselineOriginY: f32,
orientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
underline: ?*const DWRITE_UNDERLINE,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
DrawStrikethrough: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextRenderer1,
clientDrawingContext: ?*anyopaque,
baselineOriginX: f32,
baselineOriginY: f32,
orientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
strikethrough: ?*const DWRITE_STRIKETHROUGH,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextRenderer1,
clientDrawingContext: ?*anyopaque,
baselineOriginX: f32,
baselineOriginY: f32,
orientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
strikethrough: ?*const DWRITE_STRIKETHROUGH,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
DrawInlineObject: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextRenderer1,
clientDrawingContext: ?*anyopaque,
originX: f32,
originY: f32,
orientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
inlineObject: ?*IDWriteInlineObject,
isSideways: BOOL,
isRightToLeft: BOOL,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextRenderer1,
clientDrawingContext: ?*anyopaque,
originX: f32,
originY: f32,
orientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
inlineObject: ?*IDWriteInlineObject,
isSideways: BOOL,
isRightToLeft: BOOL,
clientDrawingEffect: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextRenderer.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextRenderer1_DrawGlyphRun(self: *const T, clientDrawingContext: ?*anyopaque, baselineOriginX: f32, baselineOriginY: f32, orientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE, measuringMode: DWRITE_MEASURING_MODE, glyphRun: ?*const DWRITE_GLYPH_RUN, glyphRunDescription: ?*const DWRITE_GLYPH_RUN_DESCRIPTION, clientDrawingEffect: ?*IUnknown) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextRenderer1.VTable, @ptrCast(self.vtable)).DrawGlyphRun(@as(*const IDWriteTextRenderer1, @ptrCast(self)), clientDrawingContext, baselineOriginX, baselineOriginY, orientationAngle, measuringMode, glyphRun, glyphRunDescription, clientDrawingEffect);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextRenderer1_DrawUnderline(self: *const T, clientDrawingContext: ?*anyopaque, baselineOriginX: f32, baselineOriginY: f32, orientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE, underline: ?*const DWRITE_UNDERLINE, clientDrawingEffect: ?*IUnknown) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextRenderer1.VTable, @ptrCast(self.vtable)).DrawUnderline(@as(*const IDWriteTextRenderer1, @ptrCast(self)), clientDrawingContext, baselineOriginX, baselineOriginY, orientationAngle, underline, clientDrawingEffect);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextRenderer1_DrawStrikethrough(self: *const T, clientDrawingContext: ?*anyopaque, baselineOriginX: f32, baselineOriginY: f32, orientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE, strikethrough: ?*const DWRITE_STRIKETHROUGH, clientDrawingEffect: ?*IUnknown) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextRenderer1.VTable, @ptrCast(self.vtable)).DrawStrikethrough(@as(*const IDWriteTextRenderer1, @ptrCast(self)), clientDrawingContext, baselineOriginX, baselineOriginY, orientationAngle, strikethrough, clientDrawingEffect);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextRenderer1_DrawInlineObject(self: *const T, clientDrawingContext: ?*anyopaque, originX: f32, originY: f32, orientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE, inlineObject: ?*IDWriteInlineObject, isSideways: BOOL, isRightToLeft: BOOL, clientDrawingEffect: ?*IUnknown) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextRenderer1.VTable, @ptrCast(self.vtable)).DrawInlineObject(@as(*const IDWriteTextRenderer1, @ptrCast(self)), clientDrawingContext, originX, originY, orientationAngle, inlineObject, isSideways, isRightToLeft, clientDrawingEffect);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteTextFormat1_Value = Guid.initString("5f174b49-0d8b-4cfb-8bca-f1cce9d06c67");
pub const IID_IDWriteTextFormat1 = &IID_IDWriteTextFormat1_Value;
pub const IDWriteTextFormat1 = extern struct {
pub const VTable = extern struct {
base: IDWriteTextFormat.VTable,
SetVerticalGlyphOrientation: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat1,
glyphOrientation: DWRITE_VERTICAL_GLYPH_ORIENTATION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat1,
glyphOrientation: DWRITE_VERTICAL_GLYPH_ORIENTATION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetVerticalGlyphOrientation: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat1,
) callconv(@import("std").os.windows.WINAPI) DWRITE_VERTICAL_GLYPH_ORIENTATION,
else => *const fn(
self: *const IDWriteTextFormat1,
) callconv(@import("std").os.windows.WINAPI) DWRITE_VERTICAL_GLYPH_ORIENTATION,
},
SetLastLineWrapping: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat1,
isLastLineWrappingEnabled: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat1,
isLastLineWrappingEnabled: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLastLineWrapping: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat1,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteTextFormat1,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
SetOpticalAlignment: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat1,
opticalAlignment: DWRITE_OPTICAL_ALIGNMENT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat1,
opticalAlignment: DWRITE_OPTICAL_ALIGNMENT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetOpticalAlignment: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat1,
) callconv(@import("std").os.windows.WINAPI) DWRITE_OPTICAL_ALIGNMENT,
else => *const fn(
self: *const IDWriteTextFormat1,
) callconv(@import("std").os.windows.WINAPI) DWRITE_OPTICAL_ALIGNMENT,
},
SetFontFallback: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat1,
fontFallback: ?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat1,
fontFallback: ?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFallback: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat1,
fontFallback: ?*?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat1,
fontFallback: ?*?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextFormat.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat1_SetVerticalGlyphOrientation(self: *const T, glyphOrientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat1.VTable, @ptrCast(self.vtable)).SetVerticalGlyphOrientation(@as(*const IDWriteTextFormat1, @ptrCast(self)), glyphOrientation);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat1_GetVerticalGlyphOrientation(self: *const T) callconv(.Inline) DWRITE_VERTICAL_GLYPH_ORIENTATION {
return @as(*const IDWriteTextFormat1.VTable, @ptrCast(self.vtable)).GetVerticalGlyphOrientation(@as(*const IDWriteTextFormat1, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat1_SetLastLineWrapping(self: *const T, isLastLineWrappingEnabled: BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat1.VTable, @ptrCast(self.vtable)).SetLastLineWrapping(@as(*const IDWriteTextFormat1, @ptrCast(self)), isLastLineWrappingEnabled);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat1_GetLastLineWrapping(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteTextFormat1.VTable, @ptrCast(self.vtable)).GetLastLineWrapping(@as(*const IDWriteTextFormat1, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat1_SetOpticalAlignment(self: *const T, opticalAlignment: DWRITE_OPTICAL_ALIGNMENT) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat1.VTable, @ptrCast(self.vtable)).SetOpticalAlignment(@as(*const IDWriteTextFormat1, @ptrCast(self)), opticalAlignment);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat1_GetOpticalAlignment(self: *const T) callconv(.Inline) DWRITE_OPTICAL_ALIGNMENT {
return @as(*const IDWriteTextFormat1.VTable, @ptrCast(self.vtable)).GetOpticalAlignment(@as(*const IDWriteTextFormat1, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat1_SetFontFallback(self: *const T, fontFallback: ?*IDWriteFontFallback) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat1.VTable, @ptrCast(self.vtable)).SetFontFallback(@as(*const IDWriteTextFormat1, @ptrCast(self)), fontFallback);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat1_GetFontFallback(self: *const T, fontFallback: ?*?*IDWriteFontFallback) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat1.VTable, @ptrCast(self.vtable)).GetFontFallback(@as(*const IDWriteTextFormat1, @ptrCast(self)), fontFallback);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteTextLayout2_Value = Guid.initString("1093c18f-8d5e-43f0-b064-0917311b525e");
pub const IID_IDWriteTextLayout2 = &IID_IDWriteTextLayout2_Value;
pub const IDWriteTextLayout2 = extern struct {
pub const VTable = extern struct {
base: IDWriteTextLayout1.VTable,
GetMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout2,
textMetrics: ?*DWRITE_TEXT_METRICS1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout2,
textMetrics: ?*DWRITE_TEXT_METRICS1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetVerticalGlyphOrientation: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout2,
glyphOrientation: DWRITE_VERTICAL_GLYPH_ORIENTATION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout2,
glyphOrientation: DWRITE_VERTICAL_GLYPH_ORIENTATION,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetVerticalGlyphOrientation: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout2,
) callconv(@import("std").os.windows.WINAPI) DWRITE_VERTICAL_GLYPH_ORIENTATION,
else => *const fn(
self: *const IDWriteTextLayout2,
) callconv(@import("std").os.windows.WINAPI) DWRITE_VERTICAL_GLYPH_ORIENTATION,
},
SetLastLineWrapping: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout2,
isLastLineWrappingEnabled: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout2,
isLastLineWrappingEnabled: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLastLineWrapping: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout2,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteTextLayout2,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
SetOpticalAlignment: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout2,
opticalAlignment: DWRITE_OPTICAL_ALIGNMENT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout2,
opticalAlignment: DWRITE_OPTICAL_ALIGNMENT,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetOpticalAlignment: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout2,
) callconv(@import("std").os.windows.WINAPI) DWRITE_OPTICAL_ALIGNMENT,
else => *const fn(
self: *const IDWriteTextLayout2,
) callconv(@import("std").os.windows.WINAPI) DWRITE_OPTICAL_ALIGNMENT,
},
SetFontFallback: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout2,
fontFallback: ?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout2,
fontFallback: ?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFallback: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout2,
fontFallback: ?*?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout2,
fontFallback: ?*?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextLayout1.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout2_GetMetrics(self: *const T, textMetrics: ?*DWRITE_TEXT_METRICS1) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout2.VTable, @ptrCast(self.vtable)).GetMetrics(@as(*const IDWriteTextLayout2, @ptrCast(self)), textMetrics);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout2_SetVerticalGlyphOrientation(self: *const T, glyphOrientation: DWRITE_VERTICAL_GLYPH_ORIENTATION) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout2.VTable, @ptrCast(self.vtable)).SetVerticalGlyphOrientation(@as(*const IDWriteTextLayout2, @ptrCast(self)), glyphOrientation);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout2_GetVerticalGlyphOrientation(self: *const T) callconv(.Inline) DWRITE_VERTICAL_GLYPH_ORIENTATION {
return @as(*const IDWriteTextLayout2.VTable, @ptrCast(self.vtable)).GetVerticalGlyphOrientation(@as(*const IDWriteTextLayout2, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout2_SetLastLineWrapping(self: *const T, isLastLineWrappingEnabled: BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout2.VTable, @ptrCast(self.vtable)).SetLastLineWrapping(@as(*const IDWriteTextLayout2, @ptrCast(self)), isLastLineWrappingEnabled);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout2_GetLastLineWrapping(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteTextLayout2.VTable, @ptrCast(self.vtable)).GetLastLineWrapping(@as(*const IDWriteTextLayout2, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout2_SetOpticalAlignment(self: *const T, opticalAlignment: DWRITE_OPTICAL_ALIGNMENT) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout2.VTable, @ptrCast(self.vtable)).SetOpticalAlignment(@as(*const IDWriteTextLayout2, @ptrCast(self)), opticalAlignment);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout2_GetOpticalAlignment(self: *const T) callconv(.Inline) DWRITE_OPTICAL_ALIGNMENT {
return @as(*const IDWriteTextLayout2.VTable, @ptrCast(self.vtable)).GetOpticalAlignment(@as(*const IDWriteTextLayout2, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout2_SetFontFallback(self: *const T, fontFallback: ?*IDWriteFontFallback) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout2.VTable, @ptrCast(self.vtable)).SetFontFallback(@as(*const IDWriteTextLayout2, @ptrCast(self)), fontFallback);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout2_GetFontFallback(self: *const T, fontFallback: ?*?*IDWriteFontFallback) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout2.VTable, @ptrCast(self.vtable)).GetFontFallback(@as(*const IDWriteTextLayout2, @ptrCast(self)), fontFallback);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteTextAnalyzer2_Value = Guid.initString("553a9ff3-5693-4df7-b52b-74806f7f2eb9");
pub const IID_IDWriteTextAnalyzer2 = &IID_IDWriteTextAnalyzer2_Value;
pub const IDWriteTextAnalyzer2 = extern struct {
pub const VTable = extern struct {
base: IDWriteTextAnalyzer1.VTable,
GetGlyphOrientationTransform: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer2,
glyphOrientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
isSideways: BOOL,
originX: f32,
originY: f32,
transform: ?*DWRITE_MATRIX,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer2,
glyphOrientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE,
isSideways: BOOL,
originX: f32,
originY: f32,
transform: ?*DWRITE_MATRIX,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetTypographicFeatures: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer2,
fontFace: ?*IDWriteFontFace,
scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
localeName: ?[*:0]const u16,
maxTagCount: u32,
actualTagCount: ?*u32,
tags: [*]DWRITE_FONT_FEATURE_TAG,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer2,
fontFace: ?*IDWriteFontFace,
scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
localeName: ?[*:0]const u16,
maxTagCount: u32,
actualTagCount: ?*u32,
tags: [*]DWRITE_FONT_FEATURE_TAG,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CheckTypographicFeature: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextAnalyzer2,
fontFace: ?*IDWriteFontFace,
scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
localeName: ?[*:0]const u16,
featureTag: DWRITE_FONT_FEATURE_TAG,
glyphCount: u32,
glyphIndices: [*:0]const u16,
featureApplies: [*:0]u8,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextAnalyzer2,
fontFace: ?*IDWriteFontFace,
scriptAnalysis: DWRITE_SCRIPT_ANALYSIS,
localeName: ?[*:0]const u16,
featureTag: DWRITE_FONT_FEATURE_TAG,
glyphCount: u32,
glyphIndices: [*:0]const u16,
featureApplies: [*:0]u8,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextAnalyzer1.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer2_GetGlyphOrientationTransform(self: *const T, glyphOrientationAngle: DWRITE_GLYPH_ORIENTATION_ANGLE, isSideways: BOOL, originX: f32, originY: f32, transform: ?*DWRITE_MATRIX) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer2.VTable, @ptrCast(self.vtable)).GetGlyphOrientationTransform(@as(*const IDWriteTextAnalyzer2, @ptrCast(self)), glyphOrientationAngle, isSideways, originX, originY, transform);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer2_GetTypographicFeatures(self: *const T, fontFace: ?*IDWriteFontFace, scriptAnalysis: DWRITE_SCRIPT_ANALYSIS, localeName: ?[*:0]const u16, maxTagCount: u32, actualTagCount: ?*u32, tags: [*]DWRITE_FONT_FEATURE_TAG) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer2.VTable, @ptrCast(self.vtable)).GetTypographicFeatures(@as(*const IDWriteTextAnalyzer2, @ptrCast(self)), fontFace, scriptAnalysis, localeName, maxTagCount, actualTagCount, tags);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextAnalyzer2_CheckTypographicFeature(self: *const T, fontFace: ?*IDWriteFontFace, scriptAnalysis: DWRITE_SCRIPT_ANALYSIS, localeName: ?[*:0]const u16, featureTag: DWRITE_FONT_FEATURE_TAG, glyphCount: u32, glyphIndices: [*:0]const u16, featureApplies: [*:0]u8) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextAnalyzer2.VTable, @ptrCast(self.vtable)).CheckTypographicFeature(@as(*const IDWriteTextAnalyzer2, @ptrCast(self)), fontFace, scriptAnalysis, localeName, featureTag, glyphCount, glyphIndices, featureApplies);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteFontFallback_Value = Guid.initString("efa008f9-f7a1-48bf-b05c-f224713cc0ff");
pub const IID_IDWriteFontFallback = &IID_IDWriteFontFallback_Value;
pub const IDWriteFontFallback = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
MapCharacters: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFallback,
analysisSource: ?*IDWriteTextAnalysisSource,
textPosition: u32,
textLength: u32,
baseFontCollection: ?*IDWriteFontCollection,
baseFamilyName: ?[*:0]const u16,
baseWeight: DWRITE_FONT_WEIGHT,
baseStyle: DWRITE_FONT_STYLE,
baseStretch: DWRITE_FONT_STRETCH,
mappedLength: ?*u32,
mappedFont: ?*?*IDWriteFont,
scale: ?*f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFallback,
analysisSource: ?*IDWriteTextAnalysisSource,
textPosition: u32,
textLength: u32,
baseFontCollection: ?*IDWriteFontCollection,
baseFamilyName: ?[*:0]const u16,
baseWeight: DWRITE_FONT_WEIGHT,
baseStyle: DWRITE_FONT_STYLE,
baseStretch: DWRITE_FONT_STRETCH,
mappedLength: ?*u32,
mappedFont: ?*?*IDWriteFont,
scale: ?*f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFallback_MapCharacters(self: *const T, analysisSource: ?*IDWriteTextAnalysisSource, textPosition: u32, textLength: u32, baseFontCollection: ?*IDWriteFontCollection, baseFamilyName: ?[*:0]const u16, baseWeight: DWRITE_FONT_WEIGHT, baseStyle: DWRITE_FONT_STYLE, baseStretch: DWRITE_FONT_STRETCH, mappedLength: ?*u32, mappedFont: ?*?*IDWriteFont, scale: ?*f32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFallback.VTable, @ptrCast(self.vtable)).MapCharacters(@as(*const IDWriteFontFallback, @ptrCast(self)), analysisSource, textPosition, textLength, baseFontCollection, baseFamilyName, baseWeight, baseStyle, baseStretch, mappedLength, mappedFont, scale);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteFontFallbackBuilder_Value = Guid.initString("fd882d06-8aba-4fb8-b849-8be8b73e14de");
pub const IID_IDWriteFontFallbackBuilder = &IID_IDWriteFontFallbackBuilder_Value;
pub const IDWriteFontFallbackBuilder = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
AddMapping: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFallbackBuilder,
ranges: [*]const DWRITE_UNICODE_RANGE,
rangesCount: u32,
targetFamilyNames: [*]const ?*const u16,
targetFamilyNamesCount: u32,
fontCollection: ?*IDWriteFontCollection,
localeName: ?[*:0]const u16,
baseFamilyName: ?[*:0]const u16,
scale: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFallbackBuilder,
ranges: [*]const DWRITE_UNICODE_RANGE,
rangesCount: u32,
targetFamilyNames: [*]const ?*const u16,
targetFamilyNamesCount: u32,
fontCollection: ?*IDWriteFontCollection,
localeName: ?[*:0]const u16,
baseFamilyName: ?[*:0]const u16,
scale: f32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AddMappings: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFallbackBuilder,
fontFallback: ?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFallbackBuilder,
fontFallback: ?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontFallback: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFallbackBuilder,
fontFallback: ?*?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFallbackBuilder,
fontFallback: ?*?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFallbackBuilder_AddMapping(self: *const T, ranges: [*]const DWRITE_UNICODE_RANGE, rangesCount: u32, targetFamilyNames: [*]const ?*const u16, targetFamilyNamesCount: u32, fontCollection: ?*IDWriteFontCollection, localeName: ?[*:0]const u16, baseFamilyName: ?[*:0]const u16, scale: f32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFallbackBuilder.VTable, @ptrCast(self.vtable)).AddMapping(@as(*const IDWriteFontFallbackBuilder, @ptrCast(self)), ranges, rangesCount, targetFamilyNames, targetFamilyNamesCount, fontCollection, localeName, baseFamilyName, scale);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFallbackBuilder_AddMappings(self: *const T, fontFallback: ?*IDWriteFontFallback) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFallbackBuilder.VTable, @ptrCast(self.vtable)).AddMappings(@as(*const IDWriteFontFallbackBuilder, @ptrCast(self)), fontFallback);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFallbackBuilder_CreateFontFallback(self: *const T, fontFallback: ?*?*IDWriteFontFallback) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFallbackBuilder.VTable, @ptrCast(self.vtable)).CreateFontFallback(@as(*const IDWriteFontFallbackBuilder, @ptrCast(self)), fontFallback);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteFont2_Value = Guid.initString("29748ed6-8c9c-4a6a-be0b-d912e8538944");
pub const IID_IDWriteFont2 = &IID_IDWriteFont2_Value;
pub const IDWriteFont2 = extern struct {
pub const VTable = extern struct {
base: IDWriteFont1.VTable,
IsColorFont: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont2,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFont2,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFont1.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont2_IsColorFont(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteFont2.VTable, @ptrCast(self.vtable)).IsColorFont(@as(*const IDWriteFont2, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteFontFace2_Value = Guid.initString("d8b768ff-64bc-4e66-982b-ec8e87f693f7");
pub const IID_IDWriteFontFace2 = &IID_IDWriteFontFace2_Value;
pub const IDWriteFontFace2 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFace1.VTable,
IsColorFont: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace2,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontFace2,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
GetColorPaletteCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace2,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontFace2,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetPaletteEntryCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace2,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontFace2,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetPaletteEntries: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace2,
colorPaletteIndex: u32,
firstEntryIndex: u32,
entryCount: u32,
paletteEntries: [*]DWRITE_COLOR_F,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace2,
colorPaletteIndex: u32,
firstEntryIndex: u32,
entryCount: u32,
paletteEntries: [*]DWRITE_COLOR_F,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetRecommendedRenderingMode: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace2,
fontEmSize: f32,
dpiX: f32,
dpiY: f32,
transform: ?*const DWRITE_MATRIX,
isSideways: BOOL,
outlineThreshold: DWRITE_OUTLINE_THRESHOLD,
measuringMode: DWRITE_MEASURING_MODE,
renderingParams: ?*IDWriteRenderingParams,
renderingMode: ?*DWRITE_RENDERING_MODE,
gridFitMode: ?*DWRITE_GRID_FIT_MODE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace2,
fontEmSize: f32,
dpiX: f32,
dpiY: f32,
transform: ?*const DWRITE_MATRIX,
isSideways: BOOL,
outlineThreshold: DWRITE_OUTLINE_THRESHOLD,
measuringMode: DWRITE_MEASURING_MODE,
renderingParams: ?*IDWriteRenderingParams,
renderingMode: ?*DWRITE_RENDERING_MODE,
gridFitMode: ?*DWRITE_GRID_FIT_MODE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFace1.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace2_IsColorFont(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteFontFace2.VTable, @ptrCast(self.vtable)).IsColorFont(@as(*const IDWriteFontFace2, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace2_GetColorPaletteCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteFontFace2.VTable, @ptrCast(self.vtable)).GetColorPaletteCount(@as(*const IDWriteFontFace2, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace2_GetPaletteEntryCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteFontFace2.VTable, @ptrCast(self.vtable)).GetPaletteEntryCount(@as(*const IDWriteFontFace2, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace2_GetPaletteEntries(self: *const T, colorPaletteIndex: u32, firstEntryIndex: u32, entryCount: u32, paletteEntries: [*]DWRITE_COLOR_F) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace2.VTable, @ptrCast(self.vtable)).GetPaletteEntries(@as(*const IDWriteFontFace2, @ptrCast(self)), colorPaletteIndex, firstEntryIndex, entryCount, paletteEntries);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace2_GetRecommendedRenderingMode(self: *const T, fontEmSize: f32, dpiX: f32, dpiY: f32, transform: ?*const DWRITE_MATRIX, isSideways: BOOL, outlineThreshold: DWRITE_OUTLINE_THRESHOLD, measuringMode: DWRITE_MEASURING_MODE, renderingParams: ?*IDWriteRenderingParams, renderingMode: ?*DWRITE_RENDERING_MODE, gridFitMode: ?*DWRITE_GRID_FIT_MODE) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace2.VTable, @ptrCast(self.vtable)).GetRecommendedRenderingMode(@as(*const IDWriteFontFace2, @ptrCast(self)), fontEmSize, dpiX, dpiY, transform, isSideways, outlineThreshold, measuringMode, renderingParams, renderingMode, gridFitMode);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_COLOR_GLYPH_RUN = extern struct {
glyphRun: DWRITE_GLYPH_RUN,
glyphRunDescription: ?*DWRITE_GLYPH_RUN_DESCRIPTION,
baselineOriginX: f32,
baselineOriginY: f32,
runColor: DWRITE_COLOR_F,
paletteIndex: u16,
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteColorGlyphRunEnumerator_Value = Guid.initString("d31fbe17-f157-41a2-8d24-cb779e0560e8");
pub const IID_IDWriteColorGlyphRunEnumerator = &IID_IDWriteColorGlyphRunEnumerator_Value;
pub const IDWriteColorGlyphRunEnumerator = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
MoveNext: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteColorGlyphRunEnumerator,
hasRun: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteColorGlyphRunEnumerator,
hasRun: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetCurrentRun: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteColorGlyphRunEnumerator,
colorGlyphRun: ?*const ?*DWRITE_COLOR_GLYPH_RUN,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteColorGlyphRunEnumerator,
colorGlyphRun: ?*const ?*DWRITE_COLOR_GLYPH_RUN,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteColorGlyphRunEnumerator_MoveNext(self: *const T, hasRun: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteColorGlyphRunEnumerator.VTable, @ptrCast(self.vtable)).MoveNext(@as(*const IDWriteColorGlyphRunEnumerator, @ptrCast(self)), hasRun);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteColorGlyphRunEnumerator_GetCurrentRun(self: *const T, colorGlyphRun: ?*const ?*DWRITE_COLOR_GLYPH_RUN) callconv(.Inline) HRESULT {
return @as(*const IDWriteColorGlyphRunEnumerator.VTable, @ptrCast(self.vtable)).GetCurrentRun(@as(*const IDWriteColorGlyphRunEnumerator, @ptrCast(self)), colorGlyphRun);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteRenderingParams2_Value = Guid.initString("f9d711c3-9777-40ae-87e8-3e5af9bf0948");
pub const IID_IDWriteRenderingParams2 = &IID_IDWriteRenderingParams2_Value;
pub const IDWriteRenderingParams2 = extern struct {
pub const VTable = extern struct {
base: IDWriteRenderingParams1.VTable,
GetGridFitMode: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRenderingParams2,
) callconv(@import("std").os.windows.WINAPI) DWRITE_GRID_FIT_MODE,
else => *const fn(
self: *const IDWriteRenderingParams2,
) callconv(@import("std").os.windows.WINAPI) DWRITE_GRID_FIT_MODE,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteRenderingParams1.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRenderingParams2_GetGridFitMode(self: *const T) callconv(.Inline) DWRITE_GRID_FIT_MODE {
return @as(*const IDWriteRenderingParams2.VTable, @ptrCast(self.vtable)).GetGridFitMode(@as(*const IDWriteRenderingParams2, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteFactory2_Value = Guid.initString("0439fc60-ca44-4994-8dee-3a9af7b732ec");
pub const IID_IDWriteFactory2 = &IID_IDWriteFactory2_Value;
pub const IDWriteFactory2 = extern struct {
pub const VTable = extern struct {
base: IDWriteFactory1.VTable,
GetSystemFontFallback: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory2,
fontFallback: ?*?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory2,
fontFallback: ?*?*IDWriteFontFallback,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontFallbackBuilder: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory2,
fontFallbackBuilder: ?*?*IDWriteFontFallbackBuilder,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory2,
fontFallbackBuilder: ?*?*IDWriteFontFallbackBuilder,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
TranslateColorGlyphRun: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory2,
baselineOriginX: f32,
baselineOriginY: f32,
glyphRun: ?*const DWRITE_GLYPH_RUN,
glyphRunDescription: ?*const DWRITE_GLYPH_RUN_DESCRIPTION,
measuringMode: DWRITE_MEASURING_MODE,
worldToDeviceTransform: ?*const DWRITE_MATRIX,
colorPaletteIndex: u32,
colorLayers: ?*?*IDWriteColorGlyphRunEnumerator,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory2,
baselineOriginX: f32,
baselineOriginY: f32,
glyphRun: ?*const DWRITE_GLYPH_RUN,
glyphRunDescription: ?*const DWRITE_GLYPH_RUN_DESCRIPTION,
measuringMode: DWRITE_MEASURING_MODE,
worldToDeviceTransform: ?*const DWRITE_MATRIX,
colorPaletteIndex: u32,
colorLayers: ?*?*IDWriteColorGlyphRunEnumerator,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateCustomRenderingParams: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory2,
gamma: f32,
enhancedContrast: f32,
grayscaleEnhancedContrast: f32,
clearTypeLevel: f32,
pixelGeometry: DWRITE_PIXEL_GEOMETRY,
renderingMode: DWRITE_RENDERING_MODE,
gridFitMode: DWRITE_GRID_FIT_MODE,
renderingParams: ?*?*IDWriteRenderingParams2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory2,
gamma: f32,
enhancedContrast: f32,
grayscaleEnhancedContrast: f32,
clearTypeLevel: f32,
pixelGeometry: DWRITE_PIXEL_GEOMETRY,
renderingMode: DWRITE_RENDERING_MODE,
gridFitMode: DWRITE_GRID_FIT_MODE,
renderingParams: ?*?*IDWriteRenderingParams2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateGlyphRunAnalysis: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory2,
glyphRun: ?*const DWRITE_GLYPH_RUN,
transform: ?*const DWRITE_MATRIX,
renderingMode: DWRITE_RENDERING_MODE,
measuringMode: DWRITE_MEASURING_MODE,
gridFitMode: DWRITE_GRID_FIT_MODE,
antialiasMode: DWRITE_TEXT_ANTIALIAS_MODE,
baselineOriginX: f32,
baselineOriginY: f32,
glyphRunAnalysis: ?*?*IDWriteGlyphRunAnalysis,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory2,
glyphRun: ?*const DWRITE_GLYPH_RUN,
transform: ?*const DWRITE_MATRIX,
renderingMode: DWRITE_RENDERING_MODE,
measuringMode: DWRITE_MEASURING_MODE,
gridFitMode: DWRITE_GRID_FIT_MODE,
antialiasMode: DWRITE_TEXT_ANTIALIAS_MODE,
baselineOriginX: f32,
baselineOriginY: f32,
glyphRunAnalysis: ?*?*IDWriteGlyphRunAnalysis,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFactory1.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory2_GetSystemFontFallback(self: *const T, fontFallback: ?*?*IDWriteFontFallback) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory2.VTable, @ptrCast(self.vtable)).GetSystemFontFallback(@as(*const IDWriteFactory2, @ptrCast(self)), fontFallback);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory2_CreateFontFallbackBuilder(self: *const T, fontFallbackBuilder: ?*?*IDWriteFontFallbackBuilder) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory2.VTable, @ptrCast(self.vtable)).CreateFontFallbackBuilder(@as(*const IDWriteFactory2, @ptrCast(self)), fontFallbackBuilder);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory2_TranslateColorGlyphRun(self: *const T, baselineOriginX: f32, baselineOriginY: f32, glyphRun: ?*const DWRITE_GLYPH_RUN, glyphRunDescription: ?*const DWRITE_GLYPH_RUN_DESCRIPTION, measuringMode: DWRITE_MEASURING_MODE, worldToDeviceTransform: ?*const DWRITE_MATRIX, colorPaletteIndex: u32, colorLayers: ?*?*IDWriteColorGlyphRunEnumerator) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory2.VTable, @ptrCast(self.vtable)).TranslateColorGlyphRun(@as(*const IDWriteFactory2, @ptrCast(self)), baselineOriginX, baselineOriginY, glyphRun, glyphRunDescription, measuringMode, worldToDeviceTransform, colorPaletteIndex, colorLayers);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory2_CreateCustomRenderingParams(self: *const T, gamma: f32, enhancedContrast: f32, grayscaleEnhancedContrast: f32, clearTypeLevel: f32, pixelGeometry: DWRITE_PIXEL_GEOMETRY, renderingMode: DWRITE_RENDERING_MODE, gridFitMode: DWRITE_GRID_FIT_MODE, renderingParams: ?*?*IDWriteRenderingParams2) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory2.VTable, @ptrCast(self.vtable)).CreateCustomRenderingParams(@as(*const IDWriteFactory2, @ptrCast(self)), gamma, enhancedContrast, grayscaleEnhancedContrast, clearTypeLevel, pixelGeometry, renderingMode, gridFitMode, renderingParams);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory2_CreateGlyphRunAnalysis(self: *const T, glyphRun: ?*const DWRITE_GLYPH_RUN, transform: ?*const DWRITE_MATRIX, renderingMode: DWRITE_RENDERING_MODE, measuringMode: DWRITE_MEASURING_MODE, gridFitMode: DWRITE_GRID_FIT_MODE, antialiasMode: DWRITE_TEXT_ANTIALIAS_MODE, baselineOriginX: f32, baselineOriginY: f32, glyphRunAnalysis: ?*?*IDWriteGlyphRunAnalysis) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory2.VTable, @ptrCast(self.vtable)).CreateGlyphRunAnalysis(@as(*const IDWriteFactory2, @ptrCast(self)), glyphRun, transform, renderingMode, measuringMode, gridFitMode, antialiasMode, baselineOriginX, baselineOriginY, glyphRunAnalysis);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_FONT_PROPERTY_ID = enum(i32) {
NONE = 0,
WEIGHT_STRETCH_STYLE_FAMILY_NAME = 1,
TYPOGRAPHIC_FAMILY_NAME = 2,
WEIGHT_STRETCH_STYLE_FACE_NAME = 3,
FULL_NAME = 4,
WIN32_FAMILY_NAME = 5,
POSTSCRIPT_NAME = 6,
DESIGN_SCRIPT_LANGUAGE_TAG = 7,
SUPPORTED_SCRIPT_LANGUAGE_TAG = 8,
SEMANTIC_TAG = 9,
WEIGHT = 10,
STRETCH = 11,
STYLE = 12,
TYPOGRAPHIC_FACE_NAME = 13,
// TOTAL = 13, this enum value conflicts with TYPOGRAPHIC_FACE_NAME
TOTAL_RS3 = 14,
// PREFERRED_FAMILY_NAME = 2, this enum value conflicts with TYPOGRAPHIC_FAMILY_NAME
// FAMILY_NAME = 1, this enum value conflicts with WEIGHT_STRETCH_STYLE_FAMILY_NAME
// FACE_NAME = 3, this enum value conflicts with WEIGHT_STRETCH_STYLE_FACE_NAME
};
pub const DWRITE_FONT_PROPERTY_ID_NONE = DWRITE_FONT_PROPERTY_ID.NONE;
pub const DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID.WEIGHT_STRETCH_STYLE_FAMILY_NAME;
pub const DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID.TYPOGRAPHIC_FAMILY_NAME;
pub const DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME = DWRITE_FONT_PROPERTY_ID.WEIGHT_STRETCH_STYLE_FACE_NAME;
pub const DWRITE_FONT_PROPERTY_ID_FULL_NAME = DWRITE_FONT_PROPERTY_ID.FULL_NAME;
pub const DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID.WIN32_FAMILY_NAME;
pub const DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME = DWRITE_FONT_PROPERTY_ID.POSTSCRIPT_NAME;
pub const DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG = DWRITE_FONT_PROPERTY_ID.DESIGN_SCRIPT_LANGUAGE_TAG;
pub const DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG = DWRITE_FONT_PROPERTY_ID.SUPPORTED_SCRIPT_LANGUAGE_TAG;
pub const DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG = DWRITE_FONT_PROPERTY_ID.SEMANTIC_TAG;
pub const DWRITE_FONT_PROPERTY_ID_WEIGHT = DWRITE_FONT_PROPERTY_ID.WEIGHT;
pub const DWRITE_FONT_PROPERTY_ID_STRETCH = DWRITE_FONT_PROPERTY_ID.STRETCH;
pub const DWRITE_FONT_PROPERTY_ID_STYLE = DWRITE_FONT_PROPERTY_ID.STYLE;
pub const DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FACE_NAME = DWRITE_FONT_PROPERTY_ID.TYPOGRAPHIC_FACE_NAME;
pub const DWRITE_FONT_PROPERTY_ID_TOTAL = DWRITE_FONT_PROPERTY_ID.TYPOGRAPHIC_FACE_NAME;
pub const DWRITE_FONT_PROPERTY_ID_TOTAL_RS3 = DWRITE_FONT_PROPERTY_ID.TOTAL_RS3;
pub const DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID.TYPOGRAPHIC_FAMILY_NAME;
pub const DWRITE_FONT_PROPERTY_ID_FAMILY_NAME = DWRITE_FONT_PROPERTY_ID.WEIGHT_STRETCH_STYLE_FAMILY_NAME;
pub const DWRITE_FONT_PROPERTY_ID_FACE_NAME = DWRITE_FONT_PROPERTY_ID.WEIGHT_STRETCH_STYLE_FACE_NAME;
pub const DWRITE_FONT_PROPERTY = extern struct {
propertyId: DWRITE_FONT_PROPERTY_ID,
propertyValue: ?[*:0]const u16,
localeName: ?[*:0]const u16,
};
pub const DWRITE_LOCALITY = enum(i32) {
REMOTE = 0,
PARTIAL = 1,
LOCAL = 2,
};
pub const DWRITE_LOCALITY_REMOTE = DWRITE_LOCALITY.REMOTE;
pub const DWRITE_LOCALITY_PARTIAL = DWRITE_LOCALITY.PARTIAL;
pub const DWRITE_LOCALITY_LOCAL = DWRITE_LOCALITY.LOCAL;
pub const DWRITE_RENDERING_MODE1 = enum(i32) {
DEFAULT = 0,
ALIASED = 1,
GDI_CLASSIC = 2,
GDI_NATURAL = 3,
NATURAL = 4,
NATURAL_SYMMETRIC = 5,
OUTLINE = 6,
NATURAL_SYMMETRIC_DOWNSAMPLED = 7,
};
pub const DWRITE_RENDERING_MODE1_DEFAULT = DWRITE_RENDERING_MODE1.DEFAULT;
pub const DWRITE_RENDERING_MODE1_ALIASED = DWRITE_RENDERING_MODE1.ALIASED;
pub const DWRITE_RENDERING_MODE1_GDI_CLASSIC = DWRITE_RENDERING_MODE1.GDI_CLASSIC;
pub const DWRITE_RENDERING_MODE1_GDI_NATURAL = DWRITE_RENDERING_MODE1.GDI_NATURAL;
pub const DWRITE_RENDERING_MODE1_NATURAL = DWRITE_RENDERING_MODE1.NATURAL;
pub const DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE1.NATURAL_SYMMETRIC;
pub const DWRITE_RENDERING_MODE1_OUTLINE = DWRITE_RENDERING_MODE1.OUTLINE;
pub const DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED = DWRITE_RENDERING_MODE1.NATURAL_SYMMETRIC_DOWNSAMPLED;
// TODO: this type is limited to platform 'windows10.0.10240'
const IID_IDWriteRenderingParams3_Value = Guid.initString("b7924baa-391b-412a-8c5c-e44cc2d867dc");
pub const IID_IDWriteRenderingParams3 = &IID_IDWriteRenderingParams3_Value;
pub const IDWriteRenderingParams3 = extern struct {
pub const VTable = extern struct {
base: IDWriteRenderingParams2.VTable,
GetRenderingMode1: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRenderingParams3,
) callconv(@import("std").os.windows.WINAPI) DWRITE_RENDERING_MODE1,
else => *const fn(
self: *const IDWriteRenderingParams3,
) callconv(@import("std").os.windows.WINAPI) DWRITE_RENDERING_MODE1,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteRenderingParams2.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRenderingParams3_GetRenderingMode1(self: *const T) callconv(.Inline) DWRITE_RENDERING_MODE1 {
return @as(*const IDWriteRenderingParams3.VTable, @ptrCast(self.vtable)).GetRenderingMode1(@as(*const IDWriteRenderingParams3, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows10.0.10240'
const IID_IDWriteFactory3_Value = Guid.initString("9a1b41c3-d3bb-466a-87fc-fe67556a3b65");
pub const IID_IDWriteFactory3 = &IID_IDWriteFactory3_Value;
pub const IDWriteFactory3 = extern struct {
pub const VTable = extern struct {
base: IDWriteFactory2.VTable,
CreateGlyphRunAnalysis: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory3,
glyphRun: ?*const DWRITE_GLYPH_RUN,
transform: ?*const DWRITE_MATRIX,
renderingMode: DWRITE_RENDERING_MODE1,
measuringMode: DWRITE_MEASURING_MODE,
gridFitMode: DWRITE_GRID_FIT_MODE,
antialiasMode: DWRITE_TEXT_ANTIALIAS_MODE,
baselineOriginX: f32,
baselineOriginY: f32,
glyphRunAnalysis: ?*?*IDWriteGlyphRunAnalysis,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory3,
glyphRun: ?*const DWRITE_GLYPH_RUN,
transform: ?*const DWRITE_MATRIX,
renderingMode: DWRITE_RENDERING_MODE1,
measuringMode: DWRITE_MEASURING_MODE,
gridFitMode: DWRITE_GRID_FIT_MODE,
antialiasMode: DWRITE_TEXT_ANTIALIAS_MODE,
baselineOriginX: f32,
baselineOriginY: f32,
glyphRunAnalysis: ?*?*IDWriteGlyphRunAnalysis,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateCustomRenderingParams: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory3,
gamma: f32,
enhancedContrast: f32,
grayscaleEnhancedContrast: f32,
clearTypeLevel: f32,
pixelGeometry: DWRITE_PIXEL_GEOMETRY,
renderingMode: DWRITE_RENDERING_MODE1,
gridFitMode: DWRITE_GRID_FIT_MODE,
renderingParams: ?*?*IDWriteRenderingParams3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory3,
gamma: f32,
enhancedContrast: f32,
grayscaleEnhancedContrast: f32,
clearTypeLevel: f32,
pixelGeometry: DWRITE_PIXEL_GEOMETRY,
renderingMode: DWRITE_RENDERING_MODE1,
gridFitMode: DWRITE_GRID_FIT_MODE,
renderingParams: ?*?*IDWriteRenderingParams3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontFaceReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory3,
fontFile: ?*IDWriteFontFile,
faceIndex: u32,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory3,
fontFile: ?*IDWriteFontFile,
faceIndex: u32,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontFaceReference1: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory3,
filePath: ?[*:0]const u16,
lastWriteTime: ?*const FILETIME,
faceIndex: u32,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory3,
filePath: ?[*:0]const u16,
lastWriteTime: ?*const FILETIME,
faceIndex: u32,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSystemFontSet: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory3,
fontSet: ?*?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory3,
fontSet: ?*?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontSetBuilder: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory3,
fontSetBuilder: ?*?*IDWriteFontSetBuilder,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory3,
fontSetBuilder: ?*?*IDWriteFontSetBuilder,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontCollectionFromFontSet: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory3,
fontSet: ?*IDWriteFontSet,
fontCollection: ?*?*IDWriteFontCollection1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory3,
fontSet: ?*IDWriteFontSet,
fontCollection: ?*?*IDWriteFontCollection1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSystemFontCollection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory3,
includeDownloadableFonts: BOOL,
fontCollection: ?*?*IDWriteFontCollection1,
checkForUpdates: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory3,
includeDownloadableFonts: BOOL,
fontCollection: ?*?*IDWriteFontCollection1,
checkForUpdates: BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontDownloadQueue: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory3,
fontDownloadQueue: ?*?*IDWriteFontDownloadQueue,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory3,
fontDownloadQueue: ?*?*IDWriteFontDownloadQueue,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFactory2.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory3_CreateGlyphRunAnalysis(self: *const T, glyphRun: ?*const DWRITE_GLYPH_RUN, transform: ?*const DWRITE_MATRIX, renderingMode: DWRITE_RENDERING_MODE1, measuringMode: DWRITE_MEASURING_MODE, gridFitMode: DWRITE_GRID_FIT_MODE, antialiasMode: DWRITE_TEXT_ANTIALIAS_MODE, baselineOriginX: f32, baselineOriginY: f32, glyphRunAnalysis: ?*?*IDWriteGlyphRunAnalysis) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory3.VTable, @ptrCast(self.vtable)).CreateGlyphRunAnalysis(@as(*const IDWriteFactory3, @ptrCast(self)), glyphRun, transform, renderingMode, measuringMode, gridFitMode, antialiasMode, baselineOriginX, baselineOriginY, glyphRunAnalysis);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory3_CreateCustomRenderingParams(self: *const T, gamma: f32, enhancedContrast: f32, grayscaleEnhancedContrast: f32, clearTypeLevel: f32, pixelGeometry: DWRITE_PIXEL_GEOMETRY, renderingMode: DWRITE_RENDERING_MODE1, gridFitMode: DWRITE_GRID_FIT_MODE, renderingParams: ?*?*IDWriteRenderingParams3) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory3.VTable, @ptrCast(self.vtable)).CreateCustomRenderingParams(@as(*const IDWriteFactory3, @ptrCast(self)), gamma, enhancedContrast, grayscaleEnhancedContrast, clearTypeLevel, pixelGeometry, renderingMode, gridFitMode, renderingParams);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory3_CreateFontFaceReference(self: *const T, fontFile: ?*IDWriteFontFile, faceIndex: u32, fontSimulations: DWRITE_FONT_SIMULATIONS, fontFaceReference: ?*?*IDWriteFontFaceReference) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory3.VTable, @ptrCast(self.vtable)).CreateFontFaceReference(@as(*const IDWriteFactory3, @ptrCast(self)), fontFile, faceIndex, fontSimulations, fontFaceReference);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory3_CreateFontFaceReference1(self: *const T, filePath: ?[*:0]const u16, lastWriteTime: ?*const FILETIME, faceIndex: u32, fontSimulations: DWRITE_FONT_SIMULATIONS, fontFaceReference: ?*?*IDWriteFontFaceReference) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory3.VTable, @ptrCast(self.vtable)).CreateFontFaceReference(@as(*const IDWriteFactory3, @ptrCast(self)), filePath, lastWriteTime, faceIndex, fontSimulations, fontFaceReference);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory3_GetSystemFontSet(self: *const T, fontSet: ?*?*IDWriteFontSet) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory3.VTable, @ptrCast(self.vtable)).GetSystemFontSet(@as(*const IDWriteFactory3, @ptrCast(self)), fontSet);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory3_CreateFontSetBuilder(self: *const T, fontSetBuilder: ?*?*IDWriteFontSetBuilder) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory3.VTable, @ptrCast(self.vtable)).CreateFontSetBuilder(@as(*const IDWriteFactory3, @ptrCast(self)), fontSetBuilder);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory3_CreateFontCollectionFromFontSet(self: *const T, fontSet: ?*IDWriteFontSet, fontCollection: ?*?*IDWriteFontCollection1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory3.VTable, @ptrCast(self.vtable)).CreateFontCollectionFromFontSet(@as(*const IDWriteFactory3, @ptrCast(self)), fontSet, fontCollection);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory3_GetSystemFontCollection(self: *const T, includeDownloadableFonts: BOOL, fontCollection: ?*?*IDWriteFontCollection1, checkForUpdates: BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory3.VTable, @ptrCast(self.vtable)).GetSystemFontCollection(@as(*const IDWriteFactory3, @ptrCast(self)), includeDownloadableFonts, fontCollection, checkForUpdates);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory3_GetFontDownloadQueue(self: *const T, fontDownloadQueue: ?*?*IDWriteFontDownloadQueue) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory3.VTable, @ptrCast(self.vtable)).GetFontDownloadQueue(@as(*const IDWriteFactory3, @ptrCast(self)), fontDownloadQueue);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows10.0.10240'
const IID_IDWriteFontSet_Value = Guid.initString("53585141-d9f8-4095-8321-d73cf6bd116b");
pub const IID_IDWriteFontSet = &IID_IDWriteFontSet_Value;
pub const IDWriteFontSet = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetFontCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetFontFaceReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet,
listIndex: u32,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet,
listIndex: u32,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
FindFontFaceReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet,
fontFaceReference: ?*IDWriteFontFaceReference,
listIndex: ?*u32,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet,
fontFaceReference: ?*IDWriteFontFaceReference,
listIndex: ?*u32,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
FindFontFace: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet,
fontFace: ?*IDWriteFontFace,
listIndex: ?*u32,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet,
fontFace: ?*IDWriteFontFace,
listIndex: ?*u32,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetPropertyValues: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet,
propertyID: DWRITE_FONT_PROPERTY_ID,
values: ?*?*IDWriteStringList,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet,
propertyID: DWRITE_FONT_PROPERTY_ID,
values: ?*?*IDWriteStringList,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetPropertyValues1: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet,
propertyID: DWRITE_FONT_PROPERTY_ID,
preferredLocaleNames: ?[*:0]const u16,
values: ?*?*IDWriteStringList,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet,
propertyID: DWRITE_FONT_PROPERTY_ID,
preferredLocaleNames: ?[*:0]const u16,
values: ?*?*IDWriteStringList,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetPropertyValues2: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet,
listIndex: u32,
propertyId: DWRITE_FONT_PROPERTY_ID,
exists: ?*BOOL,
values: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet,
listIndex: u32,
propertyId: DWRITE_FONT_PROPERTY_ID,
exists: ?*BOOL,
values: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetPropertyOccurrenceCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet,
property: ?*const DWRITE_FONT_PROPERTY,
propertyOccurrenceCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet,
property: ?*const DWRITE_FONT_PROPERTY,
propertyOccurrenceCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetMatchingFonts: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet,
familyName: ?[*:0]const u16,
fontWeight: DWRITE_FONT_WEIGHT,
fontStretch: DWRITE_FONT_STRETCH,
fontStyle: DWRITE_FONT_STYLE,
filteredSet: ?*?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet,
familyName: ?[*:0]const u16,
fontWeight: DWRITE_FONT_WEIGHT,
fontStretch: DWRITE_FONT_STRETCH,
fontStyle: DWRITE_FONT_STYLE,
filteredSet: ?*?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetMatchingFonts1: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet,
properties: [*]const DWRITE_FONT_PROPERTY,
propertyCount: u32,
filteredSet: ?*?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet,
properties: [*]const DWRITE_FONT_PROPERTY,
propertyCount: u32,
filteredSet: ?*?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet_GetFontCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteFontSet.VTable, @ptrCast(self.vtable)).GetFontCount(@as(*const IDWriteFontSet, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet_GetFontFaceReference(self: *const T, listIndex: u32, fontFaceReference: ?*?*IDWriteFontFaceReference) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet.VTable, @ptrCast(self.vtable)).GetFontFaceReference(@as(*const IDWriteFontSet, @ptrCast(self)), listIndex, fontFaceReference);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet_FindFontFaceReference(self: *const T, fontFaceReference: ?*IDWriteFontFaceReference, listIndex: ?*u32, exists: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet.VTable, @ptrCast(self.vtable)).FindFontFaceReference(@as(*const IDWriteFontSet, @ptrCast(self)), fontFaceReference, listIndex, exists);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet_FindFontFace(self: *const T, fontFace: ?*IDWriteFontFace, listIndex: ?*u32, exists: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet.VTable, @ptrCast(self.vtable)).FindFontFace(@as(*const IDWriteFontSet, @ptrCast(self)), fontFace, listIndex, exists);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet_GetPropertyValues(self: *const T, propertyID: DWRITE_FONT_PROPERTY_ID, values: ?*?*IDWriteStringList) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet.VTable, @ptrCast(self.vtable)).GetPropertyValues(@as(*const IDWriteFontSet, @ptrCast(self)), propertyID, values);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet_GetPropertyValues1(self: *const T, propertyID: DWRITE_FONT_PROPERTY_ID, preferredLocaleNames: ?[*:0]const u16, values: ?*?*IDWriteStringList) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet.VTable, @ptrCast(self.vtable)).GetPropertyValues(@as(*const IDWriteFontSet, @ptrCast(self)), propertyID, preferredLocaleNames, values);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet_GetPropertyValues2(self: *const T, listIndex: u32, propertyId: DWRITE_FONT_PROPERTY_ID, exists: ?*BOOL, values: ?*?*IDWriteLocalizedStrings) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet.VTable, @ptrCast(self.vtable)).GetPropertyValues(@as(*const IDWriteFontSet, @ptrCast(self)), listIndex, propertyId, exists, values);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet_GetPropertyOccurrenceCount(self: *const T, property: ?*const DWRITE_FONT_PROPERTY, propertyOccurrenceCount: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet.VTable, @ptrCast(self.vtable)).GetPropertyOccurrenceCount(@as(*const IDWriteFontSet, @ptrCast(self)), property, propertyOccurrenceCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet_GetMatchingFonts(self: *const T, familyName: ?[*:0]const u16, fontWeight: DWRITE_FONT_WEIGHT, fontStretch: DWRITE_FONT_STRETCH, fontStyle: DWRITE_FONT_STYLE, filteredSet: ?*?*IDWriteFontSet) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet.VTable, @ptrCast(self.vtable)).GetMatchingFonts(@as(*const IDWriteFontSet, @ptrCast(self)), familyName, fontWeight, fontStretch, fontStyle, filteredSet);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet_GetMatchingFonts1(self: *const T, properties: [*]const DWRITE_FONT_PROPERTY, propertyCount: u32, filteredSet: ?*?*IDWriteFontSet) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet.VTable, @ptrCast(self.vtable)).GetMatchingFonts(@as(*const IDWriteFontSet, @ptrCast(self)), properties, propertyCount, filteredSet);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontSetBuilder_Value = Guid.initString("2f642afe-9c68-4f40-b8be-457401afcb3d");
pub const IID_IDWriteFontSetBuilder = &IID_IDWriteFontSetBuilder_Value;
pub const IDWriteFontSetBuilder = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
AddFontFaceReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSetBuilder,
fontFaceReference: ?*IDWriteFontFaceReference,
properties: [*]const DWRITE_FONT_PROPERTY,
propertyCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSetBuilder,
fontFaceReference: ?*IDWriteFontFaceReference,
properties: [*]const DWRITE_FONT_PROPERTY,
propertyCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AddFontFaceReference1: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSetBuilder,
fontFaceReference: ?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSetBuilder,
fontFaceReference: ?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AddFontSet: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSetBuilder,
fontSet: ?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSetBuilder,
fontSet: ?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontSet: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSetBuilder,
fontSet: ?*?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSetBuilder,
fontSet: ?*?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSetBuilder_AddFontFaceReference(self: *const T, fontFaceReference: ?*IDWriteFontFaceReference, properties: [*]const DWRITE_FONT_PROPERTY, propertyCount: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSetBuilder.VTable, @ptrCast(self.vtable)).AddFontFaceReference(@as(*const IDWriteFontSetBuilder, @ptrCast(self)), fontFaceReference, properties, propertyCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSetBuilder_AddFontFaceReference1(self: *const T, fontFaceReference: ?*IDWriteFontFaceReference) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSetBuilder.VTable, @ptrCast(self.vtable)).AddFontFaceReference(@as(*const IDWriteFontSetBuilder, @ptrCast(self)), fontFaceReference);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSetBuilder_AddFontSet(self: *const T, fontSet: ?*IDWriteFontSet) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSetBuilder.VTable, @ptrCast(self.vtable)).AddFontSet(@as(*const IDWriteFontSetBuilder, @ptrCast(self)), fontSet);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSetBuilder_CreateFontSet(self: *const T, fontSet: ?*?*IDWriteFontSet) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSetBuilder.VTable, @ptrCast(self.vtable)).CreateFontSet(@as(*const IDWriteFontSetBuilder, @ptrCast(self)), fontSet);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows6.1'
const IID_IDWriteFontCollection1_Value = Guid.initString("53585141-d9f8-4095-8321-d73cf6bd116c");
pub const IID_IDWriteFontCollection1 = &IID_IDWriteFontCollection1_Value;
pub const IDWriteFontCollection1 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontCollection.VTable,
GetFontSet: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontCollection1,
fontSet: ?*?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontCollection1,
fontSet: ?*?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFamily: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontCollection1,
index: u32,
fontFamily: ?*?*IDWriteFontFamily1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontCollection1,
index: u32,
fontFamily: ?*?*IDWriteFontFamily1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontCollection.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontCollection1_GetFontSet(self: *const T, fontSet: ?*?*IDWriteFontSet) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontCollection1.VTable, @ptrCast(self.vtable)).GetFontSet(@as(*const IDWriteFontCollection1, @ptrCast(self)), fontSet);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontCollection1_GetFontFamily(self: *const T, index: u32, fontFamily: ?*?*IDWriteFontFamily1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontCollection1.VTable, @ptrCast(self.vtable)).GetFontFamily(@as(*const IDWriteFontCollection1, @ptrCast(self)), index, fontFamily);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows10.0.10240'
const IID_IDWriteFontFamily1_Value = Guid.initString("da20d8ef-812a-4c43-9802-62ec4abd7adf");
pub const IID_IDWriteFontFamily1 = &IID_IDWriteFontFamily1_Value;
pub const IDWriteFontFamily1 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFamily.VTable,
GetFontLocality: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFamily1,
listIndex: u32,
) callconv(@import("std").os.windows.WINAPI) DWRITE_LOCALITY,
else => *const fn(
self: *const IDWriteFontFamily1,
listIndex: u32,
) callconv(@import("std").os.windows.WINAPI) DWRITE_LOCALITY,
},
GetFont: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFamily1,
listIndex: u32,
font: ?*?*IDWriteFont3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFamily1,
listIndex: u32,
font: ?*?*IDWriteFont3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFaceReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFamily1,
listIndex: u32,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFamily1,
listIndex: u32,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFamily.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFamily1_GetFontLocality(self: *const T, listIndex: u32) callconv(.Inline) DWRITE_LOCALITY {
return @as(*const IDWriteFontFamily1.VTable, @ptrCast(self.vtable)).GetFontLocality(@as(*const IDWriteFontFamily1, @ptrCast(self)), listIndex);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFamily1_GetFont(self: *const T, listIndex: u32, font: ?*?*IDWriteFont3) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFamily1.VTable, @ptrCast(self.vtable)).GetFont(@as(*const IDWriteFontFamily1, @ptrCast(self)), listIndex, font);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFamily1_GetFontFaceReference(self: *const T, listIndex: u32, fontFaceReference: ?*?*IDWriteFontFaceReference) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFamily1.VTable, @ptrCast(self.vtable)).GetFontFaceReference(@as(*const IDWriteFontFamily1, @ptrCast(self)), listIndex, fontFaceReference);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows10.0.10240'
const IID_IDWriteFontList1_Value = Guid.initString("da20d8ef-812a-4c43-9802-62ec4abd7ade");
pub const IID_IDWriteFontList1 = &IID_IDWriteFontList1_Value;
pub const IDWriteFontList1 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontList.VTable,
GetFontLocality: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontList1,
listIndex: u32,
) callconv(@import("std").os.windows.WINAPI) DWRITE_LOCALITY,
else => *const fn(
self: *const IDWriteFontList1,
listIndex: u32,
) callconv(@import("std").os.windows.WINAPI) DWRITE_LOCALITY,
},
GetFont: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontList1,
listIndex: u32,
font: ?*?*IDWriteFont3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontList1,
listIndex: u32,
font: ?*?*IDWriteFont3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFaceReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontList1,
listIndex: u32,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontList1,
listIndex: u32,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontList.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontList1_GetFontLocality(self: *const T, listIndex: u32) callconv(.Inline) DWRITE_LOCALITY {
return @as(*const IDWriteFontList1.VTable, @ptrCast(self.vtable)).GetFontLocality(@as(*const IDWriteFontList1, @ptrCast(self)), listIndex);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontList1_GetFont(self: *const T, listIndex: u32, font: ?*?*IDWriteFont3) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontList1.VTable, @ptrCast(self.vtable)).GetFont(@as(*const IDWriteFontList1, @ptrCast(self)), listIndex, font);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontList1_GetFontFaceReference(self: *const T, listIndex: u32, fontFaceReference: ?*?*IDWriteFontFaceReference) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontList1.VTable, @ptrCast(self.vtable)).GetFontFaceReference(@as(*const IDWriteFontList1, @ptrCast(self)), listIndex, fontFaceReference);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows10.0.10240'
const IID_IDWriteFontFaceReference_Value = Guid.initString("5e7fa7ca-dde3-424c-89f0-9fcd6fed58cd");
pub const IID_IDWriteFontFaceReference = &IID_IDWriteFontFaceReference_Value;
pub const IDWriteFontFaceReference = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
CreateFontFace: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
fontFace: ?*?*IDWriteFontFace3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFaceReference,
fontFace: ?*?*IDWriteFontFace3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontFaceWithSimulations: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
fontFaceSimulationFlags: DWRITE_FONT_SIMULATIONS,
fontFace: ?*?*IDWriteFontFace3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFaceReference,
fontFaceSimulationFlags: DWRITE_FONT_SIMULATIONS,
fontFace: ?*?*IDWriteFontFace3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Equals: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
fontFaceReference: ?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontFaceReference,
fontFaceReference: ?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
GetFontFaceIndex: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetSimulations: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_SIMULATIONS,
else => *const fn(
self: *const IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_SIMULATIONS,
},
GetFontFile: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFaceReference,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLocalFileSize: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) u64,
else => *const fn(
self: *const IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) u64,
},
GetFileSize: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) u64,
else => *const fn(
self: *const IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) u64,
},
GetFileTime: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
lastWriteTime: ?*FILETIME,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFaceReference,
lastWriteTime: ?*FILETIME,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLocality: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) DWRITE_LOCALITY,
else => *const fn(
self: *const IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) DWRITE_LOCALITY,
},
EnqueueFontDownloadRequest: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
EnqueueCharacterDownloadRequest: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
characters: [*:0]const u16,
characterCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFaceReference,
characters: [*:0]const u16,
characterCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
EnqueueGlyphDownloadRequest: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
glyphIndices: [*:0]const u16,
glyphCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFaceReference,
glyphIndices: [*:0]const u16,
glyphCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
EnqueueFileFragmentDownloadRequest: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference,
fileOffset: u64,
fragmentSize: u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFaceReference,
fileOffset: u64,
fragmentSize: u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_CreateFontFace(self: *const T, fontFace: ?*?*IDWriteFontFace3) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).CreateFontFace(@as(*const IDWriteFontFaceReference, @ptrCast(self)), fontFace);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_CreateFontFaceWithSimulations(self: *const T, fontFaceSimulationFlags: DWRITE_FONT_SIMULATIONS, fontFace: ?*?*IDWriteFontFace3) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).CreateFontFaceWithSimulations(@as(*const IDWriteFontFaceReference, @ptrCast(self)), fontFaceSimulationFlags, fontFace);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_Equals(self: *const T, fontFaceReference: ?*IDWriteFontFaceReference) callconv(.Inline) BOOL {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).Equals(@as(*const IDWriteFontFaceReference, @ptrCast(self)), fontFaceReference);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_GetFontFaceIndex(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).GetFontFaceIndex(@as(*const IDWriteFontFaceReference, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_GetSimulations(self: *const T) callconv(.Inline) DWRITE_FONT_SIMULATIONS {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).GetSimulations(@as(*const IDWriteFontFaceReference, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_GetFontFile(self: *const T, fontFile: ?*?*IDWriteFontFile) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).GetFontFile(@as(*const IDWriteFontFaceReference, @ptrCast(self)), fontFile);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_GetLocalFileSize(self: *const T) callconv(.Inline) u64 {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).GetLocalFileSize(@as(*const IDWriteFontFaceReference, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_GetFileSize(self: *const T) callconv(.Inline) u64 {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).GetFileSize(@as(*const IDWriteFontFaceReference, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_GetFileTime(self: *const T, lastWriteTime: ?*FILETIME) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).GetFileTime(@as(*const IDWriteFontFaceReference, @ptrCast(self)), lastWriteTime);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_GetLocality(self: *const T) callconv(.Inline) DWRITE_LOCALITY {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).GetLocality(@as(*const IDWriteFontFaceReference, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_EnqueueFontDownloadRequest(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).EnqueueFontDownloadRequest(@as(*const IDWriteFontFaceReference, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_EnqueueCharacterDownloadRequest(self: *const T, characters: [*:0]const u16, characterCount: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).EnqueueCharacterDownloadRequest(@as(*const IDWriteFontFaceReference, @ptrCast(self)), characters, characterCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_EnqueueGlyphDownloadRequest(self: *const T, glyphIndices: [*:0]const u16, glyphCount: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).EnqueueGlyphDownloadRequest(@as(*const IDWriteFontFaceReference, @ptrCast(self)), glyphIndices, glyphCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference_EnqueueFileFragmentDownloadRequest(self: *const T, fileOffset: u64, fragmentSize: u64) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFaceReference.VTable, @ptrCast(self.vtable)).EnqueueFileFragmentDownloadRequest(@as(*const IDWriteFontFaceReference, @ptrCast(self)), fileOffset, fragmentSize);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows10.0.10240'
const IID_IDWriteFont3_Value = Guid.initString("29748ed6-8c9c-4a6a-be0b-d912e8538944");
pub const IID_IDWriteFont3 = &IID_IDWriteFont3_Value;
pub const IDWriteFont3 = extern struct {
pub const VTable = extern struct {
base: IDWriteFont2.VTable,
CreateFontFace: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont3,
fontFace: ?*?*IDWriteFontFace3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFont3,
fontFace: ?*?*IDWriteFontFace3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Equals: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont3,
font: ?*IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFont3,
font: ?*IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
GetFontFaceReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont3,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFont3,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
HasCharacter: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont3,
unicodeValue: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFont3,
unicodeValue: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
GetLocality: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFont3,
) callconv(@import("std").os.windows.WINAPI) DWRITE_LOCALITY,
else => *const fn(
self: *const IDWriteFont3,
) callconv(@import("std").os.windows.WINAPI) DWRITE_LOCALITY,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFont2.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont3_CreateFontFace(self: *const T, fontFace: ?*?*IDWriteFontFace3) callconv(.Inline) HRESULT {
return @as(*const IDWriteFont3.VTable, @ptrCast(self.vtable)).CreateFontFace(@as(*const IDWriteFont3, @ptrCast(self)), fontFace);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont3_Equals(self: *const T, font: ?*IDWriteFont) callconv(.Inline) BOOL {
return @as(*const IDWriteFont3.VTable, @ptrCast(self.vtable)).Equals(@as(*const IDWriteFont3, @ptrCast(self)), font);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont3_GetFontFaceReference(self: *const T, fontFaceReference: ?*?*IDWriteFontFaceReference) callconv(.Inline) HRESULT {
return @as(*const IDWriteFont3.VTable, @ptrCast(self.vtable)).GetFontFaceReference(@as(*const IDWriteFont3, @ptrCast(self)), fontFaceReference);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont3_HasCharacter(self: *const T, unicodeValue: u32) callconv(.Inline) BOOL {
return @as(*const IDWriteFont3.VTable, @ptrCast(self.vtable)).HasCharacter(@as(*const IDWriteFont3, @ptrCast(self)), unicodeValue);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFont3_GetLocality(self: *const T) callconv(.Inline) DWRITE_LOCALITY {
return @as(*const IDWriteFont3.VTable, @ptrCast(self.vtable)).GetLocality(@as(*const IDWriteFont3, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows10.0.10240'
const IID_IDWriteFontFace3_Value = Guid.initString("d37d7598-09be-4222-a236-2081341cc1f2");
pub const IID_IDWriteFontFace3 = &IID_IDWriteFontFace3_Value;
pub const IDWriteFontFace3 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFace2.VTable,
GetFontFaceReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace3,
fontFaceReference: ?*?*IDWriteFontFaceReference,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetPanose: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
panose: ?*DWRITE_PANOSE,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
self: *const IDWriteFontFace3,
panose: ?*DWRITE_PANOSE,
) callconv(@import("std").os.windows.WINAPI) void,
},
GetWeight: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_WEIGHT,
else => *const fn(
self: *const IDWriteFontFace3,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_WEIGHT,
},
GetStretch: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_STRETCH,
else => *const fn(
self: *const IDWriteFontFace3,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_STRETCH,
},
GetStyle: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_STYLE,
else => *const fn(
self: *const IDWriteFontFace3,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_STYLE,
},
GetFamilyNames: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace3,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFaceNames: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace3,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetInformationalStrings: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
informationalStringID: DWRITE_INFORMATIONAL_STRING_ID,
informationalStrings: ?*?*IDWriteLocalizedStrings,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace3,
informationalStringID: DWRITE_INFORMATIONAL_STRING_ID,
informationalStrings: ?*?*IDWriteLocalizedStrings,
exists: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
HasCharacter: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
unicodeValue: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontFace3,
unicodeValue: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
GetRecommendedRenderingMode: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
fontEmSize: f32,
dpiX: f32,
dpiY: f32,
transform: ?*const DWRITE_MATRIX,
isSideways: BOOL,
outlineThreshold: DWRITE_OUTLINE_THRESHOLD,
measuringMode: DWRITE_MEASURING_MODE,
renderingParams: ?*IDWriteRenderingParams,
renderingMode: ?*DWRITE_RENDERING_MODE1,
gridFitMode: ?*DWRITE_GRID_FIT_MODE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace3,
fontEmSize: f32,
dpiX: f32,
dpiY: f32,
transform: ?*const DWRITE_MATRIX,
isSideways: BOOL,
outlineThreshold: DWRITE_OUTLINE_THRESHOLD,
measuringMode: DWRITE_MEASURING_MODE,
renderingParams: ?*IDWriteRenderingParams,
renderingMode: ?*DWRITE_RENDERING_MODE1,
gridFitMode: ?*DWRITE_GRID_FIT_MODE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
IsCharacterLocal: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
unicodeValue: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontFace3,
unicodeValue: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
IsGlyphLocal: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
glyphId: u16,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontFace3,
glyphId: u16,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
AreCharactersLocal: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
characters: [*:0]const u16,
characterCount: u32,
enqueueIfNotLocal: BOOL,
isLocal: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace3,
characters: [*:0]const u16,
characterCount: u32,
enqueueIfNotLocal: BOOL,
isLocal: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AreGlyphsLocal: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace3,
glyphIndices: [*:0]const u16,
glyphCount: u32,
enqueueIfNotLocal: BOOL,
isLocal: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace3,
glyphIndices: [*:0]const u16,
glyphCount: u32,
enqueueIfNotLocal: BOOL,
isLocal: ?*BOOL,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFace2.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_GetFontFaceReference(self: *const T, fontFaceReference: ?*?*IDWriteFontFaceReference) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).GetFontFaceReference(@as(*const IDWriteFontFace3, @ptrCast(self)), fontFaceReference);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_GetPanose(self: *const T, panose: ?*DWRITE_PANOSE) callconv(.Inline) void {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).GetPanose(@as(*const IDWriteFontFace3, @ptrCast(self)), panose);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_GetWeight(self: *const T) callconv(.Inline) DWRITE_FONT_WEIGHT {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).GetWeight(@as(*const IDWriteFontFace3, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_GetStretch(self: *const T) callconv(.Inline) DWRITE_FONT_STRETCH {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).GetStretch(@as(*const IDWriteFontFace3, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_GetStyle(self: *const T) callconv(.Inline) DWRITE_FONT_STYLE {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).GetStyle(@as(*const IDWriteFontFace3, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_GetFamilyNames(self: *const T, names: ?*?*IDWriteLocalizedStrings) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).GetFamilyNames(@as(*const IDWriteFontFace3, @ptrCast(self)), names);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_GetFaceNames(self: *const T, names: ?*?*IDWriteLocalizedStrings) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).GetFaceNames(@as(*const IDWriteFontFace3, @ptrCast(self)), names);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_GetInformationalStrings(self: *const T, informationalStringID: DWRITE_INFORMATIONAL_STRING_ID, informationalStrings: ?*?*IDWriteLocalizedStrings, exists: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).GetInformationalStrings(@as(*const IDWriteFontFace3, @ptrCast(self)), informationalStringID, informationalStrings, exists);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_HasCharacter(self: *const T, unicodeValue: u32) callconv(.Inline) BOOL {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).HasCharacter(@as(*const IDWriteFontFace3, @ptrCast(self)), unicodeValue);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_GetRecommendedRenderingMode(self: *const T, fontEmSize: f32, dpiX: f32, dpiY: f32, transform: ?*const DWRITE_MATRIX, isSideways: BOOL, outlineThreshold: DWRITE_OUTLINE_THRESHOLD, measuringMode: DWRITE_MEASURING_MODE, renderingParams: ?*IDWriteRenderingParams, renderingMode: ?*DWRITE_RENDERING_MODE1, gridFitMode: ?*DWRITE_GRID_FIT_MODE) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).GetRecommendedRenderingMode(@as(*const IDWriteFontFace3, @ptrCast(self)), fontEmSize, dpiX, dpiY, transform, isSideways, outlineThreshold, measuringMode, renderingParams, renderingMode, gridFitMode);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_IsCharacterLocal(self: *const T, unicodeValue: u32) callconv(.Inline) BOOL {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).IsCharacterLocal(@as(*const IDWriteFontFace3, @ptrCast(self)), unicodeValue);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_IsGlyphLocal(self: *const T, glyphId: u16) callconv(.Inline) BOOL {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).IsGlyphLocal(@as(*const IDWriteFontFace3, @ptrCast(self)), glyphId);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_AreCharactersLocal(self: *const T, characters: [*:0]const u16, characterCount: u32, enqueueIfNotLocal: BOOL, isLocal: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).AreCharactersLocal(@as(*const IDWriteFontFace3, @ptrCast(self)), characters, characterCount, enqueueIfNotLocal, isLocal);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace3_AreGlyphsLocal(self: *const T, glyphIndices: [*:0]const u16, glyphCount: u32, enqueueIfNotLocal: BOOL, isLocal: ?*BOOL) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace3.VTable, @ptrCast(self.vtable)).AreGlyphsLocal(@as(*const IDWriteFontFace3, @ptrCast(self)), glyphIndices, glyphCount, enqueueIfNotLocal, isLocal);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteStringList_Value = Guid.initString("cfee3140-1157-47ca-8b85-31bfcf3f2d0e");
pub const IID_IDWriteStringList = &IID_IDWriteStringList_Value;
pub const IDWriteStringList = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteStringList,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteStringList,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetLocaleNameLength: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteStringList,
listIndex: u32,
length: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteStringList,
listIndex: u32,
length: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLocaleName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteStringList,
listIndex: u32,
localeName: [*:0]u16,
size: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteStringList,
listIndex: u32,
localeName: [*:0]u16,
size: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetStringLength: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteStringList,
listIndex: u32,
length: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteStringList,
listIndex: u32,
length: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetString: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteStringList,
listIndex: u32,
stringBuffer: [*:0]u16,
stringBufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteStringList,
listIndex: u32,
stringBuffer: [*:0]u16,
stringBufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteStringList_GetCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteStringList.VTable, @ptrCast(self.vtable)).GetCount(@as(*const IDWriteStringList, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteStringList_GetLocaleNameLength(self: *const T, listIndex: u32, length: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteStringList.VTable, @ptrCast(self.vtable)).GetLocaleNameLength(@as(*const IDWriteStringList, @ptrCast(self)), listIndex, length);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteStringList_GetLocaleName(self: *const T, listIndex: u32, localeName: [*:0]u16, size: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteStringList.VTable, @ptrCast(self.vtable)).GetLocaleName(@as(*const IDWriteStringList, @ptrCast(self)), listIndex, localeName, size);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteStringList_GetStringLength(self: *const T, listIndex: u32, length: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteStringList.VTable, @ptrCast(self.vtable)).GetStringLength(@as(*const IDWriteStringList, @ptrCast(self)), listIndex, length);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteStringList_GetString(self: *const T, listIndex: u32, stringBuffer: [*:0]u16, stringBufferSize: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteStringList.VTable, @ptrCast(self.vtable)).GetString(@as(*const IDWriteStringList, @ptrCast(self)), listIndex, stringBuffer, stringBufferSize);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteFontDownloadListener_Value = Guid.initString("b06fe5b9-43ec-4393-881b-dbe4dc72fda7");
pub const IID_IDWriteFontDownloadListener = &IID_IDWriteFontDownloadListener_Value;
pub const IDWriteFontDownloadListener = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
DownloadCompleted: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontDownloadListener,
downloadQueue: ?*IDWriteFontDownloadQueue,
context: ?*IUnknown,
downloadResult: HRESULT,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
self: *const IDWriteFontDownloadListener,
downloadQueue: ?*IDWriteFontDownloadQueue,
context: ?*IUnknown,
downloadResult: HRESULT,
) callconv(@import("std").os.windows.WINAPI) void,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontDownloadListener_DownloadCompleted(self: *const T, downloadQueue: ?*IDWriteFontDownloadQueue, context: ?*IUnknown, downloadResult: HRESULT) callconv(.Inline) void {
return @as(*const IDWriteFontDownloadListener.VTable, @ptrCast(self.vtable)).DownloadCompleted(@as(*const IDWriteFontDownloadListener, @ptrCast(self)), downloadQueue, context, downloadResult);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteFontDownloadQueue_Value = Guid.initString("b71e6052-5aea-4fa3-832e-f60d431f7e91");
pub const IID_IDWriteFontDownloadQueue = &IID_IDWriteFontDownloadQueue_Value;
pub const IDWriteFontDownloadQueue = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
AddListener: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontDownloadQueue,
listener: ?*IDWriteFontDownloadListener,
token: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontDownloadQueue,
listener: ?*IDWriteFontDownloadListener,
token: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
RemoveListener: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontDownloadQueue,
token: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontDownloadQueue,
token: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
IsEmpty: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontDownloadQueue,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontDownloadQueue,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
BeginDownload: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontDownloadQueue,
context: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontDownloadQueue,
context: ?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CancelDownload: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontDownloadQueue,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontDownloadQueue,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetGenerationCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontDownloadQueue,
) callconv(@import("std").os.windows.WINAPI) u64,
else => *const fn(
self: *const IDWriteFontDownloadQueue,
) callconv(@import("std").os.windows.WINAPI) u64,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontDownloadQueue_AddListener(self: *const T, listener: ?*IDWriteFontDownloadListener, token: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontDownloadQueue.VTable, @ptrCast(self.vtable)).AddListener(@as(*const IDWriteFontDownloadQueue, @ptrCast(self)), listener, token);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontDownloadQueue_RemoveListener(self: *const T, token: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontDownloadQueue.VTable, @ptrCast(self.vtable)).RemoveListener(@as(*const IDWriteFontDownloadQueue, @ptrCast(self)), token);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontDownloadQueue_IsEmpty(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteFontDownloadQueue.VTable, @ptrCast(self.vtable)).IsEmpty(@as(*const IDWriteFontDownloadQueue, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontDownloadQueue_BeginDownload(self: *const T, context: ?*IUnknown) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontDownloadQueue.VTable, @ptrCast(self.vtable)).BeginDownload(@as(*const IDWriteFontDownloadQueue, @ptrCast(self)), context);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontDownloadQueue_CancelDownload(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontDownloadQueue.VTable, @ptrCast(self.vtable)).CancelDownload(@as(*const IDWriteFontDownloadQueue, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontDownloadQueue_GetGenerationCount(self: *const T) callconv(.Inline) u64 {
return @as(*const IDWriteFontDownloadQueue.VTable, @ptrCast(self.vtable)).GetGenerationCount(@as(*const IDWriteFontDownloadQueue, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteGdiInterop1_Value = Guid.initString("4556be70-3abd-4f70-90be-421780a6f515");
pub const IID_IDWriteGdiInterop1 = &IID_IDWriteGdiInterop1_Value;
pub const IDWriteGdiInterop1 = extern struct {
pub const VTable = extern struct {
base: IDWriteGdiInterop.VTable,
CreateFontFromLOGFONT: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteGdiInterop1,
logFont: ?*const LOGFONTW,
fontCollection: ?*IDWriteFontCollection,
font: ?*?*IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteGdiInterop1,
logFont: ?*const LOGFONTW,
fontCollection: ?*IDWriteFontCollection,
font: ?*?*IDWriteFont,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontSignature: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteGdiInterop1,
fontFace: ?*IDWriteFontFace,
fontSignature: ?*FONTSIGNATURE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteGdiInterop1,
fontFace: ?*IDWriteFontFace,
fontSignature: ?*FONTSIGNATURE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontSignature1: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteGdiInterop1,
font: ?*IDWriteFont,
fontSignature: ?*FONTSIGNATURE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteGdiInterop1,
font: ?*IDWriteFont,
fontSignature: ?*FONTSIGNATURE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetMatchingFontsByLOGFONT: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteGdiInterop1,
logFont: ?*const LOGFONTA,
fontSet: ?*IDWriteFontSet,
filteredSet: ?*?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteGdiInterop1,
logFont: ?*const LOGFONTA,
fontSet: ?*IDWriteFontSet,
filteredSet: ?*?*IDWriteFontSet,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteGdiInterop.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteGdiInterop1_CreateFontFromLOGFONT(self: *const T, logFont: ?*const LOGFONTW, fontCollection: ?*IDWriteFontCollection, font: ?*?*IDWriteFont) callconv(.Inline) HRESULT {
return @as(*const IDWriteGdiInterop1.VTable, @ptrCast(self.vtable)).CreateFontFromLOGFONT(@as(*const IDWriteGdiInterop1, @ptrCast(self)), logFont, fontCollection, font);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteGdiInterop1_GetFontSignature(self: *const T, fontFace: ?*IDWriteFontFace, fontSignature: ?*FONTSIGNATURE) callconv(.Inline) HRESULT {
return @as(*const IDWriteGdiInterop1.VTable, @ptrCast(self.vtable)).GetFontSignature(@as(*const IDWriteGdiInterop1, @ptrCast(self)), fontFace, fontSignature);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteGdiInterop1_GetFontSignature1(self: *const T, font: ?*IDWriteFont, fontSignature: ?*FONTSIGNATURE) callconv(.Inline) HRESULT {
return @as(*const IDWriteGdiInterop1.VTable, @ptrCast(self.vtable)).GetFontSignature(@as(*const IDWriteGdiInterop1, @ptrCast(self)), font, fontSignature);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteGdiInterop1_GetMatchingFontsByLOGFONT(self: *const T, logFont: ?*const LOGFONTA, fontSet: ?*IDWriteFontSet, filteredSet: ?*?*IDWriteFontSet) callconv(.Inline) HRESULT {
return @as(*const IDWriteGdiInterop1.VTable, @ptrCast(self.vtable)).GetMatchingFontsByLOGFONT(@as(*const IDWriteGdiInterop1, @ptrCast(self)), logFont, fontSet, filteredSet);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_LINE_METRICS1 = extern struct {
Base: DWRITE_LINE_METRICS,
leadingBefore: f32,
leadingAfter: f32,
};
pub const DWRITE_FONT_LINE_GAP_USAGE = enum(i32) {
DEFAULT = 0,
DISABLED = 1,
ENABLED = 2,
};
pub const DWRITE_FONT_LINE_GAP_USAGE_DEFAULT = DWRITE_FONT_LINE_GAP_USAGE.DEFAULT;
pub const DWRITE_FONT_LINE_GAP_USAGE_DISABLED = DWRITE_FONT_LINE_GAP_USAGE.DISABLED;
pub const DWRITE_FONT_LINE_GAP_USAGE_ENABLED = DWRITE_FONT_LINE_GAP_USAGE.ENABLED;
pub const DWRITE_LINE_SPACING = extern struct {
method: DWRITE_LINE_SPACING_METHOD,
height: f32,
baseline: f32,
leadingBefore: f32,
fontLineGapUsage: DWRITE_FONT_LINE_GAP_USAGE,
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteTextFormat2_Value = Guid.initString("f67e0edd-9e3d-4ecc-8c32-4183253dfe70");
pub const IID_IDWriteTextFormat2 = &IID_IDWriteTextFormat2_Value;
pub const IDWriteTextFormat2 = extern struct {
pub const VTable = extern struct {
base: IDWriteTextFormat1.VTable,
SetLineSpacing: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat2,
lineSpacingOptions: ?*const DWRITE_LINE_SPACING,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat2,
lineSpacingOptions: ?*const DWRITE_LINE_SPACING,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLineSpacing: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat2,
lineSpacingOptions: ?*DWRITE_LINE_SPACING,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat2,
lineSpacingOptions: ?*DWRITE_LINE_SPACING,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextFormat1.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat2_SetLineSpacing(self: *const T, lineSpacingOptions: ?*const DWRITE_LINE_SPACING) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat2.VTable, @ptrCast(self.vtable)).SetLineSpacing(@as(*const IDWriteTextFormat2, @ptrCast(self)), lineSpacingOptions);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat2_GetLineSpacing(self: *const T, lineSpacingOptions: ?*DWRITE_LINE_SPACING) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat2.VTable, @ptrCast(self.vtable)).GetLineSpacing(@as(*const IDWriteTextFormat2, @ptrCast(self)), lineSpacingOptions);
}
};}
pub usingnamespace MethodMixin(@This());
};
// TODO: this type is limited to platform 'windows8.1'
const IID_IDWriteTextLayout3_Value = Guid.initString("07ddcd52-020e-4de8-ac33-6c953d83f92d");
pub const IID_IDWriteTextLayout3 = &IID_IDWriteTextLayout3_Value;
pub const IDWriteTextLayout3 = extern struct {
pub const VTable = extern struct {
base: IDWriteTextLayout2.VTable,
InvalidateLayout: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
SetLineSpacing: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout3,
lineSpacingOptions: ?*const DWRITE_LINE_SPACING,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout3,
lineSpacingOptions: ?*const DWRITE_LINE_SPACING,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLineSpacing: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout3,
lineSpacingOptions: ?*DWRITE_LINE_SPACING,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout3,
lineSpacingOptions: ?*DWRITE_LINE_SPACING,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLineMetrics: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout3,
lineMetrics: ?[*]DWRITE_LINE_METRICS1,
maxLineCount: u32,
actualLineCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout3,
lineMetrics: ?[*]DWRITE_LINE_METRICS1,
maxLineCount: u32,
actualLineCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextLayout2.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout3_InvalidateLayout(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout3.VTable, @ptrCast(self.vtable)).InvalidateLayout(@as(*const IDWriteTextLayout3, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout3_SetLineSpacing(self: *const T, lineSpacingOptions: ?*const DWRITE_LINE_SPACING) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout3.VTable, @ptrCast(self.vtable)).SetLineSpacing(@as(*const IDWriteTextLayout3, @ptrCast(self)), lineSpacingOptions);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout3_GetLineSpacing(self: *const T, lineSpacingOptions: ?*DWRITE_LINE_SPACING) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout3.VTable, @ptrCast(self.vtable)).GetLineSpacing(@as(*const IDWriteTextLayout3, @ptrCast(self)), lineSpacingOptions);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout3_GetLineMetrics(self: *const T, lineMetrics: ?[*]DWRITE_LINE_METRICS1, maxLineCount: u32, actualLineCount: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout3.VTable, @ptrCast(self.vtable)).GetLineMetrics(@as(*const IDWriteTextLayout3, @ptrCast(self)), lineMetrics, maxLineCount, actualLineCount);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_COLOR_GLYPH_RUN1 = extern struct {
Base: DWRITE_COLOR_GLYPH_RUN,
glyphImageFormat: DWRITE_GLYPH_IMAGE_FORMATS,
measuringMode: DWRITE_MEASURING_MODE,
};
pub const DWRITE_GLYPH_IMAGE_DATA = extern struct {
imageData: ?*const anyopaque,
imageDataSize: u32,
uniqueDataId: u32,
pixelsPerEm: u32,
pixelSize: D2D_SIZE_U,
horizontalLeftOrigin: POINT,
horizontalRightOrigin: POINT,
verticalTopOrigin: POINT,
verticalBottomOrigin: POINT,
};
const IID_IDWriteColorGlyphRunEnumerator1_Value = Guid.initString("7c5f86da-c7a1-4f05-b8e1-55a179fe5a35");
pub const IID_IDWriteColorGlyphRunEnumerator1 = &IID_IDWriteColorGlyphRunEnumerator1_Value;
pub const IDWriteColorGlyphRunEnumerator1 = extern struct {
pub const VTable = extern struct {
base: IDWriteColorGlyphRunEnumerator.VTable,
GetCurrentRun: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteColorGlyphRunEnumerator1,
colorGlyphRun: ?*const ?*DWRITE_COLOR_GLYPH_RUN1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteColorGlyphRunEnumerator1,
colorGlyphRun: ?*const ?*DWRITE_COLOR_GLYPH_RUN1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteColorGlyphRunEnumerator.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteColorGlyphRunEnumerator1_GetCurrentRun(self: *const T, colorGlyphRun: ?*const ?*DWRITE_COLOR_GLYPH_RUN1) callconv(.Inline) HRESULT {
return @as(*const IDWriteColorGlyphRunEnumerator1.VTable, @ptrCast(self.vtable)).GetCurrentRun(@as(*const IDWriteColorGlyphRunEnumerator1, @ptrCast(self)), colorGlyphRun);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontFace4_Value = Guid.initString("27f2a904-4eb8-441d-9678-0563f53e3e2f");
pub const IID_IDWriteFontFace4 = &IID_IDWriteFontFace4_Value;
pub const IDWriteFontFace4 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFace3.VTable,
GetGlyphImageFormats: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace4,
glyphId: u16,
pixelsPerEmFirst: u32,
pixelsPerEmLast: u32,
glyphImageFormats: ?*DWRITE_GLYPH_IMAGE_FORMATS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace4,
glyphId: u16,
pixelsPerEmFirst: u32,
pixelsPerEmLast: u32,
glyphImageFormats: ?*DWRITE_GLYPH_IMAGE_FORMATS,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetGlyphImageFormats1: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace4,
) callconv(@import("std").os.windows.WINAPI) DWRITE_GLYPH_IMAGE_FORMATS,
else => *const fn(
self: *const IDWriteFontFace4,
) callconv(@import("std").os.windows.WINAPI) DWRITE_GLYPH_IMAGE_FORMATS,
},
GetGlyphImageData: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace4,
glyphId: u16,
pixelsPerEm: u32,
glyphImageFormat: DWRITE_GLYPH_IMAGE_FORMATS,
glyphData: ?*DWRITE_GLYPH_IMAGE_DATA,
glyphDataContext: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace4,
glyphId: u16,
pixelsPerEm: u32,
glyphImageFormat: DWRITE_GLYPH_IMAGE_FORMATS,
glyphData: ?*DWRITE_GLYPH_IMAGE_DATA,
glyphDataContext: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
ReleaseGlyphImageData: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace4,
glyphDataContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
else => *const fn(
self: *const IDWriteFontFace4,
glyphDataContext: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFace3.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace4_GetGlyphImageFormats(self: *const T, glyphId: u16, pixelsPerEmFirst: u32, pixelsPerEmLast: u32, glyphImageFormats: ?*DWRITE_GLYPH_IMAGE_FORMATS) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace4.VTable, @ptrCast(self.vtable)).GetGlyphImageFormats(@as(*const IDWriteFontFace4, @ptrCast(self)), glyphId, pixelsPerEmFirst, pixelsPerEmLast, glyphImageFormats);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace4_GetGlyphImageFormats1(self: *const T) callconv(.Inline) DWRITE_GLYPH_IMAGE_FORMATS {
return @as(*const IDWriteFontFace4.VTable, @ptrCast(self.vtable)).GetGlyphImageFormats(@as(*const IDWriteFontFace4, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace4_GetGlyphImageData(self: *const T, glyphId: u16, pixelsPerEm: u32, glyphImageFormat: DWRITE_GLYPH_IMAGE_FORMATS, glyphData: ?*DWRITE_GLYPH_IMAGE_DATA, glyphDataContext: ?*?*anyopaque) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace4.VTable, @ptrCast(self.vtable)).GetGlyphImageData(@as(*const IDWriteFontFace4, @ptrCast(self)), glyphId, pixelsPerEm, glyphImageFormat, glyphData, glyphDataContext);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace4_ReleaseGlyphImageData(self: *const T, glyphDataContext: ?*anyopaque) callconv(.Inline) void {
return @as(*const IDWriteFontFace4.VTable, @ptrCast(self.vtable)).ReleaseGlyphImageData(@as(*const IDWriteFontFace4, @ptrCast(self)), glyphDataContext);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFactory4_Value = Guid.initString("4b0b5bd3-0797-4549-8ac5-fe915cc53856");
pub const IID_IDWriteFactory4 = &IID_IDWriteFactory4_Value;
pub const IDWriteFactory4 = extern struct {
pub const VTable = extern struct {
base: IDWriteFactory3.VTable,
TranslateColorGlyphRun: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory4,
baselineOrigin: D2D_POINT_2F,
glyphRun: ?*const DWRITE_GLYPH_RUN,
glyphRunDescription: ?*const DWRITE_GLYPH_RUN_DESCRIPTION,
desiredGlyphImageFormats: DWRITE_GLYPH_IMAGE_FORMATS,
measuringMode: DWRITE_MEASURING_MODE,
worldAndDpiTransform: ?*const DWRITE_MATRIX,
colorPaletteIndex: u32,
colorLayers: ?*?*IDWriteColorGlyphRunEnumerator1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory4,
baselineOrigin: D2D_POINT_2F,
glyphRun: ?*const DWRITE_GLYPH_RUN,
glyphRunDescription: ?*const DWRITE_GLYPH_RUN_DESCRIPTION,
desiredGlyphImageFormats: DWRITE_GLYPH_IMAGE_FORMATS,
measuringMode: DWRITE_MEASURING_MODE,
worldAndDpiTransform: ?*const DWRITE_MATRIX,
colorPaletteIndex: u32,
colorLayers: ?*?*IDWriteColorGlyphRunEnumerator1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
ComputeGlyphOrigins: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory4,
glyphRun: ?*const DWRITE_GLYPH_RUN,
baselineOrigin: D2D_POINT_2F,
glyphOrigins: ?*D2D_POINT_2F,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory4,
glyphRun: ?*const DWRITE_GLYPH_RUN,
baselineOrigin: D2D_POINT_2F,
glyphOrigins: ?*D2D_POINT_2F,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
ComputeGlyphOrigins1: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory4,
glyphRun: ?*const DWRITE_GLYPH_RUN,
measuringMode: DWRITE_MEASURING_MODE,
baselineOrigin: D2D_POINT_2F,
worldAndDpiTransform: ?*const DWRITE_MATRIX,
glyphOrigins: ?*D2D_POINT_2F,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory4,
glyphRun: ?*const DWRITE_GLYPH_RUN,
measuringMode: DWRITE_MEASURING_MODE,
baselineOrigin: D2D_POINT_2F,
worldAndDpiTransform: ?*const DWRITE_MATRIX,
glyphOrigins: ?*D2D_POINT_2F,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFactory3.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory4_TranslateColorGlyphRun(self: *const T, baselineOrigin: D2D_POINT_2F, glyphRun: ?*const DWRITE_GLYPH_RUN, glyphRunDescription: ?*const DWRITE_GLYPH_RUN_DESCRIPTION, desiredGlyphImageFormats: DWRITE_GLYPH_IMAGE_FORMATS, measuringMode: DWRITE_MEASURING_MODE, worldAndDpiTransform: ?*const DWRITE_MATRIX, colorPaletteIndex: u32, colorLayers: ?*?*IDWriteColorGlyphRunEnumerator1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory4.VTable, @ptrCast(self.vtable)).TranslateColorGlyphRun(@as(*const IDWriteFactory4, @ptrCast(self)), baselineOrigin, glyphRun, glyphRunDescription, desiredGlyphImageFormats, measuringMode, worldAndDpiTransform, colorPaletteIndex, colorLayers);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory4_ComputeGlyphOrigins(self: *const T, glyphRun: ?*const DWRITE_GLYPH_RUN, baselineOrigin: D2D_POINT_2F, glyphOrigins: ?*D2D_POINT_2F) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory4.VTable, @ptrCast(self.vtable)).ComputeGlyphOrigins(@as(*const IDWriteFactory4, @ptrCast(self)), glyphRun, baselineOrigin, glyphOrigins);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory4_ComputeGlyphOrigins1(self: *const T, glyphRun: ?*const DWRITE_GLYPH_RUN, measuringMode: DWRITE_MEASURING_MODE, baselineOrigin: D2D_POINT_2F, worldAndDpiTransform: ?*const DWRITE_MATRIX, glyphOrigins: ?*D2D_POINT_2F) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory4.VTable, @ptrCast(self.vtable)).ComputeGlyphOrigins(@as(*const IDWriteFactory4, @ptrCast(self)), glyphRun, measuringMode, baselineOrigin, worldAndDpiTransform, glyphOrigins);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontSetBuilder1_Value = Guid.initString("3ff7715f-3cdc-4dc6-9b72-ec5621dccafd");
pub const IID_IDWriteFontSetBuilder1 = &IID_IDWriteFontSetBuilder1_Value;
pub const IDWriteFontSetBuilder1 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontSetBuilder.VTable,
AddFontFile: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSetBuilder1,
fontFile: ?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSetBuilder1,
fontFile: ?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontSetBuilder.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSetBuilder1_AddFontFile(self: *const T, fontFile: ?*IDWriteFontFile) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSetBuilder1.VTable, @ptrCast(self.vtable)).AddFontFile(@as(*const IDWriteFontSetBuilder1, @ptrCast(self)), fontFile);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteAsyncResult_Value = Guid.initString("ce25f8fd-863b-4d13-9651-c1f88dc73fe2");
pub const IID_IDWriteAsyncResult = &IID_IDWriteAsyncResult_Value;
pub const IDWriteAsyncResult = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetWaitHandle: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteAsyncResult,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE,
else => *const fn(
self: *const IDWriteAsyncResult,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE,
},
GetResult: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteAsyncResult,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteAsyncResult,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteAsyncResult_GetWaitHandle(self: *const T) callconv(.Inline) ?HANDLE {
return @as(*const IDWriteAsyncResult.VTable, @ptrCast(self.vtable)).GetWaitHandle(@as(*const IDWriteAsyncResult, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteAsyncResult_GetResult(self: *const T) callconv(.Inline) HRESULT {
return @as(*const IDWriteAsyncResult.VTable, @ptrCast(self.vtable)).GetResult(@as(*const IDWriteAsyncResult, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_FILE_FRAGMENT = extern struct {
fileOffset: u64,
fragmentSize: u64,
};
const IID_IDWriteRemoteFontFileStream_Value = Guid.initString("4db3757a-2c72-4ed9-b2b6-1ababe1aff9c");
pub const IID_IDWriteRemoteFontFileStream = &IID_IDWriteRemoteFontFileStream_Value;
pub const IDWriteRemoteFontFileStream = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFileStream.VTable,
GetLocalFileSize: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRemoteFontFileStream,
localFileSize: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteRemoteFontFileStream,
localFileSize: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFileFragmentLocality: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRemoteFontFileStream,
fileOffset: u64,
fragmentSize: u64,
isLocal: ?*BOOL,
partialSize: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteRemoteFontFileStream,
fileOffset: u64,
fragmentSize: u64,
isLocal: ?*BOOL,
partialSize: ?*u64,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLocality: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRemoteFontFileStream,
) callconv(@import("std").os.windows.WINAPI) DWRITE_LOCALITY,
else => *const fn(
self: *const IDWriteRemoteFontFileStream,
) callconv(@import("std").os.windows.WINAPI) DWRITE_LOCALITY,
},
BeginDownload: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRemoteFontFileStream,
downloadOperationID: ?*const Guid,
fileFragments: [*]const DWRITE_FILE_FRAGMENT,
fragmentCount: u32,
asyncResult: ?*?*IDWriteAsyncResult,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteRemoteFontFileStream,
downloadOperationID: ?*const Guid,
fileFragments: [*]const DWRITE_FILE_FRAGMENT,
fragmentCount: u32,
asyncResult: ?*?*IDWriteAsyncResult,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFileStream.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRemoteFontFileStream_GetLocalFileSize(self: *const T, localFileSize: ?*u64) callconv(.Inline) HRESULT {
return @as(*const IDWriteRemoteFontFileStream.VTable, @ptrCast(self.vtable)).GetLocalFileSize(@as(*const IDWriteRemoteFontFileStream, @ptrCast(self)), localFileSize);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRemoteFontFileStream_GetFileFragmentLocality(self: *const T, fileOffset: u64, fragmentSize: u64, isLocal: ?*BOOL, partialSize: ?*u64) callconv(.Inline) HRESULT {
return @as(*const IDWriteRemoteFontFileStream.VTable, @ptrCast(self.vtable)).GetFileFragmentLocality(@as(*const IDWriteRemoteFontFileStream, @ptrCast(self)), fileOffset, fragmentSize, isLocal, partialSize);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRemoteFontFileStream_GetLocality(self: *const T) callconv(.Inline) DWRITE_LOCALITY {
return @as(*const IDWriteRemoteFontFileStream.VTable, @ptrCast(self.vtable)).GetLocality(@as(*const IDWriteRemoteFontFileStream, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRemoteFontFileStream_BeginDownload(self: *const T, downloadOperationID: ?*const Guid, fileFragments: [*]const DWRITE_FILE_FRAGMENT, fragmentCount: u32, asyncResult: ?*?*IDWriteAsyncResult) callconv(.Inline) HRESULT {
return @as(*const IDWriteRemoteFontFileStream.VTable, @ptrCast(self.vtable)).BeginDownload(@as(*const IDWriteRemoteFontFileStream, @ptrCast(self)), downloadOperationID, fileFragments, fragmentCount, asyncResult);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_CONTAINER_TYPE = enum(i32) {
UNKNOWN = 0,
WOFF = 1,
WOFF2 = 2,
};
pub const DWRITE_CONTAINER_TYPE_UNKNOWN = DWRITE_CONTAINER_TYPE.UNKNOWN;
pub const DWRITE_CONTAINER_TYPE_WOFF = DWRITE_CONTAINER_TYPE.WOFF;
pub const DWRITE_CONTAINER_TYPE_WOFF2 = DWRITE_CONTAINER_TYPE.WOFF2;
const IID_IDWriteRemoteFontFileLoader_Value = Guid.initString("68648c83-6ede-46c0-ab46-20083a887fde");
pub const IID_IDWriteRemoteFontFileLoader = &IID_IDWriteRemoteFontFileLoader_Value;
pub const IDWriteRemoteFontFileLoader = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFileLoader.VTable,
CreateRemoteStreamFromKey: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRemoteFontFileLoader,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
fontFileStream: ?*?*IDWriteRemoteFontFileStream,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteRemoteFontFileLoader,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
fontFileStream: ?*?*IDWriteRemoteFontFileStream,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetLocalityFromKey: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRemoteFontFileLoader,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
locality: ?*DWRITE_LOCALITY,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteRemoteFontFileLoader,
// TODO: what to do with BytesParamIndex 1?
fontFileReferenceKey: ?*const anyopaque,
fontFileReferenceKeySize: u32,
locality: ?*DWRITE_LOCALITY,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontFileReferenceFromUrl: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteRemoteFontFileLoader,
factory: ?*IDWriteFactory,
baseUrl: ?[*:0]const u16,
fontFileUrl: ?[*:0]const u16,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteRemoteFontFileLoader,
factory: ?*IDWriteFactory,
baseUrl: ?[*:0]const u16,
fontFileUrl: ?[*:0]const u16,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFileLoader.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRemoteFontFileLoader_CreateRemoteStreamFromKey(self: *const T, fontFileReferenceKey: ?*const anyopaque, fontFileReferenceKeySize: u32, fontFileStream: ?*?*IDWriteRemoteFontFileStream) callconv(.Inline) HRESULT {
return @as(*const IDWriteRemoteFontFileLoader.VTable, @ptrCast(self.vtable)).CreateRemoteStreamFromKey(@as(*const IDWriteRemoteFontFileLoader, @ptrCast(self)), fontFileReferenceKey, fontFileReferenceKeySize, fontFileStream);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRemoteFontFileLoader_GetLocalityFromKey(self: *const T, fontFileReferenceKey: ?*const anyopaque, fontFileReferenceKeySize: u32, locality: ?*DWRITE_LOCALITY) callconv(.Inline) HRESULT {
return @as(*const IDWriteRemoteFontFileLoader.VTable, @ptrCast(self.vtable)).GetLocalityFromKey(@as(*const IDWriteRemoteFontFileLoader, @ptrCast(self)), fontFileReferenceKey, fontFileReferenceKeySize, locality);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteRemoteFontFileLoader_CreateFontFileReferenceFromUrl(self: *const T, factory: ?*IDWriteFactory, baseUrl: ?[*:0]const u16, fontFileUrl: ?[*:0]const u16, fontFile: ?*?*IDWriteFontFile) callconv(.Inline) HRESULT {
return @as(*const IDWriteRemoteFontFileLoader.VTable, @ptrCast(self.vtable)).CreateFontFileReferenceFromUrl(@as(*const IDWriteRemoteFontFileLoader, @ptrCast(self)), factory, baseUrl, fontFileUrl, fontFile);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteInMemoryFontFileLoader_Value = Guid.initString("dc102f47-a12d-4b1c-822d-9e117e33043f");
pub const IID_IDWriteInMemoryFontFileLoader = &IID_IDWriteInMemoryFontFileLoader_Value;
pub const IDWriteInMemoryFontFileLoader = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFileLoader.VTable,
CreateInMemoryFontFileReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteInMemoryFontFileLoader,
factory: ?*IDWriteFactory,
// TODO: what to do with BytesParamIndex 2?
fontData: ?*const anyopaque,
fontDataSize: u32,
ownerObject: ?*IUnknown,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteInMemoryFontFileLoader,
factory: ?*IDWriteFactory,
// TODO: what to do with BytesParamIndex 2?
fontData: ?*const anyopaque,
fontDataSize: u32,
ownerObject: ?*IUnknown,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFileCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteInMemoryFontFileLoader,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteInMemoryFontFileLoader,
) callconv(@import("std").os.windows.WINAPI) u32,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFileLoader.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteInMemoryFontFileLoader_CreateInMemoryFontFileReference(self: *const T, factory: ?*IDWriteFactory, fontData: ?*const anyopaque, fontDataSize: u32, ownerObject: ?*IUnknown, fontFile: ?*?*IDWriteFontFile) callconv(.Inline) HRESULT {
return @as(*const IDWriteInMemoryFontFileLoader.VTable, @ptrCast(self.vtable)).CreateInMemoryFontFileReference(@as(*const IDWriteInMemoryFontFileLoader, @ptrCast(self)), factory, fontData, fontDataSize, ownerObject, fontFile);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteInMemoryFontFileLoader_GetFileCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteInMemoryFontFileLoader.VTable, @ptrCast(self.vtable)).GetFileCount(@as(*const IDWriteInMemoryFontFileLoader, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFactory5_Value = Guid.initString("958db99a-be2a-4f09-af7d-65189803d1d3");
pub const IID_IDWriteFactory5 = &IID_IDWriteFactory5_Value;
pub const IDWriteFactory5 = extern struct {
pub const VTable = extern struct {
base: IDWriteFactory4.VTable,
CreateFontSetBuilder: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory5,
fontSetBuilder: ?*?*IDWriteFontSetBuilder1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory5,
fontSetBuilder: ?*?*IDWriteFontSetBuilder1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateInMemoryFontFileLoader: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory5,
newLoader: ?*?*IDWriteInMemoryFontFileLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory5,
newLoader: ?*?*IDWriteInMemoryFontFileLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateHttpFontFileLoader: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory5,
referrerUrl: ?[*:0]const u16,
extraHeaders: ?[*:0]const u16,
newLoader: ?*?*IDWriteRemoteFontFileLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory5,
referrerUrl: ?[*:0]const u16,
extraHeaders: ?[*:0]const u16,
newLoader: ?*?*IDWriteRemoteFontFileLoader,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AnalyzeContainerType: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory5,
// TODO: what to do with BytesParamIndex 1?
fileData: ?*const anyopaque,
fileDataSize: u32,
) callconv(@import("std").os.windows.WINAPI) DWRITE_CONTAINER_TYPE,
else => *const fn(
self: *const IDWriteFactory5,
// TODO: what to do with BytesParamIndex 1?
fileData: ?*const anyopaque,
fileDataSize: u32,
) callconv(@import("std").os.windows.WINAPI) DWRITE_CONTAINER_TYPE,
},
UnpackFontFile: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory5,
containerType: DWRITE_CONTAINER_TYPE,
// TODO: what to do with BytesParamIndex 2?
fileData: ?*const anyopaque,
fileDataSize: u32,
unpackedFontStream: ?*?*IDWriteFontFileStream,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory5,
containerType: DWRITE_CONTAINER_TYPE,
// TODO: what to do with BytesParamIndex 2?
fileData: ?*const anyopaque,
fileDataSize: u32,
unpackedFontStream: ?*?*IDWriteFontFileStream,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFactory4.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory5_CreateFontSetBuilder(self: *const T, fontSetBuilder: ?*?*IDWriteFontSetBuilder1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory5.VTable, @ptrCast(self.vtable)).CreateFontSetBuilder(@as(*const IDWriteFactory5, @ptrCast(self)), fontSetBuilder);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory5_CreateInMemoryFontFileLoader(self: *const T, newLoader: ?*?*IDWriteInMemoryFontFileLoader) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory5.VTable, @ptrCast(self.vtable)).CreateInMemoryFontFileLoader(@as(*const IDWriteFactory5, @ptrCast(self)), newLoader);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory5_CreateHttpFontFileLoader(self: *const T, referrerUrl: ?[*:0]const u16, extraHeaders: ?[*:0]const u16, newLoader: ?*?*IDWriteRemoteFontFileLoader) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory5.VTable, @ptrCast(self.vtable)).CreateHttpFontFileLoader(@as(*const IDWriteFactory5, @ptrCast(self)), referrerUrl, extraHeaders, newLoader);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory5_AnalyzeContainerType(self: *const T, fileData: ?*const anyopaque, fileDataSize: u32) callconv(.Inline) DWRITE_CONTAINER_TYPE {
return @as(*const IDWriteFactory5.VTable, @ptrCast(self.vtable)).AnalyzeContainerType(@as(*const IDWriteFactory5, @ptrCast(self)), fileData, fileDataSize);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory5_UnpackFontFile(self: *const T, containerType: DWRITE_CONTAINER_TYPE, fileData: ?*const anyopaque, fileDataSize: u32, unpackedFontStream: ?*?*IDWriteFontFileStream) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory5.VTable, @ptrCast(self.vtable)).UnpackFontFile(@as(*const IDWriteFactory5, @ptrCast(self)), containerType, fileData, fileDataSize, unpackedFontStream);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_FONT_AXIS_VALUE = extern struct {
axisTag: DWRITE_FONT_AXIS_TAG,
value: f32,
};
pub const DWRITE_FONT_AXIS_RANGE = extern struct {
axisTag: DWRITE_FONT_AXIS_TAG,
minValue: f32,
maxValue: f32,
};
pub const DWRITE_FONT_FAMILY_MODEL = enum(i32) {
TYPOGRAPHIC = 0,
WEIGHT_STRETCH_STYLE = 1,
};
pub const DWRITE_FONT_FAMILY_MODEL_TYPOGRAPHIC = DWRITE_FONT_FAMILY_MODEL.TYPOGRAPHIC;
pub const DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE = DWRITE_FONT_FAMILY_MODEL.WEIGHT_STRETCH_STYLE;
pub const DWRITE_AUTOMATIC_FONT_AXES = enum(u32) {
NONE = 0,
OPTICAL_SIZE = 1,
_,
pub fn initFlags(o: struct {
NONE: u1 = 0,
OPTICAL_SIZE: u1 = 0,
}) DWRITE_AUTOMATIC_FONT_AXES {
return @as(DWRITE_AUTOMATIC_FONT_AXES, @enumFromInt(
(if (o.NONE == 1) @intFromEnum(DWRITE_AUTOMATIC_FONT_AXES.NONE) else 0)
| (if (o.OPTICAL_SIZE == 1) @intFromEnum(DWRITE_AUTOMATIC_FONT_AXES.OPTICAL_SIZE) else 0)
));
}
};
pub const DWRITE_AUTOMATIC_FONT_AXES_NONE = DWRITE_AUTOMATIC_FONT_AXES.NONE;
pub const DWRITE_AUTOMATIC_FONT_AXES_OPTICAL_SIZE = DWRITE_AUTOMATIC_FONT_AXES.OPTICAL_SIZE;
pub const DWRITE_FONT_AXIS_ATTRIBUTES = enum(u32) {
NONE = 0,
VARIABLE = 1,
HIDDEN = 2,
_,
pub fn initFlags(o: struct {
NONE: u1 = 0,
VARIABLE: u1 = 0,
HIDDEN: u1 = 0,
}) DWRITE_FONT_AXIS_ATTRIBUTES {
return @as(DWRITE_FONT_AXIS_ATTRIBUTES, @enumFromInt(
(if (o.NONE == 1) @intFromEnum(DWRITE_FONT_AXIS_ATTRIBUTES.NONE) else 0)
| (if (o.VARIABLE == 1) @intFromEnum(DWRITE_FONT_AXIS_ATTRIBUTES.VARIABLE) else 0)
| (if (o.HIDDEN == 1) @intFromEnum(DWRITE_FONT_AXIS_ATTRIBUTES.HIDDEN) else 0)
));
}
};
pub const DWRITE_FONT_AXIS_ATTRIBUTES_NONE = DWRITE_FONT_AXIS_ATTRIBUTES.NONE;
pub const DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE = DWRITE_FONT_AXIS_ATTRIBUTES.VARIABLE;
pub const DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN = DWRITE_FONT_AXIS_ATTRIBUTES.HIDDEN;
const IID_IDWriteFactory6_Value = Guid.initString("f3744d80-21f7-42eb-b35d-995bc72fc223");
pub const IID_IDWriteFactory6 = &IID_IDWriteFactory6_Value;
pub const IDWriteFactory6 = extern struct {
pub const VTable = extern struct {
base: IDWriteFactory5.VTable,
CreateFontFaceReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory6,
fontFile: ?*IDWriteFontFile,
faceIndex: u32,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
fontFaceReference: ?*?*IDWriteFontFaceReference1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory6,
fontFile: ?*IDWriteFontFile,
faceIndex: u32,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
fontFaceReference: ?*?*IDWriteFontFaceReference1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontResource: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory6,
fontFile: ?*IDWriteFontFile,
faceIndex: u32,
fontResource: ?*?*IDWriteFontResource,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory6,
fontFile: ?*IDWriteFontFile,
faceIndex: u32,
fontResource: ?*?*IDWriteFontResource,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSystemFontSet: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory6,
includeDownloadableFonts: BOOL,
fontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory6,
includeDownloadableFonts: BOOL,
fontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSystemFontCollection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory6,
includeDownloadableFonts: BOOL,
fontFamilyModel: DWRITE_FONT_FAMILY_MODEL,
fontCollection: ?*?*IDWriteFontCollection2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory6,
includeDownloadableFonts: BOOL,
fontFamilyModel: DWRITE_FONT_FAMILY_MODEL,
fontCollection: ?*?*IDWriteFontCollection2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontCollectionFromFontSet: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory6,
fontSet: ?*IDWriteFontSet,
fontFamilyModel: DWRITE_FONT_FAMILY_MODEL,
fontCollection: ?*?*IDWriteFontCollection2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory6,
fontSet: ?*IDWriteFontSet,
fontFamilyModel: DWRITE_FONT_FAMILY_MODEL,
fontCollection: ?*?*IDWriteFontCollection2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontSetBuilder: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory6,
fontSetBuilder: ?*?*IDWriteFontSetBuilder2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory6,
fontSetBuilder: ?*?*IDWriteFontSetBuilder2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateTextFormat: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory6,
fontFamilyName: ?[*:0]const u16,
fontCollection: ?*IDWriteFontCollection,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
fontSize: f32,
localeName: ?[*:0]const u16,
textFormat: ?*?*IDWriteTextFormat3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory6,
fontFamilyName: ?[*:0]const u16,
fontCollection: ?*IDWriteFontCollection,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
fontSize: f32,
localeName: ?[*:0]const u16,
textFormat: ?*?*IDWriteTextFormat3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFactory5.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory6_CreateFontFaceReference(self: *const T, fontFile: ?*IDWriteFontFile, faceIndex: u32, fontSimulations: DWRITE_FONT_SIMULATIONS, fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32, fontFaceReference: ?*?*IDWriteFontFaceReference1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory6.VTable, @ptrCast(self.vtable)).CreateFontFaceReference(@as(*const IDWriteFactory6, @ptrCast(self)), fontFile, faceIndex, fontSimulations, fontAxisValues, fontAxisValueCount, fontFaceReference);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory6_CreateFontResource(self: *const T, fontFile: ?*IDWriteFontFile, faceIndex: u32, fontResource: ?*?*IDWriteFontResource) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory6.VTable, @ptrCast(self.vtable)).CreateFontResource(@as(*const IDWriteFactory6, @ptrCast(self)), fontFile, faceIndex, fontResource);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory6_GetSystemFontSet(self: *const T, includeDownloadableFonts: BOOL, fontSet: ?*?*IDWriteFontSet1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory6.VTable, @ptrCast(self.vtable)).GetSystemFontSet(@as(*const IDWriteFactory6, @ptrCast(self)), includeDownloadableFonts, fontSet);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory6_GetSystemFontCollection(self: *const T, includeDownloadableFonts: BOOL, fontFamilyModel: DWRITE_FONT_FAMILY_MODEL, fontCollection: ?*?*IDWriteFontCollection2) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory6.VTable, @ptrCast(self.vtable)).GetSystemFontCollection(@as(*const IDWriteFactory6, @ptrCast(self)), includeDownloadableFonts, fontFamilyModel, fontCollection);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory6_CreateFontCollectionFromFontSet(self: *const T, fontSet: ?*IDWriteFontSet, fontFamilyModel: DWRITE_FONT_FAMILY_MODEL, fontCollection: ?*?*IDWriteFontCollection2) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory6.VTable, @ptrCast(self.vtable)).CreateFontCollectionFromFontSet(@as(*const IDWriteFactory6, @ptrCast(self)), fontSet, fontFamilyModel, fontCollection);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory6_CreateFontSetBuilder(self: *const T, fontSetBuilder: ?*?*IDWriteFontSetBuilder2) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory6.VTable, @ptrCast(self.vtable)).CreateFontSetBuilder(@as(*const IDWriteFactory6, @ptrCast(self)), fontSetBuilder);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory6_CreateTextFormat(self: *const T, fontFamilyName: ?[*:0]const u16, fontCollection: ?*IDWriteFontCollection, fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32, fontSize: f32, localeName: ?[*:0]const u16, textFormat: ?*?*IDWriteTextFormat3) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory6.VTable, @ptrCast(self.vtable)).CreateTextFormat(@as(*const IDWriteFactory6, @ptrCast(self)), fontFamilyName, fontCollection, fontAxisValues, fontAxisValueCount, fontSize, localeName, textFormat);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontFace5_Value = Guid.initString("98eff3a5-b667-479a-b145-e2fa5b9fdc29");
pub const IID_IDWriteFontFace5 = &IID_IDWriteFontFace5_Value;
pub const IDWriteFontFace5 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFace4.VTable,
GetFontAxisValueCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace5,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontFace5,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetFontAxisValues: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace5,
fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace5,
fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
HasVariations: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace5,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontFace5,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
GetFontResource: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace5,
fontResource: ?*?*IDWriteFontResource,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace5,
fontResource: ?*?*IDWriteFontResource,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
Equals: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace5,
fontFace: ?*IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontFace5,
fontFace: ?*IDWriteFontFace,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFace4.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace5_GetFontAxisValueCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteFontFace5.VTable, @ptrCast(self.vtable)).GetFontAxisValueCount(@as(*const IDWriteFontFace5, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace5_GetFontAxisValues(self: *const T, fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace5.VTable, @ptrCast(self.vtable)).GetFontAxisValues(@as(*const IDWriteFontFace5, @ptrCast(self)), fontAxisValues, fontAxisValueCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace5_HasVariations(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteFontFace5.VTable, @ptrCast(self.vtable)).HasVariations(@as(*const IDWriteFontFace5, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace5_GetFontResource(self: *const T, fontResource: ?*?*IDWriteFontResource) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace5.VTable, @ptrCast(self.vtable)).GetFontResource(@as(*const IDWriteFontFace5, @ptrCast(self)), fontResource);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace5_Equals(self: *const T, fontFace: ?*IDWriteFontFace) callconv(.Inline) BOOL {
return @as(*const IDWriteFontFace5.VTable, @ptrCast(self.vtable)).Equals(@as(*const IDWriteFontFace5, @ptrCast(self)), fontFace);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontResource_Value = Guid.initString("1f803a76-6871-48e8-987f-b975551c50f2");
pub const IID_IDWriteFontResource = &IID_IDWriteFontResource_Value;
pub const IDWriteFontResource = extern struct {
pub const VTable = extern struct {
base: IUnknown.VTable,
GetFontFile: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontResource,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontResource,
fontFile: ?*?*IDWriteFontFile,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFaceIndex: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontResource,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontResource,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetFontAxisCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontResource,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontResource,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetDefaultFontAxisValues: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontResource,
fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontResource,
fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontAxisRanges: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontResource,
fontAxisRanges: [*]DWRITE_FONT_AXIS_RANGE,
fontAxisRangeCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontResource,
fontAxisRanges: [*]DWRITE_FONT_AXIS_RANGE,
fontAxisRangeCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontAxisAttributes: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontResource,
axisIndex: u32,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_AXIS_ATTRIBUTES,
else => *const fn(
self: *const IDWriteFontResource,
axisIndex: u32,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_AXIS_ATTRIBUTES,
},
GetAxisNames: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontResource,
axisIndex: u32,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontResource,
axisIndex: u32,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetAxisValueNameCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontResource,
axisIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontResource,
axisIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetAxisValueNames: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontResource,
axisIndex: u32,
axisValueIndex: u32,
fontAxisRange: ?*DWRITE_FONT_AXIS_RANGE,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontResource,
axisIndex: u32,
axisValueIndex: u32,
fontAxisRange: ?*DWRITE_FONT_AXIS_RANGE,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
HasVariations: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontResource,
) callconv(@import("std").os.windows.WINAPI) BOOL,
else => *const fn(
self: *const IDWriteFontResource,
) callconv(@import("std").os.windows.WINAPI) BOOL,
},
CreateFontFace: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontResource,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
fontFace: ?*?*IDWriteFontFace5,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontResource,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
fontFace: ?*?*IDWriteFontFace5,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontFaceReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontResource,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
fontFaceReference: ?*?*IDWriteFontFaceReference1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontResource,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
fontFaceReference: ?*?*IDWriteFontFaceReference1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IUnknown.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontResource_GetFontFile(self: *const T, fontFile: ?*?*IDWriteFontFile) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontResource.VTable, @ptrCast(self.vtable)).GetFontFile(@as(*const IDWriteFontResource, @ptrCast(self)), fontFile);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontResource_GetFontFaceIndex(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteFontResource.VTable, @ptrCast(self.vtable)).GetFontFaceIndex(@as(*const IDWriteFontResource, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontResource_GetFontAxisCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteFontResource.VTable, @ptrCast(self.vtable)).GetFontAxisCount(@as(*const IDWriteFontResource, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontResource_GetDefaultFontAxisValues(self: *const T, fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontResource.VTable, @ptrCast(self.vtable)).GetDefaultFontAxisValues(@as(*const IDWriteFontResource, @ptrCast(self)), fontAxisValues, fontAxisValueCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontResource_GetFontAxisRanges(self: *const T, fontAxisRanges: [*]DWRITE_FONT_AXIS_RANGE, fontAxisRangeCount: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontResource.VTable, @ptrCast(self.vtable)).GetFontAxisRanges(@as(*const IDWriteFontResource, @ptrCast(self)), fontAxisRanges, fontAxisRangeCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontResource_GetFontAxisAttributes(self: *const T, axisIndex: u32) callconv(.Inline) DWRITE_FONT_AXIS_ATTRIBUTES {
return @as(*const IDWriteFontResource.VTable, @ptrCast(self.vtable)).GetFontAxisAttributes(@as(*const IDWriteFontResource, @ptrCast(self)), axisIndex);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontResource_GetAxisNames(self: *const T, axisIndex: u32, names: ?*?*IDWriteLocalizedStrings) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontResource.VTable, @ptrCast(self.vtable)).GetAxisNames(@as(*const IDWriteFontResource, @ptrCast(self)), axisIndex, names);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontResource_GetAxisValueNameCount(self: *const T, axisIndex: u32) callconv(.Inline) u32 {
return @as(*const IDWriteFontResource.VTable, @ptrCast(self.vtable)).GetAxisValueNameCount(@as(*const IDWriteFontResource, @ptrCast(self)), axisIndex);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontResource_GetAxisValueNames(self: *const T, axisIndex: u32, axisValueIndex: u32, fontAxisRange: ?*DWRITE_FONT_AXIS_RANGE, names: ?*?*IDWriteLocalizedStrings) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontResource.VTable, @ptrCast(self.vtable)).GetAxisValueNames(@as(*const IDWriteFontResource, @ptrCast(self)), axisIndex, axisValueIndex, fontAxisRange, names);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontResource_HasVariations(self: *const T) callconv(.Inline) BOOL {
return @as(*const IDWriteFontResource.VTable, @ptrCast(self.vtable)).HasVariations(@as(*const IDWriteFontResource, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontResource_CreateFontFace(self: *const T, fontSimulations: DWRITE_FONT_SIMULATIONS, fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32, fontFace: ?*?*IDWriteFontFace5) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontResource.VTable, @ptrCast(self.vtable)).CreateFontFace(@as(*const IDWriteFontResource, @ptrCast(self)), fontSimulations, fontAxisValues, fontAxisValueCount, fontFace);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontResource_CreateFontFaceReference(self: *const T, fontSimulations: DWRITE_FONT_SIMULATIONS, fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32, fontFaceReference: ?*?*IDWriteFontFaceReference1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontResource.VTable, @ptrCast(self.vtable)).CreateFontFaceReference(@as(*const IDWriteFontResource, @ptrCast(self)), fontSimulations, fontAxisValues, fontAxisValueCount, fontFaceReference);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontFaceReference1_Value = Guid.initString("c081fe77-2fd1-41ac-a5a3-34983c4ba61a");
pub const IID_IDWriteFontFaceReference1 = &IID_IDWriteFontFaceReference1_Value;
pub const IDWriteFontFaceReference1 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFaceReference.VTable,
CreateFontFace: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference1,
fontFace: ?*?*IDWriteFontFace5,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFaceReference1,
fontFace: ?*?*IDWriteFontFace5,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontAxisValueCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference1,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontFaceReference1,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetFontAxisValues: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFaceReference1,
fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFaceReference1,
fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFaceReference.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference1_CreateFontFace(self: *const T, fontFace: ?*?*IDWriteFontFace5) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFaceReference1.VTable, @ptrCast(self.vtable)).CreateFontFace(@as(*const IDWriteFontFaceReference1, @ptrCast(self)), fontFace);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference1_GetFontAxisValueCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteFontFaceReference1.VTable, @ptrCast(self.vtable)).GetFontAxisValueCount(@as(*const IDWriteFontFaceReference1, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFaceReference1_GetFontAxisValues(self: *const T, fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFaceReference1.VTable, @ptrCast(self.vtable)).GetFontAxisValues(@as(*const IDWriteFontFaceReference1, @ptrCast(self)), fontAxisValues, fontAxisValueCount);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontSetBuilder2_Value = Guid.initString("ee5ba612-b131-463c-8f4f-3189b9401e45");
pub const IID_IDWriteFontSetBuilder2 = &IID_IDWriteFontSetBuilder2_Value;
pub const IDWriteFontSetBuilder2 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontSetBuilder1.VTable,
AddFont: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSetBuilder2,
fontFile: ?*IDWriteFontFile,
fontFaceIndex: u32,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
fontAxisRanges: [*]const DWRITE_FONT_AXIS_RANGE,
fontAxisRangeCount: u32,
properties: [*]const DWRITE_FONT_PROPERTY,
propertyCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSetBuilder2,
fontFile: ?*IDWriteFontFile,
fontFaceIndex: u32,
fontSimulations: DWRITE_FONT_SIMULATIONS,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
fontAxisRanges: [*]const DWRITE_FONT_AXIS_RANGE,
fontAxisRangeCount: u32,
properties: [*]const DWRITE_FONT_PROPERTY,
propertyCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
AddFontFile: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSetBuilder2,
filePath: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSetBuilder2,
filePath: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontSetBuilder1.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSetBuilder2_AddFont(self: *const T, fontFile: ?*IDWriteFontFile, fontFaceIndex: u32, fontSimulations: DWRITE_FONT_SIMULATIONS, fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32, fontAxisRanges: [*]const DWRITE_FONT_AXIS_RANGE, fontAxisRangeCount: u32, properties: [*]const DWRITE_FONT_PROPERTY, propertyCount: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSetBuilder2.VTable, @ptrCast(self.vtable)).AddFont(@as(*const IDWriteFontSetBuilder2, @ptrCast(self)), fontFile, fontFaceIndex, fontSimulations, fontAxisValues, fontAxisValueCount, fontAxisRanges, fontAxisRangeCount, properties, propertyCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSetBuilder2_AddFontFile(self: *const T, filePath: ?[*:0]const u16) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSetBuilder2.VTable, @ptrCast(self.vtable)).AddFontFile(@as(*const IDWriteFontSetBuilder2, @ptrCast(self)), filePath);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontSet1_Value = Guid.initString("7e9fda85-6c92-4053-bc47-7ae3530db4d3");
pub const IID_IDWriteFontSet1 = &IID_IDWriteFontSet1_Value;
pub const IDWriteFontSet1 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontSet.VTable,
GetMatchingFonts: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
fontProperty: ?*const DWRITE_FONT_PROPERTY,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
matchingFonts: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet1,
fontProperty: ?*const DWRITE_FONT_PROPERTY,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
matchingFonts: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFirstFontResources: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
filteredFontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet1,
filteredFontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFilteredFonts: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
indices: [*]const u32,
indexCount: u32,
filteredFontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet1,
indices: [*]const u32,
indexCount: u32,
filteredFontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFilteredFonts1: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
fontAxisRanges: [*]const DWRITE_FONT_AXIS_RANGE,
fontAxisRangeCount: u32,
selectAnyRange: BOOL,
filteredFontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet1,
fontAxisRanges: [*]const DWRITE_FONT_AXIS_RANGE,
fontAxisRangeCount: u32,
selectAnyRange: BOOL,
filteredFontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFilteredFonts2: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
properties: ?[*]const DWRITE_FONT_PROPERTY,
propertyCount: u32,
selectAnyProperty: BOOL,
filteredFontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet1,
properties: ?[*]const DWRITE_FONT_PROPERTY,
propertyCount: u32,
selectAnyProperty: BOOL,
filteredFontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFilteredFontIndices: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
fontAxisRanges: [*]const DWRITE_FONT_AXIS_RANGE,
fontAxisRangeCount: u32,
selectAnyRange: BOOL,
indices: [*]u32,
maxIndexCount: u32,
actualIndexCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet1,
fontAxisRanges: [*]const DWRITE_FONT_AXIS_RANGE,
fontAxisRangeCount: u32,
selectAnyRange: BOOL,
indices: [*]u32,
maxIndexCount: u32,
actualIndexCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFilteredFontIndices1: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
properties: [*]const DWRITE_FONT_PROPERTY,
propertyCount: u32,
selectAnyProperty: BOOL,
indices: [*]u32,
maxIndexCount: u32,
actualIndexCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet1,
properties: [*]const DWRITE_FONT_PROPERTY,
propertyCount: u32,
selectAnyProperty: BOOL,
indices: [*]u32,
maxIndexCount: u32,
actualIndexCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontAxisRanges: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
listIndex: u32,
fontAxisRanges: [*]DWRITE_FONT_AXIS_RANGE,
maxFontAxisRangeCount: u32,
actualFontAxisRangeCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet1,
listIndex: u32,
fontAxisRanges: [*]DWRITE_FONT_AXIS_RANGE,
maxFontAxisRangeCount: u32,
actualFontAxisRangeCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontAxisRanges1: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
fontAxisRanges: [*]DWRITE_FONT_AXIS_RANGE,
maxFontAxisRangeCount: u32,
actualFontAxisRangeCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet1,
fontAxisRanges: [*]DWRITE_FONT_AXIS_RANGE,
maxFontAxisRangeCount: u32,
actualFontAxisRangeCount: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFaceReference: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
listIndex: u32,
fontFaceReference: ?*?*IDWriteFontFaceReference1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet1,
listIndex: u32,
fontFaceReference: ?*?*IDWriteFontFaceReference1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontResource: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
listIndex: u32,
fontResource: ?*?*IDWriteFontResource,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet1,
listIndex: u32,
fontResource: ?*?*IDWriteFontResource,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
CreateFontFace: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
listIndex: u32,
fontFace: ?*?*IDWriteFontFace5,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet1,
listIndex: u32,
fontFace: ?*?*IDWriteFontFace5,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontLocality: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet1,
listIndex: u32,
) callconv(@import("std").os.windows.WINAPI) DWRITE_LOCALITY,
else => *const fn(
self: *const IDWriteFontSet1,
listIndex: u32,
) callconv(@import("std").os.windows.WINAPI) DWRITE_LOCALITY,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontSet.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_GetMatchingFonts(self: *const T, fontProperty: ?*const DWRITE_FONT_PROPERTY, fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32, matchingFonts: ?*?*IDWriteFontSet1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).GetMatchingFonts(@as(*const IDWriteFontSet1, @ptrCast(self)), fontProperty, fontAxisValues, fontAxisValueCount, matchingFonts);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_GetFirstFontResources(self: *const T, filteredFontSet: ?*?*IDWriteFontSet1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).GetFirstFontResources(@as(*const IDWriteFontSet1, @ptrCast(self)), filteredFontSet);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_GetFilteredFonts(self: *const T, indices: [*]const u32, indexCount: u32, filteredFontSet: ?*?*IDWriteFontSet1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).GetFilteredFonts(@as(*const IDWriteFontSet1, @ptrCast(self)), indices, indexCount, filteredFontSet);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_GetFilteredFonts1(self: *const T, fontAxisRanges: [*]const DWRITE_FONT_AXIS_RANGE, fontAxisRangeCount: u32, selectAnyRange: BOOL, filteredFontSet: ?*?*IDWriteFontSet1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).GetFilteredFonts(@as(*const IDWriteFontSet1, @ptrCast(self)), fontAxisRanges, fontAxisRangeCount, selectAnyRange, filteredFontSet);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_GetFilteredFonts2(self: *const T, properties: ?[*]const DWRITE_FONT_PROPERTY, propertyCount: u32, selectAnyProperty: BOOL, filteredFontSet: ?*?*IDWriteFontSet1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).GetFilteredFonts(@as(*const IDWriteFontSet1, @ptrCast(self)), properties, propertyCount, selectAnyProperty, filteredFontSet);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_GetFilteredFontIndices(self: *const T, fontAxisRanges: [*]const DWRITE_FONT_AXIS_RANGE, fontAxisRangeCount: u32, selectAnyRange: BOOL, indices: [*]u32, maxIndexCount: u32, actualIndexCount: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).GetFilteredFontIndices(@as(*const IDWriteFontSet1, @ptrCast(self)), fontAxisRanges, fontAxisRangeCount, selectAnyRange, indices, maxIndexCount, actualIndexCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_GetFilteredFontIndices1(self: *const T, properties: [*]const DWRITE_FONT_PROPERTY, propertyCount: u32, selectAnyProperty: BOOL, indices: [*]u32, maxIndexCount: u32, actualIndexCount: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).GetFilteredFontIndices(@as(*const IDWriteFontSet1, @ptrCast(self)), properties, propertyCount, selectAnyProperty, indices, maxIndexCount, actualIndexCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_GetFontAxisRanges(self: *const T, listIndex: u32, fontAxisRanges: [*]DWRITE_FONT_AXIS_RANGE, maxFontAxisRangeCount: u32, actualFontAxisRangeCount: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).GetFontAxisRanges(@as(*const IDWriteFontSet1, @ptrCast(self)), listIndex, fontAxisRanges, maxFontAxisRangeCount, actualFontAxisRangeCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_GetFontAxisRanges1(self: *const T, fontAxisRanges: [*]DWRITE_FONT_AXIS_RANGE, maxFontAxisRangeCount: u32, actualFontAxisRangeCount: ?*u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).GetFontAxisRanges(@as(*const IDWriteFontSet1, @ptrCast(self)), fontAxisRanges, maxFontAxisRangeCount, actualFontAxisRangeCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_GetFontFaceReference(self: *const T, listIndex: u32, fontFaceReference: ?*?*IDWriteFontFaceReference1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).GetFontFaceReference(@as(*const IDWriteFontSet1, @ptrCast(self)), listIndex, fontFaceReference);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_CreateFontResource(self: *const T, listIndex: u32, fontResource: ?*?*IDWriteFontResource) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).CreateFontResource(@as(*const IDWriteFontSet1, @ptrCast(self)), listIndex, fontResource);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_CreateFontFace(self: *const T, listIndex: u32, fontFace: ?*?*IDWriteFontFace5) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).CreateFontFace(@as(*const IDWriteFontSet1, @ptrCast(self)), listIndex, fontFace);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet1_GetFontLocality(self: *const T, listIndex: u32) callconv(.Inline) DWRITE_LOCALITY {
return @as(*const IDWriteFontSet1.VTable, @ptrCast(self.vtable)).GetFontLocality(@as(*const IDWriteFontSet1, @ptrCast(self)), listIndex);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontList2_Value = Guid.initString("c0763a34-77af-445a-b735-08c37b0a5bf5");
pub const IID_IDWriteFontList2 = &IID_IDWriteFontList2_Value;
pub const IDWriteFontList2 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontList1.VTable,
GetFontSet: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontList2,
fontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontList2,
fontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontList1.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontList2_GetFontSet(self: *const T, fontSet: ?*?*IDWriteFontSet1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontList2.VTable, @ptrCast(self.vtable)).GetFontSet(@as(*const IDWriteFontList2, @ptrCast(self)), fontSet);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontFamily2_Value = Guid.initString("3ed49e77-a398-4261-b9cf-c126c2131ef3");
pub const IID_IDWriteFontFamily2 = &IID_IDWriteFontFamily2_Value;
pub const IDWriteFontFamily2 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFamily1.VTable,
GetMatchingFonts: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFamily2,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
matchingFonts: ?*?*IDWriteFontList2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFamily2,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
matchingFonts: ?*?*IDWriteFontList2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontSet: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFamily2,
fontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFamily2,
fontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFamily1.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFamily2_GetMatchingFonts(self: *const T, fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32, matchingFonts: ?*?*IDWriteFontList2) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFamily2.VTable, @ptrCast(self.vtable)).GetMatchingFonts(@as(*const IDWriteFontFamily2, @ptrCast(self)), fontAxisValues, fontAxisValueCount, matchingFonts);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFamily2_GetFontSet(self: *const T, fontSet: ?*?*IDWriteFontSet1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFamily2.VTable, @ptrCast(self.vtable)).GetFontSet(@as(*const IDWriteFontFamily2, @ptrCast(self)), fontSet);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontCollection2_Value = Guid.initString("514039c6-4617-4064-bf8b-92ea83e506e0");
pub const IID_IDWriteFontCollection2 = &IID_IDWriteFontCollection2_Value;
pub const IDWriteFontCollection2 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontCollection1.VTable,
GetFontFamily: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontCollection2,
index: u32,
fontFamily: ?*?*IDWriteFontFamily2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontCollection2,
index: u32,
fontFamily: ?*?*IDWriteFontFamily2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetMatchingFonts: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontCollection2,
familyName: ?[*:0]const u16,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
fontList: ?*?*IDWriteFontList2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontCollection2,
familyName: ?[*:0]const u16,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
fontList: ?*?*IDWriteFontList2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontFamilyModel: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontCollection2,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_FAMILY_MODEL,
else => *const fn(
self: *const IDWriteFontCollection2,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_FAMILY_MODEL,
},
GetFontSet: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontCollection2,
fontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontCollection2,
fontSet: ?*?*IDWriteFontSet1,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontCollection1.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontCollection2_GetFontFamily(self: *const T, index: u32, fontFamily: ?*?*IDWriteFontFamily2) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontCollection2.VTable, @ptrCast(self.vtable)).GetFontFamily(@as(*const IDWriteFontCollection2, @ptrCast(self)), index, fontFamily);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontCollection2_GetMatchingFonts(self: *const T, familyName: ?[*:0]const u16, fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32, fontList: ?*?*IDWriteFontList2) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontCollection2.VTable, @ptrCast(self.vtable)).GetMatchingFonts(@as(*const IDWriteFontCollection2, @ptrCast(self)), familyName, fontAxisValues, fontAxisValueCount, fontList);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontCollection2_GetFontFamilyModel(self: *const T) callconv(.Inline) DWRITE_FONT_FAMILY_MODEL {
return @as(*const IDWriteFontCollection2.VTable, @ptrCast(self.vtable)).GetFontFamilyModel(@as(*const IDWriteFontCollection2, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontCollection2_GetFontSet(self: *const T, fontSet: ?*?*IDWriteFontSet1) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontCollection2.VTable, @ptrCast(self.vtable)).GetFontSet(@as(*const IDWriteFontCollection2, @ptrCast(self)), fontSet);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteTextLayout4_Value = Guid.initString("05a9bf42-223f-4441-b5fb-8263685f55e9");
pub const IID_IDWriteTextLayout4 = &IID_IDWriteTextLayout4_Value;
pub const IDWriteTextLayout4 = extern struct {
pub const VTable = extern struct {
base: IDWriteTextLayout3.VTable,
SetFontAxisValues: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout4,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout4,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
textRange: DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontAxisValueCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout4,
currentPosition: u32,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteTextLayout4,
currentPosition: u32,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetFontAxisValues: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout4,
currentPosition: u32,
fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout4,
currentPosition: u32,
fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
textRange: ?*DWRITE_TEXT_RANGE,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetAutomaticFontAxes: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout4,
) callconv(@import("std").os.windows.WINAPI) DWRITE_AUTOMATIC_FONT_AXES,
else => *const fn(
self: *const IDWriteTextLayout4,
) callconv(@import("std").os.windows.WINAPI) DWRITE_AUTOMATIC_FONT_AXES,
},
SetAutomaticFontAxes: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextLayout4,
automaticFontAxes: DWRITE_AUTOMATIC_FONT_AXES,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextLayout4,
automaticFontAxes: DWRITE_AUTOMATIC_FONT_AXES,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextLayout3.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout4_SetFontAxisValues(self: *const T, fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32, textRange: DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout4.VTable, @ptrCast(self.vtable)).SetFontAxisValues(@as(*const IDWriteTextLayout4, @ptrCast(self)), fontAxisValues, fontAxisValueCount, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout4_GetFontAxisValueCount(self: *const T, currentPosition: u32) callconv(.Inline) u32 {
return @as(*const IDWriteTextLayout4.VTable, @ptrCast(self.vtable)).GetFontAxisValueCount(@as(*const IDWriteTextLayout4, @ptrCast(self)), currentPosition);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout4_GetFontAxisValues(self: *const T, currentPosition: u32, fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32, textRange: ?*DWRITE_TEXT_RANGE) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout4.VTable, @ptrCast(self.vtable)).GetFontAxisValues(@as(*const IDWriteTextLayout4, @ptrCast(self)), currentPosition, fontAxisValues, fontAxisValueCount, textRange);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout4_GetAutomaticFontAxes(self: *const T) callconv(.Inline) DWRITE_AUTOMATIC_FONT_AXES {
return @as(*const IDWriteTextLayout4.VTable, @ptrCast(self.vtable)).GetAutomaticFontAxes(@as(*const IDWriteTextLayout4, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextLayout4_SetAutomaticFontAxes(self: *const T, automaticFontAxes: DWRITE_AUTOMATIC_FONT_AXES) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextLayout4.VTable, @ptrCast(self.vtable)).SetAutomaticFontAxes(@as(*const IDWriteTextLayout4, @ptrCast(self)), automaticFontAxes);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteTextFormat3_Value = Guid.initString("6d3b5641-e550-430d-a85b-b7bf48a93427");
pub const IID_IDWriteTextFormat3 = &IID_IDWriteTextFormat3_Value;
pub const IDWriteTextFormat3 = extern struct {
pub const VTable = extern struct {
base: IDWriteTextFormat2.VTable,
SetFontAxisValues: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat3,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat3,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFontAxisValueCount: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat3,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteTextFormat3,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetFontAxisValues: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat3,
fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat3,
fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetAutomaticFontAxes: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat3,
) callconv(@import("std").os.windows.WINAPI) DWRITE_AUTOMATIC_FONT_AXES,
else => *const fn(
self: *const IDWriteTextFormat3,
) callconv(@import("std").os.windows.WINAPI) DWRITE_AUTOMATIC_FONT_AXES,
},
SetAutomaticFontAxes: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteTextFormat3,
automaticFontAxes: DWRITE_AUTOMATIC_FONT_AXES,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteTextFormat3,
automaticFontAxes: DWRITE_AUTOMATIC_FONT_AXES,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteTextFormat2.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat3_SetFontAxisValues(self: *const T, fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat3.VTable, @ptrCast(self.vtable)).SetFontAxisValues(@as(*const IDWriteTextFormat3, @ptrCast(self)), fontAxisValues, fontAxisValueCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat3_GetFontAxisValueCount(self: *const T) callconv(.Inline) u32 {
return @as(*const IDWriteTextFormat3.VTable, @ptrCast(self.vtable)).GetFontAxisValueCount(@as(*const IDWriteTextFormat3, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat3_GetFontAxisValues(self: *const T, fontAxisValues: [*]DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat3.VTable, @ptrCast(self.vtable)).GetFontAxisValues(@as(*const IDWriteTextFormat3, @ptrCast(self)), fontAxisValues, fontAxisValueCount);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat3_GetAutomaticFontAxes(self: *const T) callconv(.Inline) DWRITE_AUTOMATIC_FONT_AXES {
return @as(*const IDWriteTextFormat3.VTable, @ptrCast(self.vtable)).GetAutomaticFontAxes(@as(*const IDWriteTextFormat3, @ptrCast(self)));
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteTextFormat3_SetAutomaticFontAxes(self: *const T, automaticFontAxes: DWRITE_AUTOMATIC_FONT_AXES) callconv(.Inline) HRESULT {
return @as(*const IDWriteTextFormat3.VTable, @ptrCast(self.vtable)).SetAutomaticFontAxes(@as(*const IDWriteTextFormat3, @ptrCast(self)), automaticFontAxes);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontFallback1_Value = Guid.initString("2397599d-dd0d-4681-bd6a-f4f31eaade77");
pub const IID_IDWriteFontFallback1 = &IID_IDWriteFontFallback1_Value;
pub const IDWriteFontFallback1 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFallback.VTable,
MapCharacters: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFallback1,
analysisSource: ?*IDWriteTextAnalysisSource,
textPosition: u32,
textLength: u32,
baseFontCollection: ?*IDWriteFontCollection,
baseFamilyName: ?[*:0]const u16,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
mappedLength: ?*u32,
scale: ?*f32,
mappedFontFace: ?*?*IDWriteFontFace5,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFallback1,
analysisSource: ?*IDWriteTextAnalysisSource,
textPosition: u32,
textLength: u32,
baseFontCollection: ?*IDWriteFontCollection,
baseFamilyName: ?[*:0]const u16,
fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE,
fontAxisValueCount: u32,
mappedLength: ?*u32,
scale: ?*f32,
mappedFontFace: ?*?*IDWriteFontFace5,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFallback.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFallback1_MapCharacters(self: *const T, analysisSource: ?*IDWriteTextAnalysisSource, textPosition: u32, textLength: u32, baseFontCollection: ?*IDWriteFontCollection, baseFamilyName: ?[*:0]const u16, fontAxisValues: [*]const DWRITE_FONT_AXIS_VALUE, fontAxisValueCount: u32, mappedLength: ?*u32, scale: ?*f32, mappedFontFace: ?*?*IDWriteFontFace5) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFallback1.VTable, @ptrCast(self.vtable)).MapCharacters(@as(*const IDWriteFontFallback1, @ptrCast(self)), analysisSource, textPosition, textLength, baseFontCollection, baseFamilyName, fontAxisValues, fontAxisValueCount, mappedLength, scale, mappedFontFace);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontSet2_Value = Guid.initString("dc7ead19-e54c-43af-b2da-4e2b79ba3f7f");
pub const IID_IDWriteFontSet2 = &IID_IDWriteFontSet2_Value;
pub const IDWriteFontSet2 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontSet1.VTable,
GetExpirationEvent: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet2,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE,
else => *const fn(
self: *const IDWriteFontSet2,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontSet1.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet2_GetExpirationEvent(self: *const T) callconv(.Inline) ?HANDLE {
return @as(*const IDWriteFontSet2.VTable, @ptrCast(self.vtable)).GetExpirationEvent(@as(*const IDWriteFontSet2, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontCollection3_Value = Guid.initString("a4d055a6-f9e3-4e25-93b7-9e309f3af8e9");
pub const IID_IDWriteFontCollection3 = &IID_IDWriteFontCollection3_Value;
pub const IDWriteFontCollection3 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontCollection2.VTable,
GetExpirationEvent: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontCollection3,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE,
else => *const fn(
self: *const IDWriteFontCollection3,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontCollection2.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontCollection3_GetExpirationEvent(self: *const T) callconv(.Inline) ?HANDLE {
return @as(*const IDWriteFontCollection3.VTable, @ptrCast(self.vtable)).GetExpirationEvent(@as(*const IDWriteFontCollection3, @ptrCast(self)));
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFactory7_Value = Guid.initString("35d0e0b3-9076-4d2e-a016-a91b568a06b4");
pub const IID_IDWriteFactory7 = &IID_IDWriteFactory7_Value;
pub const IDWriteFactory7 = extern struct {
pub const VTable = extern struct {
base: IDWriteFactory6.VTable,
GetSystemFontSet: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory7,
includeDownloadableFonts: BOOL,
fontSet: ?*?*IDWriteFontSet2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory7,
includeDownloadableFonts: BOOL,
fontSet: ?*?*IDWriteFontSet2,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetSystemFontCollection: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFactory7,
includeDownloadableFonts: BOOL,
fontFamilyModel: DWRITE_FONT_FAMILY_MODEL,
fontCollection: ?*?*IDWriteFontCollection3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFactory7,
includeDownloadableFonts: BOOL,
fontFamilyModel: DWRITE_FONT_FAMILY_MODEL,
fontCollection: ?*?*IDWriteFontCollection3,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFactory6.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory7_GetSystemFontSet(self: *const T, includeDownloadableFonts: BOOL, fontSet: ?*?*IDWriteFontSet2) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory7.VTable, @ptrCast(self.vtable)).GetSystemFontSet(@as(*const IDWriteFactory7, @ptrCast(self)), includeDownloadableFonts, fontSet);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFactory7_GetSystemFontCollection(self: *const T, includeDownloadableFonts: BOOL, fontFamilyModel: DWRITE_FONT_FAMILY_MODEL, fontCollection: ?*?*IDWriteFontCollection3) callconv(.Inline) HRESULT {
return @as(*const IDWriteFactory7.VTable, @ptrCast(self.vtable)).GetSystemFontCollection(@as(*const IDWriteFactory7, @ptrCast(self)), includeDownloadableFonts, fontFamilyModel, fontCollection);
}
};}
pub usingnamespace MethodMixin(@This());
};
pub const DWRITE_FONT_SOURCE_TYPE = enum(i32) {
UNKNOWN = 0,
PER_MACHINE = 1,
PER_USER = 2,
APPX_PACKAGE = 3,
REMOTE_FONT_PROVIDER = 4,
};
pub const DWRITE_FONT_SOURCE_TYPE_UNKNOWN = DWRITE_FONT_SOURCE_TYPE.UNKNOWN;
pub const DWRITE_FONT_SOURCE_TYPE_PER_MACHINE = DWRITE_FONT_SOURCE_TYPE.PER_MACHINE;
pub const DWRITE_FONT_SOURCE_TYPE_PER_USER = DWRITE_FONT_SOURCE_TYPE.PER_USER;
pub const DWRITE_FONT_SOURCE_TYPE_APPX_PACKAGE = DWRITE_FONT_SOURCE_TYPE.APPX_PACKAGE;
pub const DWRITE_FONT_SOURCE_TYPE_REMOTE_FONT_PROVIDER = DWRITE_FONT_SOURCE_TYPE.REMOTE_FONT_PROVIDER;
const IID_IDWriteFontSet3_Value = Guid.initString("7c073ef2-a7f4-4045-8c32-8ab8ae640f90");
pub const IID_IDWriteFontSet3 = &IID_IDWriteFontSet3_Value;
pub const IDWriteFontSet3 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontSet2.VTable,
GetFontSourceType: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet3,
fontIndex: u32,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_SOURCE_TYPE,
else => *const fn(
self: *const IDWriteFontSet3,
fontIndex: u32,
) callconv(@import("std").os.windows.WINAPI) DWRITE_FONT_SOURCE_TYPE,
},
GetFontSourceNameLength: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet3,
listIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32,
else => *const fn(
self: *const IDWriteFontSet3,
listIndex: u32,
) callconv(@import("std").os.windows.WINAPI) u32,
},
GetFontSourceName: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontSet3,
listIndex: u32,
stringBuffer: [*:0]u16,
stringBufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontSet3,
listIndex: u32,
stringBuffer: [*:0]u16,
stringBufferSize: u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontSet2.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet3_GetFontSourceType(self: *const T, fontIndex: u32) callconv(.Inline) DWRITE_FONT_SOURCE_TYPE {
return @as(*const IDWriteFontSet3.VTable, @ptrCast(self.vtable)).GetFontSourceType(@as(*const IDWriteFontSet3, @ptrCast(self)), fontIndex);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet3_GetFontSourceNameLength(self: *const T, listIndex: u32) callconv(.Inline) u32 {
return @as(*const IDWriteFontSet3.VTable, @ptrCast(self.vtable)).GetFontSourceNameLength(@as(*const IDWriteFontSet3, @ptrCast(self)), listIndex);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontSet3_GetFontSourceName(self: *const T, listIndex: u32, stringBuffer: [*:0]u16, stringBufferSize: u32) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontSet3.VTable, @ptrCast(self.vtable)).GetFontSourceName(@as(*const IDWriteFontSet3, @ptrCast(self)), listIndex, stringBuffer, stringBufferSize);
}
};}
pub usingnamespace MethodMixin(@This());
};
const IID_IDWriteFontFace6_Value = Guid.initString("c4b1fe1b-6e84-47d5-b54c-a597981b06ad");
pub const IID_IDWriteFontFace6 = &IID_IDWriteFontFace6_Value;
pub const IDWriteFontFace6 = extern struct {
pub const VTable = extern struct {
base: IDWriteFontFace5.VTable,
GetFamilyNames: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace6,
fontFamilyModel: DWRITE_FONT_FAMILY_MODEL,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace6,
fontFamilyModel: DWRITE_FONT_FAMILY_MODEL,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
GetFaceNames: switch (@import("builtin").zig_backend) {
.stage1 => fn(
self: *const IDWriteFontFace6,
fontFamilyModel: DWRITE_FONT_FAMILY_MODEL,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
else => *const fn(
self: *const IDWriteFontFace6,
fontFamilyModel: DWRITE_FONT_FAMILY_MODEL,
names: ?*?*IDWriteLocalizedStrings,
) callconv(@import("std").os.windows.WINAPI) HRESULT,
},
};
vtable: *const VTable,
pub fn MethodMixin(comptime T: type) type { return struct {
pub usingnamespace IDWriteFontFace5.MethodMixin(T);
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace6_GetFamilyNames(self: *const T, fontFamilyModel: DWRITE_FONT_FAMILY_MODEL, names: ?*?*IDWriteLocalizedStrings) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace6.VTable, @ptrCast(self.vtable)).GetFamilyNames(@as(*const IDWriteFontFace6, @ptrCast(self)), fontFamilyModel, names);
}
// NOTE: method is namespaced with interface name to avoid conflicts for now
pub fn IDWriteFontFace6_GetFaceNames(self: *const T, fontFamilyModel: DWRITE_FONT_FAMILY_MODEL, names: ?*?*IDWriteLocalizedStrings) callconv(.Inline) HRESULT {
return @as(*const IDWriteFontFace6.VTable, @ptrCast(self.vtable)).GetFaceNames(@as(*const IDWriteFontFace6, @ptrCast(self)), fontFamilyModel, names);
}
};}
pub usingnamespace MethodMixin(@This());
};
//--------------------------------------------------------------------------------
// Section: Functions (1)
//--------------------------------------------------------------------------------
// TODO: this type is limited to platform 'windows6.1'
pub extern "dwrite" fn DWriteCreateFactory(
factoryType: DWRITE_FACTORY_TYPE,
iid: ?*const Guid,
factory: ?*?*IUnknown,
) callconv(@import("std").os.windows.WINAPI) HRESULT;
//--------------------------------------------------------------------------------
// Section: Unicode Aliases (0)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
.ansi => struct {
},
.wide => struct {
},
.unspecified => if (@import("builtin").is_test) struct {
} else struct {
},
};
//--------------------------------------------------------------------------------
// Section: Imports (18)
//--------------------------------------------------------------------------------
const Guid = @import("../zig.zig").Guid;
const BOOL = @import("../foundation.zig").BOOL;
const D2D_POINT_2F = @import("../graphics/direct2d/common.zig").D2D_POINT_2F;
const D2D_SIZE_U = @import("../graphics/direct2d/common.zig").D2D_SIZE_U;
const FILETIME = @import("../foundation.zig").FILETIME;
const FONTSIGNATURE = @import("../globalization.zig").FONTSIGNATURE;
const HANDLE = @import("../foundation.zig").HANDLE;
const HDC = @import("../graphics/gdi.zig").HDC;
const HMONITOR = @import("../graphics/gdi.zig").HMONITOR;
const HRESULT = @import("../foundation.zig").HRESULT;
const ID2D1SimplifiedGeometrySink = @import("../graphics/direct2d/common.zig").ID2D1SimplifiedGeometrySink;
const IUnknown = @import("../system/com.zig").IUnknown;
const LOGFONTA = @import("../graphics/gdi.zig").LOGFONTA;
const LOGFONTW = @import("../graphics/gdi.zig").LOGFONTW;
const POINT = @import("../foundation.zig").POINT;
const PWSTR = @import("../foundation.zig").PWSTR;
const RECT = @import("../foundation.zig").RECT;
const SIZE = @import("../foundation.zig").SIZE;
test {
@setEvalBranchQuota(
comptime @import("std").meta.declarations(@This()).len * 3
);
// reference all the pub declarations
if (!@import("builtin").is_test) return;
inline for (comptime @import("std").meta.declarations(@This())) |decl| {
_ = @field(@This(), decl.name);
}
}