From c85e0a2586029f1093539c68d84f7c2599d3a75e Mon Sep 17 00:00:00 2001 From: Lioncash Date: Fri, 3 Feb 2017 12:31:20 -0500 Subject: FramebufferManagerBase: Return a std::pair from GetTargetSize Keeps associated data together. It also eliminates the possibility of out parameters not being initialized properly. For example, consider the following example: -- some FramebufferManager implementation -- void FBMgrImpl::GetTargetSize(u32* width, u32* height) override { // Do nothing } -- somewhere else where the function is used -- u32 width, height; framebuffer_manager_instance->GetTargetSize(&width, &height); if (texture_width != width) <-- Uninitialized variable usage { ... } It makes it much more obvious to spot any initialization issues, because it requires something to be returned, as opposed to allowing an implementation to just not do anything. --- Source/Core/VideoCommon/FramebufferManagerBase.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'Source/Core/VideoCommon/FramebufferManagerBase.cpp') diff --git a/Source/Core/VideoCommon/FramebufferManagerBase.cpp b/Source/Core/VideoCommon/FramebufferManagerBase.cpp index b9cf3eb4d6..33c8015f76 100644 --- a/Source/Core/VideoCommon/FramebufferManagerBase.cpp +++ b/Source/Core/VideoCommon/FramebufferManagerBase.cpp @@ -3,9 +3,12 @@ // Refer to the license.txt file included. #include "VideoCommon/FramebufferManagerBase.h" + #include #include #include +#include + #include "VideoCommon/RenderBase.h" #include "VideoCommon/VideoConfig.h" @@ -158,8 +161,8 @@ void FramebufferManagerBase::CopyToVirtualXFB(u32 xfbAddr, u32 fbStride, u32 fbH if (m_virtualXFBList.begin() != vxfb) m_virtualXFBList.splice(m_virtualXFBList.begin(), m_virtualXFBList, vxfb); - unsigned int target_width, target_height; - g_framebuffer_manager->GetTargetSize(&target_width, &target_height); + u32 target_width, target_height; + std::tie(target_width, target_height) = g_framebuffer_manager->GetTargetSize(); // recreate if needed if (vxfb->xfbSource && -- cgit v1.2.3