summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorewew ukek <ewewukek@gmail.com>2024-04-16 18:33:14 +0000
committerFedja Beader <fedja@protonmail.ch>2024-04-16 18:33:14 +0000
commit6e02a3cbe4c3e9faa9aab458bdf1c220eb7b4e32 (patch)
tree53f6c164a1360094e5d0591834bdcbbd8a5fdfa0
parent1a77b01a78a408b54ef709cb6df0d07893843c78 (diff)
downloadplus-6e02a3cbe4c3e9faa9aab458bdf1c220eb7b4e32.tar.gz
plus-6e02a3cbe4c3e9faa9aab458bdf1c220eb7b4e32.tar.bz2
plus-6e02a3cbe4c3e9faa9aab458bdf1c220eb7b4e32.tar.xz
plus-6e02a3cbe4c3e9faa9aab458bdf1c220eb7b4e32.zip
Fix screenshot size for OpenGL modes
Screenshot code didn't take into account scaling setting which resulted in cropped screenshots. I didn't touch SDL modes because they don't support scaling and I'm not sure how that would be implemented for software render. **** mana/plus!70
-rw-r--r--src/resources/mobileopenglscreenshothelper.cpp12
-rw-r--r--src/resources/openglscreenshothelper.cpp12
2 files changed, 14 insertions, 10 deletions
diff --git a/src/resources/mobileopenglscreenshothelper.cpp b/src/resources/mobileopenglscreenshothelper.cpp
index fb0be453a..6772c8fd0 100644
--- a/src/resources/mobileopenglscreenshothelper.cpp
+++ b/src/resources/mobileopenglscreenshothelper.cpp
@@ -50,15 +50,17 @@ MobileOpenGLScreenshotHelper::~MobileOpenGLScreenshotHelper()
void MobileOpenGLScreenshotHelper::prepare()
{
if (config.getBoolValue("usefbo"))
- graphicsManager.createFBO(mainGraphics->mWidth,
- mainGraphics->mHeight,
- &mFbo);
+ graphicsManager.createFBO(mainGraphics->mActualWidth,
+ mainGraphics->mActualHeight,
+ &mFbo);
}
SDL_Surface *MobileOpenGLScreenshotHelper::getScreenshot()
{
- const int h = mainGraphics->mHeight;
- const int w = mainGraphics->mWidth - (mainGraphics->mWidth % 4);
+ const int h = mainGraphics->mActualHeight;
+ const int w = mainGraphics->mActualWidth
+ -(mainGraphics->mActualWidth % 4);
+
GLint pack = 1;
SDL_Surface *const tmpImage = MSDL_CreateRGBSurface(
diff --git a/src/resources/openglscreenshothelper.cpp b/src/resources/openglscreenshothelper.cpp
index b0d21e81c..975b6bd35 100644
--- a/src/resources/openglscreenshothelper.cpp
+++ b/src/resources/openglscreenshothelper.cpp
@@ -49,15 +49,17 @@ OpenGLScreenshotHelper::~OpenGLScreenshotHelper()
void OpenGLScreenshotHelper::prepare()
{
if (config.getBoolValue("usefbo"))
- graphicsManager.createFBO(mainGraphics->mWidth,
- mainGraphics->mHeight,
- &mFbo);
+ graphicsManager.createFBO(mainGraphics->mActualWidth,
+ mainGraphics->mActualHeight,
+ &mFbo);
}
SDL_Surface *OpenGLScreenshotHelper::getScreenshot()
{
- const int h = mainGraphics->mHeight;
- const int w = mainGraphics->mWidth - (mainGraphics->mWidth % 4);
+ const int h = mainGraphics->mActualHeight;
+ const int w = mainGraphics->mActualWidth
+ -(mainGraphics->mActualWidth % 4);
+
GLint pack = 1;
SDL_Surface *const screenshot = MSDL_CreateRGBSurface(