wine/include/dxgidebug.idl

260 lines
7.8 KiB
Text
Raw Normal View History

/*
* Copyright 2015 Steve Lhomme
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
import "oaidl.idl";
const UINT DXGI_DEBUG_BINARY_VERSION = 1;
typedef GUID DXGI_DEBUG_ID;
cpp_quote("DEFINE_GUID(DXGI_DEBUG_ALL, 0xe48ae283, 0xda80, 0x490b,0x87, 0xe6, 0x43, 0xe9, 0xa9, 0xcf, 0xda, 0x08);")
cpp_quote("DEFINE_GUID(DXGI_DEBUG_DX, 0x35cdd7fc, 0x13b2, 0x421d,0xa5, 0xd7, 0x7e, 0x44, 0x51, 0x28, 0x7d, 0x64);")
cpp_quote("DEFINE_GUID(DXGI_DEBUG_DXGI, 0x25cddaa4, 0xb1c6, 0x47e1,0xac, 0x3e, 0x98, 0x87, 0x5b, 0x5a, 0x2e, 0x2a);")
cpp_quote("DEFINE_GUID(DXGI_DEBUG_APP, 0x06cd6e01, 0x4219, 0x4ebd,0x87, 0x90, 0x27, 0xed, 0x23, 0x36, 0x0c, 0x62);")
typedef enum DXGI_DEBUG_RLO_FLAGS {
DXGI_DEBUG_RLO_SUMMARY = 0x0001,
DXGI_DEBUG_RLO_DETAIL = 0x0002,
DXGI_DEBUG_RLO_IGNORE_INTERNAL = 0x0004,
DXGI_DEBUG_RLO_ALL = 0x0007
} DXGI_DEBUG_RLO_FLAGS;
typedef enum DXGI_INFO_QUEUE_MESSAGE_CATEGORY {
DXGI_INFO_QUEUE_MESSAGE_CATEGORY_UNKNOWN,
DXGI_INFO_QUEUE_MESSAGE_CATEGORY_MISCELLANEOUS,
DXGI_INFO_QUEUE_MESSAGE_CATEGORY_INITIALIZATION,
DXGI_INFO_QUEUE_MESSAGE_CATEGORY_CLEANUP,
DXGI_INFO_QUEUE_MESSAGE_CATEGORY_COMPILATION,
DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_CREATION,
DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_SETTING,
DXGI_INFO_QUEUE_MESSAGE_CATEGORY_STATE_GETTING,
DXGI_INFO_QUEUE_MESSAGE_CATEGORY_RESOURCE_MANIPULATION,
DXGI_INFO_QUEUE_MESSAGE_CATEGORY_EXECUTION,
DXGI_INFO_QUEUE_MESSAGE_CATEGORY_SHADER,
} DXGI_INFO_QUEUE_MESSAGE_CATEGORY;
typedef enum DXGI_INFO_QUEUE_MESSAGE_SEVERITY {
DXGI_INFO_QUEUE_MESSAGE_SEVERITY_CORRUPTION,
DXGI_INFO_QUEUE_MESSAGE_SEVERITY_ERROR,
DXGI_INFO_QUEUE_MESSAGE_SEVERITY_WARNING,
DXGI_INFO_QUEUE_MESSAGE_SEVERITY_INFO,
DXGI_INFO_QUEUE_MESSAGE_SEVERITY_MESSAGE
} DXGI_INFO_QUEUE_MESSAGE_SEVERITY;
typedef int DXGI_INFO_QUEUE_MESSAGE_ID;
cpp_quote("#define DXGI_INFO_QUEUE_MESSAGE_ID_STRING_FROM_APPLICATION 0")
typedef struct DXGI_INFO_QUEUE_MESSAGE {
DXGI_DEBUG_ID Producer;
DXGI_INFO_QUEUE_MESSAGE_CATEGORY Category;
DXGI_INFO_QUEUE_MESSAGE_SEVERITY Severity;
DXGI_INFO_QUEUE_MESSAGE_ID ID;
const char *pDescription;
SIZE_T DescriptionByteLength;
} DXGI_INFO_QUEUE_MESSAGE;
typedef struct DXGI_INFO_QUEUE_FILTER_DESC {
UINT NumCategories;
DXGI_INFO_QUEUE_MESSAGE_CATEGORY *pCategoryList;
UINT NumSeverities;
DXGI_INFO_QUEUE_MESSAGE_SEVERITY *pSeverityList;
UINT NumIDs;
DXGI_INFO_QUEUE_MESSAGE_ID *pIDList;
} DXGI_INFO_QUEUE_FILTER_DESC;
typedef struct DXGI_INFO_QUEUE_FILTER {
DXGI_INFO_QUEUE_FILTER_DESC AllowList;
DXGI_INFO_QUEUE_FILTER_DESC DenyList;
} DXGI_INFO_QUEUE_FILTER;
cpp_quote("#define DXGI_INFO_QUEUE_DEFAULT_MESSAGE_COUNT_LIMIT 1024")
cpp_quote("HRESULT WINAPI DXGIGetDebugInterface(REFIID riid, void **ppDebug);")
[
uuid(d67441c7-672a-476f-9e82-cd55b44949ce),
object,
local,
pointer_default(unique)
]
interface IDXGIInfoQueue : IUnknown
{
HRESULT SetMessageCountLimit(
[in] DXGI_DEBUG_ID producer,
[in] UINT64 limit);
void ClearStoredMessages(
[in] DXGI_DEBUG_ID producer);
HRESULT GetMessage(
[in] DXGI_DEBUG_ID producer,
[in] UINT64 index,
[out] DXGI_INFO_QUEUE_MESSAGE *message,
[in, out] SIZE_T *length);
UINT64 GetNumStoredMessagesAllowedByRetrievalFilters(
[in] DXGI_DEBUG_ID producer);
UINT64 GetNumStoredMessages(
[in] DXGI_DEBUG_ID producer);
UINT64 GetNumMessagesDiscardedByMessageCountLimit(
[in] DXGI_DEBUG_ID producer);
UINT64 GetMessageCountLimit(
[in] DXGI_DEBUG_ID producer);
UINT64 GetNumMessagesAllowedByStorageFilter(
[in] DXGI_DEBUG_ID producer);
UINT64 GetNumMessagesDeniedByStorageFilter(
[in] DXGI_DEBUG_ID producer);
HRESULT AddStorageFilterEntries(
[in] DXGI_DEBUG_ID producer,
[in] DXGI_INFO_QUEUE_FILTER *filter);
HRESULT GetStorageFilter(
[in] DXGI_DEBUG_ID producer,
[out] DXGI_INFO_QUEUE_FILTER *filter,
[in, out] SIZE_T *length);
void ClearStorageFilter(
[in] DXGI_DEBUG_ID producer);
HRESULT PushEmptyStorageFilter(
[in] DXGI_DEBUG_ID producer);
HRESULT PushDenyAllStorageFilter(
[in] DXGI_DEBUG_ID producer);
HRESULT PushCopyOfStorageFilter(
[in] DXGI_DEBUG_ID producer);
HRESULT PushStorageFilter(
[in] DXGI_DEBUG_ID producer,
[in] DXGI_INFO_QUEUE_FILTER *filter);
void PopStorageFilter(
[in] DXGI_DEBUG_ID producer);
UINT GetStorageFilterStackSize(
[in] DXGI_DEBUG_ID producer);
HRESULT AddRetrievalFilterEntries(
[in] DXGI_DEBUG_ID producer,
[in] DXGI_INFO_QUEUE_FILTER *filter);
HRESULT GetRetrievalFilter(
[in] DXGI_DEBUG_ID producer,
[out] DXGI_INFO_QUEUE_FILTER *filter,
[in, out] SIZE_T *length);
void ClearRetrievalFilter(
[in] DXGI_DEBUG_ID producer);
HRESULT PushEmptyRetrievalFilter(
[in] DXGI_DEBUG_ID producer);
HRESULT PushDenyAllRetrievalFilter(
[in] DXGI_DEBUG_ID producer);
HRESULT PushCopyOfRetrievalFilter(
[in] DXGI_DEBUG_ID producer);
HRESULT PushRetrievalFilter(
[in] DXGI_DEBUG_ID producer,
[in] DXGI_INFO_QUEUE_FILTER *filter);
void PopRetrievalFilter(
[in] DXGI_DEBUG_ID producer);
UINT GetRetrievalFilterStackSize(
[in] DXGI_DEBUG_ID producer);
HRESULT AddMessage(
[in] DXGI_DEBUG_ID producer,
[in] DXGI_INFO_QUEUE_MESSAGE_CATEGORY category,
[in] DXGI_INFO_QUEUE_MESSAGE_SEVERITY severity,
[in] DXGI_INFO_QUEUE_MESSAGE_ID id,
[in] LPCSTR description);
HRESULT AddApplicationMessage(
[in] DXGI_INFO_QUEUE_MESSAGE_SEVERITY severity,
[in] LPCSTR description);
HRESULT SetBreakOnCategory(
[in] DXGI_DEBUG_ID producer,
[in] DXGI_INFO_QUEUE_MESSAGE_CATEGORY category,
[in] BOOL enable);
HRESULT SetBreakOnSeverity(
[in] DXGI_DEBUG_ID producer,
[in] DXGI_INFO_QUEUE_MESSAGE_SEVERITY severity,
[in] BOOL enable);
HRESULT SetBreakOnID(
[in] DXGI_DEBUG_ID producer,
[in] DXGI_INFO_QUEUE_MESSAGE_ID id,
[in] BOOL enable);
BOOL GetBreakOnCategory(
[in] DXGI_DEBUG_ID producer,
[in] DXGI_INFO_QUEUE_MESSAGE_CATEGORY category);
BOOL GetBreakOnSeverity(
[in] DXGI_DEBUG_ID producer,
[in] DXGI_INFO_QUEUE_MESSAGE_SEVERITY severity);
BOOL GetBreakOnID(
[in] DXGI_DEBUG_ID producer,
[in] DXGI_INFO_QUEUE_MESSAGE_ID id);
void SetMuteDebugOutput(
[in] DXGI_DEBUG_ID producer,
[in] BOOL mute);
BOOL GetMuteDebugOutput(
[in] DXGI_DEBUG_ID producer);
}
[
object,
local,
uuid(119e7452-de9e-40fe-8806-88f90c12b441)
]
interface IDXGIDebug : IUnknown
{
HRESULT ReportLiveObjects(
[in] GUID apiid,
[in] DXGI_DEBUG_RLO_FLAGS flags);
}
[
uuid(c5a05f0c-16f2-4adf-9f4d-a8c4d58ac550),
object,
local,
pointer_default(unique)
]
interface IDXGIDebug1 : IDXGIDebug
{
void EnableLeakTrackingForThread();
void DisableLeakTrackingForThread();
BOOL IsLeakTrackingEnabledForThread();
}