summaryrefslogtreecommitdiff
path: root/vendor/winapi/src/um/dxgidebug.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/winapi/src/um/dxgidebug.rs')
-rw-r--r--vendor/winapi/src/um/dxgidebug.rs235
1 files changed, 235 insertions, 0 deletions
diff --git a/vendor/winapi/src/um/dxgidebug.rs b/vendor/winapi/src/um/dxgidebug.rs
new file mode 100644
index 0000000..3478da3
--- /dev/null
+++ b/vendor/winapi/src/um/dxgidebug.rs
@@ -0,0 +1,235 @@
+// 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.
+use ctypes::{c_char, c_int, c_void};
+use shared::basetsd::{SIZE_T, UINT64};
+use shared::guiddef::{GUID, REFIID};
+use shared::minwindef::{BOOL, DWORD, UINT};
+use um::unknwnbase::{IUnknown, IUnknownVtbl};
+use um::winnt::{HRESULT, LPCSTR};
+pub const DXGI_DEBUG_BINARY_VERSION: DWORD = 1;
+ENUM!{enum DXGI_DEBUG_RLO_FLAGS {
+ DXGI_DEBUG_RLO_SUMMARY = 0x1,
+ DXGI_DEBUG_RLO_DETAIL = 0x2,
+ DXGI_DEBUG_RLO_IGNORE_INTERNAL = 0x4,
+ DXGI_DEBUG_RLO_ALL = 0x7,
+}}
+pub type DXGI_DEBUG_ID = GUID;
+DEFINE_GUID!{DXGI_DEBUG_ALL,
+ 0xe48ae283, 0xda80, 0x490b, 0x87, 0xe6, 0x43, 0xe9, 0xa9, 0xcf, 0xda, 0x08}
+DEFINE_GUID!{DXGI_DEBUG_DX,
+ 0x35cdd7fc, 0x13b2, 0x421d, 0xa5, 0xd7, 0x7e, 0x44, 0x51, 0x28, 0x7d, 0x64}
+DEFINE_GUID!{DXGI_DEBUG_DXGI,
+ 0x25cddaa4, 0xb1c6, 0x47e1, 0xac, 0x3e, 0x98, 0x87, 0x5b, 0x5a, 0x2e, 0x2a}
+DEFINE_GUID!{DXGI_DEBUG_APP,
+ 0x06cd6e01, 0x4219, 0x4ebd, 0x87, 0x09, 0x27, 0xed, 0x23, 0x36, 0x0c, 0x62}
+ENUM!{enum DXGI_INFO_QUEUE_MESSAGE_CATEGORY {
+ DXGI_INFO_QUEUE_MESSAGE_CATEGORY_UNKNOWN = 0,
+ DXGI_INFO_QUEUE_MESSAGE_CATEGORY_MISCELLANEOUS = 1,
+ DXGI_INFO_QUEUE_MESSAGE_CATEGORY_INITIALIZATION = 2,
+ DXGI_INFO_QUEUE_MESSAGE_CATEGORY_CLEANUP = 3,
+ DXGI_INFO_QUEUE_MESSAGE_CATEGORY_COMPILATION = 4,
+ DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_CREATION = 5,
+ DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_SETTING = 6,
+ DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_GETTING = 7,
+ DXGI_INFO_QUEUE_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = 8,
+ DXGI_INFO_QUEUE_MESSAGE_CATEGORY_EXECUTION = 9,
+ DXGI_INFO_QUEUE_MESSAGE_CATEGORY_SHADER = 10,
+}}
+ENUM!{enum DXGI_INFO_QUEUE_MESSAGE_SEVERITY {
+ DXGI_INFO_QUEUE_MESSAGE_SEVERITY_CORRUPTION = 0,
+ DXGI_INFO_QUEUE_MESSAGE_SEVERITY_ERROR = 1,
+ DXGI_INFO_QUEUE_MESSAGE_SEVERITY_WARNING = 2,
+ DXGI_INFO_QUEUE_MESSAGE_SEVERITY_INFO = 3,
+ DXGI_INFO_QUEUE_MESSAGE_SEVERITY_MESSAGE = 4,
+}}
+pub type DXGI_INFO_QUEUE_MESSAGE_ID = c_int;
+STRUCT!{struct DXGI_INFO_QUEUE_MESSAGE {
+ Producer: DXGI_DEBUG_ID,
+ Category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
+ Severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
+ ID: DXGI_INFO_QUEUE_MESSAGE_ID,
+ pDescription: *const c_char,
+ DescriptionByteLength: SIZE_T,
+}}
+STRUCT!{struct DXGI_INFO_QUEUE_FILTER_DESC {
+ NumCategories: UINT,
+ pCategoryList: *mut DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
+ NumSeverities: UINT,
+ pSeverityList: *mut DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
+ NumIDs: UINT,
+ pIDList: *mut DXGI_INFO_QUEUE_MESSAGE_ID,
+}}
+STRUCT!{struct DXGI_INFO_QUEUE_FILTER {
+ AllowList: DXGI_INFO_QUEUE_FILTER_DESC,
+ DenyList: DXGI_INFO_QUEUE_FILTER_DESC,
+}}
+pub const DXGI_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT: DWORD = 1024;
+extern "system" {
+ pub fn DXGIGetDebugInterface(
+ riid: REFIID,
+ ppDebug: *mut *mut c_void,
+ ) -> HRESULT;
+}
+RIDL!{#[uuid(0xd67441c7, 0x672a, 0x476f, 0x9e, 0x82, 0xcd, 0x55, 0xb4, 0x49, 0x49, 0xce)]
+interface IDXGIInfoQueue(IDXGIInfoQueueVtbl): IUnknown(IUnknownVtbl) {
+ fn SetMessageCountLimit(
+ Producer: DXGI_DEBUG_ID,
+ MessageCountLimit: UINT64,
+ ) -> HRESULT,
+ fn ClearStoredMessages(
+ Producer: DXGI_DEBUG_ID,
+ ) -> (),
+ fn GetMessage(
+ Producer: DXGI_DEBUG_ID,
+ MessageIndex: UINT64,
+ pMessage: *mut DXGI_INFO_QUEUE_MESSAGE,
+ pMessageByteLength: *mut SIZE_T,
+ ) -> HRESULT,
+ fn GetNumStoredMessagesAllowedByRetrievalFilters(
+ Producer: DXGI_DEBUG_ID,
+ ) -> UINT64,
+ fn GetNumStoredMessages(
+ Producer: DXGI_DEBUG_ID,
+ ) -> UINT64,
+ fn GetNumMessagesDiscardedByMessageCountLimit(
+ Producer: DXGI_DEBUG_ID,
+ ) -> UINT64,
+ fn GetMessageCountLimit(
+ Producer: DXGI_DEBUG_ID,
+ ) -> UINT64,
+ fn GetNumMessagesAllowedByStorageFilter(
+ Producer: DXGI_DEBUG_ID,
+ ) -> UINT64,
+ fn GetNumMessagesDeniedByStorageFilter(
+ Producer: DXGI_DEBUG_ID,
+ ) -> UINT64,
+ fn AddStorageFilterEntries(
+ Producer: DXGI_DEBUG_ID,
+ pFilter: *const DXGI_INFO_QUEUE_FILTER,
+ ) -> HRESULT,
+ fn GetStorageFilter(
+ Producer: DXGI_DEBUG_ID,
+ pFilter: *mut DXGI_INFO_QUEUE_FILTER,
+ pFilterByteLength: *mut SIZE_T,
+ ) -> HRESULT,
+ fn ClearStorageFilter(
+ Producer: DXGI_DEBUG_ID,
+ ) -> (),
+ fn PushEmptyStorageFilter(
+ Producer: DXGI_DEBUG_ID,
+ ) -> HRESULT,
+ fn PushDenyAllStorageFilter(
+ Producer: DXGI_DEBUG_ID,
+ ) -> HRESULT,
+ fn PushCopyOfStorageFilter(
+ Producer: DXGI_DEBUG_ID,
+ ) -> HRESULT,
+ fn PushStorageFilter(
+ Producer: DXGI_DEBUG_ID,
+ pFilter: *const DXGI_INFO_QUEUE_FILTER,
+ ) -> HRESULT,
+ fn PopStorageFilter(
+ Producer: DXGI_DEBUG_ID,
+ ) -> (),
+ fn GetStorageFilterStackSize(
+ Producer: DXGI_DEBUG_ID,
+ ) -> UINT,
+ fn AddRetrievalFilterEntries(
+ Producer: DXGI_DEBUG_ID,
+ pFilter: *const DXGI_INFO_QUEUE_FILTER,
+ ) -> HRESULT,
+ fn GetRetrievalFilter(
+ Producer: DXGI_DEBUG_ID,
+ pFilter: *mut DXGI_INFO_QUEUE_FILTER,
+ pFilterByteLength: *mut SIZE_T,
+ ) -> HRESULT,
+ fn ClearRetrievalFilter(
+ Producer: DXGI_DEBUG_ID,
+ ) -> (),
+ fn PushEmptyRetrievalFilter(
+ Producer: DXGI_DEBUG_ID,
+ ) -> HRESULT,
+ fn PushDenyAllRetrievalFilter(
+ Producer: DXGI_DEBUG_ID,
+ ) -> HRESULT,
+ fn PushCopyOfRetrievalFilter(
+ Producer: DXGI_DEBUG_ID,
+ ) -> HRESULT,
+ fn PushRetrievalFilter(
+ Producer: DXGI_DEBUG_ID,
+ pFilter: *const DXGI_INFO_QUEUE_FILTER,
+ ) -> HRESULT,
+ fn PopRetrievalFilter(
+ Producer: DXGI_DEBUG_ID,
+ ) -> (),
+ fn GetRetrievalFilterStackSize(
+ Producer: DXGI_DEBUG_ID,
+ ) -> UINT,
+ fn AddMessage(
+ Producer: DXGI_DEBUG_ID,
+ Category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
+ Severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
+ ID: DXGI_INFO_QUEUE_MESSAGE_ID,
+ pDescription: LPCSTR,
+ ) -> HRESULT,
+ fn AddApplicationMessage(
+ Severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
+ pDescription: LPCSTR,
+ ) -> HRESULT,
+ fn SetBreakOnCategory(
+ Producer: DXGI_DEBUG_ID,
+ Category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
+ bEnable: BOOL,
+ ) -> HRESULT,
+ fn SetBreakOnSeverity(
+ Producer: DXGI_DEBUG_ID,
+ Severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
+ bEnable: BOOL,
+ ) -> HRESULT,
+ fn SetBreakOnID(
+ Producer: DXGI_DEBUG_ID,
+ ID: DXGI_INFO_QUEUE_MESSAGE_ID,
+ bEnable: BOOL,
+ ) -> HRESULT,
+ fn GetBreakOnCategory(
+ Producer: DXGI_DEBUG_ID,
+ Category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
+ ) -> BOOL,
+ fn GetBreakOnSeverity(
+ Producer: DXGI_DEBUG_ID,
+ Severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
+ ) -> BOOL,
+ fn GetBreakOnID(
+ Producer: DXGI_DEBUG_ID,
+ ID: DXGI_INFO_QUEUE_MESSAGE_ID,
+ ) -> BOOL,
+ fn SetMuteDebugOutput(
+ Producer: DXGI_DEBUG_ID,
+ bMute: BOOL,
+ ) -> (),
+ fn GetMuteDebugOutput(
+ Producer: DXGI_DEBUG_ID,
+ ) -> BOOL,
+}}
+RIDL!{#[uuid(0x119e7452, 0xde9e, 0x40fe, 0x88, 0x06, 0x88, 0xf9, 0x0c, 0x12, 0xb4, 0x41)]
+interface IDXGIDebug(IDXGIDebugVtbl): IUnknown(IUnknownVtbl) {
+ fn ReportLiveObjects(
+ apiid: GUID,
+ flags: DXGI_DEBUG_RLO_FLAGS,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x119e7452, 0xde9e, 0x40fe, 0x88, 0x06, 0x88, 0xf9, 0x0c, 0x12, 0xb4, 0x41)]
+interface IDXGIDebug1(IDXGIDebug1Vtbl): IDXGIDebug(IDXGIDebugVtbl) {
+ fn EnableLeakTrackingForThread() -> (),
+ fn DisableLeakTrackingForThread() -> (),
+ fn IsLeakTrackingEnabledForThread() -> BOOL,
+}}
+DEFINE_GUID!{IID_IDXGIInfoQueue,
+ 0xd67441c7, 0x672a, 0x476f, 0x9e, 0x82, 0xcd, 0x55, 0xb4, 0x49, 0x49, 0xce}
+DEFINE_GUID!{IID_IDXGIDebug,
+ 0x119e7452, 0xde9e, 0x40fe, 0x88, 0x06, 0x88, 0xf9, 0x0c, 0x12, 0xb4, 0x41}
+DEFINE_GUID!{IID_IDXGIDebug1,
+ 0xc5a05f0c, 0x16f2, 0x4adf, 0x9f, 0x4d, 0xa8, 0xc4, 0xd5, 0x8a, 0xc5, 0x50}