summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/RenderBase.cpp
diff options
context:
space:
mode:
authordegasus <wickmarkus@web.de>2016-11-07 22:16:34 +0100
committerdegasus <wickmarkus@web.de>2016-11-07 22:16:34 +0100
commita47332bf8a0f2b98a0b7043088d13d9fc0f44b30 (patch)
tree76cf25493ada74504970f0dcb9ff57fa5cc1df92 /Source/Core/VideoCommon/RenderBase.cpp
parentd79840078f8384c36c61533b9642215a0c491341 (diff)
VideoCommon/Render: Use a flag for screenshot.
Diffstat (limited to 'Source/Core/VideoCommon/RenderBase.cpp')
-rw-r--r--Source/Core/VideoCommon/RenderBase.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/Source/Core/VideoCommon/RenderBase.cpp b/Source/Core/VideoCommon/RenderBase.cpp
index b1823a9126..94d51ee481 100644
--- a/Source/Core/VideoCommon/RenderBase.cpp
+++ b/Source/Core/VideoCommon/RenderBase.cpp
@@ -62,8 +62,7 @@ std::mutex Renderer::s_criticalScreenshot;
std::string Renderer::s_sScreenshotName;
Common::Event Renderer::s_screenshotCompleted;
-
-volatile bool Renderer::s_bScreenshot;
+Common::Flag Renderer::s_screenshot;
// The framebuffer size
int Renderer::s_target_width;
@@ -303,7 +302,7 @@ void Renderer::SetScreenshot(const std::string& filename)
{
std::lock_guard<std::mutex> lk(s_criticalScreenshot);
s_sScreenshotName = filename;
- s_bScreenshot = true;
+ s_screenshot.Set();
}
// Create On-Screen-Messages
@@ -644,7 +643,7 @@ void Renderer::Swap(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, const
bool Renderer::IsFrameDumping()
{
- if (s_bScreenshot)
+ if (s_screenshot.IsSet())
return true;
#if defined(HAVE_LIBAV) || defined(_WIN32)
@@ -718,7 +717,7 @@ void Renderer::RunFrameDumps()
FlipImageData(data.data(), config.width, config.height, 4);
// Save screenshot
- if (s_bScreenshot)
+ if (s_screenshot.TestAndClear())
{
std::lock_guard<std::mutex> lk(s_criticalScreenshot);
@@ -728,7 +727,6 @@ void Renderer::RunFrameDumps()
// Reset settings
s_sScreenshotName.clear();
- s_bScreenshot = false;
s_screenshotCompleted.Set();
}