From 2f1b639f0ad191a977bfaabdeff24ccef4914099 Mon Sep 17 00:00:00 2001 From: Techjar Date: Mon, 31 May 2021 17:40:08 -0400 Subject: [PATCH] VideoCommon: Restore BBox* forwarding functions --- Source/Core/VideoBackends/D3D/D3DRender.cpp | 6 +++--- Source/Core/VideoBackends/D3D/D3DRender.h | 6 +++--- Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp | 6 +++--- Source/Core/VideoBackends/D3D12/D3D12Renderer.h | 6 +++--- Source/Core/VideoBackends/Null/NullRender.h | 4 ++-- Source/Core/VideoBackends/OGL/OGLRender.cpp | 6 +++--- Source/Core/VideoBackends/OGL/OGLRender.h | 6 +++--- Source/Core/VideoBackends/Software/SWRenderer.cpp | 4 ++-- Source/Core/VideoBackends/Software/SWRenderer.h | 4 ++-- Source/Core/VideoBackends/Vulkan/VKRenderer.cpp | 6 +++--- Source/Core/VideoBackends/Vulkan/VKRenderer.h | 6 +++--- Source/Core/VideoCommon/RenderBase.cpp | 15 +++++++++++++++ Source/Core/VideoCommon/RenderBase.h | 10 +++++++--- 13 files changed, 52 insertions(+), 33 deletions(-) diff --git a/Source/Core/VideoBackends/D3D/D3DRender.cpp b/Source/Core/VideoBackends/D3D/D3DRender.cpp index 1290a63630..904de1953c 100644 --- a/Source/Core/VideoBackends/D3D/D3DRender.cpp +++ b/Source/Core/VideoBackends/D3D/D3DRender.cpp @@ -264,17 +264,17 @@ void Renderer::UnbindTexture(const AbstractTexture* texture) D3D::stateman->ApplyTextures(); } -u16 Renderer::BBoxRead(int index) +u16 Renderer::BBoxReadImpl(int index) { return static_cast(BBox::Get(index)); } -void Renderer::BBoxWrite(int index, u16 value) +void Renderer::BBoxWriteImpl(int index, u16 value) { BBox::Set(index, value); } -void Renderer::BBoxFlush() +void Renderer::BBoxFlushImpl() { BBox::Flush(); } diff --git a/Source/Core/VideoBackends/D3D/D3DRender.h b/Source/Core/VideoBackends/D3D/D3DRender.h index 2e008d87a7..727e1243b9 100644 --- a/Source/Core/VideoBackends/D3D/D3DRender.h +++ b/Source/Core/VideoBackends/D3D/D3DRender.h @@ -61,9 +61,9 @@ public: void SetFullscreen(bool enable_fullscreen) override; bool IsFullscreen() const override; - u16 BBoxRead(int index) override; - void BBoxWrite(int index, u16 value) override; - void BBoxFlush() override; + u16 BBoxReadImpl(int index) override; + void BBoxWriteImpl(int index, u16 value) override; + void BBoxFlushImpl() override; void Flush() override; void WaitForGPUIdle() override; diff --git a/Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp b/Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp index ce9ac2504b..cfd259f9f2 100644 --- a/Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp +++ b/Source/Core/VideoBackends/D3D12/D3D12Renderer.cpp @@ -106,17 +106,17 @@ std::unique_ptr Renderer::CreatePipeline(const AbstractPipelin return DXPipeline::Create(config, cache_data, cache_data_length); } -u16 Renderer::BBoxRead(int index) +u16 Renderer::BBoxReadImpl(int index) { return static_cast(m_bounding_box->Get(index)); } -void Renderer::BBoxWrite(int index, u16 value) +void Renderer::BBoxWriteImpl(int index, u16 value) { m_bounding_box->Set(index, value); } -void Renderer::BBoxFlush() +void Renderer::BBoxFlushImpl() { m_bounding_box->Flush(); m_bounding_box->Invalidate(); diff --git a/Source/Core/VideoBackends/D3D12/D3D12Renderer.h b/Source/Core/VideoBackends/D3D12/D3D12Renderer.h index 4a26871a73..623a767676 100644 --- a/Source/Core/VideoBackends/D3D12/D3D12Renderer.h +++ b/Source/Core/VideoBackends/D3D12/D3D12Renderer.h @@ -47,9 +47,9 @@ public: const void* cache_data = nullptr, size_t cache_data_length = 0) override; - u16 BBoxRead(int index) override; - void BBoxWrite(int index, u16 value) override; - void BBoxFlush() override; + u16 BBoxReadImpl(int index) override; + void BBoxWriteImpl(int index, u16 value) override; + void BBoxFlushImpl() override; void Flush() override; void WaitForGPUIdle() override; diff --git a/Source/Core/VideoBackends/Null/NullRender.h b/Source/Core/VideoBackends/Null/NullRender.h index 21bd9c9c2c..13bd3feae9 100644 --- a/Source/Core/VideoBackends/Null/NullRender.h +++ b/Source/Core/VideoBackends/Null/NullRender.h @@ -34,8 +34,8 @@ public: u32 AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) override { return 0; } void PokeEFB(EFBAccessType type, const EfbPokeData* points, size_t num_points) override {} - u16 BBoxRead(int index) override { return 0; } - void BBoxWrite(int index, u16 value) override {} + u16 BBoxReadImpl(int index) override { return 0; } + void BBoxWriteImpl(int index, u16 value) override {} void ClearScreen(const MathUtil::Rectangle& rc, bool colorEnable, bool alphaEnable, bool zEnable, u32 color, u32 z) override diff --git a/Source/Core/VideoBackends/OGL/OGLRender.cpp b/Source/Core/VideoBackends/OGL/OGLRender.cpp index 5f6796d761..d3435c51d5 100644 --- a/Source/Core/VideoBackends/OGL/OGLRender.cpp +++ b/Source/Core/VideoBackends/OGL/OGLRender.cpp @@ -854,7 +854,7 @@ void Renderer::SetScissorRect(const MathUtil::Rectangle& rc) glScissor(rc.left, rc.top, rc.GetWidth(), rc.GetHeight()); } -u16 Renderer::BBoxRead(int index) +u16 Renderer::BBoxReadImpl(int index) { // swap 2 and 3 for top/bottom if (index >= 2) @@ -870,7 +870,7 @@ u16 Renderer::BBoxRead(int index) return static_cast(value); } -void Renderer::BBoxWrite(int index, u16 value) +void Renderer::BBoxWriteImpl(int index, u16 value) { s32 swapped_value = value; if (index >= 2) @@ -882,7 +882,7 @@ void Renderer::BBoxWrite(int index, u16 value) BoundingBox::Set(index, swapped_value); } -void Renderer::BBoxFlush() +void Renderer::BBoxFlushImpl() { BoundingBox::Flush(); } diff --git a/Source/Core/VideoBackends/OGL/OGLRender.h b/Source/Core/VideoBackends/OGL/OGLRender.h index 399138ae07..c9b3b04896 100644 --- a/Source/Core/VideoBackends/OGL/OGLRender.h +++ b/Source/Core/VideoBackends/OGL/OGLRender.h @@ -126,9 +126,9 @@ public: void BindBackbuffer(const ClearColor& clear_color = {}) override; void PresentBackbuffer() override; - u16 BBoxRead(int index) override; - void BBoxWrite(int index, u16 value) override; - void BBoxFlush() override; + u16 BBoxReadImpl(int index) override; + void BBoxWriteImpl(int index, u16 value) override; + void BBoxFlushImpl() override; void BeginUtilityDrawing() override; void EndUtilityDrawing() override; diff --git a/Source/Core/VideoBackends/Software/SWRenderer.cpp b/Source/Core/VideoBackends/Software/SWRenderer.cpp index c128e6bd1a..51433d311f 100644 --- a/Source/Core/VideoBackends/Software/SWRenderer.cpp +++ b/Source/Core/VideoBackends/Software/SWRenderer.cpp @@ -126,12 +126,12 @@ u32 SWRenderer::AccessEFB(EFBAccessType type, u32 x, u32 y, u32 InputData) return value; } -u16 SWRenderer::BBoxRead(int index) +u16 SWRenderer::BBoxReadImpl(int index) { return BoundingBox::GetCoordinate(static_cast(index)); } -void SWRenderer::BBoxWrite(int index, u16 value) +void SWRenderer::BBoxWriteImpl(int index, u16 value) { BoundingBox::SetCoordinate(static_cast(index), value); } diff --git a/Source/Core/VideoBackends/Software/SWRenderer.h b/Source/Core/VideoBackends/Software/SWRenderer.h index df23e123be..f2434d92c0 100644 --- a/Source/Core/VideoBackends/Software/SWRenderer.h +++ b/Source/Core/VideoBackends/Software/SWRenderer.h @@ -39,8 +39,8 @@ public: u32 AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) override; void PokeEFB(EFBAccessType type, const EfbPokeData* points, size_t num_points) override {} - u16 BBoxRead(int index) override; - void BBoxWrite(int index, u16 value) override; + u16 BBoxReadImpl(int index) override; + void BBoxWriteImpl(int index, u16 value) override; void RenderXFBToScreen(const MathUtil::Rectangle& target_rc, const AbstractTexture* source_texture, diff --git a/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp b/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp index 23d0c0d21a..bbac6201c7 100644 --- a/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp +++ b/Source/Core/VideoBackends/Vulkan/VKRenderer.cpp @@ -131,17 +131,17 @@ void Renderer::SetPipeline(const AbstractPipeline* pipeline) StateTracker::GetInstance()->SetPipeline(static_cast(pipeline)); } -u16 Renderer::BBoxRead(int index) +u16 Renderer::BBoxReadImpl(int index) { return static_cast(m_bounding_box->Get(index)); } -void Renderer::BBoxWrite(int index, u16 value) +void Renderer::BBoxWriteImpl(int index, u16 value) { m_bounding_box->Set(index, value); } -void Renderer::BBoxFlush() +void Renderer::BBoxFlushImpl() { m_bounding_box->Flush(); m_bounding_box->Invalidate(); diff --git a/Source/Core/VideoBackends/Vulkan/VKRenderer.h b/Source/Core/VideoBackends/Vulkan/VKRenderer.h index 43ed3bd45b..b7e931d669 100644 --- a/Source/Core/VideoBackends/Vulkan/VKRenderer.h +++ b/Source/Core/VideoBackends/Vulkan/VKRenderer.h @@ -54,9 +54,9 @@ public: SwapChain* GetSwapChain() const { return m_swap_chain.get(); } BoundingBox* GetBoundingBox() const { return m_bounding_box.get(); } - u16 BBoxRead(int index) override; - void BBoxWrite(int index, u16 value) override; - void BBoxFlush() override; + u16 BBoxReadImpl(int index) override; + void BBoxWriteImpl(int index, u16 value) override; + void BBoxFlushImpl() override; void Flush() override; void WaitForGPUIdle() override; diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp index 93f8fa2279..f93d498fc6 100644 --- a/Source/Core/VideoCommon/RenderBase.cpp +++ b/Source/Core/VideoCommon/RenderBase.cpp @@ -185,6 +185,21 @@ void Renderer::ReinterpretPixelData(EFBReinterpretType convtype) g_framebuffer_manager->ReinterpretPixelData(convtype); } +u16 Renderer::BBoxRead(int index) +{ + return BBoxReadImpl(index); +} + +void Renderer::BBoxWrite(int index, u16 value) +{ + BBoxWriteImpl(index, value); +} + +void Renderer::BBoxFlush() +{ + BBoxFlushImpl(); +} + u32 Renderer::AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) { if (type == EFBAccessType::PeekColor) diff --git a/Source/Core/VideoCommon/RenderBase.h b/Source/Core/VideoCommon/RenderBase.h index 48cef0bdad..1deedd4f76 100644 --- a/Source/Core/VideoCommon/RenderBase.h +++ b/Source/Core/VideoCommon/RenderBase.h @@ -211,9 +211,9 @@ public: virtual u32 AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data); virtual void PokeEFB(EFBAccessType type, const EfbPokeData* points, size_t num_points); - virtual u16 BBoxRead(int index) = 0; - virtual void BBoxWrite(int index, u16 value) = 0; - virtual void BBoxFlush() {} + u16 BBoxRead(int index); + void BBoxWrite(int index, u16 value); + void BBoxFlush(); virtual void Flush() {} virtual void WaitForGPUIdle() {} @@ -301,6 +301,10 @@ protected: // Should be called with the ImGui lock held. void DrawImGui(); + virtual u16 BBoxReadImpl(int index) = 0; + virtual void BBoxWriteImpl(int index, u16 value) = 0; + virtual void BBoxFlushImpl() {} + AbstractFramebuffer* m_current_framebuffer = nullptr; const AbstractPipeline* m_current_pipeline = nullptr;