VideoCommon/Render: Use a flag for screenshot.

This commit is contained in:
degasus 2016-11-07 22:16:34 +01:00
parent d79840078f
commit a47332bf8a
2 changed files with 5 additions and 7 deletions

View File

@ -62,8 +62,7 @@ std::mutex Renderer::s_criticalScreenshot;
std::string Renderer::s_sScreenshotName; std::string Renderer::s_sScreenshotName;
Common::Event Renderer::s_screenshotCompleted; Common::Event Renderer::s_screenshotCompleted;
Common::Flag Renderer::s_screenshot;
volatile bool Renderer::s_bScreenshot;
// The framebuffer size // The framebuffer size
int Renderer::s_target_width; int Renderer::s_target_width;
@ -303,7 +302,7 @@ void Renderer::SetScreenshot(const std::string& filename)
{ {
std::lock_guard<std::mutex> lk(s_criticalScreenshot); std::lock_guard<std::mutex> lk(s_criticalScreenshot);
s_sScreenshotName = filename; s_sScreenshotName = filename;
s_bScreenshot = true; s_screenshot.Set();
} }
// Create On-Screen-Messages // Create On-Screen-Messages
@ -644,7 +643,7 @@ void Renderer::Swap(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, const
bool Renderer::IsFrameDumping() bool Renderer::IsFrameDumping()
{ {
if (s_bScreenshot) if (s_screenshot.IsSet())
return true; return true;
#if defined(HAVE_LIBAV) || defined(_WIN32) #if defined(HAVE_LIBAV) || defined(_WIN32)
@ -718,7 +717,7 @@ void Renderer::RunFrameDumps()
FlipImageData(data.data(), config.width, config.height, 4); FlipImageData(data.data(), config.width, config.height, 4);
// Save screenshot // Save screenshot
if (s_bScreenshot) if (s_screenshot.TestAndClear())
{ {
std::lock_guard<std::mutex> lk(s_criticalScreenshot); std::lock_guard<std::mutex> lk(s_criticalScreenshot);
@ -728,7 +727,6 @@ void Renderer::RunFrameDumps()
// Reset settings // Reset settings
s_sScreenshotName.clear(); s_sScreenshotName.clear();
s_bScreenshot = false;
s_screenshotCompleted.Set(); s_screenshotCompleted.Set();
} }

View File

@ -153,7 +153,7 @@ protected:
bool swap_upside_down = false); bool swap_upside_down = false);
void FinishFrameData(); void FinishFrameData();
static volatile bool s_bScreenshot; static Common::Flag s_screenshot;
static std::mutex s_criticalScreenshot; static std::mutex s_criticalScreenshot;
static std::string s_sScreenshotName; static std::string s_sScreenshotName;