From 1c85be8625b343c6301a0241d83beee33c1c470e Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Thu, 8 Sep 2011 15:39:03 +0200 Subject: Implement frame dumping in D3D11. Fixes issue 4831. --- Source/Core/VideoCommon/Src/RenderBase.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'Source/Core/VideoCommon/Src/RenderBase.cpp') diff --git a/Source/Core/VideoCommon/Src/RenderBase.cpp b/Source/Core/VideoCommon/Src/RenderBase.cpp index d89e582860..06f4c81ab6 100644 --- a/Source/Core/VideoCommon/Src/RenderBase.cpp +++ b/Source/Core/VideoCommon/Src/RenderBase.cpp @@ -52,7 +52,7 @@ int OSDChoice, OSDTime; Renderer *g_renderer = NULL; -bool s_bLastFrameDumped = false; +bool bLastFrameDumped = false; std::mutex Renderer::s_criticalScreenshot; std::string Renderer::s_sScreenshotName; -- cgit v1.2.3 From 5eb1e55f80a5c49270a7c7a5dfd625216a13abe2 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Thu, 8 Sep 2011 17:09:24 +0200 Subject: Merge some frame dumping code to VideoCommon, fixes a memory leak in D3D9 and OpenGL if emulation is stopped while dumping frames. Breaks D3D11 frame dumping for some weird reason (memory corruption or whatever?). --- Source/Core/VideoCommon/Src/RenderBase.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'Source/Core/VideoCommon/Src/RenderBase.cpp') diff --git a/Source/Core/VideoCommon/Src/RenderBase.cpp b/Source/Core/VideoCommon/Src/RenderBase.cpp index 06f4c81ab6..fa6ba018c7 100644 --- a/Source/Core/VideoCommon/Src/RenderBase.cpp +++ b/Source/Core/VideoCommon/Src/RenderBase.cpp @@ -42,6 +42,7 @@ #include "Host.h" #include "XFMemory.h" #include "FifoPlayer/FifoRecorder.h" +#include "AVIDump.h" #include #include @@ -52,7 +53,6 @@ int OSDChoice, OSDTime; Renderer *g_renderer = NULL; -bool bLastFrameDumped = false; std::mutex Renderer::s_criticalScreenshot; std::string Renderer::s_sScreenshotName; @@ -81,15 +81,28 @@ bool Renderer::s_EnableDLCachingAfterRecording; unsigned int Renderer::prev_efb_format = (unsigned int)-1; -Renderer::Renderer() +Renderer::Renderer() : frame_data(NULL), bLastFrameDumped(false) { UpdateActiveConfig(); + +#if defined _WIN32 || defined HAVE_LIBAV + bAVIDumping = false; +#endif } Renderer::~Renderer() { // invalidate previous efb format prev_efb_format = (unsigned int)-1; + +#if defined _WIN32 || defined HAVE_LIBAV + if (g_ActiveConfig.bDumpFrames && bLastFrameDumped && bAVIDumping) + AVIDump::Stop(); +#else + if (f_pFrameDump.IsOpen()) + f_pFrameDump.Close(); +#endif + delete[] frame_data; } void Renderer::RenderToXFB(u32 xfbAddr, u32 fbWidth, u32 fbHeight, const EFBRectangle& sourceRc, float Gamma) -- cgit v1.2.3 From 125c11cce98a80a2885f54cae7fb58b81063e068 Mon Sep 17 00:00:00 2001 From: NeoBrainX Date: Fri, 9 Sep 2011 16:30:29 +0200 Subject: Compile fix. --- Source/Core/VideoCommon/Src/RenderBase.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'Source/Core/VideoCommon/Src/RenderBase.cpp') diff --git a/Source/Core/VideoCommon/Src/RenderBase.cpp b/Source/Core/VideoCommon/Src/RenderBase.cpp index fa6ba018c7..3b06bbb1c0 100644 --- a/Source/Core/VideoCommon/Src/RenderBase.cpp +++ b/Source/Core/VideoCommon/Src/RenderBase.cpp @@ -99,8 +99,8 @@ Renderer::~Renderer() if (g_ActiveConfig.bDumpFrames && bLastFrameDumped && bAVIDumping) AVIDump::Stop(); #else - if (f_pFrameDump.IsOpen()) - f_pFrameDump.Close(); + if (pFrameDump.IsOpen()) + pFrameDump.Close(); #endif delete[] frame_data; } -- cgit v1.2.3