Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Actually, filename really does need to be a parameter because of some…
… random debug thing.
  • Loading branch information
comex committed Nov 3, 2013
1 parent cd46138 commit 74b5fb3
Show file tree
Hide file tree
Showing 7 changed files with 15 additions and 14 deletions.
7 changes: 4 additions & 3 deletions Source/Core/VideoBackends/D3D/Src/Render.cpp
Expand Up @@ -680,7 +680,7 @@ void Renderer::SetBlendMode(bool forceUpdate)
}
}

void Renderer::TakeScreenshot(const TargetRectangle &rc)
void Renderer::TakeScreenshot(const TargetRectangle &rc, std::string filename)
{
if (!s_screenshot_texture)
CreateScreenshotTexture(rc);
Expand Down Expand Up @@ -708,7 +708,7 @@ void Renderer::TakeScreenshot(const TargetRectangle &rc)
}
D3D::context->Unmap(s_screenshot_texture, 0);

SaveScreenshot(dest, rc.GetWidth(), rc.GetHeight());
SaveScreenshot(dest, rc.GetWidth(), rc.GetHeight(), filename);
}

void formatBufferDump(const u8* in, u8* out, int w, int h, int p)
Expand Down Expand Up @@ -846,7 +846,8 @@ void Renderer::Swap(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangle& r
// done with drawing the game stuff, good moment to save a screenshot
if (s_bScreenshot)
{
TakeScreenshot(GetTargetRectangle());
TakeScreenshot(GetTargetRectangle(), s_sScreenshotName);
s_bScreenshot = false;
}

// Dump frames
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/VideoBackends/D3D/Src/Render.h
Expand Up @@ -48,7 +48,7 @@ class Renderer : public ::Renderer

void UpdateViewport();

static void TakeScreenshot(const TargetRectangle &rc);
static void TakeScreenshot(const TargetRectangle &rc, std::string filename);

static bool CheckForResize();

Expand Down
7 changes: 4 additions & 3 deletions Source/Core/VideoBackends/OGL/Src/Render.cpp
Expand Up @@ -1378,7 +1378,8 @@ void Renderer::Swap(u32 xfbAddr, u32 fbWidth, u32 fbHeight,const EFBRectangle& r
// Save screenshot
if (s_bScreenshot)
{
TakeScreenshot(flipped_trc);
TakeScreenshot(flipped_trc, s_sScreenshotName);
s_bScreenshot = false;
// Reset settings
}

Expand Down Expand Up @@ -1772,7 +1773,7 @@ void Renderer::FlipImageData(u8 *data, int w, int h)
}
}

void Renderer::TakeScreenshot(const TargetRectangle &back_rc)
void Renderer::TakeScreenshot(const TargetRectangle &back_rc, std::string filename)
{
u32 W = back_rc.GetWidth();
u32 H = back_rc.GetHeight();
Expand All @@ -1792,7 +1793,7 @@ void Renderer::TakeScreenshot(const TargetRectangle &back_rc)
// Turn image upside down
FlipImageData(data, W, H);

SaveScreenshot(data, W, H);
SaveScreenshot(data, W, H, filename);
}

}
2 changes: 1 addition & 1 deletion Source/Core/VideoBackends/OGL/Src/Render.h
Expand Up @@ -80,7 +80,7 @@ class Renderer : public ::Renderer

void UpdateViewport();

static void TakeScreenshot(const TargetRectangle &rc);
static void TakeScreenshot(const TargetRectangle &rc, std::string filename);

private:
void UpdateEFBCache(EFBAccessType type, u32 cacheRectIdx, const EFBRectangle& efbPixelRc, const TargetRectangle& targetPixelRc, const u32* data);
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/VideoBackends/OGL/Src/VertexManager.cpp
Expand Up @@ -341,7 +341,7 @@ void VertexManager::vFlush()
tr.right = Renderer::GetTargetWidth();
tr.top = 0;
tr.bottom = Renderer::GetTargetHeight();
g_renderer->SaveScreenshot(str, tr);
static_cast<OGL::Renderer *>(g_renderer)->TakeScreenshot(tr, str);
}
#endif
g_Config.iSaveTargetId++;
Expand Down
7 changes: 3 additions & 4 deletions Source/Core/VideoCommon/Src/RenderBase.cpp
Expand Up @@ -294,13 +294,13 @@ void Renderer::SaveScreenshotOnThread(u8* data, size_t width, size_t height, std
}
#endif

void Renderer::SaveScreenshot(u8* ptr, size_t width, size_t height)
void Renderer::SaveScreenshot(u8* ptr, size_t width, size_t height, std::string filename)
{
std::lock_guard<std::mutex> lk(s_criticalScreenshot);
#if defined(HAVE_WX) && HAVE_WX
// Create wxImage

std::thread thread(SaveScreenshotOnThread, ptr, width, height, s_sScreenshotName);
std::thread thread(SaveScreenshotOnThread, ptr, width, height, filename);
#ifdef _WIN32
SetThreadPriority(thread.native_handle(), THREAD_PRIORITY_BELOW_NORMAL);
#endif
Expand All @@ -309,11 +309,10 @@ void Renderer::SaveScreenshot(u8* ptr, size_t width, size_t height)
OSD::AddMessage("Saving Screenshot... ", 2000);

#else
SaveTGA(s_sScreenshotName.c_str(), width, height, ptr);
SaveTGA(filename.c_str(), width, height, ptr);
free(ptr);
#endif

s_sScreenshotName.clear();
s_bScreenshot = false;
}

Expand Down
2 changes: 1 addition & 1 deletion Source/Core/VideoCommon/Src/RenderBase.h
Expand Up @@ -124,7 +124,7 @@ class Renderer
#if defined(HAVE_WX) && HAVE_WX
static void SaveScreenshotOnThread(u8* data, size_t width, size_t height, std::string filename);
#endif
static void SaveScreenshot(u8* ptr, size_t width, size_t height);
static void SaveScreenshot(u8* ptr, size_t width, size_t height, std::string filename);

static volatile bool s_bScreenshot;
static std::mutex s_criticalScreenshot;
Expand Down

0 comments on commit 74b5fb3

Please sign in to comment.