VideoCommon/Render: Use a flag for screenshot.
This commit is contained in:
parent
d79840078f
commit
a47332bf8a
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue