From: José Fonseca Date: Sat, 14 Apr 2012 13:56:45 +0000 (+0100) Subject: Minimal D3D11 support. X-Git-Url: https://git.cworth.org/git?p=apitrace;a=commitdiff_plain;h=5b6fb75c9e2f1ad31bc3c3fb354003efe0352050 Minimal D3D11 support. --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 265b214..7c42200 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,8 +75,8 @@ else (WIN32) CHECK_CXX_COMPILER_FLAG("-fvisibility=hidden" CXX_COMPILER_FLAG_VISIBILITY) if (CXX_COMPILER_FLAG_VISIBILITY) add_definitions ("-fvisibility=hidden") - endif (CXX_COMPILER_FLAG_VISIBILITY) -endif (WIN32) + endif () +endif () if (MSVC) # C99 includes for msvc @@ -108,7 +108,7 @@ if (MSVC) ) if (${flag_var} MATCHES "/MD") string (REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") - endif (${flag_var} MATCHES "/MD") + endif () endforeach (flag_var) else () # Adjust warnings @@ -302,7 +302,7 @@ if (WIN32) if (MINGW) # Silence warnings about @nn suffix mismatch set (CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--enable-stdcall-fixup") - endif (MINGW) + endif () # ddraw.dll if (DirectX_D3D_INCLUDE_DIR) @@ -324,7 +324,7 @@ if (WIN32) LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/wrappers ) install (TARGETS ddraw LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) - endif (DirectX_D3D_INCLUDE_DIR) + endif () # d3d8.dll if (DirectX_D3D8_INCLUDE_DIR AND DirectX_D3DX9_INCLUDE_DIR) @@ -346,7 +346,7 @@ if (WIN32) LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/wrappers ) install (TARGETS d3d8 LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) - endif (DirectX_D3D8_INCLUDE_DIR AND DirectX_D3DX9_INCLUDE_DIR) + endif () # d3d9.dll if (DirectX_D3DX9_INCLUDE_DIR) @@ -368,15 +368,15 @@ if (WIN32) LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/wrappers ) install (TARGETS d3d9 LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) - endif (DirectX_D3DX9_INCLUDE_DIR) + endif () # d3d10.dll - if (DirectX_D3D10_INCLUDE_DIR) - include_directories (SYSTEM ${DirectX_D3D10_INCLUDE_DIR}) + if (DirectX_D3DX10_INCLUDE_DIR) + include_directories (SYSTEM ${DirectX_D3DX10_INCLUDE_DIR}) add_custom_command ( OUTPUT d3d10trace.cpp COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d10trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d10trace.cpp - DEPENDS d3d10trace.py trace.py specs/d3d10misc.py specs/d3d10.py specs/d3d10sdklayers.py specs/dxgi.py specs/dxgitype.py specs/dxgiformat.py specs/winapi.py specs/stdapi.py + DEPENDS d3d10trace.py trace.py specs/d3d10misc.py specs/d3d10.py specs/d3d10sdklayers.py specs/d3dcommon.py specs/dxgi.py specs/dxgitype.py specs/dxgiformat.py specs/winapi.py specs/stdapi.py ) add_library (d3d10 MODULE specs/d3d10.def d3d10trace.cpp) target_link_libraries (d3d10 @@ -390,15 +390,15 @@ if (WIN32) LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/wrappers ) install (TARGETS d3d10 LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) - endif (DirectX_D3D10_INCLUDE_DIR) + endif () # d3d10_1.dll - if (DirectX_D3D10_INCLUDE_DIR) - include_directories (SYSTEM ${DirectX_D3D10_INCLUDE_DIR}) + if (DirectX_D3DX10_INCLUDE_DIR AND DirectX_D3D10_1_INCLUDE_DIR) + include_directories (SYSTEM ${DirectX_D3D10_1_INCLUDE_DIR}) add_custom_command ( OUTPUT d3d10_1trace.cpp COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d10_1trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d10_1trace.cpp - DEPENDS d3d10_1trace.py trace.py specs/d3d10_1.py specs/d3d10.py specs/d3d10sdklayers.py specs/dxgi.py specs/dxgitype.py specs/dxgiformat.py specs/winapi.py specs/stdapi.py + DEPENDS d3d10_1trace.py trace.py specs/d3d10_1.py specs/d3d10.py specs/d3d10sdklayers.py specs/d3dcommon.py specs/dxgi.py specs/dxgitype.py specs/dxgiformat.py specs/winapi.py specs/stdapi.py ) add_library (d3d10_1 MODULE specs/d3d10_1.def d3d10_1trace.cpp) target_link_libraries (d3d10_1 @@ -412,7 +412,29 @@ if (WIN32) LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/wrappers ) install (TARGETS d3d10_1 LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) - endif (DirectX_D3D10_INCLUDE_DIR) + endif () + + # d3d11.dll + if (DirectX_D3DX11_INCLUDE_DIR) + include_directories (SYSTEM ${DirectX_D3DX11_INCLUDE_DIR}) + add_custom_command ( + OUTPUT d3d11trace.cpp + COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/d3d11trace.py > ${CMAKE_CURRENT_BINARY_DIR}/d3d11trace.cpp + DEPENDS d3d11trace.py trace.py specs/d3d11.py specs/d3d11sdklayers.py specs/d3dcommon.py specs/dxgi.py specs/dxgitype.py specs/dxgiformat.py specs/winapi.py specs/stdapi.py + ) + add_library (d3d11 MODULE specs/d3d11.def d3d11trace.cpp) + target_link_libraries (d3d11 + common + ${ZLIB_LIBRARIES} + ${SNAPPY_LIBRARIES} + ) + set_target_properties (d3d11 + PROPERTIES PREFIX "" + RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/wrappers + LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/wrappers + ) + install (TARGETS d3d11 LIBRARY DESTINATION ${WRAPPER_INSTALL_DIR}) + endif () # opengl32.dll add_custom_command ( diff --git a/cmake/FindDirectX.cmake b/cmake/FindDirectX.cmake index a174870..d841af4 100644 --- a/cmake/FindDirectX.cmake +++ b/cmake/FindDirectX.cmake @@ -57,8 +57,8 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") set (DirectX_D3D_FOUND 1) if (DirectX_D3DX_INCLUDE_DIR AND DirectX_D3DX_LIBRARY) set (DirectX_D3DX_FOUND 1) - endif (DirectX_D3DX_INCLUDE_DIR AND DirectX_D3DX_LIBRARY) - endif (DirectX_D3D_INCLUDE_DIR AND DirectX_DDRAW_LIBRARY) + endif () + endif () find_path (DirectX_D3D8_INCLUDE_DIR d3d8.h @@ -85,8 +85,8 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") set (DirectX_D3D8_FOUND 1) if (DirectX_D3DX8_INCLUDE_DIR AND DirectX_D3DX8_LIBRARY) set (DirectX_D3DX8_FOUND 1) - endif (DirectX_D3DX8_INCLUDE_DIR AND DirectX_D3DX8_LIBRARY) - endif (DirectX_D3D8_INCLUDE_DIR AND DirectX_D3D8_LIBRARY) + endif () + endif () find_path (DirectX_D3D9_INCLUDE_DIR d3d9.h @@ -113,8 +113,8 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") set (DirectX_D3D9_FOUND 1) if (DirectX_D3DX9_INCLUDE_DIR AND DirectX_D3DX9_LIBRARY) set (DirectX_D3DX9_FOUND 1) - endif (DirectX_D3DX9_INCLUDE_DIR AND DirectX_D3DX9_LIBRARY) - endif (DirectX_D3D9_INCLUDE_DIR AND DirectX_D3D9_LIBRARY) + endif () + endif () find_path (DirectX_D3D10_INCLUDE_DIR d3d10.h @@ -141,8 +141,52 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") set (DirectX_D3D10_FOUND 1) if (DirectX_D3DX10_INCLUDE_DIR AND DirectX_D3DX10_LIBRARY) set (DirectX_D3DX10_FOUND 1) - endif (DirectX_D3DX10_INCLUDE_DIR AND DirectX_D3DX10_LIBRARY) - endif (DirectX_D3D10_INCLUDE_DIR AND DirectX_D3D10_LIBRARY) + endif () + endif () + + + find_path (DirectX_D3D10_1_INCLUDE_DIR d3d10_1.h + PATHS + "${DirectX_ROOT_DIR}/Include" + DOC "The directory where d3d10_1.h resides") + + find_library (DirectX_D3D10_1_LIBRARY d3d10_1 + PATHS + "${DirectX_ROOT_DIR}/Lib/${DirectX_ARCHITECTURE}" + DOC "The directory where d3d10_1 resides") + + if (DirectX_D3D10_1_INCLUDE_DIR AND DirectX_D3D10_1_LIBRARY) + set (DirectX_D3D10_1_FOUND 1) + endif () + + + find_path (DirectX_D3D11_INCLUDE_DIR d3d11.h + PATHS + "${DirectX_ROOT_DIR}/Include" + DOC "The directory where d3d11.h resides") + + find_path (DirectX_D3DX11_INCLUDE_DIR d3dx11.h + PATHS + "${DirectX_ROOT_DIR}/Include" + DOC "The directory where d3dx11.h resides") + + find_library (DirectX_D3D11_LIBRARY d3d11 + PATHS + "${DirectX_ROOT_DIR}/Lib/${DirectX_ARCHITECTURE}" + DOC "The directory where d3d11 resides") + + find_library (DirectX_D3DX11_LIBRARY d3dx11 + PATHS + "${DirectX_ROOT_DIR}/Lib/${DirectX_ARCHITECTURE}" + DOC "The directory where d3dx11 resides") + + if (DirectX_D3D11_INCLUDE_DIR AND DirectX_D3D11_LIBRARY) + set (DirectX_D3D11_FOUND 1) + if (DirectX_D3DX11_INCLUDE_DIR AND DirectX_D3DX11_LIBRARY) + set (DirectX_D3DX11_FOUND 1) + endif () + endif () + mark_as_advanced( DirectX_D3D_INCLUDE_DIR @@ -169,9 +213,15 @@ if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") DirectX_D3D10_LIBRARY DirectX_D3DX10_INCLUDE_DIR DirectX_D3DX10_LIBRARY + DirectX_D3D10_1_INCLUDE_DIR + DirectX_D3D10_1_LIBRARY + DirectX_D3D11_INCLUDE_DIR + DirectX_D3D11_LIBRARY + DirectX_D3DX11_INCLUDE_DIR + DirectX_D3DX11_LIBRARY ) -endif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows") +endif () mark_as_advanced ( DirectX_D3D_FOUND @@ -182,4 +232,7 @@ mark_as_advanced ( DirectX_D3DX9_FOUND DirectX_D3D10_FOUND DirectX_D3DX10_FOUND + DirectX_D3D10_1_FOUND + DirectX_D3D11_FOUND + DirectX_D3DX11_FOUND ) diff --git a/d3d11trace.py b/d3d11trace.py new file mode 100644 index 0000000..e40828b --- /dev/null +++ b/d3d11trace.py @@ -0,0 +1,46 @@ +########################################################################## +# +# Copyright 2008-2012 VMware, Inc. +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +##########################################################################/ + + +from specs.d3d11 import d3d11 +from dlltrace import DllTracer + + +if __name__ == '__main__': + print '#define INITGUID' + print + print '#include "trace_writer_local.hpp"' + print '#include "os.hpp"' + print + print '#include ' + print '#include ' + print + print '#include "compat.h"' + print + print '#include ' + print '#include ' + print + tracer = DllTracer('d3d11.dll') + tracer.trace_api(d3d11) diff --git a/specs/d3d10.py b/specs/d3d10.py index 00321d7..5119904 100644 --- a/specs/d3d10.py +++ b/specs/d3d10.py @@ -23,7 +23,10 @@ # ##########################################################################/ + from dxgi import * +from d3dcommon import * + HRESULT = FakeEnum(HRESULT, [ "D3D10_ERROR_FILE_NOT_FOUND", @@ -567,28 +570,6 @@ D3D10_QUERY_DESC = Struct("D3D10_QUERY_DESC", [ (D3D10_QUERY_MISC_FLAG, "MiscFlags"), ]) -D3D10_PRIMITIVE_TOPOLOGY = Enum("D3D10_PRIMITIVE_TOPOLOGY", [ - "D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED", - "D3D10_PRIMITIVE_TOPOLOGY_POINTLIST", - "D3D10_PRIMITIVE_TOPOLOGY_LINELIST", - "D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP", - "D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST", - "D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP", - "D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ", - "D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ", - "D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ", - "D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ", -]) - -D3D10_PRIMITIVE = Enum("D3D10_PRIMITIVE", [ - "D3D10_PRIMITIVE_UNDEFINED", - "D3D10_PRIMITIVE_POINT", - "D3D10_PRIMITIVE_LINE", - "D3D10_PRIMITIVE_TRIANGLE", - "D3D10_PRIMITIVE_LINE_ADJ", - "D3D10_PRIMITIVE_TRIANGLE_ADJ", -]) - D3D10_RECT = Alias("D3D10_RECT", RECT) D3D10_VIEWPORT = Struct("D3D10_VIEWPORT", [ (INT, "TopLeftX"), @@ -766,15 +747,6 @@ ID3D10DepthStencilState.methods += [ Method(Void, "GetDesc", [Out(Pointer(D3D10_DEPTH_STENCIL_DESC), "pDesc")]), ] -ID3D10GeometryShader.methods += [ -] - -ID3D10InputLayout.methods += [ -] - -ID3D10PixelShader.methods += [ -] - ID3D10RasterizerState.methods += [ Method(Void, "GetDesc", [Out(Pointer(D3D10_RASTERIZER_DESC), "pDesc")]), ] @@ -783,9 +755,6 @@ ID3D10SamplerState.methods += [ Method(Void, "GetDesc", [Out(Pointer(D3D10_SAMPLER_DESC), "pDesc")]), ] -ID3D10VertexShader.methods += [ -] - ID3D10Asynchronous.methods += [ Method(Void, "Begin", []), Method(Void, "End", []), @@ -801,9 +770,6 @@ ID3D10Query.methods += [ Method(Void, "GetDesc", [Out(Pointer(D3D10_QUERY_DESC), "pDesc")]), ] -ID3D10Predicate.methods += [ -] - ID3D10Device.methods += [ Method(Void, "VSSetConstantBuffers", [(UINT, "StartSlot"), (UINT, "NumBuffers"), (Array(Const(OpaquePointer(ID3D10Buffer)), "NumBuffers"), "ppConstantBuffers")]), Method(Void, "PSSetShaderResources", [(UINT, "StartSlot"), (UINT, "NumViews"), (Array(Const(OpaquePointer(ID3D10ShaderResourceView)), "NumViews"), "ppShaderResourceViews")]), diff --git a/specs/d3d10_1.py b/specs/d3d10_1.py index 5bc364f..c9bda7e 100644 --- a/specs/d3d10_1.py +++ b/specs/d3d10_1.py @@ -82,7 +82,6 @@ D3D10_TEXCUBE_ARRAY_SRV1 = Struct("D3D10_TEXCUBE_ARRAY_SRV1", [ (UINT, "NumCubes"), ]) -D3D10_SRV_DIMENSION1 = Alias("D3D10_SRV_DIMENSION1", D3D10_SRV_DIMENSION) D3D10_SHADER_RESOURCE_VIEW_DESC1 = Struct("D3D10_SHADER_RESOURCE_VIEW_DESC1", [ (DXGI_FORMAT, "Format"), (D3D10_SRV_DIMENSION1, "ViewDimension"), diff --git a/specs/d3d11.py b/specs/d3d11.py new file mode 100644 index 0000000..6371529 --- /dev/null +++ b/specs/d3d11.py @@ -0,0 +1,1231 @@ +########################################################################## +# +# Copyright 2012 Jose Fonseca +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +##########################################################################/ + + +from dxgi import * +from d3dcommon import * +from d3d11sdklayers import * + + +HRESULT = FakeEnum(HRESULT, [ + "D3D11_ERROR_FILE_NOT_FOUND", + "D3D11_ERROR_TOO_MANY_UNIQUE_STATE_OBJECTS", + "D3D11_ERROR_TOO_MANY_UNIQUE_VIEW_OBJECTS", + "D3D11_ERROR_DEFERRED_CONTEXT_MAP_WITHOUT_INITIAL_DISCARD", + "D3DERR_INVALIDCALL", + "D3DERR_WASSTILLDRAWING", + "E_FAIL", + "E_INVALIDARG", + "E_OUTOFMEMORY", + "S_FALSE", + "S_OK", +]) + + +ID3D11DepthStencilState = Interface('ID3D11DepthStencilState', ID3D11DeviceChild) +ID3D11BlendState = Interface('ID3D11BlendState', ID3D11DeviceChild) +ID3D11RasterizerState = Interface('ID3D11RasterizerState', ID3D11DeviceChild) +ID3D11Resource = Interface('ID3D11Resource', ID3D11DeviceChild) +ID3D11Buffer = Interface('ID3D11Buffer', ID3D11Resource) +ID3D11Texture1D = Interface('ID3D11Texture1D', ID3D11Resource) +ID3D11Texture2D = Interface('ID3D11Texture2D', ID3D11Resource) +ID3D11Texture3D = Interface('ID3D11Texture3D', ID3D11Resource) +ID3D11View = Interface('ID3D11View', ID3D11DeviceChild) +ID3D11ShaderResourceView = Interface('ID3D11ShaderResourceView', ID3D11View) +ID3D11RenderTargetView = Interface('ID3D11RenderTargetView', ID3D11View) +ID3D11DepthStencilView = Interface('ID3D11DepthStencilView', ID3D11View) +ID3D11UnorderedAccessView = Interface('ID3D11UnorderedAccessView', ID3D11View) +ID3D11VertexShader = Interface('ID3D11VertexShader', ID3D11DeviceChild) +ID3D11HullShader = Interface('ID3D11HullShader', ID3D11DeviceChild) +ID3D11DomainShader = Interface('ID3D11DomainShader', ID3D11DeviceChild) +ID3D11GeometryShader = Interface('ID3D11GeometryShader', ID3D11DeviceChild) +ID3D11PixelShader = Interface('ID3D11PixelShader', ID3D11DeviceChild) +ID3D11ComputeShader = Interface('ID3D11ComputeShader', ID3D11DeviceChild) +ID3D11InputLayout = Interface('ID3D11InputLayout', ID3D11DeviceChild) +ID3D11SamplerState = Interface('ID3D11SamplerState', ID3D11DeviceChild) +ID3D11Asynchronous = Interface('ID3D11Asynchronous', ID3D11DeviceChild) +ID3D11Query = Interface('ID3D11Query', ID3D11Asynchronous) +ID3D11Predicate = Interface('ID3D11Predicate', ID3D11Query) +ID3D11Counter = Interface('ID3D11Counter', ID3D11Asynchronous) +ID3D11ClassInstance = Interface('ID3D11ClassInstance', ID3D11DeviceChild) +ID3D11ClassLinkage = Interface('ID3D11ClassLinkage', ID3D11DeviceChild) +ID3D11CommandList = Interface('ID3D11CommandList', ID3D11DeviceChild) +ID3D11Device = Interface('ID3D11Device', IUnknown) + + +D3D11_INPUT_CLASSIFICATION = Enum('D3D11_INPUT_CLASSIFICATION', [ + 'D3D11_INPUT_PER_VERTEX_DATA', + 'D3D11_INPUT_PER_INSTANCE_DATA', +]) + +D3D11_INPUT_ELEMENT_ALIGNED_BYTE_OFFSET = FakeEnum(UINT, [ + 'D3D11_APPEND_ALIGNED_ELEMENT', +]) + +D3D11_INPUT_ELEMENT_DESC = Struct('D3D11_INPUT_ELEMENT_DESC', [ + (LPCSTR, 'SemanticName'), + (UINT, 'SemanticIndex'), + (DXGI_FORMAT, 'Format'), + (UINT, 'InputSlot'), + (D3D11_INPUT_ELEMENT_ALIGNED_BYTE_OFFSET, 'AlignedByteOffset'), + (D3D11_INPUT_CLASSIFICATION, 'InputSlotClass'), + (UINT, 'InstanceDataStepRate'), +]) + +D3D11_FILL_MODE = Enum('D3D11_FILL_MODE', [ + 'D3D11_FILL_WIREFRAME', + 'D3D11_FILL_SOLID', +]) + +D3D11_PRIMITIVE_TOPOLOGY = Enum('D3D11_PRIMITIVE_TOPOLOGY', [ + 'D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED', + 'D3D11_PRIMITIVE_TOPOLOGY_POINTLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_LINELIST', + 'D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP', + 'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST', + 'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP', + 'D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ', + 'D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ', + 'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ', + 'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ', + 'D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST', +]) + +D3D11_PRIMITIVE = Enum('D3D11_PRIMITIVE', [ + 'D3D11_PRIMITIVE_UNDEFINED', + 'D3D11_PRIMITIVE_POINT', + 'D3D11_PRIMITIVE_LINE', + 'D3D11_PRIMITIVE_TRIANGLE', + 'D3D11_PRIMITIVE_LINE_ADJ', + 'D3D11_PRIMITIVE_TRIANGLE_ADJ', + 'D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH', +]) + +D3D11_CULL_MODE = Enum('D3D11_CULL_MODE', [ + 'D3D11_CULL_NONE', + 'D3D11_CULL_FRONT', + 'D3D11_CULL_BACK', +]) + +D3D11_SO_DECLARATION_ENTRY = Struct('D3D11_SO_DECLARATION_ENTRY', [ + (UINT, 'Stream'), + (LPCSTR, 'SemanticName'), + (UINT, 'SemanticIndex'), + (BYTE, 'StartComponent'), + (BYTE, 'ComponentCount'), + (BYTE, 'OutputSlot'), +]) + +D3D11_VIEWPORT = Struct('D3D11_VIEWPORT', [ + (FLOAT, 'TopLeftX'), + (FLOAT, 'TopLeftY'), + (FLOAT, 'Width'), + (FLOAT, 'Height'), + (FLOAT, 'MinDepth'), + (FLOAT, 'MaxDepth'), +]) + +D3D11_RESOURCE_DIMENSION = Enum('D3D11_RESOURCE_DIMENSION', [ + 'D3D11_RESOURCE_DIMENSION_UNKNOWN', + 'D3D11_RESOURCE_DIMENSION_BUFFER', + 'D3D11_RESOURCE_DIMENSION_TEXTURE1D', + 'D3D11_RESOURCE_DIMENSION_TEXTURE2D', + 'D3D11_RESOURCE_DIMENSION_TEXTURE3D', +]) + +D3D11_SRV_DIMENSION = Enum('D3D11_SRV_DIMENSION', [ + 'D3D11_SRV_DIMENSION_UNKNOWN', + 'D3D11_SRV_DIMENSION_BUFFER', + 'D3D11_SRV_DIMENSION_TEXTURE1D', + 'D3D11_SRV_DIMENSION_TEXTURE1DARRAY', + 'D3D11_SRV_DIMENSION_TEXTURE2D', + 'D3D11_SRV_DIMENSION_TEXTURE2DARRAY', + 'D3D11_SRV_DIMENSION_TEXTURE2DMS', + 'D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY', + 'D3D11_SRV_DIMENSION_TEXTURE3D', + 'D3D11_SRV_DIMENSION_TEXTURECUBE', + 'D3D11_SRV_DIMENSION_TEXTURECUBEARRAY', + 'D3D11_SRV_DIMENSION_BUFFEREX', +]) + +D3D11_DSV_DIMENSION = Enum('D3D11_DSV_DIMENSION', [ + 'D3D11_DSV_DIMENSION_UNKNOWN', + 'D3D11_DSV_DIMENSION_TEXTURE1D', + 'D3D11_DSV_DIMENSION_TEXTURE1DARRAY', + 'D3D11_DSV_DIMENSION_TEXTURE2D', + 'D3D11_DSV_DIMENSION_TEXTURE2DARRAY', + 'D3D11_DSV_DIMENSION_TEXTURE2DMS', + 'D3D11_DSV_DIMENSION_TEXTURE2DMSARRAY', +]) + +D3D11_RTV_DIMENSION = Enum('D3D11_RTV_DIMENSION', [ + 'D3D11_RTV_DIMENSION_UNKNOWN', + 'D3D11_RTV_DIMENSION_BUFFER', + 'D3D11_RTV_DIMENSION_TEXTURE1D', + 'D3D11_RTV_DIMENSION_TEXTURE1DARRAY', + 'D3D11_RTV_DIMENSION_TEXTURE2D', + 'D3D11_RTV_DIMENSION_TEXTURE2DARRAY', + 'D3D11_RTV_DIMENSION_TEXTURE2DMS', + 'D3D11_RTV_DIMENSION_TEXTURE2DMSARRAY', + 'D3D11_RTV_DIMENSION_TEXTURE3D', +]) + +D3D11_UAV_DIMENSION = Enum('D3D11_UAV_DIMENSION', [ + 'D3D11_UAV_DIMENSION_UNKNOWN', + 'D3D11_UAV_DIMENSION_BUFFER', + 'D3D11_UAV_DIMENSION_TEXTURE1D', + 'D3D11_UAV_DIMENSION_TEXTURE1DARRAY', + 'D3D11_UAV_DIMENSION_TEXTURE2D', + 'D3D11_UAV_DIMENSION_TEXTURE2DARRAY', + 'D3D11_UAV_DIMENSION_TEXTURE3D', +]) + +D3D11_USAGE = Enum('D3D11_USAGE', [ + 'D3D11_USAGE_DEFAULT', + 'D3D11_USAGE_IMMUTABLE', + 'D3D11_USAGE_DYNAMIC', + 'D3D11_USAGE_STAGING', +]) + +D3D11_BIND_FLAG = Flags(UINT, [ + 'D3D11_BIND_VERTEX_BUFFER', + 'D3D11_BIND_INDEX_BUFFER', + 'D3D11_BIND_CONSTANT_BUFFER', + 'D3D11_BIND_SHADER_RESOURCE', + 'D3D11_BIND_STREAM_OUTPUT', + 'D3D11_BIND_RENDER_TARGET', + 'D3D11_BIND_DEPTH_STENCIL', + 'D3D11_BIND_UNORDERED_ACCESS', +]) + +D3D11_CPU_ACCESS_FLAG = Flags(UINT, [ + 'D3D11_CPU_ACCESS_WRITE', + 'D3D11_CPU_ACCESS_READ', +]) + +D3D11_RESOURCE_MISC_FLAG = Flags(UINT, [ + 'D3D11_RESOURCE_MISC_GENERATE_MIPS', + 'D3D11_RESOURCE_MISC_SHARED', + 'D3D11_RESOURCE_MISC_TEXTURECUBE', + 'D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS', + 'D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS', + 'D3D11_RESOURCE_MISC_BUFFER_STRUCTURED', + 'D3D11_RESOURCE_MISC_RESOURCE_CLAMP', + 'D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX', + 'D3D11_RESOURCE_MISC_GDI_COMPATIBLE', +]) + +D3D11_MAP = Enum('D3D11_MAP', [ + 'D3D11_MAP_READ', + 'D3D11_MAP_WRITE', + 'D3D11_MAP_READ_WRITE', + 'D3D11_MAP_WRITE_DISCARD', + 'D3D11_MAP_WRITE_NO_OVERWRITE', +]) + +D3D11_MAP_FLAG = Flags(UINT, [ + 'D3D11_MAP_FLAG_DO_NOT_WAIT', +]) + +D3D11_RAISE_FLAG = Flags(UINT, [ + 'D3D11_RAISE_FLAG_DRIVER_INTERNAL_ERROR', +]) + +D3D11_CLEAR_FLAG = Flags(UINT, [ + 'D3D11_CLEAR_DEPTH', + 'D3D11_CLEAR_STENCIL', +]) + +D3D11_RECT = Alias('D3D11_RECT', RECT) +D3D11_BOX = Struct('D3D11_BOX', [ + (UINT, 'left'), + (UINT, 'top'), + (UINT, 'front'), + (UINT, 'right'), + (UINT, 'bottom'), + (UINT, 'back'), +]) + +ID3D11DeviceChild.methods += [ + StdMethod(Void, 'GetDevice', [Out(Pointer(Pointer(ID3D11Device)), 'ppDevice')]), + StdMethod(HRESULT, 'GetPrivateData', [(REFGUID, 'guid'), Out(Pointer(UINT), 'pDataSize'), Out(OpaquePointer(Void), 'pData')]), + StdMethod(HRESULT, 'SetPrivateData', [(REFGUID, 'guid'), (UINT, 'DataSize'), (OpaqueBlob(Const(Void), 'DataSize'), 'pData')]), + StdMethod(HRESULT, 'SetPrivateDataInterface', [(REFGUID, 'guid'), (Pointer(Const(IUnknown)), 'pData')]), +] + +D3D11_COMPARISON_FUNC = Enum('D3D11_COMPARISON_FUNC', [ + 'D3D11_COMPARISON_NEVER', + 'D3D11_COMPARISON_LESS', + 'D3D11_COMPARISON_EQUAL', + 'D3D11_COMPARISON_LESS_EQUAL', + 'D3D11_COMPARISON_GREATER', + 'D3D11_COMPARISON_NOT_EQUAL', + 'D3D11_COMPARISON_GREATER_EQUAL', + 'D3D11_COMPARISON_ALWAYS', +]) + +D3D11_DEPTH_WRITE_MASK = Enum('D3D11_DEPTH_WRITE_MASK', [ + 'D3D11_DEPTH_WRITE_MASK_ZERO', + 'D3D11_DEPTH_WRITE_MASK_ALL', +]) + +D3D11_STENCIL_OP = Enum('D3D11_STENCIL_OP', [ + 'D3D11_STENCIL_OP_KEEP', + 'D3D11_STENCIL_OP_ZERO', + 'D3D11_STENCIL_OP_REPLACE', + 'D3D11_STENCIL_OP_INCR_SAT', + 'D3D11_STENCIL_OP_DECR_SAT', + 'D3D11_STENCIL_OP_INVERT', + 'D3D11_STENCIL_OP_INCR', + 'D3D11_STENCIL_OP_DECR', +]) + +D3D11_DEPTH_STENCILOP_DESC = Struct('D3D11_DEPTH_STENCILOP_DESC', [ + (D3D11_STENCIL_OP, 'StencilFailOp'), + (D3D11_STENCIL_OP, 'StencilDepthFailOp'), + (D3D11_STENCIL_OP, 'StencilPassOp'), + (D3D11_COMPARISON_FUNC, 'StencilFunc'), +]) + +D3D11_DEPTH_STENCIL_DESC = Struct('D3D11_DEPTH_STENCIL_DESC', [ + (BOOL, 'DepthEnable'), + (D3D11_DEPTH_WRITE_MASK, 'DepthWriteMask'), + (D3D11_COMPARISON_FUNC, 'DepthFunc'), + (BOOL, 'StencilEnable'), + (UINT8, 'StencilReadMask'), + (UINT8, 'StencilWriteMask'), + (D3D11_DEPTH_STENCILOP_DESC, 'FrontFace'), + (D3D11_DEPTH_STENCILOP_DESC, 'BackFace'), +]) + +ID3D11DepthStencilState.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_DEPTH_STENCIL_DESC), 'pDesc')]), +] + +D3D11_BLEND = Enum('D3D11_BLEND', [ + 'D3D11_BLEND_ZERO', + 'D3D11_BLEND_ONE', + 'D3D11_BLEND_SRC_COLOR', + 'D3D11_BLEND_INV_SRC_COLOR', + 'D3D11_BLEND_SRC_ALPHA', + 'D3D11_BLEND_INV_SRC_ALPHA', + 'D3D11_BLEND_DEST_ALPHA', + 'D3D11_BLEND_INV_DEST_ALPHA', + 'D3D11_BLEND_DEST_COLOR', + 'D3D11_BLEND_INV_DEST_COLOR', + 'D3D11_BLEND_SRC_ALPHA_SAT', + 'D3D11_BLEND_BLEND_FACTOR', + 'D3D11_BLEND_INV_BLEND_FACTOR', + 'D3D11_BLEND_SRC1_COLOR', + 'D3D11_BLEND_INV_SRC1_COLOR', + 'D3D11_BLEND_SRC1_ALPHA', + 'D3D11_BLEND_INV_SRC1_ALPHA', +]) + +D3D11_BLEND_OP = Enum('D3D11_BLEND_OP', [ + 'D3D11_BLEND_OP_ADD', + 'D3D11_BLEND_OP_SUBTRACT', + 'D3D11_BLEND_OP_REV_SUBTRACT', + 'D3D11_BLEND_OP_MIN', + 'D3D11_BLEND_OP_MAX', +]) + +D3D11_COLOR_WRITE_ENABLE = Enum('D3D11_COLOR_WRITE_ENABLE', [ + 'D3D11_COLOR_WRITE_ENABLE_ALL', + 'D3D11_COLOR_WRITE_ENABLE_RED', + 'D3D11_COLOR_WRITE_ENABLE_GREEN', + 'D3D11_COLOR_WRITE_ENABLE_BLUE', + 'D3D11_COLOR_WRITE_ENABLE_ALPHA', +]) + +D3D11_RENDER_TARGET_BLEND_DESC = Struct('D3D11_RENDER_TARGET_BLEND_DESC', [ + (BOOL, 'BlendEnable'), + (D3D11_BLEND, 'SrcBlend'), + (D3D11_BLEND, 'DestBlend'), + (D3D11_BLEND_OP, 'BlendOp'), + (D3D11_BLEND, 'SrcBlendAlpha'), + (D3D11_BLEND, 'DestBlendAlpha'), + (D3D11_BLEND_OP, 'BlendOpAlpha'), + (UINT8, 'RenderTargetWriteMask'), +]) + +D3D11_BLEND_DESC = Struct('D3D11_BLEND_DESC', [ + (BOOL, 'AlphaToCoverageEnable'), + (BOOL, 'IndependentBlendEnable'), + (Array(D3D11_RENDER_TARGET_BLEND_DESC, 8), 'RenderTarget'), +]) + +ID3D11BlendState.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_BLEND_DESC), 'pDesc')]), +] + +D3D11_RASTERIZER_DESC = Struct('D3D11_RASTERIZER_DESC', [ + (D3D11_FILL_MODE, 'FillMode'), + (D3D11_CULL_MODE, 'CullMode'), + (BOOL, 'FrontCounterClockwise'), + (INT, 'DepthBias'), + (FLOAT, 'DepthBiasClamp'), + (FLOAT, 'SlopeScaledDepthBias'), + (BOOL, 'DepthClipEnable'), + (BOOL, 'ScissorEnable'), + (BOOL, 'MultisampleEnable'), + (BOOL, 'AntialiasedLineEnable'), +]) + +ID3D11RasterizerState.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_RASTERIZER_DESC), 'pDesc')]), +] + +D3D11_SUBRESOURCE_DATA = Struct('D3D11_SUBRESOURCE_DATA', [ + (OpaquePointer(Const(Void)), 'pSysMem'), + (UINT, 'SysMemPitch'), + (UINT, 'SysMemSlicePitch'), +]) + +D3D11_MAPPED_SUBRESOURCE = Struct('D3D11_MAPPED_SUBRESOURCE', [ + (OpaquePointer(Void), 'pData'), + (UINT, 'RowPitch'), + (UINT, 'DepthPitch'), +]) + +ID3D11Resource.methods += [ + StdMethod(Void, 'GetType', [Out(Pointer(D3D11_RESOURCE_DIMENSION), 'pResourceDimension')]), + StdMethod(Void, 'SetEvictionPriority', [(UINT, 'EvictionPriority')]), + StdMethod(UINT, 'GetEvictionPriority', []), +] + +D3D11_BUFFER_DESC = Struct('D3D11_BUFFER_DESC', [ + (UINT, 'ByteWidth'), + (D3D11_USAGE, 'Usage'), + (D3D11_BIND_FLAG, 'BindFlags'), + (D3D11_CPU_ACCESS_FLAG, 'CPUAccessFlags'), + (D3D11_RESOURCE_MISC_FLAG, 'MiscFlags'), + (UINT, 'StructureByteStride'), +]) + +ID3D11Buffer.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_BUFFER_DESC), 'pDesc')]), +] + +D3D11_TEXTURE1D_DESC = Struct('D3D11_TEXTURE1D_DESC', [ + (UINT, 'Width'), + (UINT, 'MipLevels'), + (UINT, 'ArraySize'), + (DXGI_FORMAT, 'Format'), + (D3D11_USAGE, 'Usage'), + (D3D11_BIND_FLAG, 'BindFlags'), + (D3D11_CPU_ACCESS_FLAG, 'CPUAccessFlags'), + (D3D11_RESOURCE_MISC_FLAG, 'MiscFlags'), +]) + +ID3D11Texture1D.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_TEXTURE1D_DESC), 'pDesc')]), +] + +D3D11_TEXTURE2D_DESC = Struct('D3D11_TEXTURE2D_DESC', [ + (UINT, 'Width'), + (UINT, 'Height'), + (UINT, 'MipLevels'), + (UINT, 'ArraySize'), + (DXGI_FORMAT, 'Format'), + (DXGI_SAMPLE_DESC, 'SampleDesc'), + (D3D11_USAGE, 'Usage'), + (D3D11_BIND_FLAG, 'BindFlags'), + (D3D11_CPU_ACCESS_FLAG, 'CPUAccessFlags'), + (D3D11_RESOURCE_MISC_FLAG, 'MiscFlags'), +]) + +ID3D11Texture2D.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_TEXTURE2D_DESC), 'pDesc')]), +] + +D3D11_TEXTURE3D_DESC = Struct('D3D11_TEXTURE3D_DESC', [ + (UINT, 'Width'), + (UINT, 'Height'), + (UINT, 'Depth'), + (UINT, 'MipLevels'), + (DXGI_FORMAT, 'Format'), + (D3D11_USAGE, 'Usage'), + (D3D11_BIND_FLAG, 'BindFlags'), + (D3D11_CPU_ACCESS_FLAG, 'CPUAccessFlags'), + (D3D11_RESOURCE_MISC_FLAG, 'MiscFlags'), +]) + +ID3D11Texture3D.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_TEXTURE3D_DESC), 'pDesc')]), +] + +D3D11_TEXTURECUBE_FACE = Enum('D3D11_TEXTURECUBE_FACE', [ + 'D3D11_TEXTURECUBE_FACE_POSITIVE_X', + 'D3D11_TEXTURECUBE_FACE_NEGATIVE_X', + 'D3D11_TEXTURECUBE_FACE_POSITIVE_Y', + 'D3D11_TEXTURECUBE_FACE_NEGATIVE_Y', + 'D3D11_TEXTURECUBE_FACE_POSITIVE_Z', + 'D3D11_TEXTURECUBE_FACE_NEGATIVE_Z', +]) + +ID3D11View.methods += [ + StdMethod(Void, 'GetResource', [Out(Pointer(Pointer(ID3D11Resource)), 'ppResource')]), +] + +D3D11_BUFFER_SRV = Struct('D3D11_BUFFER_SRV', [ + (Union(None, [(UINT, 'FirstElement'), (UINT, 'ElementOffset')]), None), + (Union(None, [(UINT, 'NumElements'), (UINT, 'ElementWidth')]), None), +]) + +D3D11_BUFFEREX_SRV_FLAG = Flags(UINT, [ + 'D3D11_BUFFEREX_SRV_FLAG_RAW', +]) + +D3D11_BUFFEREX_SRV = Struct('D3D11_BUFFEREX_SRV', [ + (UINT, 'FirstElement'), + (UINT, 'NumElements'), + (D3D11_BUFFEREX_SRV_FLAG, 'Flags'), +]) + +D3D11_TEX1D_SRV = Struct('D3D11_TEX1D_SRV', [ + (UINT, 'MostDetailedMip'), + (UINT, 'MipLevels'), +]) + +D3D11_TEX1D_ARRAY_SRV = Struct('D3D11_TEX1D_ARRAY_SRV', [ + (UINT, 'MostDetailedMip'), + (UINT, 'MipLevels'), + (UINT, 'FirstArraySlice'), + (UINT, 'ArraySize'), +]) + +D3D11_TEX2D_SRV = Struct('D3D11_TEX2D_SRV', [ + (UINT, 'MostDetailedMip'), + (UINT, 'MipLevels'), +]) + +D3D11_TEX2D_ARRAY_SRV = Struct('D3D11_TEX2D_ARRAY_SRV', [ + (UINT, 'MostDetailedMip'), + (UINT, 'MipLevels'), + (UINT, 'FirstArraySlice'), + (UINT, 'ArraySize'), +]) + +D3D11_TEX3D_SRV = Struct('D3D11_TEX3D_SRV', [ + (UINT, 'MostDetailedMip'), + (UINT, 'MipLevels'), +]) + +D3D11_TEXCUBE_SRV = Struct('D3D11_TEXCUBE_SRV', [ + (UINT, 'MostDetailedMip'), + (UINT, 'MipLevels'), +]) + +D3D11_TEXCUBE_ARRAY_SRV = Struct('D3D11_TEXCUBE_ARRAY_SRV', [ + (UINT, 'MostDetailedMip'), + (UINT, 'MipLevels'), + (UINT, 'First2DArrayFace'), + (UINT, 'NumCubes'), +]) + +D3D11_TEX2DMS_SRV = Struct('D3D11_TEX2DMS_SRV', [ + (UINT, 'UnusedField_NothingToDefine'), +]) + +D3D11_TEX2DMS_ARRAY_SRV = Struct('D3D11_TEX2DMS_ARRAY_SRV', [ + (UINT, 'FirstArraySlice'), + (UINT, 'ArraySize'), +]) + +D3D11_SHADER_RESOURCE_VIEW_DESC = Struct('D3D11_SHADER_RESOURCE_VIEW_DESC', [ + (DXGI_FORMAT, 'Format'), + (D3D11_SRV_DIMENSION, 'ViewDimension'), + (Union(None, [ + (D3D11_BUFFER_SRV, 'Buffer'), + (D3D11_TEX1D_SRV, 'Texture1D'), + (D3D11_TEX1D_ARRAY_SRV, 'Texture1DArray'), + (D3D11_TEX2D_SRV, 'Texture2D'), + (D3D11_TEX2D_ARRAY_SRV, 'Texture2DArray'), + (D3D11_TEX2DMS_SRV, 'Texture2DMS'), + (D3D11_TEX2DMS_ARRAY_SRV, 'Texture2DMSArray'), + (D3D11_TEX3D_SRV, 'Texture3D'), + (D3D11_TEXCUBE_SRV, 'TextureCube'), + (D3D11_TEXCUBE_ARRAY_SRV, 'TextureCubeArray'), + (D3D11_BUFFEREX_SRV, 'BufferEx'), + ]), None), +]) + +ID3D11ShaderResourceView.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_SHADER_RESOURCE_VIEW_DESC), 'pDesc')]), +] + +D3D11_BUFFER_RTV = Struct('D3D11_BUFFER_RTV', [ + (Union(None, [(UINT, 'FirstElement'), (UINT, 'ElementOffset')]), None), + (Union(None, [(UINT, 'NumElements'), (UINT, 'ElementWidth')]), None), +]) + +D3D11_TEX1D_RTV = Struct('D3D11_TEX1D_RTV', [ + (UINT, 'MipSlice'), +]) + +D3D11_TEX1D_ARRAY_RTV = Struct('D3D11_TEX1D_ARRAY_RTV', [ + (UINT, 'MipSlice'), + (UINT, 'FirstArraySlice'), + (UINT, 'ArraySize'), +]) + +D3D11_TEX2D_RTV = Struct('D3D11_TEX2D_RTV', [ + (UINT, 'MipSlice'), +]) + +D3D11_TEX2DMS_RTV = Struct('D3D11_TEX2DMS_RTV', [ + (UINT, 'UnusedField_NothingToDefine'), +]) + +D3D11_TEX2D_ARRAY_RTV = Struct('D3D11_TEX2D_ARRAY_RTV', [ + (UINT, 'MipSlice'), + (UINT, 'FirstArraySlice'), + (UINT, 'ArraySize'), +]) + +D3D11_TEX2DMS_ARRAY_RTV = Struct('D3D11_TEX2DMS_ARRAY_RTV', [ + (UINT, 'FirstArraySlice'), + (UINT, 'ArraySize'), +]) + +D3D11_TEX3D_RTV = Struct('D3D11_TEX3D_RTV', [ + (UINT, 'MipSlice'), + (UINT, 'FirstWSlice'), + (UINT, 'WSize'), +]) + +D3D11_RENDER_TARGET_VIEW_DESC = Struct('D3D11_RENDER_TARGET_VIEW_DESC', [ + (DXGI_FORMAT, 'Format'), + (D3D11_RTV_DIMENSION, 'ViewDimension'), + (Union(None, [ + (D3D11_BUFFER_RTV, 'Buffer'), + (D3D11_TEX1D_RTV, 'Texture1D'), + (D3D11_TEX1D_ARRAY_RTV, 'Texture1DArray'), + (D3D11_TEX2D_RTV, 'Texture2D'), + (D3D11_TEX2D_ARRAY_RTV, 'Texture2DArray'), + (D3D11_TEX2DMS_RTV, 'Texture2DMS'), + (D3D11_TEX2DMS_ARRAY_RTV, 'Texture2DMSArray'), + (D3D11_TEX3D_RTV, 'Texture3D'), + ]), None), +]) + +ID3D11RenderTargetView.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_RENDER_TARGET_VIEW_DESC), 'pDesc')]), +] + +D3D11_TEX1D_DSV = Struct('D3D11_TEX1D_DSV', [ + (UINT, 'MipSlice'), +]) + +D3D11_TEX1D_ARRAY_DSV = Struct('D3D11_TEX1D_ARRAY_DSV', [ + (UINT, 'MipSlice'), + (UINT, 'FirstArraySlice'), + (UINT, 'ArraySize'), +]) + +D3D11_TEX2D_DSV = Struct('D3D11_TEX2D_DSV', [ + (UINT, 'MipSlice'), +]) + +D3D11_TEX2D_ARRAY_DSV = Struct('D3D11_TEX2D_ARRAY_DSV', [ + (UINT, 'MipSlice'), + (UINT, 'FirstArraySlice'), + (UINT, 'ArraySize'), +]) + +D3D11_TEX2DMS_DSV = Struct('D3D11_TEX2DMS_DSV', [ + (UINT, 'UnusedField_NothingToDefine'), +]) + +D3D11_TEX2DMS_ARRAY_DSV = Struct('D3D11_TEX2DMS_ARRAY_DSV', [ + (UINT, 'FirstArraySlice'), + (UINT, 'ArraySize'), +]) + +D3D11_DSV_FLAG = Flags(UINT, [ + 'D3D11_DSV_READ_ONLY_DEPTH', + 'D3D11_DSV_READ_ONLY_STENCIL', +]) + +D3D11_DEPTH_STENCIL_VIEW_DESC = Struct('D3D11_DEPTH_STENCIL_VIEW_DESC', [ + (DXGI_FORMAT, 'Format'), + (D3D11_DSV_DIMENSION, 'ViewDimension'), + (D3D11_DSV_FLAG, 'Flags'), + (Union(None, [ + (D3D11_TEX1D_DSV, 'Texture1D'), + (D3D11_TEX1D_ARRAY_DSV, 'Texture1DArray'), + (D3D11_TEX2D_DSV, 'Texture2D'), + (D3D11_TEX2D_ARRAY_DSV, 'Texture2DArray'), + (D3D11_TEX2DMS_DSV, 'Texture2DMS'), + (D3D11_TEX2DMS_ARRAY_DSV, 'Texture2DMSArray'), + ]), None), +]) + +ID3D11DepthStencilView.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_DEPTH_STENCIL_VIEW_DESC), 'pDesc')]), +] + +D3D11_BUFFER_UAV_FLAG = Flags(UINT, [ + 'D3D11_BUFFER_UAV_FLAG_RAW', + 'D3D11_BUFFER_UAV_FLAG_APPEND', + 'D3D11_BUFFER_UAV_FLAG_COUNTER', +]) + +D3D11_BUFFER_UAV = Struct('D3D11_BUFFER_UAV', [ + (UINT, 'FirstElement'), + (UINT, 'NumElements'), + (D3D11_BUFFER_UAV_FLAG, 'Flags'), +]) + +D3D11_TEX1D_UAV = Struct('D3D11_TEX1D_UAV', [ + (UINT, 'MipSlice'), +]) + +D3D11_TEX1D_ARRAY_UAV = Struct('D3D11_TEX1D_ARRAY_UAV', [ + (UINT, 'MipSlice'), + (UINT, 'FirstArraySlice'), + (UINT, 'ArraySize'), +]) + +D3D11_TEX2D_UAV = Struct('D3D11_TEX2D_UAV', [ + (UINT, 'MipSlice'), +]) + +D3D11_TEX2D_ARRAY_UAV = Struct('D3D11_TEX2D_ARRAY_UAV', [ + (UINT, 'MipSlice'), + (UINT, 'FirstArraySlice'), + (UINT, 'ArraySize'), +]) + +D3D11_TEX3D_UAV = Struct('D3D11_TEX3D_UAV', [ + (UINT, 'MipSlice'), + (UINT, 'FirstWSlice'), + (UINT, 'WSize'), +]) + +D3D11_UNORDERED_ACCESS_VIEW_DESC = Struct('D3D11_UNORDERED_ACCESS_VIEW_DESC', [ + (DXGI_FORMAT, 'Format'), + (D3D11_UAV_DIMENSION, 'ViewDimension'), + (Union(None, [ + (D3D11_BUFFER_UAV, 'Buffer'), + (D3D11_TEX1D_UAV, 'Texture1D'), + (D3D11_TEX1D_ARRAY_UAV, 'Texture1DArray'), + (D3D11_TEX2D_UAV, 'Texture2D'), + (D3D11_TEX2D_ARRAY_UAV, 'Texture2DArray'), + (D3D11_TEX3D_UAV, 'Texture3D'), + ]), None), +]) + +ID3D11UnorderedAccessView.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_UNORDERED_ACCESS_VIEW_DESC), 'pDesc')]), +] + +D3D11_FILTER = Enum('D3D11_FILTER', [ + 'D3D11_FILTER_MIN_MAG_MIP_POINT', + 'D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR', + 'D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT', + 'D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR', + 'D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT', + 'D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR', + 'D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT', + 'D3D11_FILTER_MIN_MAG_MIP_LINEAR', + 'D3D11_FILTER_ANISOTROPIC', + 'D3D11_FILTER_COMPARISON_MIN_MAG_MIP_POINT', + 'D3D11_FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR', + 'D3D11_FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT', + 'D3D11_FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR', + 'D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT', + 'D3D11_FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR', + 'D3D11_FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT', + 'D3D11_FILTER_COMPARISON_MIN_MAG_MIP_LINEAR', + 'D3D11_FILTER_COMPARISON_ANISOTROPIC', +]) + +D3D11_FILTER_TYPE = Enum('D3D11_FILTER_TYPE', [ + 'D3D11_FILTER_TYPE_POINT', + 'D3D11_FILTER_TYPE_LINEAR', +]) + +D3D11_TEXTURE_ADDRESS_MODE = Enum('D3D11_TEXTURE_ADDRESS_MODE', [ + 'D3D11_TEXTURE_ADDRESS_WRAP', + 'D3D11_TEXTURE_ADDRESS_MIRROR', + 'D3D11_TEXTURE_ADDRESS_CLAMP', + 'D3D11_TEXTURE_ADDRESS_BORDER', + 'D3D11_TEXTURE_ADDRESS_MIRROR_ONCE', +]) + +D3D11_SAMPLER_DESC = Struct('D3D11_SAMPLER_DESC', [ + (D3D11_FILTER, 'Filter'), + (D3D11_TEXTURE_ADDRESS_MODE, 'AddressU'), + (D3D11_TEXTURE_ADDRESS_MODE, 'AddressV'), + (D3D11_TEXTURE_ADDRESS_MODE, 'AddressW'), + (FLOAT, 'MipLODBias'), + (UINT, 'MaxAnisotropy'), + (D3D11_COMPARISON_FUNC, 'ComparisonFunc'), + (Array(FLOAT, 4), 'BorderColor'), + (FLOAT, 'MinLOD'), + (FLOAT, 'MaxLOD'), +]) + +ID3D11SamplerState.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_SAMPLER_DESC), 'pDesc')]), +] + +D3D11_FORMAT_SUPPORT = Enum('D3D11_FORMAT_SUPPORT', [ + 'D3D11_FORMAT_SUPPORT_BUFFER', + 'D3D11_FORMAT_SUPPORT_IA_VERTEX_BUFFER', + 'D3D11_FORMAT_SUPPORT_IA_INDEX_BUFFER', + 'D3D11_FORMAT_SUPPORT_SO_BUFFER', + 'D3D11_FORMAT_SUPPORT_TEXTURE1D', + 'D3D11_FORMAT_SUPPORT_TEXTURE2D', + 'D3D11_FORMAT_SUPPORT_TEXTURE3D', + 'D3D11_FORMAT_SUPPORT_TEXTURECUBE', + 'D3D11_FORMAT_SUPPORT_SHADER_LOAD', + 'D3D11_FORMAT_SUPPORT_SHADER_SAMPLE', + 'D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_COMPARISON', + 'D3D11_FORMAT_SUPPORT_SHADER_SAMPLE_MONO_TEXT', + 'D3D11_FORMAT_SUPPORT_MIP', + 'D3D11_FORMAT_SUPPORT_MIP_AUTOGEN', + 'D3D11_FORMAT_SUPPORT_RENDER_TARGET', + 'D3D11_FORMAT_SUPPORT_BLENDABLE', + 'D3D11_FORMAT_SUPPORT_DEPTH_STENCIL', + 'D3D11_FORMAT_SUPPORT_CPU_LOCKABLE', + 'D3D11_FORMAT_SUPPORT_MULTISAMPLE_RESOLVE', + 'D3D11_FORMAT_SUPPORT_DISPLAY', + 'D3D11_FORMAT_SUPPORT_CAST_WITHIN_BIT_LAYOUT', + 'D3D11_FORMAT_SUPPORT_MULTISAMPLE_RENDERTARGET', + 'D3D11_FORMAT_SUPPORT_MULTISAMPLE_LOAD', + 'D3D11_FORMAT_SUPPORT_SHADER_GATHER', + 'D3D11_FORMAT_SUPPORT_BACK_BUFFER_CAST', + 'D3D11_FORMAT_SUPPORT_TYPED_UNORDERED_ACCESS_VIEW', + 'D3D11_FORMAT_SUPPORT_SHADER_GATHER_COMPARISON', +]) + +D3D11_FORMAT_SUPPORT2 = Enum('D3D11_FORMAT_SUPPORT2', [ + 'D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_ADD', + 'D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_BITWISE_OPS', + 'D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_COMPARE_STORE_OR_COMPARE_EXCHANGE', + 'D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_EXCHANGE', + 'D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_SIGNED_MIN_OR_MAX', + 'D3D11_FORMAT_SUPPORT2_UAV_ATOMIC_UNSIGNED_MIN_OR_MAX', + 'D3D11_FORMAT_SUPPORT2_UAV_TYPED_LOAD', + 'D3D11_FORMAT_SUPPORT2_UAV_TYPED_STORE', +]) + +ID3D11Asynchronous.methods += [ + StdMethod(UINT, 'GetDataSize', []), +] + +D3D11_ASYNC_GETDATA_FLAG = Flags(UINT, [ + 'D3D11_ASYNC_GETDATA_DONOTFLUSH', +]) + +D3D11_QUERY = Enum('D3D11_QUERY', [ + 'D3D11_QUERY_EVENT', + 'D3D11_QUERY_OCCLUSION', + 'D3D11_QUERY_TIMESTAMP', + 'D3D11_QUERY_TIMESTAMP_DISJOINT', + 'D3D11_QUERY_PIPELINE_STATISTICS', + 'D3D11_QUERY_OCCLUSION_PREDICATE', + 'D3D11_QUERY_SO_STATISTICS', + 'D3D11_QUERY_SO_OVERFLOW_PREDICATE', + 'D3D11_QUERY_SO_STATISTICS_STREAM0', + 'D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM0', + 'D3D11_QUERY_SO_STATISTICS_STREAM1', + 'D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM1', + 'D3D11_QUERY_SO_STATISTICS_STREAM2', + 'D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM2', + 'D3D11_QUERY_SO_STATISTICS_STREAM3', + 'D3D11_QUERY_SO_OVERFLOW_PREDICATE_STREAM3', +]) + +D3D11_QUERY_MISC_FLAG = Flags(UINT, [ + 'D3D11_QUERY_MISC_PREDICATEHINT', +]) + +D3D11_QUERY_DESC = Struct('D3D11_QUERY_DESC', [ + (D3D11_QUERY, 'Query'), + (D3D11_QUERY_MISC_FLAG, 'MiscFlags'), +]) + +ID3D11Query.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_QUERY_DESC), 'pDesc')]), +] + +D3D11_QUERY_DATA_TIMESTAMP_DISJOINT = Struct('D3D11_QUERY_DATA_TIMESTAMP_DISJOINT', [ + (UINT64, 'Frequency'), + (BOOL, 'Disjoint'), +]) + +D3D11_QUERY_DATA_PIPELINE_STATISTICS = Struct('D3D11_QUERY_DATA_PIPELINE_STATISTICS', [ + (UINT64, 'IAVertices'), + (UINT64, 'IAPrimitives'), + (UINT64, 'VSInvocations'), + (UINT64, 'GSInvocations'), + (UINT64, 'GSPrimitives'), + (UINT64, 'CInvocations'), + (UINT64, 'CPrimitives'), + (UINT64, 'PSInvocations'), + (UINT64, 'HSInvocations'), + (UINT64, 'DSInvocations'), + (UINT64, 'CSInvocations'), +]) + +D3D11_QUERY_DATA_SO_STATISTICS = Struct('D3D11_QUERY_DATA_SO_STATISTICS', [ + (UINT64, 'NumPrimitivesWritten'), + (UINT64, 'PrimitivesStorageNeeded'), +]) + +D3D11_COUNTER = Enum('D3D11_COUNTER', [ + 'D3D11_COUNTER_DEVICE_DEPENDENT_0', +]) + +D3D11_COUNTER_TYPE = Enum('D3D11_COUNTER_TYPE', [ + 'D3D11_COUNTER_TYPE_FLOAT32', + 'D3D11_COUNTER_TYPE_UINT16', + 'D3D11_COUNTER_TYPE_UINT32', + 'D3D11_COUNTER_TYPE_UINT64', +]) + +D3D11_COUNTER_DESC = Struct('D3D11_COUNTER_DESC', [ + (D3D11_COUNTER, 'Counter'), + (UINT, 'MiscFlags'), +]) + +D3D11_COUNTER_INFO = Struct('D3D11_COUNTER_INFO', [ + (D3D11_COUNTER, 'LastDeviceDependentCounter'), + (UINT, 'NumSimultaneousCounters'), + (UINT8, 'NumDetectableParallelUnits'), +]) + +ID3D11Counter.methods += [ + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_COUNTER_DESC), 'pDesc')]), +] + +D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS = Enum('D3D11_STANDARD_MULTISAMPLE_QUALITY_LEVELS', [ + 'D3D11_STANDARD_MULTISAMPLE_PATTERN', + 'D3D11_CENTER_MULTISAMPLE_PATTERN', +]) + +D3D11_DEVICE_CONTEXT_TYPE = Enum('D3D11_DEVICE_CONTEXT_TYPE', [ + 'D3D11_DEVICE_CONTEXT_IMMEDIATE', + 'D3D11_DEVICE_CONTEXT_DEFERRED', +]) + +D3D11_CLASS_INSTANCE_DESC = Struct('D3D11_CLASS_INSTANCE_DESC', [ + (UINT, 'InstanceId'), + (UINT, 'InstanceIndex'), + (UINT, 'TypeId'), + (UINT, 'ConstantBuffer'), + (UINT, 'BaseConstantBufferOffset'), + (UINT, 'BaseTexture'), + (UINT, 'BaseSampler'), + (BOOL, 'Created'), +]) + + +ID3D11ClassInstance.methods += [ + StdMethod(Void, 'GetClassLinkage', [Out(Pointer(Pointer(ID3D11ClassLinkage)), 'ppLinkage')]), + StdMethod(Void, 'GetDesc', [Out(Pointer(D3D11_CLASS_INSTANCE_DESC), 'pDesc')]), + StdMethod(Void, 'GetInstanceName', [Out(LPSTR, 'pInstanceName'), Out(Pointer(SIZE_T), 'pBufferLength')]), + StdMethod(Void, 'GetTypeName', [Out(LPSTR, 'pTypeName'), Out(Pointer(SIZE_T), 'pBufferLength')]), +] + +ID3D11ClassLinkage.methods += [ + StdMethod(HRESULT, 'GetClassInstance', [(LPCSTR, 'pClassInstanceName'), (UINT, 'InstanceIndex'), Out(Pointer(Pointer(ID3D11ClassInstance)), 'ppInstance')]), + StdMethod(HRESULT, 'CreateClassInstance', [(LPCSTR, 'pClassTypeName'), (UINT, 'ConstantBufferOffset'), (UINT, 'ConstantVectorOffset'), (UINT, 'TextureOffset'), (UINT, 'SamplerOffset'), Out(Pointer(Pointer(ID3D11ClassInstance)), 'ppInstance')]), +] + +ID3D11CommandList.methods += [ + StdMethod(UINT, 'GetContextFlags', []), +] + +D3D11_FEATURE = Enum('D3D11_FEATURE', [ + 'D3D11_FEATURE_THREADING', + 'D3D11_FEATURE_DOUBLES', + 'D3D11_FEATURE_FORMAT_SUPPORT', + 'D3D11_FEATURE_FORMAT_SUPPORT2', + 'D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS', +]) + +D3D11_FEATURE_DATA_THREADING = Struct('D3D11_FEATURE_DATA_THREADING', [ + (BOOL, 'DriverConcurrentCreates'), + (BOOL, 'DriverCommandLists'), +]) + +D3D11_FEATURE_DATA_DOUBLES = Struct('D3D11_FEATURE_DATA_DOUBLES', [ + (BOOL, 'DoublePrecisionFloatShaderOps'), +]) + +D3D11_FEATURE_DATA_FORMAT_SUPPORT = Struct('D3D11_FEATURE_DATA_FORMAT_SUPPORT', [ + (DXGI_FORMAT, 'InFormat'), + (UINT, 'OutFormatSupport'), +]) + +D3D11_FEATURE_DATA_FORMAT_SUPPORT2 = Struct('D3D11_FEATURE_DATA_FORMAT_SUPPORT2', [ + (DXGI_FORMAT, 'InFormat'), + (UINT, 'OutFormatSupport2'), +]) + +D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS = Struct('D3D11_FEATURE_DATA_D3D10_X_HARDWARE_OPTIONS', [ + (BOOL, 'ComputeShaders_Plus_RawAndStructuredBuffers_Via_Shader_4_x'), +]) + +ID3D11DeviceContext.methods += [ + StdMethod(Void, 'VSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Pointer(Const(Pointer(ID3D11Buffer))), 'ppConstantBuffers')]), + StdMethod(Void, 'PSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Pointer(Const(Pointer(ID3D11ShaderResourceView))), 'ppShaderResourceViews')]), + StdMethod(Void, 'PSSetShader', [(Pointer(ID3D11PixelShader), 'pPixelShader'), (Pointer(Const(Pointer(ID3D11ClassInstance))), 'ppClassInstances'), (UINT, 'NumClassInstances')]), + StdMethod(Void, 'PSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Pointer(Const(Pointer(ID3D11SamplerState))), 'ppSamplers')]), + StdMethod(Void, 'VSSetShader', [(Pointer(ID3D11VertexShader), 'pVertexShader'), (Pointer(Const(Pointer(ID3D11ClassInstance))), 'ppClassInstances'), (UINT, 'NumClassInstances')]), + StdMethod(Void, 'DrawIndexed', [(UINT, 'IndexCount'), (UINT, 'StartIndexLocation'), (INT, 'BaseVertexLocation')]), + StdMethod(Void, 'Draw', [(UINT, 'VertexCount'), (UINT, 'StartVertexLocation')]), + StdMethod(HRESULT, 'Map', [(Pointer(ID3D11Resource), 'pResource'), (UINT, 'Subresource'), (D3D11_MAP, 'MapType'), (D3D11_MAP_FLAG, 'MapFlags'), Out(Pointer(D3D11_MAPPED_SUBRESOURCE), 'pMappedResource')]), + StdMethod(Void, 'Unmap', [(Pointer(ID3D11Resource), 'pResource'), (UINT, 'Subresource')]), + StdMethod(Void, 'PSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Pointer(Const(Pointer(ID3D11Buffer))), 'ppConstantBuffers')]), + StdMethod(Void, 'IASetInputLayout', [(Pointer(ID3D11InputLayout), 'pInputLayout')]), + StdMethod(Void, 'IASetVertexBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Pointer(Const(Pointer(ID3D11Buffer))), 'ppVertexBuffers'), (Pointer(Const(UINT)), 'pStrides'), (Pointer(Const(UINT)), 'pOffsets')]), + StdMethod(Void, 'IASetIndexBuffer', [(Pointer(ID3D11Buffer), 'pIndexBuffer'), (DXGI_FORMAT, 'Format'), (UINT, 'Offset')]), + StdMethod(Void, 'DrawIndexedInstanced', [(UINT, 'IndexCountPerInstance'), (UINT, 'InstanceCount'), (UINT, 'StartIndexLocation'), (INT, 'BaseVertexLocation'), (UINT, 'StartInstanceLocation')]), + StdMethod(Void, 'DrawInstanced', [(UINT, 'VertexCountPerInstance'), (UINT, 'InstanceCount'), (UINT, 'StartVertexLocation'), (UINT, 'StartInstanceLocation')]), + StdMethod(Void, 'GSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Pointer(Const(Pointer(ID3D11Buffer))), 'ppConstantBuffers')]), + StdMethod(Void, 'GSSetShader', [(Pointer(ID3D11GeometryShader), 'pShader'), (Pointer(Const(Pointer(ID3D11ClassInstance))), 'ppClassInstances'), (UINT, 'NumClassInstances')]), + StdMethod(Void, 'IASetPrimitiveTopology', [(D3D11_PRIMITIVE_TOPOLOGY, 'Topology')]), + StdMethod(Void, 'VSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Pointer(Const(Pointer(ID3D11ShaderResourceView))), 'ppShaderResourceViews')]), + StdMethod(Void, 'VSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Pointer(Const(Pointer(ID3D11SamplerState))), 'ppSamplers')]), + StdMethod(Void, 'Begin', [(Pointer(ID3D11Asynchronous), 'pAsync')]), + StdMethod(Void, 'End', [(Pointer(ID3D11Asynchronous), 'pAsync')]), + StdMethod(HRESULT, 'GetData', [(Pointer(ID3D11Asynchronous), 'pAsync'), Out(OpaqueBlob(Void, 'DataSize'), 'pData'), (UINT, 'DataSize'), (D3D11_ASYNC_GETDATA_FLAG, 'GetDataFlags')]), + StdMethod(Void, 'SetPredication', [(Pointer(ID3D11Predicate), 'pPredicate'), (BOOL, 'PredicateValue')]), + StdMethod(Void, 'GSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Pointer(Const(Pointer(ID3D11ShaderResourceView))), 'ppShaderResourceViews')]), + StdMethod(Void, 'GSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Pointer(Const(Pointer(ID3D11SamplerState))), 'ppSamplers')]), + StdMethod(Void, 'OMSetRenderTargets', [(UINT, 'NumViews'), (Pointer(Const(Pointer(ID3D11RenderTargetView))), 'ppRenderTargetViews'), (Pointer(ID3D11DepthStencilView), 'pDepthStencilView')]), + StdMethod(Void, 'OMSetRenderTargetsAndUnorderedAccessViews', [(UINT, 'NumRTVs'), (Pointer(Const(Pointer(ID3D11RenderTargetView))), 'ppRenderTargetViews'), (Pointer(ID3D11DepthStencilView), 'pDepthStencilView'), (UINT, 'UAVStartSlot'), (UINT, 'NumUAVs'), (Pointer(Const(Pointer(ID3D11UnorderedAccessView))), 'ppUnorderedAccessViews'), (Pointer(Const(UINT)), 'pUAVInitialCounts')]), + StdMethod(Void, 'OMSetBlendState', [(Pointer(ID3D11BlendState), 'pBlendState'), (Array(Const(FLOAT), 4), 'BlendFactor'), (UINT, 'SampleMask')]), + StdMethod(Void, 'OMSetDepthStencilState', [(Pointer(ID3D11DepthStencilState), 'pDepthStencilState'), (UINT, 'StencilRef')]), + StdMethod(Void, 'SOSetTargets', [(UINT, 'NumBuffers'), (Pointer(Const(Pointer(ID3D11Buffer))), 'ppSOTargets'), (Pointer(Const(UINT)), 'pOffsets')]), + StdMethod(Void, 'DrawAuto', []), + StdMethod(Void, 'DrawIndexedInstancedIndirect', [(Pointer(ID3D11Buffer), 'pBufferForArgs'), (UINT, 'AlignedByteOffsetForArgs')]), + StdMethod(Void, 'DrawInstancedIndirect', [(Pointer(ID3D11Buffer), 'pBufferForArgs'), (UINT, 'AlignedByteOffsetForArgs')]), + StdMethod(Void, 'Dispatch', [(UINT, 'ThreadGroupCountX'), (UINT, 'ThreadGroupCountY'), (UINT, 'ThreadGroupCountZ')]), + StdMethod(Void, 'DispatchIndirect', [(Pointer(ID3D11Buffer), 'pBufferForArgs'), (UINT, 'AlignedByteOffsetForArgs')]), + StdMethod(Void, 'RSSetState', [(Pointer(ID3D11RasterizerState), 'pRasterizerState')]), + StdMethod(Void, 'RSSetViewports', [(UINT, 'NumViewports'), (Pointer(Const(D3D11_VIEWPORT)), 'pViewports')]), + StdMethod(Void, 'RSSetScissorRects', [(UINT, 'NumRects'), (Pointer(Const(D3D11_RECT)), 'pRects')]), + StdMethod(Void, 'CopySubresourceRegion', [(Pointer(ID3D11Resource), 'pDstResource'), (UINT, 'DstSubresource'), (UINT, 'DstX'), (UINT, 'DstY'), (UINT, 'DstZ'), (Pointer(ID3D11Resource), 'pSrcResource'), (UINT, 'SrcSubresource'), (Pointer(Const(D3D11_BOX)), 'pSrcBox')]), + StdMethod(Void, 'CopyResource', [(Pointer(ID3D11Resource), 'pDstResource'), (Pointer(ID3D11Resource), 'pSrcResource')]), + StdMethod(Void, 'UpdateSubresource', [(Pointer(ID3D11Resource), 'pDstResource'), (UINT, 'DstSubresource'), (Pointer(Const(D3D11_BOX)), 'pDstBox'), (OpaquePointer(Const(Void)), 'pSrcData'), (UINT, 'SrcRowPitch'), (UINT, 'SrcDepthPitch')]), + StdMethod(Void, 'CopyStructureCount', [(Pointer(ID3D11Buffer), 'pDstBuffer'), (UINT, 'DstAlignedByteOffset'), (Pointer(ID3D11UnorderedAccessView), 'pSrcView')]), + StdMethod(Void, 'ClearRenderTargetView', [(Pointer(ID3D11RenderTargetView), 'pRenderTargetView'), (Array(Const(FLOAT), 4), 'ColorRGBA')]), + StdMethod(Void, 'ClearUnorderedAccessViewUint', [(Pointer(ID3D11UnorderedAccessView), 'pUnorderedAccessView'), (Array(Const(UINT), 4), 'Values')]), + StdMethod(Void, 'ClearUnorderedAccessViewFloat', [(Pointer(ID3D11UnorderedAccessView), 'pUnorderedAccessView'), (Array(Const(FLOAT), 4), 'Values')]), + StdMethod(Void, 'ClearDepthStencilView', [(Pointer(ID3D11DepthStencilView), 'pDepthStencilView'), (D3D11_CLEAR_FLAG, 'ClearFlags'), (FLOAT, 'Depth'), (UINT8, 'Stencil')]), + StdMethod(Void, 'GenerateMips', [(Pointer(ID3D11ShaderResourceView), 'pShaderResourceView')]), + StdMethod(Void, 'SetResourceMinLOD', [(Pointer(ID3D11Resource), 'pResource'), (FLOAT, 'MinLOD')]), + StdMethod(FLOAT, 'GetResourceMinLOD', [(Pointer(ID3D11Resource), 'pResource')]), + StdMethod(Void, 'ResolveSubresource', [(Pointer(ID3D11Resource), 'pDstResource'), (UINT, 'DstSubresource'), (Pointer(ID3D11Resource), 'pSrcResource'), (UINT, 'SrcSubresource'), (DXGI_FORMAT, 'Format')]), + StdMethod(Void, 'ExecuteCommandList', [(Pointer(ID3D11CommandList), 'pCommandList'), (BOOL, 'RestoreContextState')]), + StdMethod(Void, 'HSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Pointer(Const(Pointer(ID3D11ShaderResourceView))), 'ppShaderResourceViews')]), + StdMethod(Void, 'HSSetShader', [(Pointer(ID3D11HullShader), 'pHullShader'), (Pointer(Const(Pointer(ID3D11ClassInstance))), 'ppClassInstances'), (UINT, 'NumClassInstances')]), + StdMethod(Void, 'HSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Pointer(Const(Pointer(ID3D11SamplerState))), 'ppSamplers')]), + StdMethod(Void, 'HSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Pointer(Const(Pointer(ID3D11Buffer))), 'ppConstantBuffers')]), + StdMethod(Void, 'DSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Pointer(Const(Pointer(ID3D11ShaderResourceView))), 'ppShaderResourceViews')]), + StdMethod(Void, 'DSSetShader', [(Pointer(ID3D11DomainShader), 'pDomainShader'), (Pointer(Const(Pointer(ID3D11ClassInstance))), 'ppClassInstances'), (UINT, 'NumClassInstances')]), + StdMethod(Void, 'DSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Pointer(Const(Pointer(ID3D11SamplerState))), 'ppSamplers')]), + StdMethod(Void, 'DSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Pointer(Const(Pointer(ID3D11Buffer))), 'ppConstantBuffers')]), + StdMethod(Void, 'CSSetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), (Pointer(Const(Pointer(ID3D11ShaderResourceView))), 'ppShaderResourceViews')]), + StdMethod(Void, 'CSSetUnorderedAccessViews', [(UINT, 'StartSlot'), (UINT, 'NumUAVs'), (Pointer(Const(Pointer(ID3D11UnorderedAccessView))), 'ppUnorderedAccessViews'), (Pointer(Const(UINT)), 'pUAVInitialCounts')]), + StdMethod(Void, 'CSSetShader', [(Pointer(ID3D11ComputeShader), 'pComputeShader'), (Pointer(Const(Pointer(ID3D11ClassInstance))), 'ppClassInstances'), (UINT, 'NumClassInstances')]), + StdMethod(Void, 'CSSetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), (Pointer(Const(Pointer(ID3D11SamplerState))), 'ppSamplers')]), + StdMethod(Void, 'CSSetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), (Pointer(Const(Pointer(ID3D11Buffer))), 'ppConstantBuffers')]), + StdMethod(Void, 'VSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), Out(Pointer(Pointer(ID3D11Buffer)), 'ppConstantBuffers')]), + StdMethod(Void, 'PSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), Out(Pointer(Pointer(ID3D11ShaderResourceView)), 'ppShaderResourceViews')]), + StdMethod(Void, 'PSGetShader', [Out(Pointer(Pointer(ID3D11PixelShader)), 'ppPixelShader'), Out(Pointer(Pointer(ID3D11ClassInstance)), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]), + StdMethod(Void, 'PSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), Out(Pointer(Pointer(ID3D11SamplerState)), 'ppSamplers')]), + StdMethod(Void, 'VSGetShader', [Out(Pointer(Pointer(ID3D11VertexShader)), 'ppVertexShader'), Out(Pointer(Pointer(ID3D11ClassInstance)), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]), + StdMethod(Void, 'PSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), Out(Pointer(Pointer(ID3D11Buffer)), 'ppConstantBuffers')]), + StdMethod(Void, 'IAGetInputLayout', [Out(Pointer(Pointer(ID3D11InputLayout)), 'ppInputLayout')]), + StdMethod(Void, 'IAGetVertexBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), Out(Pointer(Pointer(ID3D11Buffer)), 'ppVertexBuffers'), Out(Pointer(UINT), 'pStrides'), Out(Pointer(UINT), 'pOffsets')]), + StdMethod(Void, 'IAGetIndexBuffer', [Out(Pointer(Pointer(ID3D11Buffer)), 'pIndexBuffer'), Out(Pointer(DXGI_FORMAT), 'Format'), Out(Pointer(UINT), 'Offset')]), + StdMethod(Void, 'GSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), Out(Pointer(Pointer(ID3D11Buffer)), 'ppConstantBuffers')]), + StdMethod(Void, 'GSGetShader', [Out(Pointer(Pointer(ID3D11GeometryShader)), 'ppGeometryShader'), Out(Pointer(Pointer(ID3D11ClassInstance)), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]), + StdMethod(Void, 'IAGetPrimitiveTopology', [Out(Pointer(D3D11_PRIMITIVE_TOPOLOGY), 'pTopology')]), + StdMethod(Void, 'VSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), Out(Pointer(Pointer(ID3D11ShaderResourceView)), 'ppShaderResourceViews')]), + StdMethod(Void, 'VSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), Out(Pointer(Pointer(ID3D11SamplerState)), 'ppSamplers')]), + StdMethod(Void, 'GetPredication', [Out(Pointer(Pointer(ID3D11Predicate)), 'ppPredicate'), Out(Pointer(BOOL), 'pPredicateValue')]), + StdMethod(Void, 'GSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), Out(Pointer(Pointer(ID3D11ShaderResourceView)), 'ppShaderResourceViews')]), + StdMethod(Void, 'GSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), Out(Pointer(Pointer(ID3D11SamplerState)), 'ppSamplers')]), + StdMethod(Void, 'OMGetRenderTargets', [(UINT, 'NumViews'), Out(Pointer(Pointer(ID3D11RenderTargetView)), 'ppRenderTargetViews'), Out(Pointer(Pointer(ID3D11DepthStencilView)), 'ppDepthStencilView')]), + StdMethod(Void, 'OMGetRenderTargetsAndUnorderedAccessViews', [(UINT, 'NumRTVs'), Out(Pointer(Pointer(ID3D11RenderTargetView)), 'ppRenderTargetViews'), Out(Pointer(Pointer(ID3D11DepthStencilView)), 'ppDepthStencilView'), (UINT, 'UAVStartSlot'), (UINT, 'NumUAVs'), Out(Pointer(Pointer(ID3D11UnorderedAccessView)), 'ppUnorderedAccessViews')]), + StdMethod(Void, 'OMGetBlendState', [Out(Pointer(Pointer(ID3D11BlendState)), 'ppBlendState'), Out(Array(FLOAT, 4), 'BlendFactor'), Out(Pointer(UINT), 'pSampleMask')]), + StdMethod(Void, 'OMGetDepthStencilState', [Out(Pointer(Pointer(ID3D11DepthStencilState)), 'ppDepthStencilState'), Out(Pointer(UINT), 'pStencilRef')]), + StdMethod(Void, 'SOGetTargets', [(UINT, 'NumBuffers'), Out(Pointer(Pointer(ID3D11Buffer)), 'ppSOTargets')]), + StdMethod(Void, 'RSGetState', [Out(Pointer(Pointer(ID3D11RasterizerState)), 'ppRasterizerState')]), + StdMethod(Void, 'RSGetViewports', [Out(Pointer(UINT), 'pNumViewports'), Out(Pointer(D3D11_VIEWPORT), 'pViewports')]), + StdMethod(Void, 'RSGetScissorRects', [Out(Pointer(UINT), 'pNumRects'), Out(Pointer(D3D11_RECT), 'pRects')]), + StdMethod(Void, 'HSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), Out(Pointer(Pointer(ID3D11ShaderResourceView)), 'ppShaderResourceViews')]), + StdMethod(Void, 'HSGetShader', [Out(Pointer(Pointer(ID3D11HullShader)), 'ppHullShader'), Out(Pointer(Pointer(ID3D11ClassInstance)), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]), + StdMethod(Void, 'HSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), Out(Pointer(Pointer(ID3D11SamplerState)), 'ppSamplers')]), + StdMethod(Void, 'HSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), Out(Pointer(Pointer(ID3D11Buffer)), 'ppConstantBuffers')]), + StdMethod(Void, 'DSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), Out(Pointer(Pointer(ID3D11ShaderResourceView)), 'ppShaderResourceViews')]), + StdMethod(Void, 'DSGetShader', [Out(Pointer(Pointer(ID3D11DomainShader)), 'ppDomainShader'), Out(Pointer(Pointer(ID3D11ClassInstance)), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]), + StdMethod(Void, 'DSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), Out(Pointer(Pointer(ID3D11SamplerState)), 'ppSamplers')]), + StdMethod(Void, 'DSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), Out(Pointer(Pointer(ID3D11Buffer)), 'ppConstantBuffers')]), + StdMethod(Void, 'CSGetShaderResources', [(UINT, 'StartSlot'), (UINT, 'NumViews'), Out(Pointer(Pointer(ID3D11ShaderResourceView)), 'ppShaderResourceViews')]), + StdMethod(Void, 'CSGetUnorderedAccessViews', [(UINT, 'StartSlot'), (UINT, 'NumUAVs'), Out(Pointer(Pointer(ID3D11UnorderedAccessView)), 'ppUnorderedAccessViews')]), + StdMethod(Void, 'CSGetShader', [Out(Pointer(Pointer(ID3D11ComputeShader)), 'ppComputeShader'), Out(Pointer(Pointer(ID3D11ClassInstance)), 'ppClassInstances'), Out(Pointer(UINT), 'pNumClassInstances')]), + StdMethod(Void, 'CSGetSamplers', [(UINT, 'StartSlot'), (UINT, 'NumSamplers'), Out(Pointer(Pointer(ID3D11SamplerState)), 'ppSamplers')]), + StdMethod(Void, 'CSGetConstantBuffers', [(UINT, 'StartSlot'), (UINT, 'NumBuffers'), Out(Pointer(Pointer(ID3D11Buffer)), 'ppConstantBuffers')]), + StdMethod(Void, 'ClearState', []), + StdMethod(Void, 'Flush', []), + StdMethod(D3D11_DEVICE_CONTEXT_TYPE, 'GetType', []), + StdMethod(UINT, 'GetContextFlags', []), + StdMethod(HRESULT, 'FinishCommandList', [(BOOL, 'RestoreDeferredContextState'), Out(Pointer(Pointer(ID3D11CommandList)), 'ppCommandList')]), +] + +D3D11_CREATE_DEVICE_FLAG = Flags(UINT, [ + 'D3D11_CREATE_DEVICE_SINGLETHREADED', + 'D3D11_CREATE_DEVICE_DEBUG', + 'D3D11_CREATE_DEVICE_SWITCH_TO_REF', + 'D3D11_CREATE_DEVICE_PREVENT_INTERNAL_THREADING_OPTIMIZATIONS', + 'D3D11_CREATE_DEVICE_BGRA_SUPPORT', +]) + +ID3D11Device.methods += [ + StdMethod(HRESULT, 'CreateBuffer', [(Pointer(Const(D3D11_BUFFER_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(Pointer(ID3D11Buffer)), 'ppBuffer')]), + StdMethod(HRESULT, 'CreateTexture1D', [(Pointer(Const(D3D11_TEXTURE1D_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(Pointer(ID3D11Texture1D)), 'ppTexture1D')]), + StdMethod(HRESULT, 'CreateTexture2D', [(Pointer(Const(D3D11_TEXTURE2D_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(Pointer(ID3D11Texture2D)), 'ppTexture2D')]), + StdMethod(HRESULT, 'CreateTexture3D', [(Pointer(Const(D3D11_TEXTURE3D_DESC)), 'pDesc'), (Pointer(Const(D3D11_SUBRESOURCE_DATA)), 'pInitialData'), Out(Pointer(Pointer(ID3D11Texture3D)), 'ppTexture3D')]), + StdMethod(HRESULT, 'CreateShaderResourceView', [(Pointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_SHADER_RESOURCE_VIEW_DESC)), 'pDesc'), Out(Pointer(Pointer(ID3D11ShaderResourceView)), 'ppSRView')]), + StdMethod(HRESULT, 'CreateUnorderedAccessView', [(Pointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_UNORDERED_ACCESS_VIEW_DESC)), 'pDesc'), Out(Pointer(Pointer(ID3D11UnorderedAccessView)), 'ppUAView')]), + StdMethod(HRESULT, 'CreateRenderTargetView', [(Pointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_RENDER_TARGET_VIEW_DESC)), 'pDesc'), Out(Pointer(Pointer(ID3D11RenderTargetView)), 'ppRTView')]), + StdMethod(HRESULT, 'CreateDepthStencilView', [(Pointer(ID3D11Resource), 'pResource'), (Pointer(Const(D3D11_DEPTH_STENCIL_VIEW_DESC)), 'pDesc'), Out(Pointer(Pointer(ID3D11DepthStencilView)), 'ppDepthStencilView')]), + StdMethod(HRESULT, 'CreateInputLayout', [(Pointer(Const(D3D11_INPUT_ELEMENT_DESC)), 'pInputElementDescs'), (UINT, 'NumElements'), (Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecodeWithInputSignature'), (SIZE_T, 'BytecodeLength'), Out(Pointer(Pointer(ID3D11InputLayout)), 'ppInputLayout')]), + StdMethod(HRESULT, 'CreateVertexShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11VertexShader)), 'ppVertexShader')]), + StdMethod(HRESULT, 'CreateGeometryShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11GeometryShader)), 'ppGeometryShader')]), + StdMethod(HRESULT, 'CreateGeometryShaderWithStreamOutput', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(Const(D3D11_SO_DECLARATION_ENTRY)), 'pSODeclaration'), (UINT, 'NumEntries'), (Pointer(Const(UINT)), 'pBufferStrides'), (UINT, 'NumStrides'), (UINT, 'RasterizedStream'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11GeometryShader)), 'ppGeometryShader')]), + StdMethod(HRESULT, 'CreatePixelShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11PixelShader)), 'ppPixelShader')]), + StdMethod(HRESULT, 'CreateHullShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11HullShader)), 'ppHullShader')]), + StdMethod(HRESULT, 'CreateDomainShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11DomainShader)), 'ppDomainShader')]), + StdMethod(HRESULT, 'CreateComputeShader', [(Blob(Const(Void), 'BytecodeLength'), 'pShaderBytecode'), (SIZE_T, 'BytecodeLength'), (Pointer(ID3D11ClassLinkage), 'pClassLinkage'), Out(Pointer(Pointer(ID3D11ComputeShader)), 'ppComputeShader')]), + StdMethod(HRESULT, 'CreateClassLinkage', [Out(Pointer(Pointer(ID3D11ClassLinkage)), 'ppLinkage')]), + StdMethod(HRESULT, 'CreateBlendState', [(Pointer(Const(D3D11_BLEND_DESC)), 'pBlendStateDesc'), Out(Pointer(Pointer(ID3D11BlendState)), 'ppBlendState')]), + StdMethod(HRESULT, 'CreateDepthStencilState', [(Pointer(Const(D3D11_DEPTH_STENCIL_DESC)), 'pDepthStencilDesc'), Out(Pointer(Pointer(ID3D11DepthStencilState)), 'ppDepthStencilState')]), + StdMethod(HRESULT, 'CreateRasterizerState', [(Pointer(Const(D3D11_RASTERIZER_DESC)), 'pRasterizerDesc'), Out(Pointer(Pointer(ID3D11RasterizerState)), 'ppRasterizerState')]), + StdMethod(HRESULT, 'CreateSamplerState', [(Pointer(Const(D3D11_SAMPLER_DESC)), 'pSamplerDesc'), Out(Pointer(Pointer(ID3D11SamplerState)), 'ppSamplerState')]), + StdMethod(HRESULT, 'CreateQuery', [(Pointer(Const(D3D11_QUERY_DESC)), 'pQueryDesc'), Out(Pointer(Pointer(ID3D11Query)), 'ppQuery')]), + StdMethod(HRESULT, 'CreatePredicate', [(Pointer(Const(D3D11_QUERY_DESC)), 'pPredicateDesc'), Out(Pointer(Pointer(ID3D11Predicate)), 'ppPredicate')]), + StdMethod(HRESULT, 'CreateCounter', [(Pointer(Const(D3D11_COUNTER_DESC)), 'pCounterDesc'), Out(Pointer(Pointer(ID3D11Counter)), 'ppCounter')]), + StdMethod(HRESULT, 'CreateDeferredContext', [(UINT, 'ContextFlags'), Out(Pointer(Pointer(ID3D11DeviceContext)), 'ppDeferredContext')]), + StdMethod(HRESULT, 'OpenSharedResource', [(HANDLE, 'hResource'), (REFIID, 'ReturnedInterface'), Out(Pointer(OpaquePointer(Void)), 'ppResource')]), + StdMethod(HRESULT, 'CheckFormatSupport', [(DXGI_FORMAT, 'Format'), Out(Pointer(UINT), 'pFormatSupport')]), + StdMethod(HRESULT, 'CheckMultisampleQualityLevels', [(DXGI_FORMAT, 'Format'), (UINT, 'SampleCount'), Out(Pointer(UINT), 'pNumQualityLevels')]), + StdMethod(Void, 'CheckCounterInfo', [Out(Pointer(D3D11_COUNTER_INFO), 'pCounterInfo')]), + StdMethod(HRESULT, 'CheckCounter', [(Pointer(Const(D3D11_COUNTER_DESC)), 'pDesc'), Out(Pointer(D3D11_COUNTER_TYPE), 'pType'), Out(Pointer(UINT), 'pActiveCounters'), Out(LPSTR, 'szName'), Out(Pointer(UINT), 'pNameLength'), Out(LPSTR, 'szUnits'), Out(Pointer(UINT), 'pUnitsLength'), Out(LPSTR, 'szDescription'), Out(Pointer(UINT), 'pDescriptionLength')]), + StdMethod(HRESULT, 'CheckFeatureSupport', [(D3D11_FEATURE, 'Feature'), Out(OpaqueBlob(Void, 'FeatureSupportDataSize'), 'pFeatureSupportData'), (UINT, 'FeatureSupportDataSize')]), + StdMethod(HRESULT, 'GetPrivateData', [(REFGUID, 'guid'), Out(Pointer(UINT), 'pDataSize'), Out(OpaquePointer(Void), 'pData')]), + StdMethod(HRESULT, 'SetPrivateData', [(REFGUID, 'guid'), (UINT, 'DataSize'), (OpaqueBlob(Const(Void), 'DataSize'), 'pData')]), + StdMethod(HRESULT, 'SetPrivateDataInterface', [(REFGUID, 'guid'), (Pointer(Const(IUnknown)), 'pData')]), + StdMethod(D3D_FEATURE_LEVEL, 'GetFeatureLevel', []), + StdMethod(D3D11_CREATE_DEVICE_FLAG, 'GetCreationFlags', []), + StdMethod(HRESULT, 'GetDeviceRemovedReason', []), + StdMethod(Void, 'GetImmediateContext', [Out(Pointer(Pointer(ID3D11DeviceContext)), 'ppImmediateContext')]), + StdMethod(HRESULT, 'SetExceptionMode', [(D3D11_RAISE_FLAG, 'RaiseFlags')]), + StdMethod(UINT, 'GetExceptionMode', []), +] + +d3d11 = API("d3d11") + +d3d11.addFunctions([ + StdFunction(HRESULT, 'D3D11CreateDevice', [(Pointer(IDXGIAdapter), 'pAdapter'), (D3D_DRIVER_TYPE, 'DriverType'), (HMODULE, 'Software'), (D3D11_CREATE_DEVICE_FLAG, 'Flags'), (Pointer(Const(D3D_FEATURE_LEVEL)), 'pFeatureLevels'), (UINT, 'FeatureLevels'), (UINT, 'SDKVersion'), Out(Pointer(Pointer(ID3D11Device)), 'ppDevice'), Out(Pointer(D3D_FEATURE_LEVEL), 'pFeatureLevel'), Out(Pointer(Pointer(ID3D11DeviceContext)), 'ppImmediateContext')]), + StdFunction(HRESULT, 'D3D11CreateDeviceAndSwapChain', [(Pointer(IDXGIAdapter), 'pAdapter'), (D3D_DRIVER_TYPE, 'DriverType'), (HMODULE, 'Software'), (D3D11_CREATE_DEVICE_FLAG, 'Flags'), (Pointer(Const(D3D_FEATURE_LEVEL)), 'pFeatureLevels'), (UINT, 'FeatureLevels'), (UINT, 'SDKVersion'), (Pointer(Const(DXGI_SWAP_CHAIN_DESC)), 'pSwapChainDesc'), Out(Pointer(Pointer(IDXGISwapChain)), 'ppSwapChain'), Out(Pointer(Pointer(ID3D11Device)), 'ppDevice'), Out(Pointer(D3D_FEATURE_LEVEL), 'pFeatureLevel'), Out(Pointer(Pointer(ID3D11DeviceContext)), 'ppImmediateContext')]), +]) + +d3d11.addInterfaces([ + IDXGIDevice, + ID3D11Debug, +]) diff --git a/specs/d3d11sdklayers.py b/specs/d3d11sdklayers.py new file mode 100644 index 0000000..c42e6e0 --- /dev/null +++ b/specs/d3d11sdklayers.py @@ -0,0 +1,890 @@ +########################################################################## +# +# Copyright 2012 Jose Fonseca +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +##########################################################################/ + + +from dxgi import * + + +ID3D11DeviceChild = Interface('ID3D11DeviceChild', IUnknown) +ID3D11DeviceContext = Interface('ID3D11DeviceContext', ID3D11DeviceChild) + + +D3D11_DEBUG_FEATURE = Flags(UINT, [ + 'D3D11_DEBUG_FEATURE_FLUSH_PER_RENDER_OP', + 'D3D11_DEBUG_FEATURE_FINISH_PER_RENDER_OP', + 'D3D11_DEBUG_FEATURE_PRESENT_PER_RENDER_OP', +]) + +D3D11_RLDO_FLAGS = Enum('D3D11_RLDO_FLAGS', [ + 'D3D11_RLDO_SUMMARY', + 'D3D11_RLDO_DETAIL', +]) + +ID3D11Debug = Interface('ID3D11Debug', IUnknown) +ID3D11Debug.methods += [ + StdMethod(HRESULT, 'SetFeatureMask', [(D3D11_DEBUG_FEATURE, 'Mask')]), + StdMethod(D3D11_DEBUG_FEATURE, 'GetFeatureMask', []), + StdMethod(HRESULT, 'SetPresentPerRenderOpDelay', [(UINT, 'Milliseconds')]), + StdMethod(UINT, 'GetPresentPerRenderOpDelay', []), + StdMethod(HRESULT, 'SetSwapChain', [(Pointer(IDXGISwapChain), 'pSwapChain')]), + StdMethod(HRESULT, 'GetSwapChain', [Out(Pointer(Pointer(IDXGISwapChain)), 'ppSwapChain')]), + StdMethod(HRESULT, 'ValidateContext', [(Pointer(ID3D11DeviceContext), 'pContext')]), + StdMethod(HRESULT, 'ReportLiveDeviceObjects', [(D3D11_RLDO_FLAGS, 'Flags')]), + StdMethod(HRESULT, 'ValidateContextForDispatch', [(Pointer(ID3D11DeviceContext), 'pContext')]), +] + +ID3D11SwitchToRef = Interface('ID3D11SwitchToRef', IUnknown) +ID3D11SwitchToRef.methods += [ + StdMethod(BOOL, 'SetUseRef', [(BOOL, 'UseRef')]), + StdMethod(BOOL, 'GetUseRef', []), +] + +D3D11_MESSAGE_CATEGORY = Enum('D3D11_MESSAGE_CATEGORY', [ + 'D3D11_MESSAGE_CATEGORY_APPLICATION_DEFINED', + 'D3D11_MESSAGE_CATEGORY_MISCELLANEOUS', + 'D3D11_MESSAGE_CATEGORY_INITIALIZATION', + 'D3D11_MESSAGE_CATEGORY_CLEANUP', + 'D3D11_MESSAGE_CATEGORY_COMPILATION', + 'D3D11_MESSAGE_CATEGORY_STATE_CREATION', + 'D3D11_MESSAGE_CATEGORY_STATE_SETTING', + 'D3D11_MESSAGE_CATEGORY_STATE_GETTING', + 'D3D11_MESSAGE_CATEGORY_RESOURCE_MANIPULATION', + 'D3D11_MESSAGE_CATEGORY_EXECUTION', +]) + +D3D11_MESSAGE_SEVERITY = Enum('D3D11_MESSAGE_SEVERITY', [ + 'D3D11_MESSAGE_SEVERITY_CORRUPTION', + 'D3D11_MESSAGE_SEVERITY_ERROR', + 'D3D11_MESSAGE_SEVERITY_WARNING', + 'D3D11_MESSAGE_SEVERITY_INFO', +]) + +D3D11_MESSAGE_ID = Enum('D3D11_MESSAGE_ID', [ + 'D3D11_MESSAGE_ID_UNKNOWN', + 'D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETS_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_HAZARD', + 'D3D11_MESSAGE_ID_STRING_FROM_APPLICATION', + 'D3D11_MESSAGE_ID_CORRUPTED_THIS', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER1', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER2', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER3', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER4', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER5', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER6', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER7', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER8', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER9', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER10', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER11', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER12', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER13', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER14', + 'D3D11_MESSAGE_ID_CORRUPTED_PARAMETER15', + 'D3D11_MESSAGE_ID_CORRUPTED_MULTITHREADING', + 'D3D11_MESSAGE_ID_MESSAGE_REPORTING_OUTOFMEMORY', + 'D3D11_MESSAGE_ID_IASETINPUTLAYOUT_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_IASETINDEXBUFFER_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_VSSETSHADER_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_VSSETSHADERRESOURCES_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_VSSETSAMPLERS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_GSSETSHADER_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_GSSETSHADERRESOURCES_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_GSSETSAMPLERS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_SOSETTARGETS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_PSSETSHADER_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_PSSETSHADERRESOURCES_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_PSSETSAMPLERS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_RSSETSTATE_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_OMSETBLENDSTATE_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_OMSETDEPTHSTENCILSTATE_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_OMSETRENDERTARGETS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_SETPREDICATION_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_GETPRIVATEDATA_MOREDATA', + 'D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFREEDATA', + 'D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDIUNKNOWN', + 'D3D11_MESSAGE_ID_SETPRIVATEDATA_INVALIDFLAGS', + 'D3D11_MESSAGE_ID_SETPRIVATEDATA_CHANGINGPARAMS', + 'D3D11_MESSAGE_ID_SETPRIVATEDATA_OUTOFMEMORY', + 'D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDFORMAT', + 'D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSAMPLES', + 'D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDUSAGE', + 'D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDBINDFLAGS', + 'D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDCPUACCESSFLAGS', + 'D3D11_MESSAGE_ID_CREATEBUFFER_UNRECOGNIZEDMISCFLAGS', + 'D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCPUACCESSFLAGS', + 'D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDBINDFLAGS', + 'D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDINITIALDATA', + 'D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDDIMENSIONS', + 'D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMIPLEVELS', + 'D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDMISCFLAGS', + 'D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDARG_RETURN', + 'D3D11_MESSAGE_ID_CREATEBUFFER_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_CREATEBUFFER_NULLDESC', + 'D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDCONSTANTBUFFERBINDINGS', + 'D3D11_MESSAGE_ID_CREATEBUFFER_LARGEALLOCATION', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDFORMAT', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_UNSUPPORTEDFORMAT', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDSAMPLES', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDUSAGE', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDBINDFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDCPUACCESSFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_UNRECOGNIZEDMISCFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDCPUACCESSFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDBINDFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDINITIALDATA', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDDIMENSIONS', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMIPLEVELS', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDMISCFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_INVALIDARG_RETURN', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_NULLDESC', + 'D3D11_MESSAGE_ID_CREATETEXTURE1D_LARGEALLOCATION', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDFORMAT', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_UNSUPPORTEDFORMAT', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDSAMPLES', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDUSAGE', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDBINDFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDCPUACCESSFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_UNRECOGNIZEDMISCFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDCPUACCESSFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDBINDFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDINITIALDATA', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDDIMENSIONS', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMIPLEVELS', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDMISCFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_INVALIDARG_RETURN', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_NULLDESC', + 'D3D11_MESSAGE_ID_CREATETEXTURE2D_LARGEALLOCATION', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDFORMAT', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_UNSUPPORTEDFORMAT', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDSAMPLES', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDUSAGE', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDBINDFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDCPUACCESSFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_UNRECOGNIZEDMISCFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDCPUACCESSFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDBINDFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDINITIALDATA', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDDIMENSIONS', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMIPLEVELS', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDMISCFLAGS', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_INVALIDARG_RETURN', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_NULLDESC', + 'D3D11_MESSAGE_ID_CREATETEXTURE3D_LARGEALLOCATION', + 'D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_UNRECOGNIZEDFORMAT', + 'D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDESC', + 'D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFORMAT', + 'D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDDIMENSIONS', + 'D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDRESOURCE', + 'D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_TOOMANYOBJECTS', + 'D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDARG_RETURN', + 'D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNRECOGNIZEDFORMAT', + 'D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_UNSUPPORTEDFORMAT', + 'D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDESC', + 'D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDFORMAT', + 'D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDDIMENSIONS', + 'D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDRESOURCE', + 'D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_TOOMANYOBJECTS', + 'D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_INVALIDARG_RETURN', + 'D3D11_MESSAGE_ID_CREATERENDERTARGETVIEW_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_UNRECOGNIZEDFORMAT', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDESC', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFORMAT', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDDIMENSIONS', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDRESOURCE', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_TOOMANYOBJECTS', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDARG_RETURN', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_OUTOFMEMORY', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TOOMANYELEMENTS', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDFORMAT', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INCOMPATIBLEFORMAT', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOT', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDINPUTSLOTCLASS', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_STEPRATESLOTCLASSMISMATCH', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSLOTCLASSCHANGE', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDSTEPRATECHANGE', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_INVALIDALIGNMENT', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_DUPLICATESEMANTIC', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNPARSEABLEINPUTSIGNATURE', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLSEMANTIC', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_MISSINGELEMENT', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_NULLDESC', + 'D3D11_MESSAGE_ID_CREATEVERTEXSHADER_OUTOFMEMORY', + 'D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERBYTECODE', + 'D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDSHADERTYPE', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_OUTOFMEMORY', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERBYTECODE', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDSHADERTYPE', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTOFMEMORY', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERBYTECODE', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSHADERTYPE', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMENTRIES', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSTREAMSTRIDEUNUSED', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDDECL', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_EXPECTEDDECL', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_OUTPUTSLOT0EXPECTED', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSLOT', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_ONLYONEELEMENTPERSLOT', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCOMPONENTCOUNT', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTARTCOMPONENTANDCOMPONENTCOUNT', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDGAPDEFINITION', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_REPEATEDOUTPUT', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDOUTPUTSTREAMSTRIDE', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGSEMANTIC', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MASKMISMATCH', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_CANTHAVEONLYGAPS', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DECLTOOCOMPLEX', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_MISSINGOUTPUTSIGNATURE', + 'D3D11_MESSAGE_ID_CREATEPIXELSHADER_OUTOFMEMORY', + 'D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERBYTECODE', + 'D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDSHADERTYPE', + 'D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDFILLMODE', + 'D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDCULLMODE', + 'D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDDEPTHBIASCLAMP', + 'D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_INVALIDSLOPESCALEDDEPTHBIAS', + 'D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_TOOMANYOBJECTS', + 'D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_NULLDESC', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHWRITEMASK', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDDEPTHFUNC', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFAILOP', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILZFAILOP', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILPASSOP', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDFRONTFACESTENCILFUNC', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFAILOP', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILZFAILOP', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILPASSOP', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_INVALIDBACKFACESTENCILFUNC', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_TOOMANYOBJECTS', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_NULLDESC', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLEND', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLEND', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOP', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDSRCBLENDALPHA', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDDESTBLENDALPHA', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDBLENDOPALPHA', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_INVALIDRENDERTARGETWRITEMASK', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_TOOMANYOBJECTS', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_NULLDESC', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDFILTER', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSU', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSV', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDADDRESSW', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMIPLODBIAS', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXANISOTROPY', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDCOMPARISONFUNC', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMINLOD', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_INVALIDMAXLOD', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_TOOMANYOBJECTS', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NULLDESC', + 'D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDQUERY', + 'D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_INVALIDMISCFLAGS', + 'D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_UNEXPECTEDMISCFLAG', + 'D3D11_MESSAGE_ID_CREATEQUERYORPREDICATE_NULLDESC', + 'D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNRECOGNIZED', + 'D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNDEFINED', + 'D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_INVALIDBUFFER', + 'D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_OFFSET_TOO_LARGE', + 'D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_IASETINDEXBUFFER_INVALIDBUFFER', + 'D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_FORMAT_INVALID', + 'D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_TOO_LARGE', + 'D3D11_MESSAGE_ID_DEVICE_IASETINDEXBUFFER_OFFSET_UNALIGNED', + 'D3D11_MESSAGE_ID_DEVICE_VSSETSHADERRESOURCES_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_VSSETCONSTANTBUFFERS_INVALIDBUFFER', + 'D3D11_MESSAGE_ID_DEVICE_VSSETCONSTANTBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_VSSETSAMPLERS_SAMPLERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_GSSETSHADERRESOURCES_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_GSSETCONSTANTBUFFERS_INVALIDBUFFER', + 'D3D11_MESSAGE_ID_DEVICE_GSSETCONSTANTBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_GSSETSAMPLERS_SAMPLERS_EMPTY', + 'D3D11_MESSAGE_ID_SOSETTARGETS_INVALIDBUFFER', + 'D3D11_MESSAGE_ID_DEVICE_SOSETTARGETS_OFFSET_UNALIGNED', + 'D3D11_MESSAGE_ID_DEVICE_PSSETSHADERRESOURCES_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_PSSETCONSTANTBUFFERS_INVALIDBUFFER', + 'D3D11_MESSAGE_ID_DEVICE_PSSETCONSTANTBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_PSSETSAMPLERS_SAMPLERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_INVALIDVIEWPORT', + 'D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_INVALIDSCISSOR', + 'D3D11_MESSAGE_ID_CLEARRENDERTARGETVIEW_DENORMFLUSH', + 'D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DENORMFLUSH', + 'D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_INVALID', + 'D3D11_MESSAGE_ID_DEVICE_IAGETVERTEXBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_VSGETSHADERRESOURCES_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_VSGETCONSTANTBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_VSGETSAMPLERS_SAMPLERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_GSGETSHADERRESOURCES_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_GSGETCONSTANTBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_GSGETSAMPLERS_SAMPLERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_SOGETTARGETS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_PSGETSHADERRESOURCES_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_PSGETCONSTANTBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_PSGETSAMPLERS_SAMPLERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_RSGETVIEWPORTS_VIEWPORTS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_RSGETSCISSORRECTS_RECTS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_GENERATEMIPS_RESOURCE_INVALID', + 'D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSUBRESOURCE', + 'D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESUBRESOURCE', + 'D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCEBOX', + 'D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCE', + 'D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDDESTINATIONSTATE', + 'D3D11_MESSAGE_ID_COPYSUBRESOURCEREGION_INVALIDSOURCESTATE', + 'D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCE', + 'D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDDESTINATIONSTATE', + 'D3D11_MESSAGE_ID_COPYRESOURCE_INVALIDSOURCESTATE', + 'D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSUBRESOURCE', + 'D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONBOX', + 'D3D11_MESSAGE_ID_UPDATESUBRESOURCE_INVALIDDESTINATIONSTATE', + 'D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_INVALID', + 'D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_DESTINATION_SUBRESOURCE_INVALID', + 'D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_INVALID', + 'D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_SOURCE_SUBRESOURCE_INVALID', + 'D3D11_MESSAGE_ID_DEVICE_RESOLVESUBRESOURCE_FORMAT_INVALID', + 'D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDMAPTYPE', + 'D3D11_MESSAGE_ID_BUFFER_MAP_INVALIDFLAGS', + 'D3D11_MESSAGE_ID_BUFFER_MAP_ALREADYMAPPED', + 'D3D11_MESSAGE_ID_BUFFER_MAP_DEVICEREMOVED_RETURN', + 'D3D11_MESSAGE_ID_BUFFER_UNMAP_NOTMAPPED', + 'D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDMAPTYPE', + 'D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDSUBRESOURCE', + 'D3D11_MESSAGE_ID_TEXTURE1D_MAP_INVALIDFLAGS', + 'D3D11_MESSAGE_ID_TEXTURE1D_MAP_ALREADYMAPPED', + 'D3D11_MESSAGE_ID_TEXTURE1D_MAP_DEVICEREMOVED_RETURN', + 'D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_INVALIDSUBRESOURCE', + 'D3D11_MESSAGE_ID_TEXTURE1D_UNMAP_NOTMAPPED', + 'D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDMAPTYPE', + 'D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDSUBRESOURCE', + 'D3D11_MESSAGE_ID_TEXTURE2D_MAP_INVALIDFLAGS', + 'D3D11_MESSAGE_ID_TEXTURE2D_MAP_ALREADYMAPPED', + 'D3D11_MESSAGE_ID_TEXTURE2D_MAP_DEVICEREMOVED_RETURN', + 'D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_INVALIDSUBRESOURCE', + 'D3D11_MESSAGE_ID_TEXTURE2D_UNMAP_NOTMAPPED', + 'D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDMAPTYPE', + 'D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDSUBRESOURCE', + 'D3D11_MESSAGE_ID_TEXTURE3D_MAP_INVALIDFLAGS', + 'D3D11_MESSAGE_ID_TEXTURE3D_MAP_ALREADYMAPPED', + 'D3D11_MESSAGE_ID_TEXTURE3D_MAP_DEVICEREMOVED_RETURN', + 'D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_INVALIDSUBRESOURCE', + 'D3D11_MESSAGE_ID_TEXTURE3D_UNMAP_NOTMAPPED', + 'D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_DEPRECATED', + 'D3D11_MESSAGE_ID_CHECKMULTISAMPLEQUALITYLEVELS_FORMAT_DEPRECATED', + 'D3D11_MESSAGE_ID_SETEXCEPTIONMODE_UNRECOGNIZEDFLAGS', + 'D3D11_MESSAGE_ID_SETEXCEPTIONMODE_INVALIDARG_RETURN', + 'D3D11_MESSAGE_ID_SETEXCEPTIONMODE_DEVICEREMOVED_RETURN', + 'D3D11_MESSAGE_ID_REF_SIMULATING_INFINITELY_FAST_HARDWARE', + 'D3D11_MESSAGE_ID_REF_THREADING_MODE', + 'D3D11_MESSAGE_ID_REF_UMDRIVER_EXCEPTION', + 'D3D11_MESSAGE_ID_REF_KMDRIVER_EXCEPTION', + 'D3D11_MESSAGE_ID_REF_HARDWARE_EXCEPTION', + 'D3D11_MESSAGE_ID_REF_ACCESSING_INDEXABLE_TEMP_OUT_OF_RANGE', + 'D3D11_MESSAGE_ID_REF_PROBLEM_PARSING_SHADER', + 'D3D11_MESSAGE_ID_REF_OUT_OF_MEMORY', + 'D3D11_MESSAGE_ID_REF_INFO', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEXPOS_OVERFLOW', + 'D3D11_MESSAGE_ID_DEVICE_DRAWINDEXED_INDEXPOS_OVERFLOW', + 'D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_VERTEXPOS_OVERFLOW', + 'D3D11_MESSAGE_ID_DEVICE_DRAWINSTANCED_INSTANCEPOS_OVERFLOW', + 'D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INSTANCEPOS_OVERFLOW', + 'D3D11_MESSAGE_ID_DEVICE_DRAWINDEXEDINSTANCED_INDEXPOS_OVERFLOW', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_SHADER_NOT_SET', + 'D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SEMANTICNAME_NOT_FOUND', + 'D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERINDEX', + 'D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_COMPONENTTYPE', + 'D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_REGISTERMASK', + 'D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_SYSTEMVALUE', + 'D3D11_MESSAGE_ID_DEVICE_SHADER_LINKAGE_NEVERWRITTEN_ALWAYSREADS', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_NOT_SET', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_INPUTLAYOUT_NOT_SET', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_NOT_SET', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_CONSTANT_BUFFER_TOO_SMALL', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_NOT_SET', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_SHADERRESOURCEVIEW_NOT_SET', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_VIEW_DIMENSION_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_STRIDE_TOO_SMALL', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_BUFFER_TOO_SMALL', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_NOT_SET', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_FORMAT_INVALID', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_BUFFER_TOO_SMALL', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_GS_INPUT_PRIMITIVE_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_RETURN_TYPE_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_POSITION_NOT_PRESENT', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_NOT_SET', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_BOUND_RESOURCE_MAPPED', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_PRIMITIVETOPOLOGY', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_OFFSET_UNALIGNED', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_VERTEX_STRIDE_UNALIGNED', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_INDEX_OFFSET_UNALIGNED', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_OUTPUT_STREAM_OFFSET_UNALIGNED', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_LD_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_SAMPLE_C_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_MULTISAMPLE_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_SO_TARGETS_BOUND_WITHOUT_SOURCE', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_SO_STRIDE_LARGER_THAN_BUFFER', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_OM_RENDER_TARGET_DOES_NOT_SUPPORT_BLENDING', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_OM_DUAL_SOURCE_BLENDING_CAN_ONLY_HAVE_RENDER_TARGET_0', + 'D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_AT_FAULT', + 'D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_POSSIBLY_AT_FAULT', + 'D3D11_MESSAGE_ID_DEVICE_REMOVAL_PROCESS_NOT_AT_FAULT', + 'D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_INVALIDARG_RETURN', + 'D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_DEVICE_OPEN_SHARED_RESOURCE_BADINTERFACE_RETURN', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_VIEWPORT_NOT_SET', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TRAILING_DIGIT_IN_SEMANTIC', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_TRAILING_DIGIT_IN_SEMANTIC', + 'D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_DENORMFLUSH', + 'D3D11_MESSAGE_ID_OMSETRENDERTARGETS_INVALIDVIEW', + 'D3D11_MESSAGE_ID_DEVICE_SETTEXTFILTERSIZE_INVALIDDIMENSIONS', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_SAMPLER_MISMATCH', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_TYPE_MISMATCH', + 'D3D11_MESSAGE_ID_BLENDSTATE_GETDESC_LEGACY', + 'D3D11_MESSAGE_ID_SHADERRESOURCEVIEW_GETDESC_LEGACY', + 'D3D11_MESSAGE_ID_CREATEQUERY_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_CREATEPREDICATE_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFRANGE_COUNTER', + 'D3D11_MESSAGE_ID_CREATECOUNTER_SIMULTANEOUS_ACTIVE_COUNTERS_EXHAUSTED', + 'D3D11_MESSAGE_ID_CREATECOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER', + 'D3D11_MESSAGE_ID_CREATECOUNTER_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_CREATECOUNTER_NONEXCLUSIVE_RETURN', + 'D3D11_MESSAGE_ID_CREATECOUNTER_NULLDESC', + 'D3D11_MESSAGE_ID_CHECKCOUNTER_OUTOFRANGE_COUNTER', + 'D3D11_MESSAGE_ID_CHECKCOUNTER_UNSUPPORTED_WELLKNOWN_COUNTER', + 'D3D11_MESSAGE_ID_SETPREDICATION_INVALID_PREDICATE_STATE', + 'D3D11_MESSAGE_ID_QUERY_BEGIN_UNSUPPORTED', + 'D3D11_MESSAGE_ID_PREDICATE_BEGIN_DURING_PREDICATION', + 'D3D11_MESSAGE_ID_QUERY_BEGIN_DUPLICATE', + 'D3D11_MESSAGE_ID_QUERY_BEGIN_ABANDONING_PREVIOUS_RESULTS', + 'D3D11_MESSAGE_ID_PREDICATE_END_DURING_PREDICATION', + 'D3D11_MESSAGE_ID_QUERY_END_ABANDONING_PREVIOUS_RESULTS', + 'D3D11_MESSAGE_ID_QUERY_END_WITHOUT_BEGIN', + 'D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_DATASIZE', + 'D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_FLAGS', + 'D3D11_MESSAGE_ID_QUERY_GETDATA_INVALID_CALL', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_PS_OUTPUT_TYPE_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_FORMAT_GATHER_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_INVALID_USE_OF_CENTER_MULTISAMPLE_PATTERN', + 'D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_STRIDE_TOO_LARGE', + 'D3D11_MESSAGE_ID_DEVICE_IASETVERTEXBUFFERS_INVALIDRANGE', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_EMPTY_LAYOUT', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_RESOURCE_SAMPLE_COUNT_MISMATCH', + 'D3D11_MESSAGE_ID_D3D10_MESSAGES_END', + 'D3D11_MESSAGE_ID_D3D10L9_MESSAGES_START', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILSTATE_STENCIL_NO_TWO_SIDED', + 'D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthBiasClamp_NOT_SUPPORTED', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_COMPARISON_SUPPORT', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_EXCESSIVE_ANISOTROPY', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_OUT_OF_RANGE', + 'D3D11_MESSAGE_ID_VSSETSAMPLERS_NOT_SUPPORTED', + 'D3D11_MESSAGE_ID_VSSETSAMPLERS_TOO_MANY_SAMPLERS', + 'D3D11_MESSAGE_ID_PSSETSAMPLERS_TOO_MANY_SAMPLERS', + 'D3D11_MESSAGE_ID_CREATERESOURCE_NO_ARRAYS', + 'D3D11_MESSAGE_ID_CREATERESOURCE_NO_VB_AND_IB_BIND', + 'D3D11_MESSAGE_ID_CREATERESOURCE_NO_TEXTURE_1D', + 'D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_OUT_OF_RANGE', + 'D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_SHADER_RESOURCE', + 'D3D11_MESSAGE_ID_OMSETRENDERTARGETS_TOO_MANY_RENDER_TARGETS', + 'D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_DIFFERING_BIT_DEPTHS', + 'D3D11_MESSAGE_ID_IASETVERTEXBUFFERS_BAD_BUFFER_INDEX', + 'D3D11_MESSAGE_ID_DEVICE_RSSETVIEWPORTS_TOO_MANY_VIEWPORTS', + 'D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_ADJACENCY_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_TOO_MANY_SCISSORS', + 'D3D11_MESSAGE_ID_COPYRESOURCE_ONLY_TEXTURE_2D_WITHIN_GPU_MEMORY', + 'D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_3D_READBACK', + 'D3D11_MESSAGE_ID_COPYRESOURCE_NO_TEXTURE_ONLY_READBACK', + 'D3D11_MESSAGE_ID_CREATEINPUTLAYOUT_UNSUPPORTED_FORMAT', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_ALPHA_TO_COVERAGE', + 'D3D11_MESSAGE_ID_CREATERASTERIZERSTATE_DepthClipEnable_MUST_BE_TRUE', + 'D3D11_MESSAGE_ID_DRAWINDEXED_STARTINDEXLOCATION_MUST_BE_POSITIVE', + 'D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_MUST_USE_LOWEST_LOD', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MINLOD_MUST_NOT_BE_FRACTIONAL', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_MAXLOD_MUST_BE_FLT_MAX', + 'D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_FIRSTARRAYSLICE_MUST_BE_ZERO', + 'D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_CUBES_MUST_HAVE_6_SIDES', + 'D3D11_MESSAGE_ID_CREATERESOURCE_NOT_BINDABLE_AS_RENDER_TARGET', + 'D3D11_MESSAGE_ID_CREATERESOURCE_NO_DWORD_INDEX_BUFFER', + 'D3D11_MESSAGE_ID_CREATERESOURCE_MSAA_PRECLUDES_SHADER_RESOURCE', + 'D3D11_MESSAGE_ID_CREATERESOURCE_PRESENTATION_PRECLUDES_SHADER_RESOURCE', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_BLEND_ENABLE', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_INDEPENDENT_WRITE_MASKS', + 'D3D11_MESSAGE_ID_CREATERESOURCE_NO_STREAM_OUT', + 'D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_VB_IB_FOR_BUFFERS', + 'D3D11_MESSAGE_ID_CREATERESOURCE_NO_AUTOGEN_FOR_VOLUMES', + 'D3D11_MESSAGE_ID_CREATERESOURCE_DXGI_FORMAT_R8G8B8A8_CANNOT_BE_SHARED', + 'D3D11_MESSAGE_ID_VSSHADERRESOURCES_NOT_SUPPORTED', + 'D3D11_MESSAGE_ID_GEOMETRY_SHADER_NOT_SUPPORTED', + 'D3D11_MESSAGE_ID_STREAM_OUT_NOT_SUPPORTED', + 'D3D11_MESSAGE_ID_TEXT_FILTER_NOT_SUPPORTED', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_SEPARATE_ALPHA_BLEND', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_NO_MRT_BLEND', + 'D3D11_MESSAGE_ID_CREATEBLENDSTATE_OPERATION_NOT_SUPPORTED', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_NO_MIRRORONCE', + 'D3D11_MESSAGE_ID_DRAWINSTANCED_NOT_SUPPORTED', + 'D3D11_MESSAGE_ID_DRAWINDEXEDINSTANCED_NOT_SUPPORTED_BELOW_9_3', + 'D3D11_MESSAGE_ID_DRAWINDEXED_POINTLIST_UNSUPPORTED', + 'D3D11_MESSAGE_ID_SETBLENDSTATE_SAMPLE_MASK_CANNOT_BE_ZERO', + 'D3D11_MESSAGE_ID_CREATERESOURCE_DIMENSION_EXCEEDS_FEATURE_LEVEL_DEFINITION', + 'D3D11_MESSAGE_ID_CREATERESOURCE_ONLY_SINGLE_MIP_LEVEL_DEPTH_STENCIL_SUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_RSSETSCISSORRECTS_NEGATIVESCISSOR', + 'D3D11_MESSAGE_ID_SLOT_ZERO_MUST_BE_D3D10_INPUT_PER_VERTEX_DATA', + 'D3D11_MESSAGE_ID_CREATERESOURCE_NON_POW_2_MIPMAP', + 'D3D11_MESSAGE_ID_CREATESAMPLERSTATE_BORDER_NOT_SUPPORTED', + 'D3D11_MESSAGE_ID_OMSETRENDERTARGETS_NO_SRGB_MRT', + 'D3D11_MESSAGE_ID_D3D10L9_MESSAGES_END', + 'D3D11_MESSAGE_ID_D3D11_MESSAGES_START', + 'D3D11_MESSAGE_ID_CREATEDEPTHSTENCILVIEW_INVALIDFLAGS', + 'D3D11_MESSAGE_ID_CREATEVERTEXSHADER_INVALIDCLASSLINKAGE', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADER_INVALIDCLASSLINKAGE', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTREAMS', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAMTORASTERIZER', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTREAMS', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDCLASSLINKAGE', + 'D3D11_MESSAGE_ID_CREATEPIXELSHADER_INVALIDCLASSLINKAGE', + 'D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_COMMANDLISTFLAGS', + 'D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_SINGLETHREADED', + 'D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALIDARG_RETURN', + 'D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_INVALID_CALL_RETURN', + 'D3D11_MESSAGE_ID_CREATEDEFERREDCONTEXT_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_FINISHDISPLAYLIST_ONIMMEDIATECONTEXT', + 'D3D11_MESSAGE_ID_FINISHDISPLAYLIST_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_FINISHDISPLAYLIST_INVALID_CALL_RETURN', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDSTREAM', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDENTRIES', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_UNEXPECTEDSTRIDES', + 'D3D11_MESSAGE_ID_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_INVALIDNUMSTRIDES', + 'D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_HAZARD', + 'D3D11_MESSAGE_ID_HSSETSHADERRESOURCES_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCALL', + 'D3D11_MESSAGE_ID_CREATEHULLSHADER_OUTOFMEMORY', + 'D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERBYTECODE', + 'D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDSHADERTYPE', + 'D3D11_MESSAGE_ID_CREATEHULLSHADER_INVALIDCLASSLINKAGE', + 'D3D11_MESSAGE_ID_DEVICE_HSSETSHADERRESOURCES_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_HSSETCONSTANTBUFFERS_INVALIDBUFFER', + 'D3D11_MESSAGE_ID_DEVICE_HSSETCONSTANTBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_HSSETSAMPLERS_SAMPLERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_HSGETSHADERRESOURCES_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_HSGETCONSTANTBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_HSGETSAMPLERS_SAMPLERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_HAZARD', + 'D3D11_MESSAGE_ID_DSSETSHADERRESOURCES_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCALL', + 'D3D11_MESSAGE_ID_CREATEDOMAINSHADER_OUTOFMEMORY', + 'D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERBYTECODE', + 'D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDSHADERTYPE', + 'D3D11_MESSAGE_ID_CREATEDOMAINSHADER_INVALIDCLASSLINKAGE', + 'D3D11_MESSAGE_ID_DEVICE_DSSETSHADERRESOURCES_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_DSSETCONSTANTBUFFERS_INVALIDBUFFER', + 'D3D11_MESSAGE_ID_DEVICE_DSSETCONSTANTBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_DSSETSAMPLERS_SAMPLERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_DSGETSHADERRESOURCES_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_DSGETCONSTANTBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_DSGETSAMPLERS_SAMPLERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_HS_XOR_DS_MISMATCH', + 'D3D11_MESSAGE_ID_DEFERRED_CONTEXT_REMOVAL_PROCESS_AT_FAULT', + 'D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_INVALID_ARG_BUFFER', + 'D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_UNALIGNED', + 'D3D11_MESSAGE_ID_DEVICE_DRAWINDIRECT_OFFSET_OVERFLOW', + 'D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDMAPTYPE', + 'D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDSUBRESOURCE', + 'D3D11_MESSAGE_ID_RESOURCE_MAP_INVALIDFLAGS', + 'D3D11_MESSAGE_ID_RESOURCE_MAP_ALREADYMAPPED', + 'D3D11_MESSAGE_ID_RESOURCE_MAP_DEVICEREMOVED_RETURN', + 'D3D11_MESSAGE_ID_RESOURCE_MAP_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_RESOURCE_MAP_WITHOUT_INITIAL_DISCARD', + 'D3D11_MESSAGE_ID_RESOURCE_UNMAP_INVALIDSUBRESOURCE', + 'D3D11_MESSAGE_ID_RESOURCE_UNMAP_NOTMAPPED', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_RASTERIZING_CONTROL_POINTS', + 'D3D11_MESSAGE_ID_DEVICE_IASETPRIMITIVETOPOLOGY_TOPOLOGY_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_SIGNATURE_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_HULL_SHADER_INPUT_TOPOLOGY_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_CONTROL_POINT_COUNT_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_HS_DS_TESSELLATOR_DOMAIN_MISMATCH', + 'D3D11_MESSAGE_ID_CREATE_CONTEXT', + 'D3D11_MESSAGE_ID_LIVE_CONTEXT', + 'D3D11_MESSAGE_ID_DESTROY_CONTEXT', + 'D3D11_MESSAGE_ID_CREATE_BUFFER', + 'D3D11_MESSAGE_ID_LIVE_BUFFER', + 'D3D11_MESSAGE_ID_DESTROY_BUFFER', + 'D3D11_MESSAGE_ID_CREATE_TEXTURE1D', + 'D3D11_MESSAGE_ID_LIVE_TEXTURE1D', + 'D3D11_MESSAGE_ID_DESTROY_TEXTURE1D', + 'D3D11_MESSAGE_ID_CREATE_TEXTURE2D', + 'D3D11_MESSAGE_ID_LIVE_TEXTURE2D', + 'D3D11_MESSAGE_ID_DESTROY_TEXTURE2D', + 'D3D11_MESSAGE_ID_CREATE_TEXTURE3D', + 'D3D11_MESSAGE_ID_LIVE_TEXTURE3D', + 'D3D11_MESSAGE_ID_DESTROY_TEXTURE3D', + 'D3D11_MESSAGE_ID_CREATE_SHADERRESOURCEVIEW', + 'D3D11_MESSAGE_ID_LIVE_SHADERRESOURCEVIEW', + 'D3D11_MESSAGE_ID_DESTROY_SHADERRESOURCEVIEW', + 'D3D11_MESSAGE_ID_CREATE_RENDERTARGETVIEW', + 'D3D11_MESSAGE_ID_LIVE_RENDERTARGETVIEW', + 'D3D11_MESSAGE_ID_DESTROY_RENDERTARGETVIEW', + 'D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILVIEW', + 'D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILVIEW', + 'D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILVIEW', + 'D3D11_MESSAGE_ID_CREATE_VERTEXSHADER', + 'D3D11_MESSAGE_ID_LIVE_VERTEXSHADER', + 'D3D11_MESSAGE_ID_DESTROY_VERTEXSHADER', + 'D3D11_MESSAGE_ID_CREATE_HULLSHADER', + 'D3D11_MESSAGE_ID_LIVE_HULLSHADER', + 'D3D11_MESSAGE_ID_DESTROY_HULLSHADER', + 'D3D11_MESSAGE_ID_CREATE_DOMAINSHADER', + 'D3D11_MESSAGE_ID_LIVE_DOMAINSHADER', + 'D3D11_MESSAGE_ID_DESTROY_DOMAINSHADER', + 'D3D11_MESSAGE_ID_CREATE_GEOMETRYSHADER', + 'D3D11_MESSAGE_ID_LIVE_GEOMETRYSHADER', + 'D3D11_MESSAGE_ID_DESTROY_GEOMETRYSHADER', + 'D3D11_MESSAGE_ID_CREATE_PIXELSHADER', + 'D3D11_MESSAGE_ID_LIVE_PIXELSHADER', + 'D3D11_MESSAGE_ID_DESTROY_PIXELSHADER', + 'D3D11_MESSAGE_ID_CREATE_INPUTLAYOUT', + 'D3D11_MESSAGE_ID_LIVE_INPUTLAYOUT', + 'D3D11_MESSAGE_ID_DESTROY_INPUTLAYOUT', + 'D3D11_MESSAGE_ID_CREATE_SAMPLER', + 'D3D11_MESSAGE_ID_LIVE_SAMPLER', + 'D3D11_MESSAGE_ID_DESTROY_SAMPLER', + 'D3D11_MESSAGE_ID_CREATE_BLENDSTATE', + 'D3D11_MESSAGE_ID_LIVE_BLENDSTATE', + 'D3D11_MESSAGE_ID_DESTROY_BLENDSTATE', + 'D3D11_MESSAGE_ID_CREATE_DEPTHSTENCILSTATE', + 'D3D11_MESSAGE_ID_LIVE_DEPTHSTENCILSTATE', + 'D3D11_MESSAGE_ID_DESTROY_DEPTHSTENCILSTATE', + 'D3D11_MESSAGE_ID_CREATE_RASTERIZERSTATE', + 'D3D11_MESSAGE_ID_LIVE_RASTERIZERSTATE', + 'D3D11_MESSAGE_ID_DESTROY_RASTERIZERSTATE', + 'D3D11_MESSAGE_ID_CREATE_QUERY', + 'D3D11_MESSAGE_ID_LIVE_QUERY', + 'D3D11_MESSAGE_ID_DESTROY_QUERY', + 'D3D11_MESSAGE_ID_CREATE_PREDICATE', + 'D3D11_MESSAGE_ID_LIVE_PREDICATE', + 'D3D11_MESSAGE_ID_DESTROY_PREDICATE', + 'D3D11_MESSAGE_ID_CREATE_COUNTER', + 'D3D11_MESSAGE_ID_LIVE_COUNTER', + 'D3D11_MESSAGE_ID_DESTROY_COUNTER', + 'D3D11_MESSAGE_ID_CREATE_COMMANDLIST', + 'D3D11_MESSAGE_ID_LIVE_COMMANDLIST', + 'D3D11_MESSAGE_ID_DESTROY_COMMANDLIST', + 'D3D11_MESSAGE_ID_CREATE_CLASSINSTANCE', + 'D3D11_MESSAGE_ID_LIVE_CLASSINSTANCE', + 'D3D11_MESSAGE_ID_DESTROY_CLASSINSTANCE', + 'D3D11_MESSAGE_ID_CREATE_CLASSLINKAGE', + 'D3D11_MESSAGE_ID_LIVE_CLASSLINKAGE', + 'D3D11_MESSAGE_ID_DESTROY_CLASSLINKAGE', + 'D3D11_MESSAGE_ID_LIVE_DEVICE', + 'D3D11_MESSAGE_ID_LIVE_OBJECT_SUMMARY', + 'D3D11_MESSAGE_ID_CREATE_COMPUTESHADER', + 'D3D11_MESSAGE_ID_LIVE_COMPUTESHADER', + 'D3D11_MESSAGE_ID_DESTROY_COMPUTESHADER', + 'D3D11_MESSAGE_ID_CREATE_UNORDEREDACCESSVIEW', + 'D3D11_MESSAGE_ID_LIVE_UNORDEREDACCESSVIEW', + 'D3D11_MESSAGE_ID_DESTROY_UNORDEREDACCESSVIEW', + 'D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACES_FEATURELEVEL', + 'D3D11_MESSAGE_ID_DEVICE_SETSHADER_INTERFACE_COUNT_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE', + 'D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_INDEX', + 'D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_TYPE', + 'D3D11_MESSAGE_ID_DEVICE_SETSHADER_INVALID_INSTANCE_DATA', + 'D3D11_MESSAGE_ID_DEVICE_SETSHADER_UNBOUND_INSTANCE_DATA', + 'D3D11_MESSAGE_ID_DEVICE_SETSHADER_INSTANCE_DATA_BINDINGS', + 'D3D11_MESSAGE_ID_DEVICE_CREATESHADER_CLASSLINKAGE_FULL', + 'D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_UNRECOGNIZED_FEATURE', + 'D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_MISMATCHED_DATA_SIZE', + 'D3D11_MESSAGE_ID_DEVICE_CHECKFEATURESUPPORT_INVALIDARG_RETURN', + 'D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_HAZARD', + 'D3D11_MESSAGE_ID_CSSETSHADERRESOURCES_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCALL', + 'D3D11_MESSAGE_ID_CREATECOMPUTESHADER_OUTOFMEMORY', + 'D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERBYTECODE', + 'D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDSHADERTYPE', + 'D3D11_MESSAGE_ID_CREATECOMPUTESHADER_INVALIDCLASSLINKAGE', + 'D3D11_MESSAGE_ID_DEVICE_CSSETSHADERRESOURCES_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_CSSETCONSTANTBUFFERS_INVALIDBUFFER', + 'D3D11_MESSAGE_ID_DEVICE_CSSETCONSTANTBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_CSSETSAMPLERS_SAMPLERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_CSGETSHADERRESOURCES_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_CSGETCONSTANTBUFFERS_BUFFERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_CSGETSAMPLERS_SAMPLERS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_CREATEVERTEXSHADER_DOUBLEFLOATOPSNOTSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_CREATEHULLSHADER_DOUBLEFLOATOPSNOTSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_CREATEDOMAINSHADER_DOUBLEFLOATOPSNOTSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADER_DOUBLEFLOATOPSNOTSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_CREATEGEOMETRYSHADERWITHSTREAMOUTPUT_DOUBLEFLOATOPSNOTSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_CREATEPIXELSHADER_DOUBLEFLOATOPSNOTSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_CREATECOMPUTESHADER_DOUBLEFLOATOPSNOTSUPPORTED', + 'D3D11_MESSAGE_ID_CREATEBUFFER_INVALIDSTRUCTURESTRIDE', + 'D3D11_MESSAGE_ID_CREATESHADERRESOURCEVIEW_INVALIDFLAGS', + 'D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDRESOURCE', + 'D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDESC', + 'D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFORMAT', + 'D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDDIMENSIONS', + 'D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_UNRECOGNIZEDFORMAT', + 'D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_HAZARD', + 'D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_OVERLAPPING_OLD_SLOTS', + 'D3D11_MESSAGE_ID_DEVICE_OMSETRENDERTARGETSANDUNORDEREDACCESSVIEWS_NO_OP', + 'D3D11_MESSAGE_ID_CSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_PSSETUNORDEREDACCESSVIEWS_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDARG_RETURN', + 'D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_OUTOFMEMORY_RETURN', + 'D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_TOOMANYOBJECTS', + 'D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_HAZARD', + 'D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEW_DENORMFLUSH', + 'D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSS_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_DEVICE_CSGETUNORDEREDACCESSS_VIEWS_EMPTY', + 'D3D11_MESSAGE_ID_CREATEUNORDEREDACCESSVIEW_INVALIDFLAGS', + 'D3D11_MESSAGE_ID_CREATESHADERRESESOURCEVIEW_TOOMANYOBJECTS', + 'D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_INVALID_ARG_BUFFER', + 'D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_UNALIGNED', + 'D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_OFFSET_OVERFLOW', + 'D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDCONTEXT', + 'D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDRESOURCE', + 'D3D11_MESSAGE_ID_DEVICE_SETRESOURCEMINLOD_INVALIDMINLOD', + 'D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDCONTEXT', + 'D3D11_MESSAGE_ID_DEVICE_GETRESOURCEMINLOD_INVALIDRESOURCE', + 'D3D11_MESSAGE_ID_OMSETDEPTHSTENCIL_UNBINDDELETINGOBJECT', + 'D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_DEPTH_READONLY', + 'D3D11_MESSAGE_ID_CLEARDEPTHSTENCILVIEW_STENCIL_READONLY', + 'D3D11_MESSAGE_ID_CHECKFEATURESUPPORT_FORMAT_DEPRECATED', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RETURN_TYPE_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_NOT_SET', + 'D3D11_MESSAGE_ID_DEVICE_DRAW_UNORDEREDACCESSVIEW_RENDERTARGETVIEW_OVERLAP', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_DIMENSION_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_APPEND_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMICS_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_STRUCTURE_STRIDE_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_BUFFER_TYPE_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_RAW_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_LD_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_FORMAT_STORE_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_ADD_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_BITWISE_OPS_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_CMPSTORE_CMPEXCHANGE_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_EXCHANGE_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_SIGNED_MINMAX_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_ATOMIC_UNSIGNED_MINMAX_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_DISPATCH_BOUND_RESOURCE_MAPPED', + 'D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_OVERFLOW', + 'D3D11_MESSAGE_ID_DEVICE_DISPATCH_THREADGROUPCOUNT_ZERO', + 'D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_STRUCTURE_STRIDE_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_BUFFER_TYPE_MISMATCH', + 'D3D11_MESSAGE_ID_DEVICE_SHADERRESOURCEVIEW_RAW_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_DISPATCH_UNSUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_DISPATCHINDIRECT_UNSUPPORTED', + 'D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDOFFSET', + 'D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_LARGEOFFSET', + 'D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDDESTINATIONSTATE', + 'D3D11_MESSAGE_ID_COPYSTRUCTURECOUNT_INVALIDSOURCESTATE', + 'D3D11_MESSAGE_ID_CHECKFORMATSUPPORT_FORMAT_NOT_SUPPORTED', + 'D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDVIEW', + 'D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_INVALIDOFFSET', + 'D3D11_MESSAGE_ID_DEVICE_CSSETUNORDEREDACCESSVIEWS_TOOMANYVIEWS', + 'D3D11_MESSAGE_ID_CLEARUNORDEREDACCESSVIEWFLOAT_INVALIDFORMAT', + 'D3D11_MESSAGE_ID_DEVICE_UNORDEREDACCESSVIEW_COUNTER_UNSUPPORTED', + 'D3D11_MESSAGE_ID_REF_WARNING', + 'D3D11_MESSAGE_ID_D3D11_MESSAGES_END', +]) + +D3D11_MESSAGE = Struct('D3D11_MESSAGE', [ + (D3D11_MESSAGE_CATEGORY, 'Category'), + (D3D11_MESSAGE_SEVERITY, 'Severity'), + (D3D11_MESSAGE_ID, 'ID'), + (Pointer(Const(Int)), 'pDescription'), + (SIZE_T, 'DescriptionByteLength'), +]) + +D3D11_INFO_QUEUE_FILTER_DESC = Struct('D3D11_INFO_QUEUE_FILTER_DESC', [ + (UINT, 'NumCategories'), + (Pointer(D3D11_MESSAGE_CATEGORY), 'pCategoryList'), + (UINT, 'NumSeverities'), + (Pointer(D3D11_MESSAGE_SEVERITY), 'pSeverityList'), + (UINT, 'NumIDs'), + (Pointer(D3D11_MESSAGE_ID), 'pIDList'), +]) + +D3D11_INFO_QUEUE_FILTER = Struct('D3D11_INFO_QUEUE_FILTER', [ + (D3D11_INFO_QUEUE_FILTER_DESC, 'AllowList'), + (D3D11_INFO_QUEUE_FILTER_DESC, 'DenyList'), +]) + +ID3D11InfoQueue = Interface('ID3D11InfoQueue', IUnknown) +ID3D11InfoQueue.methods += [ + StdMethod(HRESULT, 'SetMessageCountLimit', [(UINT64, 'MessageCountLimit')]), + StdMethod(Void, 'ClearStoredMessages', []), + StdMethod(HRESULT, 'GetMessage', [(UINT64, 'MessageIndex'), Out(Pointer(D3D11_MESSAGE), 'pMessage'), Out(Pointer(SIZE_T), 'pMessageByteLength')]), + StdMethod(UINT64, 'GetNumMessagesAllowedByStorageFilter', []), + StdMethod(UINT64, 'GetNumMessagesDeniedByStorageFilter', []), + StdMethod(UINT64, 'GetNumStoredMessages', []), + StdMethod(UINT64, 'GetNumStoredMessagesAllowedByRetrievalFilter', []), + StdMethod(UINT64, 'GetNumMessagesDiscardedByMessageCountLimit', []), + StdMethod(UINT64, 'GetMessageCountLimit', []), + StdMethod(HRESULT, 'AddStorageFilterEntries', [(Pointer(D3D11_INFO_QUEUE_FILTER), 'pFilter')]), + StdMethod(HRESULT, 'GetStorageFilter', [Out(Pointer(D3D11_INFO_QUEUE_FILTER), 'pFilter'), Out(Pointer(SIZE_T), 'pFilterByteLength')]), + StdMethod(Void, 'ClearStorageFilter', []), + StdMethod(HRESULT, 'PushEmptyStorageFilter', []), + StdMethod(HRESULT, 'PushCopyOfStorageFilter', []), + StdMethod(HRESULT, 'PushStorageFilter', [(Pointer(D3D11_INFO_QUEUE_FILTER), 'pFilter')]), + StdMethod(Void, 'PopStorageFilter', []), + StdMethod(UINT, 'GetStorageFilterStackSize', []), + StdMethod(HRESULT, 'AddRetrievalFilterEntries', [(Pointer(D3D11_INFO_QUEUE_FILTER), 'pFilter')]), + StdMethod(HRESULT, 'GetRetrievalFilter', [Out(Pointer(D3D11_INFO_QUEUE_FILTER), 'pFilter'), Out(Pointer(SIZE_T), 'pFilterByteLength')]), + StdMethod(Void, 'ClearRetrievalFilter', []), + StdMethod(HRESULT, 'PushEmptyRetrievalFilter', []), + StdMethod(HRESULT, 'PushCopyOfRetrievalFilter', []), + StdMethod(HRESULT, 'PushRetrievalFilter', [(Pointer(D3D11_INFO_QUEUE_FILTER), 'pFilter')]), + StdMethod(Void, 'PopRetrievalFilter', []), + StdMethod(UINT, 'GetRetrievalFilterStackSize', []), + StdMethod(HRESULT, 'AddMessage', [(D3D11_MESSAGE_CATEGORY, 'Category'), (D3D11_MESSAGE_SEVERITY, 'Severity'), (D3D11_MESSAGE_ID, 'ID'), (LPCSTR, 'pDescription')]), + StdMethod(HRESULT, 'AddApplicationMessage', [(D3D11_MESSAGE_SEVERITY, 'Severity'), (LPCSTR, 'pDescription')]), + StdMethod(HRESULT, 'SetBreakOnCategory', [(D3D11_MESSAGE_CATEGORY, 'Category'), (BOOL, 'bEnable')]), + StdMethod(HRESULT, 'SetBreakOnSeverity', [(D3D11_MESSAGE_SEVERITY, 'Severity'), (BOOL, 'bEnable')]), + StdMethod(HRESULT, 'SetBreakOnID', [(D3D11_MESSAGE_ID, 'ID'), (BOOL, 'bEnable')]), + StdMethod(BOOL, 'GetBreakOnCategory', [(D3D11_MESSAGE_CATEGORY, 'Category')]), + StdMethod(BOOL, 'GetBreakOnSeverity', [(D3D11_MESSAGE_SEVERITY, 'Severity')]), + StdMethod(BOOL, 'GetBreakOnID', [(D3D11_MESSAGE_ID, 'ID')]), + StdMethod(Void, 'SetMuteDebugOutput', [(BOOL, 'bMute')]), + StdMethod(BOOL, 'GetMuteDebugOutput', []), +] + diff --git a/specs/d3d11shader.py b/specs/d3d11shader.py new file mode 100644 index 0000000..a1c0247 --- /dev/null +++ b/specs/d3d11shader.py @@ -0,0 +1,186 @@ +########################################################################## +# +# Copyright 2012 Jose Fonseca +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +##########################################################################/ + + +from d3dcommon import * + + +ID3D11ShaderReflectionType = Interface('ID3D11ShaderReflectionType', IUnknown) +ID3D11ShaderReflectionVariable = Interface('ID3D11ShaderReflectionVariable', IUnknown) +ID3D11ShaderReflectionConstantBuffer = Interface('ID3D11ShaderReflectionConstantBuffer', IUnknown) +ID3D11ShaderReflection = Interface('ID3D11ShaderReflection', IUnknown) + + +D3D11_SHADER_VERSION_TYPE = Enum('D3D11_SHADER_VERSION_TYPE', [ + 'D3D11_SHVER_PIXEL_SHADER', + 'D3D11_SHVER_VERTEX_SHADER', + 'D3D11_SHVER_GEOMETRY_SHADER', + 'D3D11_SHVER_HULL_SHADER', + 'D3D11_SHVER_DOMAIN_SHADER', + 'D3D11_SHVER_COMPUTE_SHADER', +]) + +D3D11_SIGNATURE_PARAMETER_DESC = Struct('D3D11_SIGNATURE_PARAMETER_DESC', [ + (LPCSTR, 'SemanticName'), + (UINT, 'SemanticIndex'), + (UINT, 'Register'), + (D3D_NAME, 'SystemValueType'), + (D3D_REGISTER_COMPONENT_TYPE, 'ComponentType'), + (BYTE, 'Mask'), + (BYTE, 'ReadWriteMask'), + (UINT, 'Stream'), +]) + +D3D11_SHADER_BUFFER_DESC = Struct('D3D11_SHADER_BUFFER_DESC', [ + (LPCSTR, 'Name'), + (D3D_CBUFFER_TYPE, 'Type'), + (UINT, 'Variables'), + (UINT, 'Size'), + (UINT, 'uFlags'), +]) + +D3D11_SHADER_VARIABLE_DESC = Struct('D3D11_SHADER_VARIABLE_DESC', [ + (LPCSTR, 'Name'), + (UINT, 'StartOffset'), + (UINT, 'Size'), + (UINT, 'uFlags'), + (LPVOID, 'DefaultValue'), + (UINT, 'StartTexture'), + (UINT, 'TextureSize'), + (UINT, 'StartSampler'), + (UINT, 'SamplerSize'), +]) + +D3D11_SHADER_TYPE_DESC = Struct('D3D11_SHADER_TYPE_DESC', [ + (D3D_SHADER_VARIABLE_CLASS, 'Class'), + (D3D_SHADER_VARIABLE_TYPE, 'Type'), + (UINT, 'Rows'), + (UINT, 'Columns'), + (UINT, 'Elements'), + (UINT, 'Members'), + (UINT, 'Offset'), + (LPCSTR, 'Name'), +]) + +D3D11_SHADER_DESC = Struct('D3D11_SHADER_DESC', [ + (UINT, 'Version'), + (LPCSTR, 'Creator'), + (UINT, 'Flags'), + (UINT, 'ConstantBuffers'), + (UINT, 'BoundResources'), + (UINT, 'InputParameters'), + (UINT, 'OutputParameters'), + (UINT, 'InstructionCount'), + (UINT, 'TempRegisterCount'), + (UINT, 'TempArrayCount'), + (UINT, 'DefCount'), + (UINT, 'DclCount'), + (UINT, 'TextureNormalInstructions'), + (UINT, 'TextureLoadInstructions'), + (UINT, 'TextureCompInstructions'), + (UINT, 'TextureBiasInstructions'), + (UINT, 'TextureGradientInstructions'), + (UINT, 'FloatInstructionCount'), + (UINT, 'IntInstructionCount'), + (UINT, 'UintInstructionCount'), + (UINT, 'StaticFlowControlCount'), + (UINT, 'DynamicFlowControlCount'), + (UINT, 'MacroInstructionCount'), + (UINT, 'ArrayInstructionCount'), + (UINT, 'CutInstructionCount'), + (UINT, 'EmitInstructionCount'), + (D3D_PRIMITIVE_TOPOLOGY, 'GSOutputTopology'), + (UINT, 'GSMaxOutputVertexCount'), + (D3D_PRIMITIVE, 'InputPrimitive'), + (UINT, 'PatchConstantParameters'), + (UINT, 'cGSInstanceCount'), + (UINT, 'cControlPoints'), + (D3D_TESSELLATOR_OUTPUT_PRIMITIVE, 'HSOutputPrimitive'), + (D3D_TESSELLATOR_PARTITIONING, 'HSPartitioning'), + (D3D_TESSELLATOR_DOMAIN, 'TessellatorDomain'), + (UINT, 'cBarrierInstructions'), + (UINT, 'cInterlockedInstructions'), + (UINT, 'cTextureStoreInstructions'), +]) + +D3D11_SHADER_INPUT_BIND_DESC = Struct('D3D11_SHADER_INPUT_BIND_DESC', [ + (LPCSTR, 'Name'), + (D3D_SHADER_INPUT_TYPE, 'Type'), + (UINT, 'BindPoint'), + (UINT, 'BindCount'), + (UINT, 'uFlags'), + (D3D_RESOURCE_RETURN_TYPE, 'ReturnType'), + (D3D_SRV_DIMENSION, 'Dimension'), + (UINT, 'NumSamples'), +]) + +ID3D11ShaderReflectionType.methods += [ + StdMethod(HRESULT, 'GetDesc', [Out(Pointer(D3D11_SHADER_TYPE_DESC), 'pDesc')]), + StdMethod(Pointer(ID3D11ShaderReflectionType), 'GetMemberTypeByIndex', [(UINT, 'Index')]), + StdMethod(Pointer(ID3D11ShaderReflectionType), 'GetMemberTypeByName', [(LPCSTR, 'Name')]), + StdMethod(LPCSTR, 'GetMemberTypeName', [(UINT, 'Index')]), + StdMethod(HRESULT, 'IsEqual', [(Pointer(ID3D11ShaderReflectionType), 'pType')]), + StdMethod(Pointer(ID3D11ShaderReflectionType), 'GetSubType', []), + StdMethod(Pointer(ID3D11ShaderReflectionType), 'GetBaseClass', []), + StdMethod(UINT, 'GetNumInterfaces', []), + StdMethod(Pointer(ID3D11ShaderReflectionType), 'GetInterfaceByIndex', [(UINT, 'uIndex')]), + StdMethod(HRESULT, 'IsOfType', [(Pointer(ID3D11ShaderReflectionType), 'pType')]), + StdMethod(HRESULT, 'ImplementsInterface', [(Pointer(ID3D11ShaderReflectionType), 'pBase')]), +] + +ID3D11ShaderReflectionVariable.methods += [ + StdMethod(HRESULT, 'GetDesc', [Out(Pointer(D3D11_SHADER_VARIABLE_DESC), 'pDesc')]), + StdMethod(Pointer(ID3D11ShaderReflectionType), 'GetType', []), + StdMethod(Pointer(ID3D11ShaderReflectionConstantBuffer), 'GetBuffer', []), + StdMethod(UINT, 'GetInterfaceSlot', [(UINT, 'uArrayIndex')]), +] + +ID3D11ShaderReflectionConstantBuffer.methods += [ + StdMethod(HRESULT, 'GetDesc', [(Pointer(D3D11_SHADER_BUFFER_DESC), 'pDesc')]), + StdMethod(Pointer(ID3D11ShaderReflectionVariable), 'GetVariableByIndex', [(UINT, 'Index')]), + StdMethod(Pointer(ID3D11ShaderReflectionVariable), 'GetVariableByName', [(LPCSTR, 'Name')]), +] + +ID3D11ShaderReflection.methods += [ + StdMethod(HRESULT, 'GetDesc', [Out(Pointer(D3D11_SHADER_DESC), 'pDesc')]), + StdMethod(Pointer(ID3D11ShaderReflectionConstantBuffer), 'GetConstantBufferByIndex', [(UINT, 'Index')]), + StdMethod(Pointer(ID3D11ShaderReflectionConstantBuffer), 'GetConstantBufferByName', [(LPCSTR, 'Name')]), + StdMethod(HRESULT, 'GetResourceBindingDesc', [(UINT, 'ResourceIndex'), Out(Pointer(D3D11_SHADER_INPUT_BIND_DESC), 'pDesc')]), + StdMethod(HRESULT, 'GetInputParameterDesc', [(UINT, 'ParameterIndex'), Out(Pointer(D3D11_SIGNATURE_PARAMETER_DESC), 'pDesc')]), + StdMethod(HRESULT, 'GetOutputParameterDesc', [(UINT, 'ParameterIndex'), Out(Pointer(D3D11_SIGNATURE_PARAMETER_DESC), 'pDesc')]), + StdMethod(HRESULT, 'GetPatchConstantParameterDesc', [(UINT, 'ParameterIndex'), Out(Pointer(D3D11_SIGNATURE_PARAMETER_DESC), 'pDesc')]), + StdMethod(Pointer(ID3D11ShaderReflectionVariable), 'GetVariableByName', [(LPCSTR, 'Name')]), + StdMethod(HRESULT, 'GetResourceBindingDescByName', [(LPCSTR, 'Name'), Out(Pointer(D3D11_SHADER_INPUT_BIND_DESC), 'pDesc')]), + StdMethod(UINT, 'GetMovInstructionCount', []), + StdMethod(UINT, 'GetMovcInstructionCount', []), + StdMethod(UINT, 'GetConversionInstructionCount', []), + StdMethod(UINT, 'GetBitwiseInstructionCount', []), + StdMethod(D3D_PRIMITIVE, 'GetGSInputPrimitive', []), + StdMethod(BOOL, 'IsSampleFrequencyShader', []), + StdMethod(UINT, 'GetNumInterfaceSlots', []), + StdMethod(HRESULT, 'GetMinFeatureLevel', [Out(Pointer(D3D_FEATURE_LEVEL), 'pLevel')]), + StdMethod(UINT, 'GetThreadGroupSize', [Out(Pointer(UINT), 'pSizeX'), Out(Pointer(UINT), 'pSizeY'), Out(Pointer(UINT), 'pSizeZ')]), +] + diff --git a/specs/d3dcommon.py b/specs/d3dcommon.py new file mode 100644 index 0000000..af6c5c9 --- /dev/null +++ b/specs/d3dcommon.py @@ -0,0 +1,691 @@ +########################################################################## +# +# Copyright 2012 Jose Fonseca +# All Rights Reserved. +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +# +##########################################################################/ + + +from winapi import * + + +D3D_DRIVER_TYPE = Enum('D3D_DRIVER_TYPE', [ + 'D3D_DRIVER_TYPE_UNKNOWN', + 'D3D_DRIVER_TYPE_HARDWARE', + 'D3D_DRIVER_TYPE_REFERENCE', + 'D3D_DRIVER_TYPE_NULL', + 'D3D_DRIVER_TYPE_SOFTWARE', + 'D3D_DRIVER_TYPE_WARP', +]) + +D3D_FEATURE_LEVEL = Enum('D3D_FEATURE_LEVEL', [ + 'D3D_FEATURE_LEVEL_9_1', + 'D3D_FEATURE_LEVEL_9_2', + 'D3D_FEATURE_LEVEL_9_3', + 'D3D_FEATURE_LEVEL_10_0', + 'D3D_FEATURE_LEVEL_10_1', + 'D3D_FEATURE_LEVEL_11_0', +]) + +D3D_PRIMITIVE_TOPOLOGY = Enum('D3D_PRIMITIVE_TOPOLOGY', [ + 'D3D_PRIMITIVE_TOPOLOGY_UNDEFINED', + 'D3D_PRIMITIVE_TOPOLOGY_POINTLIST', + 'D3D_PRIMITIVE_TOPOLOGY_LINELIST', + 'D3D_PRIMITIVE_TOPOLOGY_LINESTRIP', + 'D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST', + 'D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP', + 'D3D_PRIMITIVE_TOPOLOGY_LINELIST_ADJ', + 'D3D_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ', + 'D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ', + 'D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ', + 'D3D_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST', + 'D3D_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST', +]) + +D3D10_PRIMITIVE_TOPOLOGY = Enum('D3D10_PRIMITIVE_TOPOLOGY', [ + 'D3D10_PRIMITIVE_TOPOLOGY_UNDEFINED', + 'D3D10_PRIMITIVE_TOPOLOGY_POINTLIST', + 'D3D10_PRIMITIVE_TOPOLOGY_LINELIST', + 'D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP', + 'D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST', + 'D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP', + 'D3D10_PRIMITIVE_TOPOLOGY_LINELIST_ADJ', + 'D3D10_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ', + 'D3D10_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ', + 'D3D10_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ', +]) + +D3D11_PRIMITIVE_TOPOLOGY = Enum('D3D11_PRIMITIVE_TOPOLOGY', [ + 'D3D11_PRIMITIVE_TOPOLOGY_UNDEFINED', + 'D3D11_PRIMITIVE_TOPOLOGY_POINTLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_LINELIST', + 'D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP', + 'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST', + 'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP', + 'D3D11_PRIMITIVE_TOPOLOGY_LINELIST_ADJ', + 'D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP_ADJ', + 'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST_ADJ', + 'D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP_ADJ', + 'D3D11_PRIMITIVE_TOPOLOGY_1_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_2_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_3_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_4_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_5_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_6_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_7_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_8_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_9_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_10_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_11_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_12_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_13_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_14_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_15_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_16_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_17_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_18_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_19_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_20_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_21_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_22_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_23_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_24_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_25_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_26_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_27_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_28_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_29_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_30_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_31_CONTROL_POINT_PATCHLIST', + 'D3D11_PRIMITIVE_TOPOLOGY_32_CONTROL_POINT_PATCHLIST', +]) + +D3D_PRIMITIVE = Enum('D3D_PRIMITIVE', [ + 'D3D_PRIMITIVE_UNDEFINED', + 'D3D_PRIMITIVE_POINT', + 'D3D_PRIMITIVE_LINE', + 'D3D_PRIMITIVE_TRIANGLE', + 'D3D_PRIMITIVE_LINE_ADJ', + 'D3D_PRIMITIVE_TRIANGLE_ADJ', + 'D3D_PRIMITIVE_1_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_2_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_3_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_4_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_5_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_6_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_7_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_8_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_9_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_10_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_11_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_12_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_13_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_14_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_15_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_16_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_17_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_18_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_19_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_20_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_21_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_22_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_23_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_24_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_25_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_26_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_27_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_28_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_29_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_30_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_31_CONTROL_POINT_PATCH', + 'D3D_PRIMITIVE_32_CONTROL_POINT_PATCH', +]) + +D3D10_PRIMITIVE = Enum('D3D10_PRIMITIVE', [ + 'D3D10_PRIMITIVE_UNDEFINED', + 'D3D10_PRIMITIVE_POINT', + 'D3D10_PRIMITIVE_LINE', + 'D3D10_PRIMITIVE_TRIANGLE', + 'D3D10_PRIMITIVE_LINE_ADJ', + 'D3D10_PRIMITIVE_TRIANGLE_ADJ', +]) + +D3D11_PRIMITIVE = Enum('D3D11_PRIMITIVE', [ + 'D3D11_PRIMITIVE_UNDEFINED', + 'D3D11_PRIMITIVE_POINT', + 'D3D11_PRIMITIVE_LINE', + 'D3D11_PRIMITIVE_TRIANGLE', + 'D3D11_PRIMITIVE_LINE_ADJ', + 'D3D11_PRIMITIVE_TRIANGLE_ADJ', + 'D3D11_PRIMITIVE_1_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_2_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_3_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_4_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_5_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_6_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_7_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_8_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_9_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_10_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_11_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_12_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_13_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_14_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_15_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_16_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_17_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_18_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_19_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_20_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_21_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_22_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_23_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_24_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_25_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_26_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_27_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_28_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_29_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_30_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_31_CONTROL_POINT_PATCH', + 'D3D11_PRIMITIVE_32_CONTROL_POINT_PATCH', +]) + +D3D_SRV_DIMENSION = Enum('D3D_SRV_DIMENSION', [ + 'D3D_SRV_DIMENSION_UNKNOWN', + 'D3D_SRV_DIMENSION_BUFFER', + 'D3D_SRV_DIMENSION_TEXTURE1D', + 'D3D_SRV_DIMENSION_TEXTURE1DARRAY', + 'D3D_SRV_DIMENSION_TEXTURE2D', + 'D3D_SRV_DIMENSION_TEXTURE2DARRAY', + 'D3D_SRV_DIMENSION_TEXTURE2DMS', + 'D3D_SRV_DIMENSION_TEXTURE2DMSARRAY', + 'D3D_SRV_DIMENSION_TEXTURE3D', + 'D3D_SRV_DIMENSION_TEXTURECUBE', + 'D3D_SRV_DIMENSION_TEXTURECUBEARRAY', + 'D3D_SRV_DIMENSION_BUFFEREX', +]) + +D3D10_SRV_DIMENSION = Enum('D3D10_SRV_DIMENSION', [ + 'D3D10_SRV_DIMENSION_UNKNOWN', + 'D3D10_SRV_DIMENSION_BUFFER', + 'D3D10_SRV_DIMENSION_TEXTURE1D', + 'D3D10_SRV_DIMENSION_TEXTURE1DARRAY', + 'D3D10_SRV_DIMENSION_TEXTURE2D', + 'D3D10_SRV_DIMENSION_TEXTURE2DARRAY', + 'D3D10_SRV_DIMENSION_TEXTURE2DMS', + 'D3D10_SRV_DIMENSION_TEXTURE2DMSARRAY', + 'D3D10_SRV_DIMENSION_TEXTURE3D', + 'D3D10_SRV_DIMENSION_TEXTURECUBE', +]) + +D3D10_SRV_DIMENSION1 = Enum('D3D10_SRV_DIMENSION1', [ + 'D3D10_1_SRV_DIMENSION_UNKNOWN', + 'D3D10_1_SRV_DIMENSION_BUFFER', + 'D3D10_1_SRV_DIMENSION_TEXTURE1D', + 'D3D10_1_SRV_DIMENSION_TEXTURE1DARRAY', + 'D3D10_1_SRV_DIMENSION_TEXTURE2D', + 'D3D10_1_SRV_DIMENSION_TEXTURE2DARRAY', + 'D3D10_1_SRV_DIMENSION_TEXTURE2DMS', + 'D3D10_1_SRV_DIMENSION_TEXTURE2DMSARRAY', + 'D3D10_1_SRV_DIMENSION_TEXTURE3D', + 'D3D10_1_SRV_DIMENSION_TEXTURECUBE', + 'D3D10_1_SRV_DIMENSION_TEXTURECUBEARRAY', +]) + +D3D11_SRV_DIMENSION = Enum('D3D11_SRV_DIMENSION', [ + 'D3D11_SRV_DIMENSION_UNKNOWN', + 'D3D11_SRV_DIMENSION_BUFFER', + 'D3D11_SRV_DIMENSION_TEXTURE1D', + 'D3D11_SRV_DIMENSION_TEXTURE1DARRAY', + 'D3D11_SRV_DIMENSION_TEXTURE2D', + 'D3D11_SRV_DIMENSION_TEXTURE2DARRAY', + 'D3D11_SRV_DIMENSION_TEXTURE2DMS', + 'D3D11_SRV_DIMENSION_TEXTURE2DMSARRAY', + 'D3D11_SRV_DIMENSION_TEXTURE3D', + 'D3D11_SRV_DIMENSION_TEXTURECUBE', + 'D3D11_SRV_DIMENSION_TEXTURECUBEARRAY', + 'D3D11_SRV_DIMENSION_BUFFEREX', +]) + +D3D_SHADER_MACRO = Struct('D3D_SHADER_MACRO', [ + (LPCSTR, 'Name'), + (LPCSTR, 'Definition'), +]) + +ID3D10Blob = Interface('ID3D10Blob', IUnknown) +ID3D10Blob.methods += [ + StdMethod(LPVOID, 'GetBufferPointer', []), + StdMethod(SIZE_T, 'GetBufferSize', []), +] + +D3D_INCLUDE_TYPE = Enum('D3D_INCLUDE_TYPE', [ + 'D3D_INCLUDE_LOCAL', + 'D3D_INCLUDE_SYSTEM', +]) + +D3D10_INCLUDE_TYPE = Enum('D3D10_INCLUDE_TYPE', [ + 'D3D10_INCLUDE_LOCAL', + 'D3D10_INCLUDE_SYSTEM', +]) + +D3D_SHADER_VARIABLE_CLASS = Enum('D3D_SHADER_VARIABLE_CLASS', [ + 'D3D_SVC_SCALAR', + 'D3D_SVC_VECTOR', + 'D3D_SVC_MATRIX_ROWS', + 'D3D_SVC_MATRIX_COLUMNS', + 'D3D_SVC_OBJECT', + 'D3D_SVC_STRUCT', + 'D3D_SVC_INTERFACE_CLASS', + 'D3D_SVC_INTERFACE_POINTER', +]) + +D3D10_SHADER_VARIABLE_CLASS = Enum('D3D_SHADER_VARIABLE_CLASS', [ + 'D3D10_SVC_SCALAR', + 'D3D10_SVC_VECTOR', + 'D3D10_SVC_MATRIX_ROWS', + 'D3D10_SVC_MATRIX_COLUMNS', + 'D3D10_SVC_OBJECT', + 'D3D10_SVC_STRUCT', +]) + +D3D11_SHADER_VARIABLE_CLASS = Enum('D3D_SHADER_VARIABLE_CLASS', [ + 'D3D11_SVC_INTERFACE_CLASS', + 'D3D11_SVC_INTERFACE_POINTER', +]) + +D3D10_SHADER_VARIABLE_FLAGS = Enum('D3D10_SHADER_VARIABLE_FLAGS', [ + 'D3D_SVF_USERPACKED', + 'D3D_SVF_USED', + 'D3D_SVF_INTERFACE_POINTER', + 'D3D_SVF_INTERFACE_PARAMETER', +]) + +D3D11_SHADER_VARIABLE_FLAGS = Enum('D3D11_SHADER_VARIABLE_FLAGS', [ + 'D3D10_SVF_USERPACKED', + 'D3D10_SVF_USED', + 'D3D11_SVF_INTERFACE_POINTER', + 'D3D11_SVF_INTERFACE_PARAMETER', +]) + +D3D_SHADER_VARIABLE_TYPE = Enum('D3D_SHADER_VARIABLE_TYPE', [ + 'D3D_SVT_VOID', + 'D3D_SVT_BOOL', + 'D3D_SVT_INT', + 'D3D_SVT_FLOAT', + 'D3D_SVT_STRING', + 'D3D_SVT_TEXTURE', + 'D3D_SVT_TEXTURE1D', + 'D3D_SVT_TEXTURE2D', + 'D3D_SVT_TEXTURE3D', + 'D3D_SVT_TEXTURECUBE', + 'D3D_SVT_SAMPLER', + 'D3D_SVT_SAMPLER1D', + 'D3D_SVT_SAMPLER2D', + 'D3D_SVT_SAMPLER3D', + 'D3D_SVT_SAMPLERCUBE', + 'D3D_SVT_PIXELSHADER', + 'D3D_SVT_VERTEXSHADER', + 'D3D_SVT_PIXELFRAGMENT', + 'D3D_SVT_VERTEXFRAGMENT', + 'D3D_SVT_UINT', + 'D3D_SVT_UINT8', + 'D3D_SVT_GEOMETRYSHADER', + 'D3D_SVT_RASTERIZER', + 'D3D_SVT_DEPTHSTENCIL', + 'D3D_SVT_BLEND', + 'D3D_SVT_BUFFER', + 'D3D_SVT_CBUFFER', + 'D3D_SVT_TBUFFER', + 'D3D_SVT_TEXTURE1DARRAY', + 'D3D_SVT_TEXTURE2DARRAY', + 'D3D_SVT_RENDERTARGETVIEW', + 'D3D_SVT_DEPTHSTENCILVIEW', + 'D3D_SVT_TEXTURE2DMS', + 'D3D_SVT_TEXTURE2DMSARRAY', + 'D3D_SVT_TEXTURECUBEARRAY', + 'D3D_SVT_HULLSHADER', + 'D3D_SVT_DOMAINSHADER', + 'D3D_SVT_INTERFACE_POINTER', + 'D3D_SVT_COMPUTESHADER', + 'D3D_SVT_DOUBLE', + 'D3D_SVT_RWTEXTURE1D', + 'D3D_SVT_RWTEXTURE1DARRAY', + 'D3D_SVT_RWTEXTURE2D', + 'D3D_SVT_RWTEXTURE2DARRAY', + 'D3D_SVT_RWTEXTURE3D', + 'D3D_SVT_RWBUFFER', + 'D3D_SVT_BYTEADDRESS_BUFFER', + 'D3D_SVT_RWBYTEADDRESS_BUFFER', + 'D3D_SVT_STRUCTURED_BUFFER', + 'D3D_SVT_RWSTRUCTURED_BUFFER', + 'D3D_SVT_APPEND_STRUCTURED_BUFFER', + 'D3D_SVT_CONSUME_STRUCTURED_BUFFER', +]) + +D3D10_SHADER_VARIABLE_TYPE = Enum('D3D10_SHADER_VARIABLE_TYPE', [ + 'D3D10_SVT_VOID', + 'D3D10_SVT_BOOL', + 'D3D10_SVT_INT', + 'D3D10_SVT_FLOAT', + 'D3D10_SVT_STRING', + 'D3D10_SVT_TEXTURE', + 'D3D10_SVT_TEXTURE1D', + 'D3D10_SVT_TEXTURE2D', + 'D3D10_SVT_TEXTURE3D', + 'D3D10_SVT_TEXTURECUBE', + 'D3D10_SVT_SAMPLER', + 'D3D10_SVT_SAMPLER1D', + 'D3D10_SVT_SAMPLER2D', + 'D3D10_SVT_SAMPLER3D', + 'D3D10_SVT_SAMPLERCUBE', + 'D3D10_SVT_PIXELSHADER', + 'D3D10_SVT_VERTEXSHADER', + 'D3D10_SVT_PIXELFRAGMENT', + 'D3D10_SVT_VERTEXFRAGMENT', + 'D3D10_SVT_UINT', + 'D3D10_SVT_UINT8', + 'D3D10_SVT_GEOMETRYSHADER', + 'D3D10_SVT_RASTERIZER', + 'D3D10_SVT_DEPTHSTENCIL', + 'D3D10_SVT_BLEND', + 'D3D10_SVT_BUFFER', + 'D3D10_SVT_CBUFFER', + 'D3D10_SVT_TBUFFER', + 'D3D10_SVT_TEXTURE1DARRAY', + 'D3D10_SVT_TEXTURE2DARRAY', + 'D3D10_SVT_RENDERTARGETVIEW', + 'D3D10_SVT_DEPTHSTENCILVIEW', + 'D3D10_SVT_TEXTURE2DMS', + 'D3D10_SVT_TEXTURE2DMSARRAY', + 'D3D10_SVT_TEXTURECUBEARRAY', +]) + +D3D11_SHADER_VARIABLE_TYPE = Enum('D3D11_SHADER_VARIABLE_TYPE', [ + 'D3D11_SVT_HULLSHADER', + 'D3D11_SVT_DOMAINSHADER', + 'D3D11_SVT_INTERFACE_POINTER', + 'D3D11_SVT_COMPUTESHADER', + 'D3D11_SVT_DOUBLE', + 'D3D11_SVT_RWTEXTURE1D', + 'D3D11_SVT_RWTEXTURE1DARRAY', + 'D3D11_SVT_RWTEXTURE2D', + 'D3D11_SVT_RWTEXTURE2DARRAY', + 'D3D11_SVT_RWTEXTURE3D', + 'D3D11_SVT_RWBUFFER', + 'D3D11_SVT_BYTEADDRESS_BUFFER', + 'D3D11_SVT_RWBYTEADDRESS_BUFFER', + 'D3D11_SVT_STRUCTURED_BUFFER', + 'D3D11_SVT_RWSTRUCTURED_BUFFER', + 'D3D11_SVT_APPEND_STRUCTURED_BUFFER', + 'D3D11_SVT_CONSUME_STRUCTURED_BUFFER', +]) + +D3D_SHADER_INPUT_FLAGS = Enum('D3D_SHADER_INPUT_FLAGS', [ + 'D3D_SIF_USERPACKED', + 'D3D_SIF_COMPARISON_SAMPLER', + 'D3D_SIF_TEXTURE_COMPONENT_0', + 'D3D_SIF_TEXTURE_COMPONENT_1', + 'D3D_SIF_TEXTURE_COMPONENTS', +]) + +D3D10_SHADER_INPUT_FLAGS = Enum('D3D10_SHADER_INPUT_FLAGS', [ + 'D3D10_SIF_USERPACKED', + 'D3D10_SIF_COMPARISON_SAMPLER', + 'D3D10_SIF_TEXTURE_COMPONENT_0', + 'D3D10_SIF_TEXTURE_COMPONENT_1', + 'D3D10_SIF_TEXTURE_COMPONENTS', +]) + +D3D_SHADER_INPUT_TYPE = Enum('D3D_SHADER_INPUT_TYPE', [ + 'D3D_SIT_CBUFFER', + 'D3D_SIT_TBUFFER', + 'D3D_SIT_TEXTURE', + 'D3D_SIT_SAMPLER', + 'D3D_SIT_UAV_RWTYPED', + 'D3D_SIT_STRUCTURED', + 'D3D_SIT_UAV_RWSTRUCTURED', + 'D3D_SIT_BYTEADDRESS', + 'D3D_SIT_UAV_RWBYTEADDRESS', + 'D3D_SIT_UAV_APPEND_STRUCTURED', + 'D3D_SIT_UAV_CONSUME_STRUCTURED', + 'D3D_SIT_UAV_RWSTRUCTURED_WITH_COUNTER', +]) + +D3D10_SHADER_INPUT_TYPE = Enum('D3D10_SHADER_INPUT_TYPE', [ + 'D3D10_SIT_CBUFFER', + 'D3D10_SIT_TBUFFER', + 'D3D10_SIT_TEXTURE', + 'D3D10_SIT_SAMPLER', +]) + +D3D11_SHADER_INPUT_TYPE = Enum('D3D11_SHADER_INPUT_TYPE', [ + 'D3D11_SIT_UAV_RWTYPED', + 'D3D11_SIT_STRUCTURED', + 'D3D11_SIT_UAV_RWSTRUCTURED', + 'D3D11_SIT_BYTEADDRESS', + 'D3D11_SIT_UAV_RWBYTEADDRESS', + 'D3D11_SIT_UAV_APPEND_STRUCTURED', + 'D3D11_SIT_UAV_CONSUME_STRUCTURED', + 'D3D11_SIT_UAV_RWSTRUCTURED_WITH_COUNTER', +]) + +D3D_SHADER_CBUFFER_FLAGS = Enum('D3D_SHADER_CBUFFER_FLAGS', [ + 'D3D_CBF_USERPACKED', +]) + +D3D10_SHADER_CBUFFER_FLAGS = Enum('D3D10_SHADER_CBUFFER_FLAGS', [ + 'D3D10_CBF_USERPACKED', +]) + +D3D_CBUFFER_TYPE = Enum('D3D_CBUFFER_TYPE', [ + 'D3D_CT_CBUFFER', + 'D3D_CT_TBUFFER', + 'D3D_CT_INTERFACE_POINTERS', + 'D3D_CT_RESOURCE_BIND_INFO', +]) + +D3D10_CBUFFER_TYPE = Enum('D3D10_CBUFFER_TYPE', [ + 'D3D10_CT_CBUFFER', + 'D3D10_CT_TBUFFER', +]) + +D3D11_CBUFFER_TYPE = Enum('D3D11_CBUFFER_TYPE', [ + 'D3D11_CT_CBUFFER', + 'D3D11_CT_TBUFFER', + 'D3D11_CT_INTERFACE_POINTERS', + 'D3D11_CT_RESOURCE_BIND_INFO', +]) + +D3D_NAME = Enum('D3D_NAME', [ + 'D3D_NAME_UNDEFINED', + 'D3D_NAME_POSITION', + 'D3D_NAME_CLIP_DISTANCE', + 'D3D_NAME_CULL_DISTANCE', + 'D3D_NAME_RENDER_TARGET_ARRAY_INDEX', + 'D3D_NAME_VIEWPORT_ARRAY_INDEX', + 'D3D_NAME_VERTEX_ID', + 'D3D_NAME_PRIMITIVE_ID', + 'D3D_NAME_INSTANCE_ID', + 'D3D_NAME_IS_FRONT_FACE', + 'D3D_NAME_SAMPLE_INDEX', + 'D3D_NAME_FINAL_QUAD_EDGE_TESSFACTOR', + 'D3D_NAME_FINAL_QUAD_INSIDE_TESSFACTOR', + 'D3D_NAME_FINAL_TRI_EDGE_TESSFACTOR', + 'D3D_NAME_FINAL_TRI_INSIDE_TESSFACTOR', + 'D3D_NAME_FINAL_LINE_DETAIL_TESSFACTOR', + 'D3D_NAME_FINAL_LINE_DENSITY_TESSFACTOR', + 'D3D_NAME_TARGET', + 'D3D_NAME_DEPTH', + 'D3D_NAME_COVERAGE', + 'D3D_NAME_DEPTH_GREATER_EQUAL', + 'D3D_NAME_DEPTH_LESS_EQUAL', +]) + +D3D10_NAME = Enum('D3D10_NAME', [ + 'D3D10_NAME_UNDEFINED', + 'D3D10_NAME_POSITION', + 'D3D10_NAME_CLIP_DISTANCE', + 'D3D10_NAME_CULL_DISTANCE', + 'D3D10_NAME_RENDER_TARGET_ARRAY_INDEX', + 'D3D10_NAME_VIEWPORT_ARRAY_INDEX', + 'D3D10_NAME_VERTEX_ID', + 'D3D10_NAME_PRIMITIVE_ID', + 'D3D10_NAME_INSTANCE_ID', + 'D3D10_NAME_IS_FRONT_FACE', + 'D3D10_NAME_SAMPLE_INDEX', + 'D3D10_NAME_TARGET', + 'D3D10_NAME_DEPTH', + 'D3D10_NAME_COVERAGE', +]) + +D3D11_NAME = Enum('D3D11_NAME', [ + 'D3D11_NAME_FINAL_QUAD_EDGE_TESSFACTOR', + 'D3D11_NAME_FINAL_QUAD_INSIDE_TESSFACTOR', + 'D3D11_NAME_FINAL_TRI_EDGE_TESSFACTOR', + 'D3D11_NAME_FINAL_TRI_INSIDE_TESSFACTOR', + 'D3D11_NAME_FINAL_LINE_DETAIL_TESSFACTOR', + 'D3D11_NAME_FINAL_LINE_DENSITY_TESSFACTOR', + 'D3D11_NAME_DEPTH_GREATER_EQUAL', + 'D3D11_NAME_DEPTH_LESS_EQUAL', +]) + +D3D_RESOURCE_RETURN_TYPE = Enum('D3D_RESOURCE_RETURN_TYPE', [ + 'D3D_RETURN_TYPE_UNORM', + 'D3D_RETURN_TYPE_SNORM', + 'D3D_RETURN_TYPE_SINT', + 'D3D_RETURN_TYPE_UINT', + 'D3D_RETURN_TYPE_FLOAT', + 'D3D_RETURN_TYPE_MIXED', + 'D3D_RETURN_TYPE_DOUBLE', + 'D3D_RETURN_TYPE_CONTINUED', +]) + +D3D10_RESOURCE_RETURN_TYPE = Enum('D3D10_RESOURCE_RETURN_TYPE', [ + 'D3D10_RETURN_TYPE_UNORM', + 'D3D10_RETURN_TYPE_SNORM', + 'D3D10_RETURN_TYPE_SINT', + 'D3D10_RETURN_TYPE_UINT', + 'D3D10_RETURN_TYPE_FLOAT', + 'D3D10_RETURN_TYPE_MIXED', +]) + +D3D11_RESOURCE_RETURN_TYPE = Enum('D3D11_RESOURCE_RETURN_TYPE', [ + 'D3D11_RETURN_TYPE_UNORM', + 'D3D11_RETURN_TYPE_SNORM', + 'D3D11_RETURN_TYPE_SINT', + 'D3D11_RETURN_TYPE_UINT', + 'D3D11_RETURN_TYPE_FLOAT', + 'D3D11_RETURN_TYPE_MIXED', + 'D3D11_RETURN_TYPE_DOUBLE', + 'D3D11_RETURN_TYPE_CONTINUED', +]) + +D3D_REGISTER_COMPONENT_TYPE = Enum('D3D_REGISTER_COMPONENT_TYPE', [ + 'D3D_REGISTER_COMPONENT_UNKNOWN', + 'D3D_REGISTER_COMPONENT_UINT32', + 'D3D_REGISTER_COMPONENT_SINT32', + 'D3D_REGISTER_COMPONENT_FLOAT32', +]) + +D3D10_REGISTER_COMPONENT_TYPE = Enum('D3D10_REGISTER_COMPONENT_TYPE', [ + 'D3D10_REGISTER_COMPONENT_UNKNOWN', + 'D3D10_REGISTER_COMPONENT_UINT32', + 'D3D10_REGISTER_COMPONENT_SINT32', + 'D3D10_REGISTER_COMPONENT_FLOAT32', +]) + +D3D_TESSELLATOR_DOMAIN = Enum('D3D_TESSELLATOR_DOMAIN', [ + 'D3D_TESSELLATOR_DOMAIN_UNDEFINED', + 'D3D_TESSELLATOR_DOMAIN_ISOLINE', + 'D3D_TESSELLATOR_DOMAIN_TRI', + 'D3D_TESSELLATOR_DOMAIN_QUAD', +]) + +D3D11_TESSELLATOR_DOMAIN = Enum('D3D11_TESSELLATOR_DOMAIN', [ + 'D3D11_TESSELLATOR_DOMAIN_UNDEFINED', + 'D3D11_TESSELLATOR_DOMAIN_ISOLINE', + 'D3D11_TESSELLATOR_DOMAIN_TRI', + 'D3D11_TESSELLATOR_DOMAIN_QUAD', +]) + +D3D_TESSELLATOR_PARTITIONING = Enum('D3D_TESSELLATOR_PARTITIONING', [ + 'D3D_TESSELLATOR_PARTITIONING_UNDEFINED', + 'D3D_TESSELLATOR_PARTITIONING_INTEGER', + 'D3D_TESSELLATOR_PARTITIONING_POW2', + 'D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD', + 'D3D_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN', +]) + +D3D11_TESSELLATOR_PARTITIONING = Enum('D3D11_TESSELLATOR_PARTITIONING', [ + 'D3D11_TESSELLATOR_PARTITIONING_UNDEFINED', + 'D3D11_TESSELLATOR_PARTITIONING_INTEGER', + 'D3D11_TESSELLATOR_PARTITIONING_POW2', + 'D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD', + 'D3D11_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN', +]) + +D3D_TESSELLATOR_OUTPUT_PRIMITIVE = Enum('D3D_TESSELLATOR_OUTPUT_PRIMITIVE', [ + 'D3D_TESSELLATOR_OUTPUT_UNDEFINED', + 'D3D_TESSELLATOR_OUTPUT_POINT', + 'D3D_TESSELLATOR_OUTPUT_LINE', + 'D3D_TESSELLATOR_OUTPUT_TRIANGLE_CW', + 'D3D_TESSELLATOR_OUTPUT_TRIANGLE_CCW', +]) + +D3D11_TESSELLATOR_OUTPUT_PRIMITIVE = Enum('D3D11_TESSELLATOR_OUTPUT_PRIMITIVE', [ + 'D3D11_TESSELLATOR_OUTPUT_UNDEFINED', + 'D3D11_TESSELLATOR_OUTPUT_POINT', + 'D3D11_TESSELLATOR_OUTPUT_LINE', + 'D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CW', + 'D3D11_TESSELLATOR_OUTPUT_TRIANGLE_CCW', +]) + diff --git a/specs/scripts/cdecl.py b/specs/scripts/cdecl.py index ef04cfc..013dec0 100755 --- a/specs/scripts/cdecl.py +++ b/specs/scripts/cdecl.py @@ -122,7 +122,7 @@ class DeclParser: self.consume() type = 'Pointer(%s)' % type name = self.consume() - print '%s = Alias("%s", %s)' % (name, name, type) + print '%s = Alias(%r, %s)' % (name, name, type) if self.match(','): self.consume() else: @@ -136,7 +136,7 @@ class DeclParser: name = self.consume() self.consume('{') - print '%s = Enum("%s", [' % (name, name) + print '%s = Enum(%r, [' % (name, name) #value = 0 while self.lookahead() != '}': @@ -147,8 +147,8 @@ class DeclParser: if self.match(','): self.consume(',') tags = self.parse_tags() - #print ' "%s",\t# %s' % (name, value) - print ' "%s",' % (name,) + #print ' %r,\t# %s' % (name, value) + print ' %r,' % (name,) #value += 1 self.consume('}') @@ -175,18 +175,32 @@ class DeclParser: self.consume('define') name = self.consume() value = self.consume() - #print ' "%s",\t# %s' % (name, value) - print ' "%s",' % (name,) + #print ' %r,\t# %s' % (name, value) + print ' %r,' % (name,) return name, value def parse_struct(self): self.consume('struct') name = self.consume() - self.consume('{') - print '%s = Struct("%s", [' % (name, name) + print '%s = Struct(%r, [' % (name, name) + for type, name in self.parse_members(): + print ' (%s, %r),' % (type, name) + print '])' + print + + def parse_union(self): + self.consume('union') + if not self.match('{'): + name = self.consume() + else: + name = None + members = self.parse_members() + return 'Union(%r, [%s])' % (name, ', '.join('%s, %r' % member for member in members)) - value = 0 + def parse_members(self): + members = [] + self.consume('{') while self.lookahead() != '}': type, name = self.parse_named_type() @@ -197,12 +211,9 @@ class DeclParser: if self.match(','): self.consume(',') self.consume(';') - print ' (%s, "%s"),' % (type, name) - value += 1 + members.append((type, name)) self.consume('}') - - print '])' - print + return members def parse_interface(self, ref_token): self.consume(ref_token) @@ -215,7 +226,7 @@ class DeclParser: base = self.consume() self.consume('{') - print '%s = Interface("%s", %s)' % (name, name, base) + print '%s = Interface(%r, %s)' % (name, name, base) print '%s.methods += [' % (name,) while self.lookahead() != '}': @@ -256,7 +267,7 @@ class DeclParser: if self.match(','): self.consume() self.consume(')') - if self.lookahead() == 'const': + if self.match('const', 'CONST'): self.consume() extra = ', const=True' + extra @@ -264,14 +275,14 @@ class DeclParser: self.consume() self.consume('0') - print ' %s(%s, "%s", [%s]%s),' % (creator, ret, name, ', '.join(args), extra) + print ' %s(%s, %r, [%s]%s),' % (creator, ret, name, ', '.join(args), extra) def parse_arg(self): tags = self.parse_tags() type, name = self.parse_named_type() - arg = '(%s, "%s")' % (type, name) + arg = '(%s, %r)' % (type, name) if 'out' in tags or 'inout' in tags: arg = 'Out' + arg @@ -293,6 +304,7 @@ class DeclParser: if self.lookahead().startswith('__'): # Parse __in, __out, etc tags tag = self.consume()[2:] + args = [] if self.match('('): self.consume() while not self.match(')'): @@ -303,16 +315,20 @@ class DeclParser: def parse_named_type(self): type = self.parse_type() - name = self.consume() - if self.match('['): - self.consume() - length = self.consume() - self.consume(']') - try: - int(length) - except ValueError: - length = "%s" % length - type = 'Array(%s, %s)' % (type, length) + + if self.match(',', ';', '}', ')'): + name = None + else: + name = self.consume() + if self.match('['): + self.consume() + length = self.consume() + self.consume(']') + try: + int(length) + except ValueError: + length = repr(length) + type = 'Array(%s, %s)' % (type, length) return type, name int_tokens = ('unsigned', 'signed', 'int', 'long', 'short', 'char') @@ -332,19 +348,22 @@ class DeclParser: def parse_type(self): const = False - token = self.consume() - if token == 'const': - token = self.consume() + if self.match('const', 'CONST'): + self.consume() const = True - if token == 'void': + if self.match('void'): + self.consume() type = 'Void' - elif token in self.int_tokens: + elif self.match('union'): + type = self.parse_union() + elif self.match(*self.int_tokens): unsigned = False signed = False long = 0 short = 0 char = False - while token in self.int_tokens: + while self.match(*self.int_tokens): + token = self.consume() if token == 'unsigned': unsigned = True if token == 'signed': @@ -355,10 +374,6 @@ class DeclParser: short += 1 if token == 'char': char = False - if self.lookahead() in self.int_tokens: - token = self.consume() - else: - token = None if char: type = 'Char' if signed: @@ -372,6 +387,7 @@ class DeclParser: if unsigned: type = 'U' + type else: + token = self.consume() type = self.type_table.get(token, token) if const: type = 'Const(%s)' % type @@ -379,8 +395,8 @@ class DeclParser: if self.match('*'): self.consume('*') type = 'Pointer(%s)' % type - elif self.match('const'): - self.consume('const') + elif self.match('const', 'CONST'): + self.consume() type = 'Const(%s)' % type else: break diff --git a/specs/stdapi.py b/specs/stdapi.py index c74d311..2057124 100644 --- a/specs/stdapi.py +++ b/specs/stdapi.py @@ -41,7 +41,10 @@ class Type: # on this type, so it should preferrably be something representative of # the type. if tag is None: - tag = ''.join([c for c in expr if c.isalnum() or c in '_']) + if expr is not None: + tag = ''.join([c for c in expr if c.isalnum() or c in '_']) + else: + tag = 'anonynoums' else: for c in tag: assert c.isalnum() or c in '_' @@ -257,12 +260,35 @@ class Struct(Type): Struct.__id += 1 self.name = name - self.members = members + self.members = [] + + # Eliminate anonymous unions + for type, name in members: + if name is not None: + self.members.append((type, name)) + else: + assert isinstance(type, Union) + assert type.name is None + self.members.extend(type.members) def visit(self, visitor, *args, **kwargs): return visitor.visitStruct(self, *args, **kwargs) +class Union(Type): + + __id = 0 + + def __init__(self, name, members): + Type.__init__(self, name) + + self.id = Union.__id + Union.__id += 1 + + self.name = name + self.members = members + + class Alias(Type): def __init__(self, expr, type): @@ -388,8 +414,8 @@ class Interface(Type): class Method(Function): - def __init__(self, type, name, args, const=False, sideeffects=True): - Function.__init__(self, type, name, args, call = '__stdcall', sideeffects=sideeffects) + def __init__(self, type, name, args, call = '__stdcall', const=False, sideeffects=True): + Function.__init__(self, type, name, args, call = call, sideeffects=sideeffects) for index in range(len(self.args)): self.args[index].index = index + 1 self.const = const @@ -400,6 +426,10 @@ class Method(Function): s += ' const' return s +def StdMethod(*args, **kwargs): + kwargs.setdefault('call', '__stdcall') + return Method(*args, **kwargs) + class String(Type): diff --git a/specs/tags.vim b/specs/tags.vim deleted file mode 100644 index 627aad3..0000000 --- a/specs/tags.vim +++ /dev/null @@ -1,38 +0,0 @@ -s/\<__deref_out_bcount\>([^)]*)/[out]/g -s/\<__deref_out_bcount\>([^)]*)/[out]/g -s/\<__deref_out_bcount\>([^)]*)/[out]/g -s/\<__field_ecount\>([^)]*)//g -s/\<__field_ecount\>([^)]*)//g -s/\<__field_ecount\>([^)]*)//g -s/\<__in\>//g -s/\<__in_bcount\>([^)]*)//g -s/\<__in_bcount\>([^)]*)//g -s/\<__in_ecount\>([^)]*)//g -s/\<__in_ecount\>([^)]*)//g -s/\<__in_ecount\>([^)]*)//g -s/\<__in_ecount_opt\>([^)]*)//g -s/\<__in_ecount_opt\>([^)]*)//g -s/\<__in_ecount\>([^)]*)//g -s/\<__in_ecount\>([^)]*)//g -s/\<__in_opt\>//g -s/\<__inout\>//g -s/\<__in_z\>//g -s/\<__in_z_opt\>//g -s/\<__maybenull\>//g -s/\<__notnull\>//g -s/\<__nullterminated\>//g -s/\<__out\>/[out]/g -s/\<__out_bcount\>([^)]*)/[out]/g -s/\<__out_ecount\>([^)]*)/[out]/g -s/\<__out_ecount\>([^)]*)/[out]/g -s/\<__out_ecount\>([^)]*)/[out]/g -s/\<__out_ecount_opt\>([^)]*)/[out]/g -s/\<__out_ecount_opt\>([^)]*)/[out]/g -s/\<__out_ecount_opt\>([^)]*)/[out]/g -s/\<__out_ecount_opt\>([^)]*)/[out]/g -s/\<__out_ecount\>([^)]*)/[out]/g -s/\<__out_ecount_z\>([^)]*)/[out]/g -s/\<__out_ecount_z\>([^)]*)/[out]/g -s/\<__out_ecount_z\>([^)]*)/[out]/g -s/\<__out_opt\>/[out]/g -s/\<__out_z\>/[out]/g