diff options
Diffstat (limited to '3rdparty/bgfx/src/renderer_d3d.h')
-rw-r--r-- | 3rdparty/bgfx/src/renderer_d3d.h | 78 |
1 files changed, 32 insertions, 46 deletions
diff --git a/3rdparty/bgfx/src/renderer_d3d.h b/3rdparty/bgfx/src/renderer_d3d.h index 25983d6dcd6..d0ec4ebdaf9 100644 --- a/3rdparty/bgfx/src/renderer_d3d.h +++ b/3rdparty/bgfx/src/renderer_d3d.h @@ -1,6 +1,6 @@ /* - * Copyright 2011-2018 Branimir Karadzic. All rights reserved. - * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause + * Copyright 2011-2022 Branimir Karadzic. All rights reserved. + * License: https://github.com/bkaradzic/bgfx/blob/master/LICENSE */ #ifndef BGFX_RENDERER_D3D_H_HEADER_GUARD @@ -19,6 +19,10 @@ # define DX_CHECK_EXTRA_ARGS #endif // BGFX_CONFIG_DEBUG && BGFX_CONFIG_RENDERER_DIRECT3D9 +#ifndef DXGI_ERROR_NOT_CURRENTLY_AVAILABLE +# define DXGI_ERROR_NOT_CURRENTLY_AVAILABLE HRESULT(0x887A0022) +#endif // DXGI_ERROR_NOT_CURRENTLY_AVAILABLE + #define DXGI_FORMAT_ASTC_4X4_TYPELESS DXGI_FORMAT(133) #define DXGI_FORMAT_ASTC_4X4_UNORM DXGI_FORMAT(134) #define DXGI_FORMAT_ASTC_4X4_UNORM_SRGB DXGI_FORMAT(135) @@ -64,45 +68,35 @@ namespace bgfx { - constexpr uint32_t toRgba8(uint8_t _r, uint8_t _g, uint8_t _b, uint8_t _a) - { - return 0 - | (uint32_t(_r)<<24) - | (uint32_t(_g)<<16) - | (uint32_t(_b)<< 8) - | (uint32_t(_a) ) - ; - } - -#if BX_PLATFORM_WINDOWS || BX_PLATFORM_WINRT +#if BX_PLATFORM_LINUX || BX_PLATFORM_WINDOWS || BX_PLATFORM_WINRT typedef ::IUnknown IUnknown; #else typedef ::IGraphicsUnknown IUnknown; #endif // BX_PLATFORM_WINDOWS || BX_PLATFORM_WINRT -#define _DX_CHECK(_call) \ - BX_MACRO_BLOCK_BEGIN \ - HRESULT __hr__ = _call; \ - BX_CHECK(SUCCEEDED(__hr__), #_call " FAILED 0x%08x" DX_CHECK_EXTRA_F "\n" \ - , (uint32_t)__hr__ \ - DX_CHECK_EXTRA_ARGS \ - ); \ +#define _DX_CHECK(_call) \ + BX_MACRO_BLOCK_BEGIN \ + HRESULT __hr__ = _call; \ + BX_ASSERT(SUCCEEDED(__hr__), #_call " FAILED 0x%08x" DX_CHECK_EXTRA_F "\n" \ + , (uint32_t)__hr__ \ + DX_CHECK_EXTRA_ARGS \ + ); \ BX_MACRO_BLOCK_END -#define _DX_RELEASE(_ptr, _expected, _check) \ - BX_MACRO_BLOCK_BEGIN \ - if (NULL != (_ptr) ) \ - { \ - ULONG count = (_ptr)->Release(); \ +#define _DX_RELEASE(_ptr, _expected, _check) \ + BX_MACRO_BLOCK_BEGIN \ + if (NULL != (_ptr) ) \ + { \ + ULONG count = (_ptr)->Release(); \ _check(isGraphicsDebuggerPresent() || _expected == count, "%p RefCount is %d (expected %d).", _ptr, count, _expected); BX_UNUSED(count); \ - _ptr = NULL; \ - } \ + _ptr = NULL; \ + } \ BX_MACRO_BLOCK_END -#define _DX_CHECK_REFCOUNT(_ptr, _expected) \ - BX_MACRO_BLOCK_BEGIN \ - ULONG count = getRefCount(_ptr); \ - BX_CHECK(isGraphicsDebuggerPresent() || _expected == count, "%p RefCount is %d (expected %d).", _ptr, count, _expected); \ +#define _DX_CHECK_REFCOUNT(_ptr, _expected) \ + BX_MACRO_BLOCK_BEGIN \ + ULONG count = getRefCount(_ptr); \ + BX_ASSERT(isGraphicsDebuggerPresent() || _expected == count, "%p RefCount is %d (expected %d).", _ptr, count, _expected); \ BX_MACRO_BLOCK_END #define _DX_NAME(_ptr, _format, ...) setDebugObjectName(_ptr, _format, ##__VA_ARGS__) @@ -121,7 +115,7 @@ namespace bgfx # define DX_NAME(_ptr, _format, ...) #endif // BGFX_CONFIG_DEBUG_OBJECT_NAME -#define DX_RELEASE(_ptr, _expected) _DX_RELEASE(_ptr, _expected, BX_CHECK) +#define DX_RELEASE(_ptr, _expected) _DX_RELEASE(_ptr, _expected, BX_ASSERT) #define DX_RELEASE_W(_ptr, _expected) _DX_RELEASE(_ptr, _expected, BX_WARN) #define DX_RELEASE_I(_ptr) _DX_RELEASE(_ptr, 0, BX_NOOP) @@ -133,11 +127,11 @@ namespace bgfx typedef void (WINAPI* PFN_D3DPERF_SET_OPTIONS)(DWORD _options); typedef DWORD (WINAPI* PFN_D3DPERF_GET_STATUS)(); -#define _PIX_SETMARKER(_col, _name) D3DPERF_SetMarker(_col, _name) -#define _PIX_BEGINEVENT(_col, _name) D3DPERF_BeginEvent(_col, _name) -#define _PIX_ENDEVENT() D3DPERF_EndEvent() +#define _PIX_SETMARKER(_color, _name) D3DPERF_SetMarker(_color, _name) +#define _PIX_BEGINEVENT(_color, _name) D3DPERF_BeginEvent(_color, _name) +#define _PIX_ENDEVENT() D3DPERF_EndEvent() -#if BGFX_CONFIG_DEBUG_PIX +#if BGFX_CONFIG_DEBUG_ANNOTATION # define PIX_SETMARKER(_color, _name) _PIX_SETMARKER(_color, _name) # define PIX_BEGINEVENT(_color, _name) _PIX_BEGINEVENT(_color, _name) # define PIX_ENDEVENT() _PIX_ENDEVENT() @@ -145,15 +139,7 @@ namespace bgfx # define PIX_SETMARKER(_color, _name) BX_UNUSED(_name) # define PIX_BEGINEVENT(_color, _name) BX_UNUSED(_name) # define PIX_ENDEVENT() -#endif // BGFX_CONFIG_DEBUG_PIX - -#define D3DCOLOR_FRAME toRgba8(0xff, 0xd7, 0xc9, 0xff) -#define D3DCOLOR_VIEW toRgba8(0xe4, 0xb4, 0x8e, 0xff) -#define D3DCOLOR_VIEW_L toRgba8(0xf9, 0xee, 0xe5, 0xff) -#define D3DCOLOR_VIEW_R toRgba8(0xe8, 0xd3, 0xc0, 0xff) -#define D3DCOLOR_DRAW toRgba8(0xc6, 0xe5, 0xb9, 0xff) -#define D3DCOLOR_COMPUTE toRgba8(0xa7, 0xdb, 0xd8, 0xff) -#define D3DCOLOR_MARKER toRgba8(0xff, 0x00, 0x00, 0xff) +#endif // BGFX_CONFIG_DEBUG_ANNOTATION inline bool isType(IUnknown* _interface, const GUID& _id) { @@ -182,7 +168,7 @@ namespace bgfx { invalidate(_key); m_hashMap.insert(stl::make_pair(_key, _value) ); - BX_CHECK(isGraphicsDebuggerPresent() + BX_ASSERT(isGraphicsDebuggerPresent() || 1 == getRefCount(_value), "Interface ref count %d, hash %" PRIx64 "." , getRefCount(_value) , _key |