mirror of
https://github.com/libretro/Play-.git
synced 2025-03-04 01:07:01 +00:00
Add screencapture method for OpenGL
This commit is contained in:
parent
6d4a78b3da
commit
cee812eb02
@ -2135,6 +2135,15 @@ void CGSH_OpenGL::ReadFramebuffer(uint32 width, uint32 height, void* buffer)
|
||||
#endif
|
||||
}
|
||||
|
||||
Framework::CBitmap CGSH_OpenGL::GetScreenshot()
|
||||
{
|
||||
GLint viewport[4];
|
||||
glGetIntegerv(GL_VIEWPORT, viewport);
|
||||
auto imgbuffer = Framework::CBitmap(viewport[2], viewport[3], 32);
|
||||
glReadPixels(viewport[0], viewport[1], viewport[2], viewport[3], GL_RGBA, GL_UNSIGNED_BYTE, imgbuffer.GetPixels());
|
||||
return imgbuffer.FlipVertical();
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
// Framebuffer
|
||||
/////////////////////////////////////////////////////////////
|
||||
|
@ -29,6 +29,8 @@ public:
|
||||
void ProcessClutTransfer(uint32, uint32) override;
|
||||
void ReadFramebuffer(uint32, uint32, void*) override;
|
||||
|
||||
Framework::CBitmap GetScreenshot() override;
|
||||
|
||||
protected:
|
||||
void PalCache_Flush();
|
||||
void LoadPreferences();
|
||||
|
@ -375,7 +375,7 @@ void CGSHandler::Flip(bool showOnly)
|
||||
|
||||
void CGSHandler::FlipImpl()
|
||||
{
|
||||
|
||||
OnFlipComplete();
|
||||
}
|
||||
|
||||
void CGSHandler::MarkNewFrame()
|
||||
@ -1660,3 +1660,8 @@ void CGSHandler::ThreadProc()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Framework::CBitmap CGSHandler::GetScreenshot()
|
||||
{
|
||||
throw std::runtime_error("Screenshot feature is not implemented in current backend.");
|
||||
}
|
||||
|
@ -7,6 +7,7 @@
|
||||
#include <array>
|
||||
#include <boost/signals2.hpp>
|
||||
|
||||
#include "bitmap/Bitmap.h"
|
||||
#include "Types.h"
|
||||
#include "Convertible.h"
|
||||
#include "../MailBox.h"
|
||||
@ -629,6 +630,10 @@ public:
|
||||
bool GetCrtIsInterlaced() const;
|
||||
bool GetCrtIsFrameMode() const;
|
||||
|
||||
virtual Framework::CBitmap GetScreenshot();
|
||||
|
||||
boost::signals2::signal<void()> OnFlipComplete;
|
||||
|
||||
boost::signals2::signal<void (uint32)> OnNewFrame;
|
||||
|
||||
protected:
|
||||
|
Loading…
x
Reference in New Issue
Block a user