diff --git a/engines/grim/gfx_opengl_shaders.cpp b/engines/grim/gfx_opengl_shaders.cpp index 8eb7300e93b..3cf9f9adf40 100644 --- a/engines/grim/gfx_opengl_shaders.cpp +++ b/engines/grim/gfx_opengl_shaders.cpp @@ -2034,8 +2034,8 @@ static void readPixels(int x, int y, int width, int height, byte *buffer) { } Bitmap *GfxOpenGLS::getScreenshot(int w, int h, bool useStored) { -#ifndef USE_GLES2 Graphics::PixelBuffer src(Graphics::PixelFormat(4, 8, 8, 8, 8, 0, 8, 16, 24), _screenWidth * _screenHeight, DisposeAfterUse::YES); +#ifndef USE_GLES2 if (useStored) { glBindTexture(GL_TEXTURE_2D, _storedDisplay); char *buffer = new char[_screenWidth * _screenHeight * 4]; @@ -2044,13 +2044,12 @@ Bitmap *GfxOpenGLS::getScreenshot(int w, int h, bool useStored) { memcpy(src.getRawBuffer(), buffer, _screenWidth * _screenHeight * 4); delete[] buffer; - } else { + } else +#endif + { readPixels(0, 0, _screenWidth, _screenHeight, src.getRawBuffer()); } - return createScreenshotBitmap(src, w, h, false); -#else - return nullptr; -#endif + return createScreenshotBitmap(src, w, h, true); } void GfxOpenGLS::createSpecialtyTextureFromScreen(uint id, uint8 *data, int x, int y, int width, int height) {