]> git.proxmox.com Git - rustc.git/blob - src/vendor/winapi/src/um/dxgidebug.rs
New upstream version 1.31.0+dfsg1
[rustc.git] / src / vendor / winapi / src / um / dxgidebug.rs
1 // Copyright © 2017 winapi-rs developers
2 // Licensed under the Apache License, Version 2.0
3 // <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
4 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
5 // All files in the project carrying such notice may not be copied, modified, or distributed
6 // except according to those terms.
7 use ctypes::{c_char, c_int, c_void};
8 use shared::basetsd::{SIZE_T, UINT64};
9 use shared::guiddef::{GUID, REFIID};
10 use shared::minwindef::{BOOL, DWORD, UINT};
11 use um::unknwnbase::{IUnknown, IUnknownVtbl};
12 use um::winnt::{HRESULT, LPCSTR};
13 pub const DXGI_DEBUG_BINARY_VERSION: DWORD = 1;
14 ENUM!{enum DXGI_DEBUG_RLO_FLAGS {
15 DXGI_DEBUG_RLO_SUMMARY = 0x1,
16 DXGI_DEBUG_RLO_DETAIL = 0x2,
17 DXGI_DEBUG_RLO_IGNORE_INTERNAL = 0x4,
18 DXGI_DEBUG_RLO_ALL = 0x7,
19 }}
20 pub type DXGI_DEBUG_ID = GUID;
21 DEFINE_GUID!{DXGI_DEBUG_ALL,
22 0xe48ae283, 0xda80, 0x490b, 0x87, 0xe6, 0x43, 0xe9, 0xa9, 0xcf, 0xda, 0x08}
23 DEFINE_GUID!{DXGI_DEBUG_DX,
24 0x35cdd7fc, 0x13b2, 0x421d, 0xa5, 0xd7, 0x7e, 0x44, 0x51, 0x28, 0x7d, 0x64}
25 DEFINE_GUID!{DXGI_DEBUG_DXGI,
26 0x25cddaa4, 0xb1c6, 0x47e1, 0xac, 0x3e, 0x98, 0x87, 0x5b, 0x5a, 0x2e, 0x2a}
27 DEFINE_GUID!{DXGI_DEBUG_APP,
28 0x06cd6e01, 0x4219, 0x4ebd, 0x87, 0x09, 0x27, 0xed, 0x23, 0x36, 0x0c, 0x62}
29 ENUM!{enum DXGI_INFO_QUEUE_MESSAGE_CATEGORY {
30 DXGI_INFO_QUEUE_MESSAGE_CATEGORY_UNKNOWN = 0,
31 DXGI_INFO_QUEUE_MESSAGE_CATEGORY_MISCELLANEOUS = 1,
32 DXGI_INFO_QUEUE_MESSAGE_CATEGORY_INITIALIZATION = 2,
33 DXGI_INFO_QUEUE_MESSAGE_CATEGORY_CLEANUP = 3,
34 DXGI_INFO_QUEUE_MESSAGE_CATEGORY_COMPILATION = 4,
35 DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_CREATION = 5,
36 DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_SETTING = 6,
37 DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_GETTING = 7,
38 DXGI_INFO_QUEUE_MESSAGE_CATEGORY_RESOURCE_MANIPULATION = 8,
39 DXGI_INFO_QUEUE_MESSAGE_CATEGORY_EXECUTION = 9,
40 DXGI_INFO_QUEUE_MESSAGE_CATEGORY_SHADER = 10,
41 }}
42 ENUM!{enum DXGI_INFO_QUEUE_MESSAGE_SEVERITY {
43 DXGI_INFO_QUEUE_MESSAGE_SEVERITY_CORRUPTION = 0,
44 DXGI_INFO_QUEUE_MESSAGE_SEVERITY_ERROR = 1,
45 DXGI_INFO_QUEUE_MESSAGE_SEVERITY_WARNING = 2,
46 DXGI_INFO_QUEUE_MESSAGE_SEVERITY_INFO = 3,
47 DXGI_INFO_QUEUE_MESSAGE_SEVERITY_MESSAGE = 4,
48 }}
49 pub type DXGI_INFO_QUEUE_MESSAGE_ID = c_int;
50 STRUCT!{struct DXGI_INFO_QUEUE_MESSAGE {
51 Producer: DXGI_DEBUG_ID,
52 Category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
53 Severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
54 ID: DXGI_INFO_QUEUE_MESSAGE_ID,
55 pDescription: *const c_char,
56 DescriptionByteLength: SIZE_T,
57 }}
58 STRUCT!{struct DXGI_INFO_QUEUE_FILTER_DESC {
59 NumCategories: UINT,
60 pCategoryList: *mut DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
61 NumSeverities: UINT,
62 pSeverityList: *mut DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
63 NumIDs: UINT,
64 pIDList: *mut DXGI_INFO_QUEUE_MESSAGE_ID,
65 }}
66 STRUCT!{struct DXGI_INFO_QUEUE_FILTER {
67 AllowList: DXGI_INFO_QUEUE_FILTER_DESC,
68 DenyList: DXGI_INFO_QUEUE_FILTER_DESC,
69 }}
70 pub const DXGI_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT: DWORD = 1024;
71 extern "system" {
72 pub fn DXGIGetDebugInterface(
73 riid: REFIID,
74 ppDebug: *mut *mut c_void,
75 ) -> HRESULT;
76 }
77 RIDL!{#[uuid(0xd67441c7, 0x672a, 0x476f, 0x9e, 0x82, 0xcd, 0x55, 0xb4, 0x49, 0x49, 0xce)]
78 interface IDXGIInfoQueue(IDXGIInfoQueueVtbl): IUnknown(IUnknownVtbl) {
79 fn SetMessageCountLimit(
80 Producer: DXGI_DEBUG_ID,
81 MessageCountLimit: UINT64,
82 ) -> HRESULT,
83 fn ClearStoredMessages(
84 Producer: DXGI_DEBUG_ID,
85 ) -> (),
86 fn GetMessage(
87 Producer: DXGI_DEBUG_ID,
88 MessageIndex: UINT64,
89 pMessage: *mut DXGI_INFO_QUEUE_MESSAGE,
90 pMessageByteLength: *mut SIZE_T,
91 ) -> HRESULT,
92 fn GetNumStoredMessagesAllowedByRetrievalFilters(
93 Producer: DXGI_DEBUG_ID,
94 ) -> UINT64,
95 fn GetNumStoredMessages(
96 Producer: DXGI_DEBUG_ID,
97 ) -> UINT64,
98 fn GetNumMessagesDiscardedByMessageCountLimit(
99 Producer: DXGI_DEBUG_ID,
100 ) -> UINT64,
101 fn GetMessageCountLimit(
102 Producer: DXGI_DEBUG_ID,
103 ) -> UINT64,
104 fn GetNumMessagesAllowedByStorageFilter(
105 Producer: DXGI_DEBUG_ID,
106 ) -> UINT64,
107 fn GetNumMessagesDeniedByStorageFilter(
108 Producer: DXGI_DEBUG_ID,
109 ) -> UINT64,
110 fn AddStorageFilterEntries(
111 Producer: DXGI_DEBUG_ID,
112 pFilter: *const DXGI_INFO_QUEUE_FILTER,
113 ) -> HRESULT,
114 fn GetStorageFilter(
115 Producer: DXGI_DEBUG_ID,
116 pFilter: *mut DXGI_INFO_QUEUE_FILTER,
117 pFilterByteLength: *mut SIZE_T,
118 ) -> HRESULT,
119 fn ClearStorageFilter(
120 Producer: DXGI_DEBUG_ID,
121 ) -> (),
122 fn PushEmptyStorageFilter(
123 Producer: DXGI_DEBUG_ID,
124 ) -> HRESULT,
125 fn PushDenyAllStorageFilter(
126 Producer: DXGI_DEBUG_ID,
127 ) -> HRESULT,
128 fn PushCopyOfStorageFilter(
129 Producer: DXGI_DEBUG_ID,
130 ) -> HRESULT,
131 fn PushStorageFilter(
132 Producer: DXGI_DEBUG_ID,
133 pFilter: *const DXGI_INFO_QUEUE_FILTER,
134 ) -> HRESULT,
135 fn PopStorageFilter(
136 Producer: DXGI_DEBUG_ID,
137 ) -> (),
138 fn GetStorageFilterStackSize(
139 Producer: DXGI_DEBUG_ID,
140 ) -> UINT,
141 fn AddRetrievalFilterEntries(
142 Producer: DXGI_DEBUG_ID,
143 pFilter: *const DXGI_INFO_QUEUE_FILTER,
144 ) -> HRESULT,
145 fn GetRetrievalFilter(
146 Producer: DXGI_DEBUG_ID,
147 pFilter: *mut DXGI_INFO_QUEUE_FILTER,
148 pFilterByteLength: *mut SIZE_T,
149 ) -> HRESULT,
150 fn ClearRetrievalFilter(
151 Producer: DXGI_DEBUG_ID,
152 ) -> (),
153 fn PushEmptyRetrievalFilter(
154 Producer: DXGI_DEBUG_ID,
155 ) -> HRESULT,
156 fn PushDenyAllRetrievalFilter(
157 Producer: DXGI_DEBUG_ID,
158 ) -> HRESULT,
159 fn PushCopyOfRetrievalFilter(
160 Producer: DXGI_DEBUG_ID,
161 ) -> HRESULT,
162 fn PushRetrievalFilter(
163 Producer: DXGI_DEBUG_ID,
164 pFilter: *const DXGI_INFO_QUEUE_FILTER,
165 ) -> HRESULT,
166 fn PopRetrievalFilter(
167 Producer: DXGI_DEBUG_ID,
168 ) -> (),
169 fn GetRetrievalFilterStackSize(
170 Producer: DXGI_DEBUG_ID,
171 ) -> UINT,
172 fn AddMessage(
173 Producer: DXGI_DEBUG_ID,
174 Category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
175 Severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
176 ID: DXGI_INFO_QUEUE_MESSAGE_ID,
177 pDescription: LPCSTR,
178 ) -> HRESULT,
179 fn AddApplicationMessage(
180 Severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
181 pDescription: LPCSTR,
182 ) -> HRESULT,
183 fn SetBreakOnCategory(
184 Producer: DXGI_DEBUG_ID,
185 Category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
186 bEnable: BOOL,
187 ) -> HRESULT,
188 fn SetBreakOnSeverity(
189 Producer: DXGI_DEBUG_ID,
190 Severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
191 bEnable: BOOL,
192 ) -> HRESULT,
193 fn SetBreakOnID(
194 Producer: DXGI_DEBUG_ID,
195 ID: DXGI_INFO_QUEUE_MESSAGE_ID,
196 bEnable: BOOL,
197 ) -> HRESULT,
198 fn GetBreakOnCategory(
199 Producer: DXGI_DEBUG_ID,
200 Category: DXGI_INFO_QUEUE_MESSAGE_CATEGORY,
201 ) -> BOOL,
202 fn GetBreakOnSeverity(
203 Producer: DXGI_DEBUG_ID,
204 Severity: DXGI_INFO_QUEUE_MESSAGE_SEVERITY,
205 ) -> BOOL,
206 fn GetBreakOnID(
207 Producer: DXGI_DEBUG_ID,
208 ID: DXGI_INFO_QUEUE_MESSAGE_ID,
209 ) -> BOOL,
210 fn SetMuteDebugOutput(
211 Producer: DXGI_DEBUG_ID,
212 bMute: BOOL,
213 ) -> (),
214 fn GetMuteDebugOutput(
215 Producer: DXGI_DEBUG_ID,
216 ) -> BOOL,
217 }}
218 RIDL!{#[uuid(0x119e7452, 0xde9e, 0x40fe, 0x88, 0x06, 0x88, 0xf9, 0x0c, 0x12, 0xb4, 0x41)]
219 interface IDXGIDebug(IDXGIDebugVtbl): IUnknown(IUnknownVtbl) {
220 fn ReportLiveObjects(
221 apiid: GUID,
222 flags: DXGI_DEBUG_RLO_FLAGS,
223 ) -> HRESULT,
224 }}
225 RIDL!{#[uuid(0x119e7452, 0xde9e, 0x40fe, 0x88, 0x06, 0x88, 0xf9, 0x0c, 0x12, 0xb4, 0x41)]
226 interface IDXGIDebug1(IDXGIDebug1Vtbl): IDXGIDebug(IDXGIDebugVtbl) {
227 fn EnableLeakTrackingForThread() -> (),
228 fn DisableLeakTrackingForThread() -> (),
229 fn IsLeakTrackingEnabledForThread() -> BOOL,
230 }}
231 DEFINE_GUID!{IID_IDXGIInfoQueue,
232 0xd67441c7, 0x672a, 0x476f, 0x9e, 0x82, 0xcd, 0x55, 0xb4, 0x49, 0x49, 0xce}
233 DEFINE_GUID!{IID_IDXGIDebug,
234 0x119e7452, 0xde9e, 0x40fe, 0x88, 0x06, 0x88, 0xf9, 0x0c, 0x12, 0xb4, 0x41}
235 DEFINE_GUID!{IID_IDXGIDebug1,
236 0xc5a05f0c, 0x16f2, 0x4adf, 0x9f, 0x4d, 0xa8, 0xc4, 0xd5, 0x8a, 0xc5, 0x50}