552 lines
28 KiB
Zig
552 lines
28 KiB
Zig
//! NOTE: this file is autogenerated, DO NOT MODIFY
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Constants (4)
|
|
//--------------------------------------------------------------------------------
|
|
pub const _FACDXCORE = @as(u32, 2176);
|
|
pub const DXCORE_ADAPTER_ATTRIBUTE_D3D11_GRAPHICS = Guid.initString("8c47866b-7583-450d-f0f0-6bada895af4b");
|
|
pub const DXCORE_ADAPTER_ATTRIBUTE_D3D12_GRAPHICS = Guid.initString("0c9ece4d-2f6e-4f01-8c96-e89e331b47b1");
|
|
pub const DXCORE_ADAPTER_ATTRIBUTE_D3D12_CORE_COMPUTE = Guid.initString("248e2800-a793-4724-abaa-23a6de1be090");
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Types (13)
|
|
//--------------------------------------------------------------------------------
|
|
pub const DXCoreAdapterProperty = enum(u32) {
|
|
InstanceLuid = 0,
|
|
DriverVersion = 1,
|
|
DriverDescription = 2,
|
|
HardwareID = 3,
|
|
KmdModelVersion = 4,
|
|
ComputePreemptionGranularity = 5,
|
|
GraphicsPreemptionGranularity = 6,
|
|
DedicatedAdapterMemory = 7,
|
|
DedicatedSystemMemory = 8,
|
|
SharedSystemMemory = 9,
|
|
AcgCompatible = 10,
|
|
IsHardware = 11,
|
|
IsIntegrated = 12,
|
|
IsDetachable = 13,
|
|
HardwareIDParts = 14,
|
|
};
|
|
pub const InstanceLuid = DXCoreAdapterProperty.InstanceLuid;
|
|
pub const DriverVersion = DXCoreAdapterProperty.DriverVersion;
|
|
pub const DriverDescription = DXCoreAdapterProperty.DriverDescription;
|
|
pub const HardwareID = DXCoreAdapterProperty.HardwareID;
|
|
pub const KmdModelVersion = DXCoreAdapterProperty.KmdModelVersion;
|
|
pub const ComputePreemptionGranularity = DXCoreAdapterProperty.ComputePreemptionGranularity;
|
|
pub const GraphicsPreemptionGranularity = DXCoreAdapterProperty.GraphicsPreemptionGranularity;
|
|
pub const DedicatedAdapterMemory = DXCoreAdapterProperty.DedicatedAdapterMemory;
|
|
pub const DedicatedSystemMemory = DXCoreAdapterProperty.DedicatedSystemMemory;
|
|
pub const SharedSystemMemory = DXCoreAdapterProperty.SharedSystemMemory;
|
|
pub const AcgCompatible = DXCoreAdapterProperty.AcgCompatible;
|
|
pub const IsHardware = DXCoreAdapterProperty.IsHardware;
|
|
pub const IsIntegrated = DXCoreAdapterProperty.IsIntegrated;
|
|
pub const IsDetachable = DXCoreAdapterProperty.IsDetachable;
|
|
pub const HardwareIDParts = DXCoreAdapterProperty.HardwareIDParts;
|
|
|
|
pub const DXCoreAdapterState = enum(u32) {
|
|
IsDriverUpdateInProgress = 0,
|
|
AdapterMemoryBudget = 1,
|
|
};
|
|
pub const IsDriverUpdateInProgress = DXCoreAdapterState.IsDriverUpdateInProgress;
|
|
pub const AdapterMemoryBudget = DXCoreAdapterState.AdapterMemoryBudget;
|
|
|
|
pub const DXCoreSegmentGroup = enum(u32) {
|
|
Local = 0,
|
|
NonLocal = 1,
|
|
};
|
|
pub const Local = DXCoreSegmentGroup.Local;
|
|
pub const NonLocal = DXCoreSegmentGroup.NonLocal;
|
|
|
|
pub const DXCoreNotificationType = enum(u32) {
|
|
ListStale = 0,
|
|
NoLongerValid = 1,
|
|
BudgetChange = 2,
|
|
HardwareContentProtectionTeardown = 3,
|
|
};
|
|
pub const AdapterListStale = DXCoreNotificationType.ListStale;
|
|
pub const AdapterNoLongerValid = DXCoreNotificationType.NoLongerValid;
|
|
pub const AdapterBudgetChange = DXCoreNotificationType.BudgetChange;
|
|
pub const AdapterHardwareContentProtectionTeardown = DXCoreNotificationType.HardwareContentProtectionTeardown;
|
|
|
|
pub const DXCoreAdapterPreference = enum(u32) {
|
|
Hardware = 0,
|
|
MinimumPower = 1,
|
|
HighPerformance = 2,
|
|
};
|
|
pub const Hardware = DXCoreAdapterPreference.Hardware;
|
|
pub const MinimumPower = DXCoreAdapterPreference.MinimumPower;
|
|
pub const HighPerformance = DXCoreAdapterPreference.HighPerformance;
|
|
|
|
pub const DXCoreHardwareID = extern struct {
|
|
vendorID: u32,
|
|
deviceID: u32,
|
|
subSysID: u32,
|
|
revision: u32,
|
|
};
|
|
|
|
pub const DXCoreHardwareIDParts = extern struct {
|
|
vendorID: u32,
|
|
deviceID: u32,
|
|
subSystemID: u32,
|
|
subVendorID: u32,
|
|
revisionID: u32,
|
|
};
|
|
|
|
pub const DXCoreAdapterMemoryBudgetNodeSegmentGroup = extern struct {
|
|
nodeIndex: u32,
|
|
segmentGroup: DXCoreSegmentGroup,
|
|
};
|
|
|
|
pub const DXCoreAdapterMemoryBudget = extern struct {
|
|
budget: u64,
|
|
currentUsage: u64,
|
|
availableForReservation: u64,
|
|
currentReservation: u64,
|
|
};
|
|
|
|
pub const PFN_DXCORE_NOTIFICATION_CALLBACK = switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
notificationType: DXCoreNotificationType,
|
|
object: ?*IUnknown,
|
|
context: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
else => *const fn(
|
|
notificationType: DXCoreNotificationType,
|
|
object: ?*IUnknown,
|
|
context: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) void,
|
|
} ;
|
|
|
|
const IID_IDXCoreAdapter_Value = Guid.initString("f0db4c7f-fe5a-42a2-bd62-f2a6cf6fc83e");
|
|
pub const IID_IDXCoreAdapter = &IID_IDXCoreAdapter_Value;
|
|
pub const IDXCoreAdapter = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
IsValid: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapter,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapter,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
},
|
|
IsAttributeSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapter,
|
|
attributeGUID: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapter,
|
|
attributeGUID: ?*const Guid,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
},
|
|
IsPropertySupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapter,
|
|
property: DXCoreAdapterProperty,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapter,
|
|
property: DXCoreAdapterProperty,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
},
|
|
GetProperty: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapter,
|
|
property: DXCoreAdapterProperty,
|
|
bufferSize: usize,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
propertyData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapter,
|
|
property: DXCoreAdapterProperty,
|
|
bufferSize: usize,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
propertyData: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetPropertySize: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapter,
|
|
property: DXCoreAdapterProperty,
|
|
bufferSize: ?*usize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapter,
|
|
property: DXCoreAdapterProperty,
|
|
bufferSize: ?*usize,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsQueryStateSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapter,
|
|
property: DXCoreAdapterState,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapter,
|
|
property: DXCoreAdapterState,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
},
|
|
QueryState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapter,
|
|
state: DXCoreAdapterState,
|
|
inputStateDetailsSize: usize,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
inputStateDetails: ?*const anyopaque,
|
|
outputBufferSize: usize,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
outputBuffer: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapter,
|
|
state: DXCoreAdapterState,
|
|
inputStateDetailsSize: usize,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
inputStateDetails: ?*const anyopaque,
|
|
outputBufferSize: usize,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
outputBuffer: ?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsSetStateSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapter,
|
|
property: DXCoreAdapterState,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapter,
|
|
property: DXCoreAdapterState,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
},
|
|
SetState: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapter,
|
|
state: DXCoreAdapterState,
|
|
inputStateDetailsSize: usize,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
inputStateDetails: ?*const anyopaque,
|
|
inputDataSize: usize,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
inputData: ?*const anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapter,
|
|
state: DXCoreAdapterState,
|
|
inputStateDetailsSize: usize,
|
|
// TODO: what to do with BytesParamIndex 1?
|
|
inputStateDetails: ?*const anyopaque,
|
|
inputDataSize: usize,
|
|
// TODO: what to do with BytesParamIndex 3?
|
|
inputData: ?*const anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetFactory: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapter,
|
|
riid: ?*const Guid,
|
|
ppvFactory: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapter,
|
|
riid: ?*const Guid,
|
|
ppvFactory: ?*?*anyopaque,
|
|
) 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 IDXCoreAdapter_IsValid(self: *const T) callconv(.Inline) bool {
|
|
return @as(*const IDXCoreAdapter.VTable, @ptrCast(self.vtable)).IsValid(@as(*const IDXCoreAdapter, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapter_IsAttributeSupported(self: *const T, attributeGUID: ?*const Guid) callconv(.Inline) bool {
|
|
return @as(*const IDXCoreAdapter.VTable, @ptrCast(self.vtable)).IsAttributeSupported(@as(*const IDXCoreAdapter, @ptrCast(self)), attributeGUID);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapter_IsPropertySupported(self: *const T, property: DXCoreAdapterProperty) callconv(.Inline) bool {
|
|
return @as(*const IDXCoreAdapter.VTable, @ptrCast(self.vtable)).IsPropertySupported(@as(*const IDXCoreAdapter, @ptrCast(self)), property);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapter_GetProperty(self: *const T, property: DXCoreAdapterProperty, bufferSize: usize, propertyData: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXCoreAdapter.VTable, @ptrCast(self.vtable)).GetProperty(@as(*const IDXCoreAdapter, @ptrCast(self)), property, bufferSize, propertyData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapter_GetPropertySize(self: *const T, property: DXCoreAdapterProperty, bufferSize: ?*usize) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXCoreAdapter.VTable, @ptrCast(self.vtable)).GetPropertySize(@as(*const IDXCoreAdapter, @ptrCast(self)), property, bufferSize);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapter_IsQueryStateSupported(self: *const T, property: DXCoreAdapterState) callconv(.Inline) bool {
|
|
return @as(*const IDXCoreAdapter.VTable, @ptrCast(self.vtable)).IsQueryStateSupported(@as(*const IDXCoreAdapter, @ptrCast(self)), property);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapter_QueryState(self: *const T, state: DXCoreAdapterState, inputStateDetailsSize: usize, inputStateDetails: ?*const anyopaque, outputBufferSize: usize, outputBuffer: ?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXCoreAdapter.VTable, @ptrCast(self.vtable)).QueryState(@as(*const IDXCoreAdapter, @ptrCast(self)), state, inputStateDetailsSize, inputStateDetails, outputBufferSize, outputBuffer);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapter_IsSetStateSupported(self: *const T, property: DXCoreAdapterState) callconv(.Inline) bool {
|
|
return @as(*const IDXCoreAdapter.VTable, @ptrCast(self.vtable)).IsSetStateSupported(@as(*const IDXCoreAdapter, @ptrCast(self)), property);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapter_SetState(self: *const T, state: DXCoreAdapterState, inputStateDetailsSize: usize, inputStateDetails: ?*const anyopaque, inputDataSize: usize, inputData: ?*const anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXCoreAdapter.VTable, @ptrCast(self.vtable)).SetState(@as(*const IDXCoreAdapter, @ptrCast(self)), state, inputStateDetailsSize, inputStateDetails, inputDataSize, inputData);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapter_GetFactory(self: *const T, riid: ?*const Guid, ppvFactory: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXCoreAdapter.VTable, @ptrCast(self.vtable)).GetFactory(@as(*const IDXCoreAdapter, @ptrCast(self)), riid, ppvFactory);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IDXCoreAdapterList_Value = Guid.initString("526c7776-40e9-459b-b711-f32ad76dfc28");
|
|
pub const IID_IDXCoreAdapterList = &IID_IDXCoreAdapterList_Value;
|
|
pub const IDXCoreAdapterList = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
GetAdapter: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapterList,
|
|
index: u32,
|
|
riid: ?*const Guid,
|
|
ppvAdapter: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapterList,
|
|
index: u32,
|
|
riid: ?*const Guid,
|
|
ppvAdapter: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAdapterCount: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapterList,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapterList,
|
|
) callconv(@import("std").os.windows.WINAPI) u32,
|
|
},
|
|
IsStale: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapterList,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapterList,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
},
|
|
GetFactory: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapterList,
|
|
riid: ?*const Guid,
|
|
ppvFactory: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapterList,
|
|
riid: ?*const Guid,
|
|
ppvFactory: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
Sort: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapterList,
|
|
numPreferences: u32,
|
|
preferences: [*]const DXCoreAdapterPreference,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapterList,
|
|
numPreferences: u32,
|
|
preferences: [*]const DXCoreAdapterPreference,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsAdapterPreferenceSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapterList,
|
|
preference: DXCoreAdapterPreference,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapterList,
|
|
preference: DXCoreAdapterPreference,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
},
|
|
};
|
|
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 IDXCoreAdapterList_GetAdapter(self: *const T, index: u32, riid: ?*const Guid, ppvAdapter: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXCoreAdapterList.VTable, @ptrCast(self.vtable)).GetAdapter(@as(*const IDXCoreAdapterList, @ptrCast(self)), index, riid, ppvAdapter);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapterList_GetAdapterCount(self: *const T) callconv(.Inline) u32 {
|
|
return @as(*const IDXCoreAdapterList.VTable, @ptrCast(self.vtable)).GetAdapterCount(@as(*const IDXCoreAdapterList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapterList_IsStale(self: *const T) callconv(.Inline) bool {
|
|
return @as(*const IDXCoreAdapterList.VTable, @ptrCast(self.vtable)).IsStale(@as(*const IDXCoreAdapterList, @ptrCast(self)));
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapterList_GetFactory(self: *const T, riid: ?*const Guid, ppvFactory: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXCoreAdapterList.VTable, @ptrCast(self.vtable)).GetFactory(@as(*const IDXCoreAdapterList, @ptrCast(self)), riid, ppvFactory);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapterList_Sort(self: *const T, numPreferences: u32, preferences: [*]const DXCoreAdapterPreference) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXCoreAdapterList.VTable, @ptrCast(self.vtable)).Sort(@as(*const IDXCoreAdapterList, @ptrCast(self)), numPreferences, preferences);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapterList_IsAdapterPreferenceSupported(self: *const T, preference: DXCoreAdapterPreference) callconv(.Inline) bool {
|
|
return @as(*const IDXCoreAdapterList.VTable, @ptrCast(self.vtable)).IsAdapterPreferenceSupported(@as(*const IDXCoreAdapterList, @ptrCast(self)), preference);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
const IID_IDXCoreAdapterFactory_Value = Guid.initString("78ee5945-c36e-4b13-a669-005dd11c0f06");
|
|
pub const IID_IDXCoreAdapterFactory = &IID_IDXCoreAdapterFactory_Value;
|
|
pub const IDXCoreAdapterFactory = extern struct {
|
|
pub const VTable = extern struct {
|
|
base: IUnknown.VTable,
|
|
CreateAdapterList: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapterFactory,
|
|
numAttributes: u32,
|
|
filterAttributes: [*]const Guid,
|
|
riid: ?*const Guid,
|
|
ppvAdapterList: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapterFactory,
|
|
numAttributes: u32,
|
|
filterAttributes: [*]const Guid,
|
|
riid: ?*const Guid,
|
|
ppvAdapterList: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
GetAdapterByLuid: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapterFactory,
|
|
adapterLUID: ?*const LUID,
|
|
riid: ?*const Guid,
|
|
ppvAdapter: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapterFactory,
|
|
adapterLUID: ?*const LUID,
|
|
riid: ?*const Guid,
|
|
ppvAdapter: ?*?*anyopaque,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
IsNotificationTypeSupported: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapterFactory,
|
|
notificationType: DXCoreNotificationType,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapterFactory,
|
|
notificationType: DXCoreNotificationType,
|
|
) callconv(@import("std").os.windows.WINAPI) bool,
|
|
},
|
|
RegisterEventNotification: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapterFactory,
|
|
dxCoreObject: ?*IUnknown,
|
|
notificationType: DXCoreNotificationType,
|
|
callbackFunction: ?PFN_DXCORE_NOTIFICATION_CALLBACK,
|
|
callbackContext: ?*anyopaque,
|
|
eventCookie: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapterFactory,
|
|
dxCoreObject: ?*IUnknown,
|
|
notificationType: DXCoreNotificationType,
|
|
callbackFunction: ?PFN_DXCORE_NOTIFICATION_CALLBACK,
|
|
callbackContext: ?*anyopaque,
|
|
eventCookie: ?*u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
},
|
|
UnregisterEventNotification: switch (@import("builtin").zig_backend) {
|
|
.stage1 => fn(
|
|
self: *const IDXCoreAdapterFactory,
|
|
eventCookie: u32,
|
|
) callconv(@import("std").os.windows.WINAPI) HRESULT,
|
|
else => *const fn(
|
|
self: *const IDXCoreAdapterFactory,
|
|
eventCookie: 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 IDXCoreAdapterFactory_CreateAdapterList(self: *const T, numAttributes: u32, filterAttributes: [*]const Guid, riid: ?*const Guid, ppvAdapterList: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXCoreAdapterFactory.VTable, @ptrCast(self.vtable)).CreateAdapterList(@as(*const IDXCoreAdapterFactory, @ptrCast(self)), numAttributes, filterAttributes, riid, ppvAdapterList);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapterFactory_GetAdapterByLuid(self: *const T, adapterLUID: ?*const LUID, riid: ?*const Guid, ppvAdapter: ?*?*anyopaque) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXCoreAdapterFactory.VTable, @ptrCast(self.vtable)).GetAdapterByLuid(@as(*const IDXCoreAdapterFactory, @ptrCast(self)), adapterLUID, riid, ppvAdapter);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapterFactory_IsNotificationTypeSupported(self: *const T, notificationType: DXCoreNotificationType) callconv(.Inline) bool {
|
|
return @as(*const IDXCoreAdapterFactory.VTable, @ptrCast(self.vtable)).IsNotificationTypeSupported(@as(*const IDXCoreAdapterFactory, @ptrCast(self)), notificationType);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapterFactory_RegisterEventNotification(self: *const T, dxCoreObject: ?*IUnknown, notificationType: DXCoreNotificationType, callbackFunction: ?PFN_DXCORE_NOTIFICATION_CALLBACK, callbackContext: ?*anyopaque, eventCookie: ?*u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXCoreAdapterFactory.VTable, @ptrCast(self.vtable)).RegisterEventNotification(@as(*const IDXCoreAdapterFactory, @ptrCast(self)), dxCoreObject, notificationType, callbackFunction, callbackContext, eventCookie);
|
|
}
|
|
// NOTE: method is namespaced with interface name to avoid conflicts for now
|
|
pub fn IDXCoreAdapterFactory_UnregisterEventNotification(self: *const T, eventCookie: u32) callconv(.Inline) HRESULT {
|
|
return @as(*const IDXCoreAdapterFactory.VTable, @ptrCast(self.vtable)).UnregisterEventNotification(@as(*const IDXCoreAdapterFactory, @ptrCast(self)), eventCookie);
|
|
}
|
|
};}
|
|
pub usingnamespace MethodMixin(@This());
|
|
};
|
|
|
|
|
|
//--------------------------------------------------------------------------------
|
|
// Section: Functions (1)
|
|
//--------------------------------------------------------------------------------
|
|
pub extern "dxcore" fn DXCoreCreateAdapterFactory(
|
|
riid: ?*const Guid,
|
|
ppvFactory: ?*?*anyopaque,
|
|
) 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 (4)
|
|
//--------------------------------------------------------------------------------
|
|
const Guid = @import("../zig.zig").Guid;
|
|
const HRESULT = @import("../foundation.zig").HRESULT;
|
|
const IUnknown = @import("../system/com.zig").IUnknown;
|
|
const LUID = @import("../foundation.zig").LUID;
|
|
|
|
test {
|
|
// The following '_ = <FuncPtrType>' lines are a workaround for https://github.com/ziglang/zig/issues/4476
|
|
if (@hasDecl(@This(), "PFN_DXCORE_NOTIFICATION_CALLBACK")) { _ = PFN_DXCORE_NOTIFICATION_CALLBACK; }
|
|
|
|
@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);
|
|
}
|
|
}
|