// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0 > or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT >, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
//! Mappings for the contents of dxgi1_4.h
use ctypes::c_void;
use shared::basetsd::UINT64;
use shared::dxgi1_2::{IDXGIAdapter2, IDXGIAdapter2Vtbl};
use shared::dxgi1_3::{
IDXGIFactory3, IDXGIFactory3Vtbl, IDXGIOutput3, IDXGIOutput3Vtbl, IDXGISwapChain2,
IDXGISwapChain2Vtbl,
};
use shared::dxgiformat::DXGI_FORMAT;
use shared::dxgitype::DXGI_COLOR_SPACE_TYPE;
use shared::guiddef::REFGUID;
use shared::minwindef::{DWORD, UINT};
use um::unknwnbase::IUnknown;
use um::winnt::{HANDLE, HRESULT, LUID};
ENUM !{
enum DXGI_MEMORY_SEGMENT_GROUP {
DXGI_MEMORY_SEGMENT_GROUP_LOCAL =
0 ,
DXGI_MEMORY_SEGMENT_GROUP_NON_LOCAL =
1 ,
}}
ENUM !{
enum DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG {
DXGI_OVERLAY_COLOR_SPACE_SUPPORT_FLAG_PRESENT =
0 x1,
}}
ENUM !{
enum DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG {
DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_PRESENT =
0 x1,
DXGI_SWAP_CHAIN_COLOR_SPACE_SUPPORT_FLAG_OVERLAY_PRESENT =
0 x2,
}}
STRUCT !{
struct DXGI_QUERY_VIDEO_MEMORY_INFO {
Budget: UINT64,
CurrentUsage: UINT64,
AvailableForReservation: UINT64,
CurrentReservation: UINT64,
}}
RIDL!{
#[ uuid(
0 x645967a4,
0 x1392,
0 x4310,
0 xa7,
0 x98,
0 x80,
0 x53,
0 xce,
0 x3e,
0 x93,
0 xfd)]
interface IDXGIAdapter3(IDXGIAdapter3Vtbl): IDXGIAdapter2(IDXGIAdapter2Vtbl) {
fn RegisterHardwareContentProtectionTeardownStatusEvent(
hEvent: HANDLE,
pdwCookie: *
mut DWORD,
) -> HRESULT,
fn UnregisterHardwareContentProtectionTeardownStatus(
dwCookie: DWORD,
) -> (),
fn QueryVideoMemoryInfo(
NodeIndex: UINT,
MemorySegmentGroup: DXGI_MEMORY_SEGMENT_GROUP,
pVideoMemoryInfo: *
mut DXGI_QUERY_VIDEO_MEMORY_INFO,
) -> HRESULT,
fn SetVideoMemoryReservation(
NodeIndex: UINT,
MemorySegmentGroup: DXGI_MEMORY_SEGMENT_GROUP,
Reservation: UINT64,
) -> HRESULT,
fn RegisterVideoMemoryBudgetChangeNotificationEvent(
hEvent: HANDLE,
pdwCookie: *
mut DWORD,
) -> HRESULT,
fn UnregisterVideoMemoryBudgetChangeNotification(
dwCookie: DWORD,
) -> (),
}}
RIDL!{
#[ uuid(
0 x1bc6ea02,
0 xef36,
0 x464f,
0 xbf,
0 x0c,
0 x21,
0 xca,
0 x39,
0 xe5,
0 x16,
0 x8a)]
interface IDXGIFactory4(IDXGIFactory4Vtbl): IDXGIFactory3(IDXGIFactory3Vtbl) {
fn EnumAdapterByLuid(
AdapterLuid: LUID,
riid: REFGUID,
ppvAdapter: *
mut *
mut c_void,
) -> HRESULT,
fn EnumWarpAdapter(
riid: REFGUID,
ppvAdapter: *
mut *
mut c_void,
) -> HRESULT,
}}
RIDL!{
#[ uuid(
0 xdc7dca35,
0 x2196,
0 x414d,
0 x9f,
0 x53,
0 x61,
0 x78,
0 x84,
0 x03,
0 x2a,
0 x60)]
interface IDXGIOutput4(IDXGIOutput4Vtbl): IDXGIOutput3(IDXGIOutput3Vtbl) {
fn CheckOverlayColorSpaceSupport(
Format: DXGI_FORMAT,
ColorSpace: DXGI_COLOR_SPACE_TYPE,
pConcernedDevice: *
mut IUnknown,
pFlags: *
mut UINT,
) -> HRESULT,
}}
RIDL!{
#[ uuid(
0 x94d99bdb,
0 xf1f8,
0 x4ab0,
0 xb2,
0 x36,
0 x7d,
0 xa0,
0 x17,
0 x0e,
0 xda,
0 xb1)]
interface IDXGISwapChain3(IDXGISwapChain3Vtbl): IDXGISwapChain2(IDXGISwapChain2Vtb
l) {
fn GetCurrentBackBufferIndex() -> UINT,
fn CheckColorSpaceSupport(
ColorSpace: DXGI_COLOR_SPACE_TYPE,
pColorSpaceSupport: *mut UINT,
) -> HRESULT,
fn SetColorSpace1(
ColorSpace: DXGI_COLOR_SPACE_TYPE,
) -> HRESULT,
fn ResizeBuffers1(
BufferCount: UINT,
Width: UINT,
Height: UINT,
Format: DXGI_FORMAT,
SwapChainFlags: UINT,
pCreationNodeMask: *const UINT,
ppPresentQueue: *mut *mut IUnknown,
) -> HRESULT,
}}
DEFINE_GUID!{IID_IDXGISwapChain3,
0 x94d99bdb, 0 xf1f8, 0 x4ab0, 0 xb2, 0 x36, 0 x7d, 0 xa0, 0 x17, 0 x0e, 0 xda, 0 xb1}
DEFINE_GUID!{IID_IDXGIOutput4,
0 xdc7dca35, 0 x2196, 0 x414d, 0 x9f, 0 x53, 0 x61, 0 x78, 0 x84, 0 x03, 0 x2a, 0 x60}
DEFINE_GUID!{IID_IDXGIFactory4,
0 x1bc6ea02, 0 xef36, 0 x464f, 0 xbf, 0 x0c, 0 x21, 0 xca, 0 x39, 0 xe5, 0 x16, 0 x8a}
DEFINE_GUID!{IID_IDXGIAdapter3,
0 x645967a4, 0 x1392, 0 x4310, 0 xa7, 0 x98, 0 x80, 0 x53, 0 xce, 0 x3e, 0 x93, 0 xfd}
Messung V0.5 in Prozent C=95 H=100 G=97
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet am 2026-06-28)
¤
*© Formatika GbR, Deutschland