blob: cbca18f1868a493ee46ebbfc429d8bfed3329331 [file] [log] [blame]
// Copyright © 2015; Dmitry Roschin
// Licensed under the MIT License <LICENSE.md>
//! Mappings for the contents of dxgi1_4.h
ENUM!{ enum DXGI_MEMORY_SEGMENT_GROUP {
DXGI_MEMORY_SEGMENT_GROUP_LOCAL = 0,
DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL = 1,
}}
FLAGS!{ enum DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {
DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1,
}}
FLAGS!{ enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {
DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT = 0x1,
DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT = 0x2,
}}
STRUCT!{struct DXGI_QUERY_VIDEO_MEMORY_INFO {
Budget: ::UINT64,
CurrentUsage: ::UINT64,
AvailableForReservation: ::UINT64,
CurrentReservation: ::UINT64,
}}
RIDL!(
interface IDXGIAdapter3(IDXGIAdapter3Vtbl): IDXGIAdapter2(IDXGIAdapter2Vtbl) {
fn RegisterHardwareContentProtectionTeardownStatusEvent(
&mut self, hEvent: ::HANDLE, pdwCookie: *mut ::DWORD
) -> ::HRESULT,
fn UnregisterHardwareContentProtectionTeardownStatus(
&mut self, dwCookie: ::DWORD
) -> (),
fn QueryVideoMemoryInfo(
&mut self, NodeIndex: ::UINT, MemorySegmentGroup: ::DXGI_MEMORY_SEGMENT_GROUP,
pVideoMemoryInfo: *mut ::DXGI_QUERY_VIDEO_MEMORY_INFO
) -> ::HRESULT,
fn SetVideoMemoryReservation(
&mut self, NodeIndex: ::UINT, MemorySegmentGroup: ::DXGI_MEMORY_SEGMENT_GROUP,
Reservation: ::UINT64
) -> ::HRESULT,
fn RegisterVideoMemoryBudgetChangeNotificationEvent(
&mut self, hEvent: ::HANDLE, pdwCookie: *mut ::DWORD
) -> ::HRESULT,
fn UnregisterVideoMemoryBudgetChangeNotification(
&mut self, dwCookie: ::DWORD
) -> ()
});
RIDL!(
interface IDXGIFactory4(IDXGIFactory4Vtbl): IDXGIFactory3(IDXGIFactory3Vtbl) {
fn EnumAdapterByLuid(
&mut self, AdapterLuid: ::LUID, riid: ::REFGUID, ppvAdapter: *mut *mut ::c_void
) -> ::HRESULT,
fn EnumWarpAdapter(
&mut self, riid: ::REFGUID, ppvAdapter: *mut *mut ::c_void
) -> ::HRESULT
});
RIDL!(
interface IDXGIOutput4(IDXGIOutput4Vtbl): IDXGIOutput3(IDXGIOutput3Vtbl) {
fn CheckOverlayColorSpaceSupport(
&mut self, Format: ::DXGI_FORMAT, ColorSpace: ::DXGI_COLOR_SPACE_TYPE,
pConcernedDevice: *mut ::IUnknown, pFlags: *mut ::UINT
) -> ::HRESULT
});
RIDL!(
interface IDXGISwapChain3(IDXGISwapChain3Vtbl): IDXGISwapChain2(IDXGISwapChain2Vtbl) {
fn GetCurrentBackBufferIndex(&mut self) -> ::UINT,
fn CheckColorSpaceSupport(
&mut self, ColorSpace: ::DXGI_COLOR_SPACE_TYPE, pColorSpaceSupport: *mut ::UINT
) -> ::HRESULT,
fn SetColorSpace1(
&mut self, ColorSpace: ::DXGI_COLOR_SPACE_TYPE
) -> ::HRESULT,
fn ResizeBuffers1(
&mut self, BufferCount: ::UINT, Width: ::UINT, Height: ::UINT, Format: ::DXGI_FORMAT,
SwapChainFlags: ::UINT, pCreationNodeMask: *const ::UINT,
ppPresentQueue: *mut *mut ::IUnknown
) -> ::HRESULT
});