package vendor:directx/dxgi

Index

Types (173)
Constants (74)
Procedure Groups (0)

This section is empty.

Types

ADAPTER_DESC ¶

ADAPTER_DESC :: struct {
	Description:           [128]i16,
	VendorId:              u32,
	DeviceId:              u32,
	SubSysId:              u32,
	Revision:              u32,
	DedicatedVideoMemory:  uint,
	DedicatedSystemMemory: uint,
	SharedSystemMemory:    uint,
	AdapterLuid:           sys_windows.LUID,
}

ADAPTER_DESC1 ¶

ADAPTER_DESC1 :: struct {
	Description:           [128]i16,
	VendorId:              u32,
	DeviceId:              u32,
	SubSysId:              u32,
	Revision:              u32,
	DedicatedVideoMemory:  uint,
	DedicatedSystemMemory: uint,
	SharedSystemMemory:    uint,
	AdapterLuid:           sys_windows.LUID,
	Flags:                 u32,
}

ADAPTER_DESC2 ¶

ADAPTER_DESC2 :: struct {
	Description:                   [128]i16,
	VendorId:                      u32,
	DeviceId:                      u32,
	SubSysId:                      u32,
	Revision:                      u32,
	DedicatedVideoMemory:          uint,
	DedicatedSystemMemory:         uint,
	SharedSystemMemory:            uint,
	AdapterLuid:                   sys_windows.LUID,
	Flags:                         u32,
	GraphicsPreemptionGranularity: GRAPHICS_PREEMPTION_GRANULARITY,
	ComputePreemptionGranularity:  COMPUTE_PREEMPTION_GRANULARITY,
}

ADAPTER_FLAG ¶

ADAPTER_FLAG :: enum u32 {
	// TODO: convert to bit_set
	NONE        = 0, 
	REMOTE      = 1, 
	SOFTWARE    = 2, 
	FORCE_DWORD = 4294967295, 
}

ALPHA_MODE ¶

ALPHA_MODE :: enum i32 {
	UNSPECIFIED   = 0, 
	PREMULTIPLIED = 1, 
	STRAIGHT      = 2, 
	IGNORE        = 3, 
	FORCE_DWORD   = -1, 
}

BOOL ¶

BOOL :: sys_windows.BOOL

COLOR_SPACE_TYPE ¶

COLOR_SPACE_TYPE :: enum i32 {
	RGB_FULL_G22_NONE_P709           = 0, 
	RGB_FULL_G10_NONE_P709           = 1, 
	RGB_STUDIO_G22_NONE_P709         = 2, 
	RGB_STUDIO_G22_NONE_P2020        = 3, 
	RESERVED                         = 4, 
	YCBCR_FULL_G22_NONE_P709_X601    = 5, 
	YCBCR_STUDIO_G22_LEFT_P601       = 6, 
	YCBCR_FULL_G22_LEFT_P601         = 7, 
	YCBCR_STUDIO_G22_LEFT_P709       = 8, 
	YCBCR_FULL_G22_LEFT_P709         = 9, 
	YCBCR_STUDIO_G22_LEFT_P2020      = 10, 
	YCBCR_FULL_G22_LEFT_P2020        = 11, 
	RGB_FULL_G2084_NONE_P2020        = 12, 
	YCBCR_STUDIO_G2084_LEFT_P2020    = 13, 
	RGB_STUDIO_G2084_NONE_P2020      = 14, 
	YCBCR_STUDIO_G22_TOPLEFT_P2020   = 15, 
	YCBCR_STUDIO_G2084_TOPLEFT_P2020 = 16, 
	RGB_FULL_G22_NONE_P2020          = 17, 
	YCBCR_STUDIO_GHLG_TOPLEFT_P2020  = 18, 
	YCBCR_FULL_GHLG_TOPLEFT_P2020    = 19, 
	RGB_STUDIO_G24_NONE_P709         = 20, 
	RGB_STUDIO_G24_NONE_P2020        = 21, 
	YCBCR_STUDIO_G24_LEFT_P709       = 22, 
	YCBCR_STUDIO_G24_LEFT_P2020      = 23, 
	YCBCR_STUDIO_G24_TOPLEFT_P2020   = 24, 
	CUSTOM                           = -1, 
}

COMPUTE_PREEMPTION_GRANULARITY ¶

COMPUTE_PREEMPTION_GRANULARITY :: enum i32 {
	DMA_BUFFER_BOUNDARY   = 0, 
	DISPATCH_BOUNDARY     = 1, 
	THREAD_GROUP_BOUNDARY = 2, 
	THREAD_BOUNDARY       = 3, 
	INSTRUCTION_BOUNDARY  = 4, 
}

CPU_ACCESS ¶

CPU_ACCESS :: enum u32 {
	NONE       = 0, 
	DYNAMIC    = 1, 
	READ_WRITE = 2, 
	SCRATCH    = 3, 
	FIELD      = 15, 
}

D3DCOLORVALUE ¶

D3DCOLORVALUE :: struct {
	r: f32,
	g: f32,
	b: f32,
	a: f32,
}

DEBUG_ID ¶

DEBUG_ID :: sys_windows.GUID

DEBUG_RLO_FLAGS ¶

DEBUG_RLO_FLAGS :: enum u32 {
	// TODO: convert to bit_set
	SUMMARY         = 1, 
	DETAIL          = 2, 
	IGNORE_INTERNAL = 4, 
	ALL             = 7, 
}

DECODE_SWAP_CHAIN_DESC ¶

DECODE_SWAP_CHAIN_DESC :: struct {
	Flags: u32,
}

DISPLAY_COLOR_SPACE ¶

DISPLAY_COLOR_SPACE :: struct {
	PrimaryCoordinates: [8][2]f32,
	WhitePoints:        [16][2]f32,
}

ENUM_MODE ¶

ENUM_MODE :: enum u32 {
	INTERLACED      = 0, 
	SCALING         = 1, 
	STEREO          = 2, 
	DISABLED_STEREO = 3, 
}

ENUM_MODES ¶

ENUM_MODES :: distinct bit_set[ENUM_MODE; u32]

FORMAT ¶

FORMAT :: enum i32 {
	UNKNOWN                                 = 0, 
	R32G32B32A32_TYPELESS                   = 1, 
	R32G32B32A32_FLOAT                      = 2, 
	R32G32B32A32_UINT                       = 3, 
	R32G32B32A32_SINT                       = 4, 
	R32G32B32_TYPELESS                      = 5, 
	R32G32B32_FLOAT                         = 6, 
	R32G32B32_UINT                          = 7, 
	R32G32B32_SINT                          = 8, 
	R16G16B16A16_TYPELESS                   = 9, 
	R16G16B16A16_FLOAT                      = 10, 
	R16G16B16A16_UNORM                      = 11, 
	R16G16B16A16_UINT                       = 12, 
	R16G16B16A16_SNORM                      = 13, 
	R16G16B16A16_SINT                       = 14, 
	R32G32_TYPELESS                         = 15, 
	R32G32_FLOAT                            = 16, 
	R32G32_UINT                             = 17, 
	R32G32_SINT                             = 18, 
	R32G8X24_TYPELESS                       = 19, 
	D32_FLOAT_S8X24_UINT                    = 20, 
	R32_FLOAT_X8X24_TYPELESS                = 21, 
	X32_TYPELESS_G8X24_UINT                 = 22, 
	R10G10B10A2_TYPELESS                    = 23, 
	R10G10B10A2_UNORM                       = 24, 
	R10G10B10A2_UINT                        = 25, 
	R11G11B10_FLOAT                         = 26, 
	R8G8B8A8_TYPELESS                       = 27, 
	R8G8B8A8_UNORM                          = 28, 
	R8G8B8A8_UNORM_SRGB                     = 29, 
	R8G8B8A8_UINT                           = 30, 
	R8G8B8A8_SNORM                          = 31, 
	R8G8B8A8_SINT                           = 32, 
	R16G16_TYPELESS                         = 33, 
	R16G16_FLOAT                            = 34, 
	R16G16_UNORM                            = 35, 
	R16G16_UINT                             = 36, 
	R16G16_SNORM                            = 37, 
	R16G16_SINT                             = 38, 
	R32_TYPELESS                            = 39, 
	D32_FLOAT                               = 40, 
	R32_FLOAT                               = 41, 
	R32_UINT                                = 42, 
	R32_SINT                                = 43, 
	R24G8_TYPELESS                          = 44, 
	D24_UNORM_S8_UINT                       = 45, 
	R24_UNORM_X8_TYPELESS                   = 46, 
	X24_TYPELESS_G8_UINT                    = 47, 
	R8G8_TYPELESS                           = 48, 
	R8G8_UNORM                              = 49, 
	R8G8_UINT                               = 50, 
	R8G8_SNORM                              = 51, 
	R8G8_SINT                               = 52, 
	R16_TYPELESS                            = 53, 
	R16_FLOAT                               = 54, 
	D16_UNORM                               = 55, 
	R16_UNORM                               = 56, 
	R16_UINT                                = 57, 
	R16_SNORM                               = 58, 
	R16_SINT                                = 59, 
	R8_TYPELESS                             = 60, 
	R8_UNORM                                = 61, 
	R8_UINT                                 = 62, 
	R8_SNORM                                = 63, 
	R8_SINT                                 = 64, 
	A8_UNORM                                = 65, 
	R1_UNORM                                = 66, 
	R9G9B9E5_SHAREDEXP                      = 67, 
	R8G8_B8G8_UNORM                         = 68, 
	G8R8_G8B8_UNORM                         = 69, 
	BC1_TYPELESS                            = 70, 
	BC1_UNORM                               = 71, 
	BC1_UNORM_SRGB                          = 72, 
	BC2_TYPELESS                            = 73, 
	BC2_UNORM                               = 74, 
	BC2_UNORM_SRGB                          = 75, 
	BC3_TYPELESS                            = 76, 
	BC3_UNORM                               = 77, 
	BC3_UNORM_SRGB                          = 78, 
	BC4_TYPELESS                            = 79, 
	BC4_UNORM                               = 80, 
	BC4_SNORM                               = 81, 
	BC5_TYPELESS                            = 82, 
	BC5_UNORM                               = 83, 
	BC5_SNORM                               = 84, 
	B5G6R5_UNORM                            = 85, 
	B5G5R5A1_UNORM                          = 86, 
	B8G8R8A8_UNORM                          = 87, 
	B8G8R8X8_UNORM                          = 88, 
	R10G10B10_XR_BIAS_A2_UNORM              = 89, 
	B8G8R8A8_TYPELESS                       = 90, 
	B8G8R8A8_UNORM_SRGB                     = 91, 
	B8G8R8X8_TYPELESS                       = 92, 
	B8G8R8X8_UNORM_SRGB                     = 93, 
	BC6H_TYPELESS                           = 94, 
	BC6H_UF16                               = 95, 
	BC6H_SF16                               = 96, 
	BC7_TYPELESS                            = 97, 
	BC7_UNORM                               = 98, 
	BC7_UNORM_SRGB                          = 99, 
	AYUV                                    = 100, 
	Y410                                    = 101, 
	Y416                                    = 102, 
	NV12                                    = 103, 
	P010                                    = 104, 
	P016                                    = 105, 
	_420_OPAQUE                             = 106, 
	YUY2                                    = 107, 
	Y210                                    = 108, 
	Y216                                    = 109, 
	NV11                                    = 110, 
	AI44                                    = 111, 
	IA44                                    = 112, 
	P8                                      = 113, 
	A8P8                                    = 114, 
	B4G4R4A4_UNORM                          = 115, 
	P208                                    = 130, 
	V208                                    = 131, 
	V408                                    = 132, 
	SAMPLER_FEEDBACK_MIN_MIP_OPAQUE         = 189, 
	SAMPLER_FEEDBACK_MIP_REGION_USED_OPAQUE = 190, 
	FORCE_UINT                              = -1, 
}

FRAME_PRESENTATION_MODE ¶

FRAME_PRESENTATION_MODE :: enum i32 {
	COMPOSED            = 0, 
	OVERLAY             = 1, 
	NONE                = 2, 
	COMPOSITION_FAILURE = 3, 
}

FRAME_STATISTICS ¶

FRAME_STATISTICS :: struct {
	PresentCount:        u32,
	PresentRefreshCount: u32,
	SyncRefreshCount:    u32,
	SyncQPCTime:         sys_windows.LARGE_INTEGER,
	SyncGPUTime:         sys_windows.LARGE_INTEGER,
}

FRAME_STATISTICS_MEDIA ¶

FRAME_STATISTICS_MEDIA :: struct {
	PresentCount:            u32,
	PresentRefreshCount:     u32,
	SyncRefreshCount:        u32,
	SyncQPCTime:             sys_windows.LARGE_INTEGER,
	SyncGPUTime:             sys_windows.LARGE_INTEGER,
	CompositionMode:         FRAME_PRESENTATION_MODE,
	ApprovedPresentDuration: u32,
}

GAMMA_CONTROL ¶

GAMMA_CONTROL :: struct {
	Scale:      RGB,
	Offset:     RGB,
	GammaCurve: [1025]RGB,
}

GAMMA_CONTROL_CAPABILITIES ¶

GAMMA_CONTROL_CAPABILITIES :: struct {
	ScaleAndOffsetSupported: sys_windows.BOOL,
	MaxConvertedValue:       f32,
	MinConvertedValue:       f32,
	NumGammaControlPoints:   u32,
	ControlPointPositions:   [1025]f32,
}

GRAPHICS_PREEMPTION_GRANULARITY ¶

GRAPHICS_PREEMPTION_GRANULARITY :: enum i32 {
	DMA_BUFFER_BOUNDARY  = 0, 
	PRIMITIVE_BOUNDARY   = 1, 
	TRIANGLE_BOUNDARY    = 2, 
	PIXEL_BOUNDARY       = 3, 
	INSTRUCTION_BOUNDARY = 4, 
}

GUID ¶

GUID :: sys_windows.GUID

HANDLE ¶

HANDLE :: sys_windows.HANDLE

HDC ¶

HDC :: sys_windows.HANDLE

HMODULE ¶

HMODULE :: sys_windows.HMODULE

HMONITOR ¶

HMONITOR :: sys_windows.HMONITOR

HRESULT ¶

HRESULT :: sys_windows.HRESULT

HWND ¶

HWND :: sys_windows.HWND

IAdapter ¶

IAdapter :: struct #raw_union {
	idxgiobject:         IObject,
	idxgiadapter_vtable: ^IAdapter_VTable,
}

IAdapter1 ¶

IAdapter1 :: struct #raw_union {
	idxgiadapter:         IAdapter,
	idxgiadapter1_vtable: ^IAdapter1_VTable,
}

IAdapter1_VTable ¶

IAdapter1_VTable :: struct {
	idxgiadapter_vtable: IAdapter_VTable,
	GetDesc1:            proc "stdcall" (this: ^IAdapter1, pDesc: ^ADAPTER_DESC1) -> sys_windows.HRESULT,
}

IAdapter2 ¶

IAdapter2 :: struct #raw_union {
	idxgiadapter1:        IAdapter1,
	idxgiadapter2_vtable: ^IAdapter2_VTable,
}

IAdapter2_VTable ¶

IAdapter2_VTable :: struct {
	idxgiadapter1_vtable: IAdapter1_VTable,
	GetDesc2:             proc "stdcall" (this: ^IAdapter2, pDesc: ^ADAPTER_DESC2) -> sys_windows.HRESULT,
}

IAdapter3 ¶

IAdapter3 :: struct #raw_union {
	idxgiadapter2:        IAdapter2,
	idxgiadapter3_vtable: ^IAdapter3_VTable,
}

IAdapter3_VTable ¶

IAdapter3_VTable :: struct {
	idxgiadapter2_vtable:                                 IAdapter2_VTable,
	RegisterHardwareContentProtectionTeardownStatusEvent: proc "stdcall" (this: ^IAdapter3, hEvent: sys_windows.HANDLE, pdwCookie: ^u32) -> sys_windows.HRESULT,
	UnregisterHardwareContentProtectionTeardownStatus:    proc "stdcall" (this: ^IAdapter3, dwCookie: u32),
	QueryVideoMemoryInfo:                                 proc "stdcall" (this: ^IAdapter3, NodeIndex: u32, MemorySegmentGroup: MEMORY_SEGMENT_GROUP, pVideoMemoryInfo: ^QUERY_VIDEO_MEMORY_INFO) -> sys_windows.HRESULT,
	SetVideoMemoryReservation:                            proc "stdcall" (this: ^IAdapter3, NodeIndex: u32, MemorySegmentGroup: MEMORY_SEGMENT_GROUP, Reservation: u64) -> sys_windows.HRESULT,
	RegisterVideoMemoryBudgetChangeNotificationEvent:     proc "stdcall" (this: ^IAdapter3, hEvent: sys_windows.HANDLE, pdwCookie: ^u32) -> sys_windows.HRESULT,
	UnregisterVideoMemoryBudgetChangeNotification:        proc "stdcall" (this: ^IAdapter3, dwCookie: u32),
}

IAdapter_VTable ¶

IAdapter_VTable :: struct {
	idxgiobject_vtable:    IObject_VTable,
	EnumOutputs:           proc "stdcall" (this: ^IAdapter, Output: u32, ppOutput: ^^IOutput) -> sys_windows.HRESULT,
	GetDesc:               proc "stdcall" (this: ^IAdapter, pDesc: ^ADAPTER_DESC) -> sys_windows.HRESULT,
	CheckInterfaceSupport: proc "stdcall" (this: ^IAdapter, InterfaceName: ^sys_windows.GUID, pUMDVersion: ^sys_windows.LARGE_INTEGER) -> sys_windows.HRESULT,
}

IDebug ¶

IDebug :: struct #raw_union {
	iunknown:          IUnknown,
	idxgidebug_vtable: ^IDebug_VTable,
}

IDebug1 ¶

IDebug1 :: struct #raw_union {
	idxgidebug:         IDebug,
	idxgidebug1_vtable: ^IDebug1_VTable,
}

IDebug1_VTable ¶

IDebug1_VTable :: struct {
	idxgidebug_vtable:              IDebug_VTable,
	EnableLeakTrackingForThread:    proc "stdcall" (this: ^IDebug1),
	DisableLeakTrackingForThread:   proc "stdcall" (this: ^IDebug1),
	IsLeakTrackingEnabledForThread: proc "stdcall" (this: ^IDebug1) -> sys_windows.BOOL,
}

IDebug_VTable ¶

IDebug_VTable :: struct {
	iunknown_vtable:   IUnknown_VTable,
	ReportLiveObjects: proc "stdcall" (this: ^IDebug, apiid: sys_windows.GUID, flags: DEBUG_RLO_FLAGS),
}

IDecodeSwapChain ¶

IDecodeSwapChain :: struct #raw_union {
	iunknown:                    IUnknown,
	idxgidecodeswapchain_vtable: ^IDecodeSwapChain_VTable,
}

IDecodeSwapChain_VTable ¶

IDecodeSwapChain_VTable :: struct {
	iunknown_vtable: IUnknown_VTable,
	PresentBuffer:   proc "stdcall" (this: ^IDecodeSwapChain, BufferToPresent: u32, SyncInterval: u32, Flags: u32) -> sys_windows.HRESULT,
	SetSourceRect:   proc "stdcall" (this: ^IDecodeSwapChain, pRect: ^sys_windows.RECT) -> sys_windows.HRESULT,
	SetTargetRect:   proc "stdcall" (this: ^IDecodeSwapChain, pRect: ^sys_windows.RECT) -> sys_windows.HRESULT,
	SetDestSize:     proc "stdcall" (this: ^IDecodeSwapChain, Width: u32, Height: u32) -> sys_windows.HRESULT,
	GetSourceRect:   proc "stdcall" (this: ^IDecodeSwapChain, pRect: ^sys_windows.RECT) -> sys_windows.HRESULT,
	GetTargetRect:   proc "stdcall" (this: ^IDecodeSwapChain, pRect: ^sys_windows.RECT) -> sys_windows.HRESULT,
	GetDestSize:     proc "stdcall" (this: ^IDecodeSwapChain, pWidth: ^u32, pHeight: ^u32) -> sys_windows.HRESULT,
	SetColorSpace:   proc "stdcall" (this: ^IDecodeSwapChain, ColorSpace: MULTIPLANE_OVERLAY_YCbCr_FLAGS) -> sys_windows.HRESULT,
	GetColorSpace:   proc "stdcall" (this: ^IDecodeSwapChain) -> MULTIPLANE_OVERLAY_YCbCr_FLAGS,
}

IDevice ¶

IDevice :: struct #raw_union {
	idxgiobject:        IObject,
	idxgidevice_vtable: ^IDevice_VTable,
}

IDevice1 ¶

IDevice1 :: struct #raw_union {
	idxgidevice:         IDevice,
	idxgidevice1_vtable: ^IDevice1_VTable,
}

IDevice1_VTable ¶

IDevice1_VTable :: struct {
	idxgidevice_vtable:     IDevice_VTable,
	SetMaximumFrameLatency: proc "stdcall" (this: ^IDevice1, MaxLatency: u32) -> sys_windows.HRESULT,
	GetMaximumFrameLatency: proc "stdcall" (this: ^IDevice1, pMaxLatency: ^u32) -> sys_windows.HRESULT,
}

IDevice2 ¶

IDevice2 :: struct #raw_union {
	idxgidevice1:        IDevice1,
	idxgidevice2_vtable: ^IDevice2_VTable,
}

IDevice2_VTable ¶

IDevice2_VTable :: struct {
	idxgidevice1_vtable: IDevice1_VTable,
	OfferResources:      proc "stdcall" (this: ^IDevice2, NumResources: u32, ppResources: ^^IResource, Priority: OFFER_RESOURCE_PRIORITY) -> sys_windows.HRESULT,
	ReclaimResources:    proc "stdcall" (this: ^IDevice2, NumResources: u32, ppResources: ^^IResource, pDiscarded: ^sys_windows.BOOL) -> sys_windows.HRESULT,
	EnqueueSetEvent:     proc "stdcall" (this: ^IDevice2, hEvent: sys_windows.HANDLE) -> sys_windows.HRESULT,
}

IDevice3 ¶

IDevice3 :: struct #raw_union {
	idxgidevice2:        IDevice2,
	idxgidevice3_vtable: ^IDevice3_VTable,
}

IDevice3_VTable ¶

IDevice3_VTable :: struct {
	idxgidevice2_vtable: IDevice2_VTable,
	Trim:                proc "stdcall" (this: ^IDevice3),
}

IDeviceSubObject ¶

IDeviceSubObject :: struct #raw_union {
	idxgiobject:                 IObject,
	idxgidevicesubobject_vtable: ^IDeviceSubObject_VTable,
}

IDeviceSubObject_VTable ¶

IDeviceSubObject_VTable :: struct {
	idxgiobject_vtable: IObject_VTable,
	GetDevice:          proc "stdcall" (this: ^IDeviceSubObject, riid: ^sys_windows.GUID, ppDevice: ^rawptr) -> sys_windows.HRESULT,
}

IDevice_VTable ¶

IDevice_VTable :: struct {
	idxgiobject_vtable:     IObject_VTable,
	GetAdapter:             proc "stdcall" (this: ^IDevice, pAdapter: ^^IAdapter) -> sys_windows.HRESULT,
	CreateSurface:          proc "stdcall" (this: ^IDevice, pDesc: ^SURFACE_DESC, NumSurfaces: u32, Usage: USAGE, pSharedResource: ^SHARED_RESOURCE, ppSurface: ^^ISurface) -> sys_windows.HRESULT,
	QueryResourceResidency: proc "stdcall" (this: ^IDevice, ppResources: ^^IUnknown, pResidencyStatus: ^RESIDENCY, NumResources: u32) -> sys_windows.HRESULT,
	SetGPUThreadPriority:   proc "stdcall" (this: ^IDevice, Priority: i32) -> sys_windows.HRESULT,
	GetGPUThreadPriority:   proc "stdcall" (this: ^IDevice, pPriority: ^i32) -> sys_windows.HRESULT,
}

IDisplayControl ¶

IDisplayControl :: struct #raw_union {
	iunknown:                   IUnknown,
	idxgidisplaycontrol_vtable: ^IDisplayControl_VTable,
}

IDisplayControl_VTable ¶

IDisplayControl_VTable :: struct {
	iunknown_vtable:  IUnknown_VTable,
	IsStereoEnabled:  proc "stdcall" (this: ^IDisplayControl) -> sys_windows.BOOL,
	SetStereoEnabled: proc "stdcall" (this: ^IDisplayControl, enabled: sys_windows.BOOL),
}

IFactory ¶

IFactory :: struct #raw_union {
	idxgiobject:         IObject,
	idxgifactory_vtable: ^IFactory_VTable,
}

IFactory1 ¶

IFactory1 :: struct #raw_union {
	idxgifactory:         IFactory,
	idxgifactory1_vtable: ^IFactory1_VTable,
}

IFactory1_VTable ¶

IFactory1_VTable :: struct {
	idxgifactory_vtable: IFactory_VTable,
	EnumAdapters1:       proc "stdcall" (this: ^IFactory1, Adapter: u32, ppAdapter: ^^IAdapter1) -> sys_windows.HRESULT,
	IsCurrent:           proc "stdcall" (this: ^IFactory1) -> sys_windows.BOOL,
}

IFactory2 ¶

IFactory2 :: struct #raw_union {
	idxgifactory1:        IFactory1,
	idxgifactory2_vtable: ^IFactory2_VTable,
}

IFactory2_VTable ¶

IFactory2_VTable :: struct {
	idxgifactory1_vtable:          IFactory1_VTable,
	IsWindowedStereoEnabled:       proc "stdcall" (this: ^IFactory2) -> sys_windows.BOOL,
	CreateSwapChainForHwnd:        proc "stdcall" (this: ^IFactory2, pDevice: ^IUnknown, hWnd: sys_windows.HWND, pDesc: ^SWAP_CHAIN_DESC1, pFullscreenDesc: ^SWAP_CHAIN_FULLSCREEN_DESC, pRestrictToOutput: ^IOutput, ppSwapChain: ^^ISwapChain1) -> sys_windows.HRESULT,
	CreateSwapChainForCoreWindow:  proc "stdcall" (this: ^IFactory2, pDevice: ^IUnknown, pWindow: ^IUnknown, pDesc: ^SWAP_CHAIN_DESC1, pRestrictToOutput: ^IOutput, ppSwapChain: ^^ISwapChain1) -> sys_windows.HRESULT,
	GetSharedResourceAdapterLuid:  proc "stdcall" (this: ^IFactory2, hResource: sys_windows.HANDLE, pLuid: ^sys_windows.LUID) -> sys_windows.HRESULT,
	RegisterStereoStatusWindow:    proc "stdcall" (this: ^IFactory2, WindowHandle: sys_windows.HWND, wMsg: u32, pdwCookie: ^u32) -> sys_windows.HRESULT,
	RegisterStereoStatusEvent:     proc "stdcall" (this: ^IFactory2, hEvent: sys_windows.HANDLE, pdwCookie: ^u32) -> sys_windows.HRESULT,
	UnregisterStereoStatus:        proc "stdcall" (this: ^IFactory2, dwCookie: u32),
	RegisterOcclusionStatusWindow: proc "stdcall" (this: ^IFactory2, WindowHandle: sys_windows.HWND, wMsg: u32, pdwCookie: ^u32) -> sys_windows.HRESULT,
	RegisterOcclusionStatusEvent:  proc "stdcall" (this: ^IFactory2, hEvent: sys_windows.HANDLE, pdwCookie: ^u32) -> sys_windows.HRESULT,
	UnregisterOcclusionStatus:     proc "stdcall" (this: ^IFactory2, dwCookie: u32),
	CreateSwapChainForComposition: proc "stdcall" (this: ^IFactory2, pDevice: ^IUnknown, pDesc: ^SWAP_CHAIN_DESC1, pRestrictToOutput: ^IOutput, ppSwapChain: ^^ISwapChain1) -> sys_windows.HRESULT,
}

IFactory3 ¶

IFactory3 :: struct #raw_union {
	idxgifactory2:        IFactory2,
	idxgifactory3_vtable: ^IFactory3_VTable,
}

IFactory3_VTable ¶

IFactory3_VTable :: struct {
	idxgifactory2_vtable: IFactory2_VTable,
	GetCreationFlags:     proc "stdcall" (this: ^IFactory3) -> u32,
}

IFactory4 ¶

IFactory4 :: struct #raw_union {
	idxgifactory3:        IFactory3,
	idxgifactory4_vtable: ^IFactory4_VTable,
}

IFactory4_VTable ¶

IFactory4_VTable :: struct {
	idxgifactory3_vtable: IFactory3_VTable,
	EnumAdapterByLuid:    proc "stdcall" (this: ^IFactory4, AdapterLuid: sys_windows.LUID, riid: ^sys_windows.GUID, ppvAdapter: ^rawptr) -> sys_windows.HRESULT,
	EnumWarpAdapter:      proc "stdcall" (this: ^IFactory4, riid: ^sys_windows.GUID, ppvAdapter: ^rawptr) -> sys_windows.HRESULT,
}

IFactoryMedia ¶

IFactoryMedia :: struct #raw_union {
	iunknown:                 IUnknown,
	idxgifactorymedia_vtable: ^IFactoryMedia_VTable,
}

IFactoryMedia_VTable ¶

IFactoryMedia_VTable :: struct {
	iunknown_vtable:                                  IUnknown_VTable,
	CreateSwapChainForCompositionSurfaceHandle:       proc "stdcall" (this: ^IFactoryMedia, pDevice: ^IUnknown, hSurface: sys_windows.HANDLE, pDesc: ^SWAP_CHAIN_DESC1, pRestrictToOutput: ^IOutput, ppSwapChain: ^^ISwapChain1) -> sys_windows.HRESULT,
	CreateDecodeSwapChainForCompositionSurfaceHandle: proc "stdcall" (this: ^IFactoryMedia, pDevice: ^IUnknown, hSurface: sys_windows.HANDLE, pDesc: ^DECODE_SWAP_CHAIN_DESC, pYuvDecodeBuffers: ^IResource, pRestrictToOutput: ^IOutput, ppSwapChain: ^^IDecodeSwapChain) -> sys_windows.HRESULT,
}

IFactory_VTable ¶

IFactory_VTable :: struct {
	idxgiobject_vtable:    IObject_VTable,
	EnumAdapters:          proc "stdcall" (this: ^IFactory, Adapter: u32, ppAdapter: ^^IAdapter) -> sys_windows.HRESULT,
	MakeWindowAssociation: proc "stdcall" (this: ^IFactory, WindowHandle: sys_windows.HWND, Flags: u32) -> sys_windows.HRESULT,
	GetWindowAssociation:  proc "stdcall" (this: ^IFactory, pWindowHandle: ^sys_windows.HWND) -> sys_windows.HRESULT,
	CreateSwapChain:       proc "stdcall" (this: ^IFactory, pDevice: ^IUnknown, pDesc: ^SWAP_CHAIN_DESC, ppSwapChain: ^^ISwapChain) -> sys_windows.HRESULT,
	CreateSoftwareAdapter: proc "stdcall" (this: ^IFactory, Module: sys_windows.HMODULE, ppAdapter: ^^IAdapter) -> sys_windows.HRESULT,
}

IID ¶

IID :: sys_windows.GUID

IInfoQueue ¶

IInfoQueue :: struct #raw_union {
	iunknown:              IUnknown,
	idxgiinfoqueue_vtable: ^IInfoQueue_VTable,
}

IInfoQueue_VTable ¶

IInfoQueue_VTable :: struct {
	iunknown_vtable:                               IUnknown_VTable,
	SetMessageCountLimit:                          proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, MessageCountLimit: u64) -> sys_windows.HRESULT,
	ClearStoredMessages:                           proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID),
	GetMessage:                                    proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, MessageIndex: u64, pMessage: ^INFO_QUEUE_MESSAGE, pMessageByteLength: ^uint) -> sys_windows.HRESULT,
	GetNumStoredMessagesAllowedByRetrievalFilters: proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> u64,
	GetNumStoredMessages:                          proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> u64,
	GetNumMessagesDiscardedByMessageCountLimit:    proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> u64,
	GetMessageCountLimit:                          proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> u64,
	GetNumMessagesAllowedByStorageFilter:          proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> u64,
	GetNumMessagesDeniedByStorageFilter:           proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> u64,
	AddStorageFilterEntries:                       proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, pFilter: INFO_QUEUE_FILTER) -> sys_windows.HRESULT,
	GetStorageFilter:                              proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, pFilter: ^INFO_QUEUE_FILTER, pFilterByteLength: ^uint) -> sys_windows.HRESULT,
	ClearStorageFilter:                            proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID),
	PushEmptyStorageFilter:                        proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> sys_windows.HRESULT,
	PushDenyAllStorageFilter:                      proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> sys_windows.HRESULT,
	PushCopyOfStorageFilter:                       proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> sys_windows.HRESULT,
	PushStorageFilter:                             proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, pFilter: ^INFO_QUEUE_FILTER) -> sys_windows.HRESULT,
	PopStorageFilter:                              proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID),
	GetStorageFilterStackSize:                     proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> u32,
	AddRetrievalFilterEntries:                     proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, pFilter: ^INFO_QUEUE_FILTER) -> sys_windows.HRESULT,
	GetRetrievalFilter:                            proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, pFilter: ^INFO_QUEUE_FILTER, pFilterByteLength: ^uint) -> sys_windows.HRESULT,
	ClearRetrievalFilter:                          proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID),
	PushEmptyRetrievalFilter:                      proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> sys_windows.HRESULT,
	PushDenyAllRetrievalFilter:                    proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> sys_windows.HRESULT,
	PushCopyOfRetrievalFilter:                     proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> sys_windows.HRESULT,
	PushRetrievalFilter:                           proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, pFilter: ^INFO_QUEUE_FILTER) -> sys_windows.HRESULT,
	PopRetrievalFilter:                            proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID),
	GetRetrievalFilterStackSize:                   proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> u32,
	AddMessage:                                    proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, Category: INFO_QUEUE_MESSAGE_CATEGORY, Severity: INFO_QUEUE_MESSAGE_SEVERITY, ID: i32, pDescription: cstring) -> sys_windows.HRESULT,
	AddApplicationMessage:                         proc "stdcall" (this: ^IInfoQueue, Severity: INFO_QUEUE_MESSAGE_SEVERITY, pDescription: cstring) -> sys_windows.HRESULT,
	SetBreakOnCategory:                            proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, Category: INFO_QUEUE_MESSAGE_CATEGORY, bEnable: sys_windows.BOOL) -> sys_windows.HRESULT,
	SetBreakOnSeverity:                            proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, Severity: INFO_QUEUE_MESSAGE_SEVERITY, bEnable: sys_windows.BOOL) -> sys_windows.HRESULT,
	SetBreakOnID:                                  proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, ID: i32, bEnable: sys_windows.BOOL) -> sys_windows.HRESULT,
	GetBreakOnCategory:                            proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, Category: INFO_QUEUE_MESSAGE_CATEGORY) -> sys_windows.BOOL,
	GetBreakOnSeverity:                            proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, Severity: INFO_QUEUE_MESSAGE_SEVERITY) -> sys_windows.BOOL,
	GetBreakOnID:                                  proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, ID: i32) -> sys_windows.BOOL,
	SetMuteDebugOutput:                            proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID, bMute: sys_windows.BOOL),
	GetMuteDebugOutput:                            proc "stdcall" (this: ^IInfoQueue, Producer: sys_windows.GUID) -> sys_windows.BOOL,
}

IKeyedMutex ¶

IKeyedMutex :: struct #raw_union {
	idxgidevicesubobject:   IDeviceSubObject,
	idxgikeyedmutex_vtable: ^IKeyedMutex_VTable,
}

IKeyedMutex_VTable ¶

IKeyedMutex_VTable :: struct {
	idxgidevicesubobject_vtable: IDeviceSubObject_VTable,
	AcquireSync:                 proc "stdcall" (this: ^IKeyedMutex, Key: u64, dwMilliseconds: u32) -> sys_windows.HRESULT,
	ReleaseSync:                 proc "stdcall" (this: ^IKeyedMutex, Key: u64) -> sys_windows.HRESULT,
}

INFO_QUEUE_FILTER ¶

INFO_QUEUE_FILTER :: struct {
	AllowList: INFO_QUEUE_FILTER_DESC,
	DenyList:  INFO_QUEUE_FILTER_DESC,
}

INFO_QUEUE_FILTER_DESC ¶

INFO_QUEUE_FILTER_DESC :: struct {
	NumCategories: u32,
	pCategoryList: [^]INFO_QUEUE_MESSAGE_CATEGORY,
	NumSeverities: u32,
	pSeverityList: [^]INFO_QUEUE_MESSAGE_SEVERITY,
	NumIDs:        u32,
	pIDList:       [^]i32,
}

INFO_QUEUE_MESSAGE ¶

INFO_QUEUE_MESSAGE :: struct {
	Producer:              sys_windows.GUID,
	Category:              INFO_QUEUE_MESSAGE_CATEGORY,
	Severity:              INFO_QUEUE_MESSAGE_SEVERITY,
	ID:                    i32,
	pDescription:          [^]u8,
	DescriptionByteLength: uint,
}

INFO_QUEUE_MESSAGE_CATEGORY ¶

INFO_QUEUE_MESSAGE_CATEGORY :: enum u32 {
	UNKNOWN               = 0, 
	MISCELLANEOUS         = 1, 
	INITIALIZATION        = 2, 
	CLEANUP               = 3, 
	COMPILATION           = 4, 
	STATE_CREATION        = 5, 
	STATE_SETTING         = 6, 
	STATE_GETTING         = 7, 
	RESOURCE_MANIPULATION = 8, 
	EXECUTION             = 9, 
	SHADER                = 10, 
}

INFO_QUEUE_MESSAGE_ID ¶

INFO_QUEUE_MESSAGE_ID :: i32

INFO_QUEUE_MESSAGE_SEVERITY ¶

INFO_QUEUE_MESSAGE_SEVERITY :: enum u32 {
	CORRUPTION = 0, 
	ERROR      = 1, 
	WARNING    = 2, 
	INFO       = 3, 
	MESSAGE    = 4, 
}

IObject ¶

IObject :: struct #raw_union {
	iunknown: IUnknown,
	vtable:   ^IObject_VTable,
}

IObject_VTable ¶

IObject_VTable :: struct {
	iunknown_vtable:         IUnknown_VTable,
	SetPrivateData:          proc "stdcall" (this: ^IObject, Name: ^sys_windows.GUID, DataSize: u32, pData: rawptr) -> sys_windows.HRESULT,
	SetPrivateDataInterface: proc "stdcall" (this: ^IObject, Name: ^sys_windows.GUID, pUnknown: ^IUnknown) -> sys_windows.HRESULT,
	GetPrivateData:          proc "stdcall" (this: ^IObject, Name: ^sys_windows.GUID, pDataSize: ^u32, pData: rawptr) -> sys_windows.HRESULT,
	GetParent:               proc "stdcall" (this: ^IObject, riid: ^sys_windows.GUID, ppParent: ^rawptr) -> sys_windows.HRESULT,
}

IOutput ¶

IOutput :: struct #raw_union {
	idxgiobject:        IObject,
	idxgioutput_vtable: ^IOutput_VTable,
}

IOutput1 ¶

IOutput1 :: struct #raw_union {
	idxgioutput:         IOutput,
	idxgioutput1_vtable: ^IOutput1_VTable,
}

IOutput1_VTable ¶

IOutput1_VTable :: struct {
	idxgioutput_vtable:       IOutput_VTable,
	GetDisplayModeList1:      proc "stdcall" (this: ^IOutput1, EnumFormat: FORMAT, Flags: u32, pNumModes: ^u32, pDesc: ^MODE_DESC1) -> sys_windows.HRESULT,
	FindClosestMatchingMode1: proc "stdcall" (this: ^IOutput1, pModeToMatch: ^MODE_DESC1, pClosestMatch: ^MODE_DESC1, pConcernedDevice: ^IUnknown) -> sys_windows.HRESULT,
	GetDisplaySurfaceData1:   proc "stdcall" (this: ^IOutput1, pDestination: ^IResource) -> sys_windows.HRESULT,
	DuplicateOutput:          proc "stdcall" (this: ^IOutput1, pDevice: ^IUnknown, ppOutputDuplication: ^^IOutputDuplication) -> sys_windows.HRESULT,
}

IOutput2 ¶

IOutput2 :: struct #raw_union {
	idxgioutput1:        IOutput1,
	idxgioutput2_vtable: ^IOutput2_VTable,
}

IOutput2_VTable ¶

IOutput2_VTable :: struct {
	idxgioutput1_vtable: IOutput1_VTable,
	SupportsOverlays:    proc "stdcall" (this: ^IOutput2) -> sys_windows.BOOL,
}

IOutput3 ¶

IOutput3 :: struct #raw_union {
	idxgioutput2:        IOutput2,
	idxgioutput3_vtable: ^IOutput3_VTable,
}

IOutput3_VTable ¶

IOutput3_VTable :: struct {
	idxgioutput2_vtable: IOutput2_VTable,
	CheckOverlaySupport: proc "stdcall" (this: ^IOutput3, EnumFormat: FORMAT, pConcernedDevice: ^IUnknown, pFlags: ^u32) -> sys_windows.HRESULT,
}

IOutput4 ¶

IOutput4 :: struct #raw_union {
	idxgioutput3:        IOutput3,
	idxgioutput4_vtable: ^IOutput4_VTable,
}

IOutput4_VTable ¶

IOutput4_VTable :: struct {
	idxgioutput3_vtable:           IOutput3_VTable,
	CheckOverlayColorSpaceSupport: proc "stdcall" (this: ^IOutput4, Format: FORMAT, ColorSpace: COLOR_SPACE_TYPE, pConcernedDevice: ^IUnknown, pFlags: ^u32) -> sys_windows.HRESULT,
}

IOutputDuplication ¶

IOutputDuplication :: struct #raw_union {
	idxgiobject:                   IObject,
	idxgioutputduplication_vtable: ^IOutputDuplication_VTable,
}

IOutputDuplication_VTable ¶

IOutputDuplication_VTable :: struct {
	idxgiobject_vtable:   IObject_VTable,
	GetDesc:              proc "stdcall" (this: ^IOutputDuplication, pDesc: ^OUTDUPL_DESC),
	AcquireNextFrame:     proc "stdcall" (this: ^IOutputDuplication, TimeoutInMilliseconds: u32, pFrameInfo: ^OUTDUPL_FRAME_INFO, ppDesktopResource: ^^IResource) -> sys_windows.HRESULT,
	GetFrameDirtyRects:   proc "stdcall" (this: ^IOutputDuplication, DirtyRectsBufferSize: u32, pDirtyRectsBuffer: ^sys_windows.RECT, pDirtyRectsBufferSizeRequired: ^u32) -> sys_windows.HRESULT,
	GetFrameMoveRects:    proc "stdcall" (this: ^IOutputDuplication, MoveRectsBufferSize: u32, pMoveRectBuffer: ^OUTDUPL_MOVE_RECT, pMoveRectsBufferSizeRequired: ^u32) -> sys_windows.HRESULT,
	GetFramePointerShape: proc "stdcall" (this: ^IOutputDuplication, PointerShapeBufferSize: u32, pPointerShapeBuffer: rawptr, pPointerShapeBufferSizeRequired: ^u32, pPointerShapeInfo: ^OUTDUPL_POINTER_SHAPE_INFO) -> sys_windows.HRESULT,
	MapDesktopSurface:    proc "stdcall" (this: ^IOutputDuplication, pLockedRect: ^MAPPED_RECT) -> sys_windows.HRESULT,
	UnMapDesktopSurface:  proc "stdcall" (this: ^IOutputDuplication) -> sys_windows.HRESULT,
	ReleaseFrame:         proc "stdcall" (this: ^IOutputDuplication) -> sys_windows.HRESULT,
}

IOutput_VTable ¶

IOutput_VTable :: struct {
	idxgiobject_vtable:          IObject_VTable,
	GetDesc:                     proc "stdcall" (this: ^IOutput, pDesc: ^OUTPUT_DESC) -> sys_windows.HRESULT,
	GetDisplayModeList:          proc "stdcall" (this: ^IOutput, EnumFormat: FORMAT, Flags: u32, pNumModes: ^u32, pDesc: ^MODE_DESC) -> sys_windows.HRESULT,
	FindClosestMatchingMode:     proc "stdcall" (this: ^IOutput, pModeToMatch: ^MODE_DESC, pClosestMatch: ^MODE_DESC, pConcernedDevice: ^IUnknown) -> sys_windows.HRESULT,
	WaitForVBlank:               proc "stdcall" (this: ^IOutput) -> sys_windows.HRESULT,
	TakeOwnership:               proc "stdcall" (this: ^IOutput, pDevice: ^IUnknown, Exclusive: sys_windows.BOOL) -> sys_windows.HRESULT,
	ReleaseOwnership:            proc "stdcall" (this: ^IOutput),
	GetGammaControlCapabilities: proc "stdcall" (this: ^IOutput, pGammaCaps: ^GAMMA_CONTROL_CAPABILITIES) -> sys_windows.HRESULT,
	SetGammaControl:             proc "stdcall" (this: ^IOutput, pArray: ^GAMMA_CONTROL) -> sys_windows.HRESULT,
	GetGammaControl:             proc "stdcall" (this: ^IOutput, pArray: ^GAMMA_CONTROL) -> sys_windows.HRESULT,
	SetDisplaySurface:           proc "stdcall" (this: ^IOutput, pScanoutSurface: ^ISurface) -> sys_windows.HRESULT,
	GetDisplaySurfaceData:       proc "stdcall" (this: ^IOutput, pDestination: ^ISurface) -> sys_windows.HRESULT,
	GetFrameStatistics:          proc "stdcall" (this: ^IOutput, pStats: ^FRAME_STATISTICS) -> sys_windows.HRESULT,
}

IResource ¶

IResource :: struct #raw_union {
	idxgidevicesubobject: IDeviceSubObject,
	idxgiresource_vtable: ^IResource_VTable,
}

IResource1 ¶

IResource1 :: struct #raw_union {
	idxgiresource:         IResource,
	idxgiresource1_vtable: ^IResource1_VTable,
}

IResource1_VTable ¶

IResource1_VTable :: struct {
	idxgiresource_vtable:     IResource_VTable,
	CreateSubresourceSurface: proc "stdcall" (this: ^IResource1, index: u32, ppSurface: ^^ISurface2) -> sys_windows.HRESULT,
	CreateSharedHandle:       proc "stdcall" (this: ^IResource1, pAttributes: ^sys_windows.SECURITY_ATTRIBUTES, dwAccess: u32, lpName: ^i16, pHandle: ^sys_windows.HANDLE) -> sys_windows.HRESULT,
}

IResource_VTable ¶

IResource_VTable :: struct {
	idxgidevicesubobject_vtable: IDeviceSubObject_VTable,
	GetSharedHandle:             proc "stdcall" (this: ^IResource, pSharedHandle: ^sys_windows.HANDLE) -> sys_windows.HRESULT,
	GetUsage:                    proc "stdcall" (this: ^IResource, pUsage: ^USAGE) -> sys_windows.HRESULT,
	SetEvictionPriority:         proc "stdcall" (this: ^IResource, EvictionPriority: u32) -> sys_windows.HRESULT,
	GetEvictionPriority:         proc "stdcall" (this: ^IResource, pEvictionPriority: ^u32) -> sys_windows.HRESULT,
}

ISurface ¶

ISurface :: struct #raw_union {
	idxgidevicesubobject: IDeviceSubObject,
	idxgisurface_vtable:  ^ISurface_VTable,
}

ISurface1 ¶

ISurface1 :: struct #raw_union {
	idxgisurface:         ISurface,
	idxgisurface1_vtable: ^ISurface1_VTable,
}

ISurface1_VTable ¶

ISurface1_VTable :: struct {
	idxgisurface_vtable: ISurface_VTable,
	GetDC:               proc "stdcall" (this: ^ISurface1, Discard: sys_windows.BOOL, phdc: ^sys_windows.HANDLE) -> sys_windows.HRESULT,
	ReleaseDC:           proc "stdcall" (this: ^ISurface1, pDirtyRect: ^sys_windows.RECT) -> sys_windows.HRESULT,
}

ISurface2 ¶

ISurface2 :: struct #raw_union {
	idxgisurface1:        ISurface1,
	idxgisurface2_vtable: ^ISurface2_VTable,
}

ISurface2_VTable ¶

ISurface2_VTable :: struct {
	idxgisurface1_vtable: ISurface1_VTable,
	GetResource:          proc "stdcall" (this: ^ISurface2, riid: ^sys_windows.GUID, ppParentResource: ^rawptr, pSubresourceIndex: ^u32) -> sys_windows.HRESULT,
}

ISurface_VTable ¶

ISurface_VTable :: struct {
	idxgidevicesubobject_vtable: IDeviceSubObject_VTable,
	GetDesc:                     proc "stdcall" (this: ^ISurface, pDesc: ^SURFACE_DESC) -> sys_windows.HRESULT,
	Map:                         proc "stdcall" (this: ^ISurface, pLockedRect: ^MAPPED_RECT, MapFlags: u32) -> sys_windows.HRESULT,
	Unmap:                       proc "stdcall" (this: ^ISurface) -> sys_windows.HRESULT,
}

ISwapChain ¶

ISwapChain :: struct #raw_union {
	idxgidevicesubobject:  IDeviceSubObject,
	idxgiswapchain_vtable: ^ISwapChain_VTable,
}

ISwapChain1 ¶

ISwapChain1 :: struct #raw_union {
	idxgiswapchain:         ISwapChain,
	idxgiswapchain1_vtable: ^ISwapChain1_VTable,
}

ISwapChain1_VTable ¶

ISwapChain1_VTable :: struct {
	idxgiswapchain_vtable:    ISwapChain_VTable,
	GetDesc1:                 proc "stdcall" (this: ^ISwapChain1, pDesc: ^SWAP_CHAIN_DESC1) -> sys_windows.HRESULT,
	GetFullscreenDesc:        proc "stdcall" (this: ^ISwapChain1, pDesc: ^SWAP_CHAIN_FULLSCREEN_DESC) -> sys_windows.HRESULT,
	GetHwnd:                  proc "stdcall" (this: ^ISwapChain1, pHwnd: ^sys_windows.HWND) -> sys_windows.HRESULT,
	GetCoreWindow:            proc "stdcall" (this: ^ISwapChain1, refiid: ^sys_windows.GUID, ppUnk: ^rawptr) -> sys_windows.HRESULT,
	Present1:                 proc "stdcall" (this: ^ISwapChain1, SyncInterval: u32, PresentFlags: u32, pPresentParameters: ^PRESENT_PARAMETERS) -> sys_windows.HRESULT,
	IsTemporaryMonoSupported: proc "stdcall" (this: ^ISwapChain1) -> sys_windows.BOOL,
	GetRestrictToOutput:      proc "stdcall" (this: ^ISwapChain1, ppRestrictToOutput: ^^IOutput) -> sys_windows.HRESULT,
	SetBackgroundColor:       proc "stdcall" (this: ^ISwapChain1, pColor: ^D3DCOLORVALUE) -> sys_windows.HRESULT,
	GetBackgroundColor:       proc "stdcall" (this: ^ISwapChain1, pColor: ^D3DCOLORVALUE) -> sys_windows.HRESULT,
	SetRotation:              proc "stdcall" (this: ^ISwapChain1, Rotation: MODE_ROTATION) -> sys_windows.HRESULT,
	GetRotation:              proc "stdcall" (this: ^ISwapChain1, pRotation: ^MODE_ROTATION) -> sys_windows.HRESULT,
}

ISwapChain2 ¶

ISwapChain2 :: struct #raw_union {
	idxgiswapchain1:        ISwapChain1,
	idxgiswapchain2_vtable: ^ISwapChain2_VTable,
}

ISwapChain2_VTable ¶

ISwapChain2_VTable :: struct {
	idxgiswapchain1_vtable:        ISwapChain1_VTable,
	SetSourceSize:                 proc "stdcall" (this: ^ISwapChain2, Width: u32, Height: u32) -> sys_windows.HRESULT,
	GetSourceSize:                 proc "stdcall" (this: ^ISwapChain2, pWidth: ^u32, pHeight: ^u32) -> sys_windows.HRESULT,
	SetMaximumFrameLatency:        proc "stdcall" (this: ^ISwapChain2, MaxLatency: u32) -> sys_windows.HRESULT,
	GetMaximumFrameLatency:        proc "stdcall" (this: ^ISwapChain2, pMaxLatency: ^u32) -> sys_windows.HRESULT,
	GetFrameLatencyWaitableObject: proc "stdcall" (this: ^ISwapChain2) -> sys_windows.HANDLE,
	SetMatrixTransform:            proc "stdcall" (this: ^ISwapChain2, pMatrix: ^MATRIX_3X2_F) -> sys_windows.HRESULT,
	GetMatrixTransform:            proc "stdcall" (this: ^ISwapChain2, pMatrix: ^MATRIX_3X2_F) -> sys_windows.HRESULT,
}

ISwapChain3 ¶

ISwapChain3 :: struct #raw_union {
	idxgiswapchain2:        ISwapChain2,
	idxgiswapchain3_vtable: ^ISwapChain3_VTable,
}

ISwapChain3_VTable ¶

ISwapChain3_VTable :: struct {
	idxgiswapchain2_vtable:    ISwapChain2_VTable,
	GetCurrentBackBufferIndex: proc "stdcall" (this: ^ISwapChain3) -> u32,
	CheckColorSpaceSupport:    proc "stdcall" (this: ^ISwapChain3, ColorSpace: COLOR_SPACE_TYPE, pColorSpaceSupport: ^u32) -> sys_windows.HRESULT,
	SetColorSpace1:            proc "stdcall" (this: ^ISwapChain3, ColorSpace: COLOR_SPACE_TYPE) -> sys_windows.HRESULT,
	ResizeBuffers1:            proc "stdcall" (this: ^ISwapChain3, BufferCount: u32, Width: u32, Height: u32, Format: FORMAT, SwapChainFlags: u32, pCreationNodeMask: ^u32, ppPresentQueue: ^^IUnknown) -> sys_windows.HRESULT,
}

ISwapChainMedia ¶

ISwapChainMedia :: struct #raw_union {
	iunknown:                   IUnknown,
	idxgiswapchainmedia_vtable: ^ISwapChainMedia_VTable,
}

ISwapChainMedia_VTable ¶

ISwapChainMedia_VTable :: struct {
	iunknown_vtable:             IUnknown_VTable,
	GetFrameStatisticsMedia:     proc "stdcall" (this: ^ISwapChainMedia, pStats: ^FRAME_STATISTICS_MEDIA) -> sys_windows.HRESULT,
	SetPresentDuration:          proc "stdcall" (this: ^ISwapChainMedia, Duration: u32) -> sys_windows.HRESULT,
	CheckPresentDurationSupport: proc "stdcall" (this: ^ISwapChainMedia, DesiredPresentDuration: u32, pClosestSmallerPresentDuration: ^u32, pClosestLargerPresentDuration: ^u32) -> sys_windows.HRESULT,
}

ISwapChain_VTable ¶

ISwapChain_VTable :: struct {
	idxgidevicesubobject_vtable: IDeviceSubObject_VTable,
	Present:                     proc "stdcall" (this: ^ISwapChain, SyncInterval: u32, Flags: u32) -> sys_windows.HRESULT,
	GetBuffer:                   proc "stdcall" (this: ^ISwapChain, Buffer: u32, riid: ^sys_windows.GUID, ppSurface: ^rawptr) -> sys_windows.HRESULT,
	SetFullscreenState:          proc "stdcall" (this: ^ISwapChain, Fullscreen: sys_windows.BOOL, pTarget: ^IOutput) -> sys_windows.HRESULT,
	GetFullscreenState:          proc "stdcall" (this: ^ISwapChain, pFullscreen: ^sys_windows.BOOL, ppTarget: ^^IOutput) -> sys_windows.HRESULT,
	GetDesc:                     proc "stdcall" (this: ^ISwapChain, pDesc: ^SWAP_CHAIN_DESC) -> sys_windows.HRESULT,
	ResizeBuffers:               proc "stdcall" (this: ^ISwapChain, BufferCount: u32, Width: u32, Height: u32, NewFormat: FORMAT, SwapChainFlags: u32) -> sys_windows.HRESULT,
	ResizeTarget:                proc "stdcall" (this: ^ISwapChain, pNewTargetParameters: ^MODE_DESC) -> sys_windows.HRESULT,
	GetContainingOutput:         proc "stdcall" (this: ^ISwapChain, ppOutput: ^^IOutput) -> sys_windows.HRESULT,
	GetFrameStatistics:          proc "stdcall" (this: ^ISwapChain, pStats: ^FRAME_STATISTICS) -> sys_windows.HRESULT,
	GetLastPresentCount:         proc "stdcall" (this: ^ISwapChain, pLastPresentCount: ^u32) -> sys_windows.HRESULT,
}

IUnknown ¶

IUnknown :: struct {
	_iunknown_vtable: ^IUnknown_VTable,
}

IUnknown_VTable ¶

IUnknown_VTable :: struct {
	QueryInterface: proc "stdcall" (this: ^IUnknown, riid: ^sys_windows.GUID, ppvObject: ^rawptr) -> sys_windows.HRESULT,
	AddRef:         proc "stdcall" (this: ^IUnknown) -> u32,
	Release:        proc "stdcall" (this: ^IUnknown) -> u32,
}

JPEG_AC_HUFFMAN_TABLE ¶

JPEG_AC_HUFFMAN_TABLE :: struct {
	CodeCounts: [16]u8,
	CodeValues: [162]u8,
}

JPEG_DC_HUFFMAN_TABLE ¶

JPEG_DC_HUFFMAN_TABLE :: struct {
	CodeCounts: [12]u8,
	CodeValues: [12]u8,
}

JPEG_QUANTIZATION_TABLE ¶

JPEG_QUANTIZATION_TABLE :: struct {
	Elements: [64]u8,
}

LARGE_INTEGER ¶

LARGE_INTEGER :: sys_windows.LARGE_INTEGER

LONG ¶

LONG :: i32

LPCSTR ¶

LPCSTR :: cstring

LUID ¶

LUID :: sys_windows.LUID

MAP ¶

MAP :: enum u32 {
	READ    = 1, 
	WRITE   = 2, 
	DISCARD = 4, 
}

MAPPED_RECT ¶

MAPPED_RECT :: struct {
	Pitch: i32,
	pBits: [^]u8,
}

MATRIX_3X2_F ¶

MATRIX_3X2_F :: struct {
	_11: f32,
	_12: f32,
	_21: f32,
	_22: f32,
	_31: f32,
	_32: f32,
}

MEMORY_SEGMENT_GROUP ¶

MEMORY_SEGMENT_GROUP :: enum i32 {
	LOCAL     = 0, 
	NON_LOCAL = 1, 
}

MODE_DESC ¶

MODE_DESC :: struct {
	Width:            u32,
	Height:           u32,
	RefreshRate:      RATIONAL,
	Format:           FORMAT,
	ScanlineOrdering: MODE_SCANLINE_ORDER,
	Scaling:          MODE_SCALING,
}

MODE_DESC1 ¶

MODE_DESC1 :: struct {
	Width:            u32,
	Height:           u32,
	RefreshRate:      RATIONAL,
	Format:           FORMAT,
	ScanlineOrdering: MODE_SCANLINE_ORDER,
	Scaling:          MODE_SCALING,
	Stereo:           sys_windows.BOOL,
}

MODE_ROTATION ¶

MODE_ROTATION :: enum i32 {
	UNSPECIFIED = 0, 
	IDENTITY    = 1, 
	ROTATE90    = 2, 
	ROTATE180   = 3, 
	ROTATE270   = 4, 
}

MODE_SCALING ¶

MODE_SCALING :: enum i32 {
	UNSPECIFIED = 0, 
	CENTERED    = 1, 
	STRETCHED   = 2, 
}

MODE_SCANLINE_ORDER ¶

MODE_SCANLINE_ORDER :: enum i32 {
	UNSPECIFIED       = 0, 
	PROGRESSIVE       = 1, 
	UPPER_FIELD_FIRST = 2, 
	LOWER_FIELD_FIRST = 3, 
}

MULTIPLANE_OVERLAY_YCbCr_FLAGS ¶

MULTIPLANE_OVERLAY_YCbCr_FLAGS :: enum u32 {
	// TODO: convert to bit_set
	NOMINAL_RANGE = 1, 
	BT709         = 2, 
	xvYCC         = 4, 
}

MWA ¶

MWA :: distinct bit_set[MWA_FLAG; u32]

MWA_FLAG ¶

MWA_FLAG :: enum u32 {
	NO_WINDOW_CHANGES = 0, 
	NO_ALT_ENTER      = 1, 
	NO_PRINT_SCREEN   = 2, 
}

OFFER_RESOURCE_PRIORITY ¶

OFFER_RESOURCE_PRIORITY :: enum i32 {
	LOW    = 1, 
	NORMAL = 2, 
	HIGH   = 3, 
}

OUTDUPL_DESC ¶

OUTDUPL_DESC :: struct {
	ModeDesc:                   MODE_DESC,
	Rotation:                   MODE_ROTATION,
	DesktopImageInSystemMemory: sys_windows.BOOL,
}

OUTDUPL_FRAME_INFO ¶

OUTDUPL_FRAME_INFO :: struct {
	LastPresentTime:           sys_windows.LARGE_INTEGER,
	LastMouseUpdateTime:       sys_windows.LARGE_INTEGER,
	AccumulatedFrames:         u32,
	RectsCoalesced:            sys_windows.BOOL,
	ProtectedContentMaskedOut: sys_windows.BOOL,
	PointerPosition:           OUTDUPL_POINTER_POSITION,
	TotalMetadataBufferSize:   u32,
	PointerShapeBufferSize:    u32,
}

OUTDUPL_MOVE_RECT ¶

OUTDUPL_MOVE_RECT :: struct {
	SourcePoint:     sys_windows.POINT,
	DestinationRect: sys_windows.RECT,
}

OUTDUPL_POINTER_POSITION ¶

OUTDUPL_POINTER_POSITION :: struct {
	Position: sys_windows.POINT,
	Visible:  sys_windows.BOOL,
}

OUTDUPL_POINTER_SHAPE_INFO ¶

OUTDUPL_POINTER_SHAPE_INFO :: struct {
	Type:    u32,
	Width:   u32,
	Height:  u32,
	Pitch:   u32,
	HotSpot: sys_windows.POINT,
}

OUTDUPL_POINTER_SHAPE_TYPE ¶

OUTDUPL_POINTER_SHAPE_TYPE :: enum i32 {
	MONOCHROME   = 1, 
	COLOR        = 2, 
	MASKED_COLOR = 4, 
}

OUTPUT_DESC ¶

OUTPUT_DESC :: struct {
	DeviceName:         [32]i16,
	DesktopCoordinates: sys_windows.RECT,
	AttachedToDesktop:  sys_windows.BOOL,
	Rotation:           MODE_ROTATION,
	Monitor:            sys_windows.HMONITOR,
}

OVERLAY_COLOR_SPACE_SUPPORT_FLAG ¶

OVERLAY_COLOR_SPACE_SUPPORT_FLAG :: enum u32 {
	// TODO: convert to bit_set
	PRESENT = 1, 
}

OVERLAY_SUPPORT_FLAG ¶

OVERLAY_SUPPORT_FLAG :: enum u32 {
	// TODO: convert to bit_set
	DIRECT  = 1, 
	SCALING = 2, 
}

POINT ¶

POINT :: sys_windows.POINT

PRESENT ¶

PRESENT :: distinct bit_set[PRESENT_FLAG; u32]

PRESENT_FLAG ¶

PRESENT_FLAG :: enum u32 {
	TEST                  = 0, 
	DO_NOT_SEQUENCE       = 1, 
	RESTART               = 2, 
	DO_NOT_WAIT           = 3, 
	STEREO_PREFER_RIGHT   = 4, 
	STEREO_TEMPORARY_MONO = 5, 
	RESTRICT_TO_OUTPUT    = 6, 
	USE_DURATION          = 8, 
	ALLOW_TEARING         = 9, 
}

PRESENT_PARAMETERS ¶

PRESENT_PARAMETERS :: struct {
	DirtyRectsCount: u32,
	pDirtyRects:     [^]sys_windows.RECT,
	pScrollRect:     ^sys_windows.RECT,
	pScrollOffset:   ^sys_windows.POINT,
}

QUERY_VIDEO_MEMORY_INFO ¶

QUERY_VIDEO_MEMORY_INFO :: struct {
	Budget:                  u64,
	CurrentUsage:            u64,
	AvailableForReservation: u64,
	CurrentReservation:      u64,
}

RATIONAL ¶

RATIONAL :: struct {
	Numerator:   u32,
	Denominator: u32,
}

RECT ¶

RECT :: sys_windows.RECT

RESIDENCY ¶

RESIDENCY :: enum i32 {
	FULLY_RESIDENT            = 1, 
	RESIDENT_IN_SHARED_MEMORY = 2, 
	EVICTED_TO_DISK           = 3, 
}

RESOURCE_PRIORITY ¶

RESOURCE_PRIORITY :: enum u32 {
	MINIMUM = 671088640, 
	LOW     = 1342177280, 
	NORMAL  = 2013265920, 
	HIGH    = 2684354560, 
	MAXIMUM = 3355443200, 
}

RGB ¶

RGB :: struct {
	Red:   f32,
	Green: f32,
	Blue:  f32,
}

SAMPLE_DESC ¶

SAMPLE_DESC :: struct {
	Count:   u32,
	Quality: u32,
}

SCALING ¶

SCALING :: enum i32 {
	STRETCH              = 0, 
	NONE                 = 1, 
	ASPECT_RATIO_STRETCH = 2, 
}

SHARED_RESOURCE ¶

SHARED_RESOURCE :: struct {
	Handle: sys_windows.HANDLE,
}

SIZE ¶

SIZE :: sys_windows.SIZE

SIZE_T ¶

SIZE_T :: uint

SURFACE_DESC ¶

SURFACE_DESC :: struct {
	Width:      u32,
	Height:     u32,
	Format:     FORMAT,
	SampleDesc: SAMPLE_DESC,
}

SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG ¶

SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG :: enum u32 {
	// TODO: convert to bit_set
	PRESENT         = 1, 
	OVERLAY_PRESENT = 2, 
}

SWAP_CHAIN_DESC ¶

SWAP_CHAIN_DESC :: struct {
	BufferDesc:   MODE_DESC,
	SampleDesc:   SAMPLE_DESC,
	BufferUsage:  USAGE,
	BufferCount:  u32,
	OutputWindow: sys_windows.HWND,
	Windowed:     sys_windows.BOOL,
	SwapEffect:   SWAP_EFFECT,
	Flags:        u32,
}

SWAP_CHAIN_DESC1 ¶

SWAP_CHAIN_DESC1 :: struct {
	Width:       u32,
	Height:      u32,
	Format:      FORMAT,
	Stereo:      sys_windows.BOOL,
	SampleDesc:  SAMPLE_DESC,
	BufferUsage: USAGE,
	BufferCount: u32,
	Scaling:     SCALING,
	SwapEffect:  SWAP_EFFECT,
	AlphaMode:   ALPHA_MODE,
	Flags:       u32,
}

SWAP_CHAIN_FLAG ¶

SWAP_CHAIN_FLAG :: enum u32 {
	// TODO: convert to bit_set
	NONPREROTATED                          = 1, 
	ALLOW_MODE_SWITCH                      = 2, 
	GDI_COMPATIBLE                         = 4, 
	RESTRICTED_CONTENT                     = 8, 
	RESTRICT_SHARED_RESOURCE_DRIVER        = 16, 
	DISPLAY_ONLY                           = 32, 
	FRAME_LATENCY_WAITABLE_OBJECT          = 64, 
	FOREGROUND_LAYER                       = 128, 
	FULLSCREEN_VIDEO                       = 256, 
	YUV_VIDEO                              = 512, 
	HW_PROTECTED                           = 1024, 
	ALLOW_TEARING                          = 2048, 
	RESTRICTED_TO_ALL_HOLOGRAPHIC_DISPLAYS = 4096, 
}

SWAP_CHAIN_FULLSCREEN_DESC ¶

SWAP_CHAIN_FULLSCREEN_DESC :: struct {
	RefreshRate:      RATIONAL,
	ScanlineOrdering: MODE_SCANLINE_ORDER,
	Scaling:          MODE_SCALING,
	Windowed:         sys_windows.BOOL,
}

SWAP_EFFECT ¶

SWAP_EFFECT :: enum i32 {
	DISCARD         = 0, 
	SEQUENTIAL      = 1, 
	FLIP_SEQUENTIAL = 3, 
	FLIP_DISCARD    = 4, 
}

UINT ¶

UINT :: u32

UINT64 ¶

UINT64 :: u64

ULONG ¶

ULONG :: u32

USAGE ¶

USAGE :: distinct bit_set[USAGE_FLAG; u32]

USAGE_FLAG ¶

USAGE_FLAG :: enum u32 {
	SHADER_INPUT         = 4, 
	RENDER_TARGET_OUTPUT = 5, 
	BACK_BUFFER          = 6, 
	SHARED               = 7, 
	READ_ONLY            = 8, 
	DISCARD_ON_PRESENT   = 9, 
	UNORDERED_ACCESS     = 10, 
}

UUID ¶

UUID :: sys_windows.GUID

Constants

CENTER_MULTISAMPLE_QUALITY_PATTERN ¶

CENTER_MULTISAMPLE_QUALITY_PATTERN :: 0xfffffffe

CREATE_FACTORY_DEBUG ¶

CREATE_FACTORY_DEBUG :: 0x1

ERROR_ACCESS_DENIED ¶

ERROR_ACCESS_DENIED :: HRESULT(-2005270485)
 

0x887A002B

ERROR_ACCESS_LOST ¶

ERROR_ACCESS_LOST :: HRESULT(-2005270490)
 

0x887A0026

ERROR_ALREADY_EXISTS ¶

ERROR_ALREADY_EXISTS :: HRESULT(-2005270474)
 

0x887A0036

ERROR_CANNOT_PROTECT_CONTENT ¶

ERROR_CANNOT_PROTECT_CONTENT :: HRESULT(-2005270486)
 

0x887A002A

ERROR_DEVICE_HUNG ¶

ERROR_DEVICE_HUNG :: HRESULT(-2005270522)
 

0x887A0006

ERROR_DEVICE_REMOVED ¶

ERROR_DEVICE_REMOVED :: HRESULT(-2005270523)
 

0x887A0005

ERROR_DEVICE_RESET ¶

ERROR_DEVICE_RESET :: HRESULT(-2005270521)
 

0x887A0007

ERROR_DRIVER_INTERNAL_ERROR ¶

ERROR_DRIVER_INTERNAL_ERROR :: HRESULT(-2005270496)
 

0x887A0020

ERROR_FRAME_STATISTICS_DISJOINT ¶

ERROR_FRAME_STATISTICS_DISJOINT :: HRESULT(-2005270517)
 

0x887A000B

ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE ¶

ERROR_GRAPHICS_VIDPN_SOURCE_IN_USE :: HRESULT(-2005270516)
 

0x887A000C

ERROR_INVALID_CALL ¶

ERROR_INVALID_CALL :: HRESULT(-2005270527)
 

0x887A0001

ERROR_MORE_DATA ¶

ERROR_MORE_DATA :: HRESULT(-2005270525)
 

0x887A0003

ERROR_NAME_ALREADY_EXISTS ¶

ERROR_NAME_ALREADY_EXISTS :: HRESULT(-2005270484)
 

0x887A002C

ERROR_NONEXCLUSIVE ¶

ERROR_NONEXCLUSIVE :: HRESULT(-2005270495)
 

0x887A0021

ERROR_NOT_CURRENTLY_AVAILABLE ¶

ERROR_NOT_CURRENTLY_AVAILABLE :: HRESULT(-2005270494)
 

0x887A0022

ERROR_NOT_FOUND ¶

ERROR_NOT_FOUND :: HRESULT(-2005270526)
 

0x887A0002

ERROR_REMOTE_CLIENT_DISCONNECTED ¶

ERROR_REMOTE_CLIENT_DISCONNECTED :: HRESULT(-2005270493)
 

0x887A0023

ERROR_REMOTE_OUTOFMEMORY ¶

ERROR_REMOTE_OUTOFMEMORY :: HRESULT(-2005270492)
 

0x887A0024

ERROR_RESTRICT_TO_OUTPUT_STALE ¶

ERROR_RESTRICT_TO_OUTPUT_STALE :: HRESULT(-2005270487)
 

0x887A0029

ERROR_SDK_COMPONENT_MISSING ¶

ERROR_SDK_COMPONENT_MISSING :: HRESULT(-2005270483)
 

0x887A002D

ERROR_SESSION_DISCONNECTED ¶

ERROR_SESSION_DISCONNECTED :: HRESULT(-2005270488)
 

0x887A0028

ERROR_UNSUPPORTED ¶

ERROR_UNSUPPORTED :: HRESULT(-2005270524)
 

0x887A0004

ERROR_WAIT_TIMEOUT ¶

ERROR_WAIT_TIMEOUT :: HRESULT(-2005270489)
 

0x887A0027

ERROR_WAS_STILL_DRAWING ¶

ERROR_WAS_STILL_DRAWING :: HRESULT(-2005270518)
 

0x887A000A

FORMAT_DEFINED ¶

FORMAT_DEFINED :: 1

IAdapter1_UUID_STRING ¶

IAdapter1_UUID_STRING :: "29038F61-3839-4626-91FD-086879011A05"

IAdapter2_UUID_STRING ¶

IAdapter2_UUID_STRING :: "0AA1AE0A-FA0E-4B84-8644-E05FF8E5ACB5"

IAdapter3_UUID_STRING ¶

IAdapter3_UUID_STRING :: "645967A4-1392-4310-A798-8053CE3E93FD"

IAdapter_UUID_STRING ¶

IAdapter_UUID_STRING :: "2411E7E1-12AC-4CCF-BD14-9798E8534DC0"

IDebug1_UUID_STRING ¶

IDebug1_UUID_STRING :: "c5a05f0c-16f2-4adf-9f4d-a8c4d58ac550"

IDebug_UUID_STRING ¶

IDebug_UUID_STRING :: "119E7452-DE9E-40fe-8806-88F90C12B441"

IDecodeSwapChain_UUID_STRING ¶

IDecodeSwapChain_UUID_STRING :: "2633066B-4514-4C7A-8FD8-12EA98059D18"

IDevice1_UUID_STRING ¶

IDevice1_UUID_STRING :: "77DB970F-6276-48BA-BA28-070143B4392C"

IDevice2_UUID_STRING ¶

IDevice2_UUID_STRING :: "05008617-FBFD-4051-A790-144884B4F6A9"

IDevice3_UUID_STRING ¶

IDevice3_UUID_STRING :: "6007896C-3244-4AFD-BF18-A6D3BEDA5023"

IDeviceSubObject_UUID_STRING ¶

IDeviceSubObject_UUID_STRING :: "3D3E0379-F9DE-4D58-BB6C-18D62992F1A6"

IDevice_UUID_STRING ¶

IDevice_UUID_STRING :: "54EC77FA-1377-44E6-8C32-88FD5F44C84C"

IDisplayControl_UUID_STRING ¶

IDisplayControl_UUID_STRING :: "EA9DBF1A-C88E-4486-854A-98AA0138F30C"

IFactory1_UUID_STRING ¶

IFactory1_UUID_STRING :: "770AAE78-F26F-4DBA-A829-253C83D1B387"

IFactory2_UUID_STRING ¶

IFactory2_UUID_STRING :: "50C83A1C-E072-4C48-87B0-3630FA36A6D0"

IFactory3_UUID_STRING ¶

IFactory3_UUID_STRING :: "25483823-CD46-4C7D-86CA-47AA95B837BD"

IFactory4_UUID_STRING ¶

IFactory4_UUID_STRING :: "1BC6EA02-EF36-464F-BF0C-21CA39E5168A"

IFactoryMedia_UUID_STRING ¶

IFactoryMedia_UUID_STRING :: "41E7D1F2-A591-4F7B-A2E5-FA9C843E1C12"

IFactory_UUID_STRING ¶

IFactory_UUID_STRING :: "7B7166EC-21C7-44AE-B21A-C9AE321AE369"

IInfoQueue_UUID_STRING ¶

IInfoQueue_UUID_STRING :: "D67441C7-672A-476f-9E82-CD55B44949CE"

IKeyedMutex_UUID_STRING ¶

IKeyedMutex_UUID_STRING :: "9D8E1289-D7B3-465F-8126-250E349AF85D"

INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT ¶

INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT :: 1024

IObject_UUID_STRING ¶

IObject_UUID_STRING :: "AEC22FB8-76F3-4639-9BE0-28EB43A67A2E"

IOutput1_UUID_STRING ¶

IOutput1_UUID_STRING :: "00CDDEA8-939B-4B83-A340-A685226666CC"

IOutput2_UUID_STRING ¶

IOutput2_UUID_STRING :: "595E39D1-2724-4663-99B1-DA969DE28364"

IOutput3_UUID_STRING ¶

IOutput3_UUID_STRING :: "8A6BB301-7E7E-41F4-A8E0-5B32F7F99B18"

IOutput4_UUID_STRING ¶

IOutput4_UUID_STRING :: "DC7DCA35-2196-414D-9F53-617884032A60"

IOutputDuplication_UUID_STRING ¶

IOutputDuplication_UUID_STRING :: "191CFAC3-A341-470D-B26E-A864F428319C"

IOutput_UUID_STRING ¶

IOutput_UUID_STRING :: "AE02EEDB-C735-4690-8D52-5A8DC20213AA"

IResource1_UUID_STRING ¶

IResource1_UUID_STRING :: "30961379-4609-4A41-998E-54FE567EE0C1"

IResource_UUID_STRING ¶

IResource_UUID_STRING :: "035F3AB4-482E-4E50-B41F-8A7F8BD8960B"

ISurface1_UUID_STRING ¶

ISurface1_UUID_STRING :: "4AE63092-6327-4C1B-80AE-BFE12EA32B86"

ISurface2_UUID_STRING ¶

ISurface2_UUID_STRING :: "ABA496DD-B617-4CB8-A866-BC44D7EB1FA2"

ISurface_UUID_STRING ¶

ISurface_UUID_STRING :: "CAFCB56C-6AC3-4889-BF47-9E23BBD260EC"

ISwapChain1_UUID_STRING ¶

ISwapChain1_UUID_STRING :: "790A45F7-0D42-4876-983A-0A55CFE6F4AA"

ISwapChain2_UUID_STRING ¶

ISwapChain2_UUID_STRING :: "A8BE2AC4-199F-4946-B331-79599FB98DE7"

ISwapChain3_UUID_STRING ¶

ISwapChain3_UUID_STRING :: "94D99BDB-F1F8-4AB0-B236-7DA0170EDAB1"

ISwapChainMedia_UUID_STRING ¶

ISwapChainMedia_UUID_STRING :: "DD95B90B-F05F-4F6A-BD65-25BFB264BD84"

ISwapChain_UUID_STRING ¶

ISwapChain_UUID_STRING :: "310D36A0-D2E7-4C0A-AA04-6A9D23B8886A"

MAX_SWAP_CHAIN_BUFFERS ¶

MAX_SWAP_CHAIN_BUFFERS :: 16

MWA_VALID ¶

MWA_VALID :: MWA{.NO_WINDOW_CHANGES, .NO_ALT_ENTER, .NO_PRINT_SCREEN}

SHARED_RESOURCE_READ ¶

SHARED_RESOURCE_READ :: 0x80000000

SHARED_RESOURCE_WRITE ¶

SHARED_RESOURCE_WRITE :: 1

STANDARD_MULTISAMPLE_QUALITY_PATTERN ¶

STANDARD_MULTISAMPLE_QUALITY_PATTERN :: 0xffffffff

STATUS_MODE_CHANGED ¶

STATUS_MODE_CHANGED :: HRESULT(142213127)
 

0x087A0007

STATUS_MODE_CHANGE_IN_PROGRESS ¶

STATUS_MODE_CHANGE_IN_PROGRESS :: HRESULT(142213128)
 

0x087A0008

STATUS_OCCLUDED ¶

STATUS_OCCLUDED :: HRESULT(142213121)
 

0x087A0001

Variables

DEBUG_ALL ¶

DEBUG_ALL: sys_windows.GUID = …

DEBUG_APP ¶

DEBUG_APP: sys_windows.GUID = …

DEBUG_DX ¶

DEBUG_DX: sys_windows.GUID = …

DEBUG_DXGI ¶

DEBUG_DXGI: sys_windows.GUID = …

IAdapter1_UUID ¶

IAdapter1_UUID: ^sys_windows.GUID = …

IAdapter2_UUID ¶

IAdapter2_UUID: ^sys_windows.GUID = …

IAdapter3_UUID ¶

IAdapter3_UUID: ^sys_windows.GUID = …

IAdapter_UUID ¶

IAdapter_UUID: ^sys_windows.GUID = …

IDebug1_UUID ¶

IDebug1_UUID: ^sys_windows.GUID = …

IDebug_UUID ¶

IDebug_UUID: ^sys_windows.GUID = …

IDecodeSwapChain_UUID ¶

IDecodeSwapChain_UUID: ^sys_windows.GUID = …

IDevice1_UUID ¶

IDevice1_UUID: ^sys_windows.GUID = …

IDevice2_UUID ¶

IDevice2_UUID: ^sys_windows.GUID = …

IDevice3_UUID ¶

IDevice3_UUID: ^sys_windows.GUID = …

IDeviceSubObject_UUID ¶

IDeviceSubObject_UUID: ^sys_windows.GUID = …

IDevice_UUID ¶

IDevice_UUID: ^sys_windows.GUID = …

IDisplayControl_UUID ¶

IDisplayControl_UUID: ^sys_windows.GUID = …

IFactory1_UUID ¶

IFactory1_UUID: ^sys_windows.GUID = …

IFactory2_UUID ¶

IFactory2_UUID: ^sys_windows.GUID = …

IFactory3_UUID ¶

IFactory3_UUID: ^sys_windows.GUID = …

IFactory4_UUID ¶

IFactory4_UUID: ^sys_windows.GUID = …

IFactoryMedia_UUID ¶

IFactoryMedia_UUID: ^sys_windows.GUID = …

IFactory_UUID ¶

IFactory_UUID: ^sys_windows.GUID = …

IInfoQueue_UUID ¶

IInfoQueue_UUID: ^sys_windows.GUID = …

IKeyedMutex_UUID ¶

IKeyedMutex_UUID: ^sys_windows.GUID = …

IObject_UUID ¶

IObject_UUID: ^sys_windows.GUID = …

IOutput1_UUID ¶

IOutput1_UUID: ^sys_windows.GUID = …

IOutput2_UUID ¶

IOutput2_UUID: ^sys_windows.GUID = …

IOutput3_UUID ¶

IOutput3_UUID: ^sys_windows.GUID = …

IOutput4_UUID ¶

IOutput4_UUID: ^sys_windows.GUID = …

IOutputDuplication_UUID ¶

IOutputDuplication_UUID: ^sys_windows.GUID = …

IOutput_UUID ¶

IOutput_UUID: ^sys_windows.GUID = …

IResource1_UUID ¶

IResource1_UUID: ^sys_windows.GUID = …

IResource_UUID ¶

IResource_UUID: ^sys_windows.GUID = …

ISurface1_UUID ¶

ISurface1_UUID: ^sys_windows.GUID = …

ISurface2_UUID ¶

ISurface2_UUID: ^sys_windows.GUID = …

ISurface_UUID ¶

ISurface_UUID: ^sys_windows.GUID = …

ISwapChain1_UUID ¶

ISwapChain1_UUID: ^sys_windows.GUID = …

ISwapChain2_UUID ¶

ISwapChain2_UUID: ^sys_windows.GUID = …

ISwapChain3_UUID ¶

ISwapChain3_UUID: ^sys_windows.GUID = …

ISwapChainMedia_UUID ¶

ISwapChainMedia_UUID: ^sys_windows.GUID = …

ISwapChain_UUID ¶

ISwapChain_UUID: ^sys_windows.GUID = …

Procedures

CreateDXGIFactory ¶

CreateDXGIFactory :: proc "stdcall" (riid: ^sys_windows.GUID, ppFactory: ^rawptr) -> sys_windows.HRESULT ---

CreateDXGIFactory1 ¶

CreateDXGIFactory1 :: proc "stdcall" (riid: ^sys_windows.GUID, ppFactory: ^rawptr) -> sys_windows.HRESULT ---

CreateDXGIFactory2 ¶

CreateDXGIFactory2 :: proc "stdcall" (Flags: u32, riid: ^sys_windows.GUID, ppFactory: ^rawptr) -> sys_windows.HRESULT ---

DXGIGetDebugInterface1 ¶

DXGIGetDebugInterface1 :: proc "stdcall" (Flags: u32, riid: ^sys_windows.GUID, pDebug: ^rawptr) -> sys_windows.HRESULT ---

Procedure Groups

This section is empty.

Source Files

Generation Information

Generated with odin version dev-2023-03 (vendor "odin") Windows_amd64 @ 2023-03-29 21:09:05.739875200 +0000 UTC