Merge pull request #4883 from JeffM2501/highdpi_screenshot
Some checks failed
Android / build (arm64) (push) Has been cancelled
Android / build (x86_64) (push) Has been cancelled
CMakeBuilds / Windows Build (push) Has been cancelled
CMakeBuilds / Linux Build (push) Has been cancelled
Linux / build (i386, i386, /user/bin, 32) (push) Has been cancelled
Linux / build (x86_64, amd64, /user/bin, 64) (push) Has been cancelled
Linux Examples / build (push) Has been cancelled
macOS / build (push) Has been cancelled
WebAssembly / build (push) Has been cancelled
Windows / build (ARM64, ARM64, msvc16, winarm64) (push) Has been cancelled
Windows / build (i686, pe-i386, mingw-w64, win32) (push) Has been cancelled
Windows / build (x64, x64, msvc16, win64) (push) Has been cancelled
Windows / build (x86, Win32, msvc16, win32) (push) Has been cancelled
Windows / build (x86_64, pe-x86-64, mingw-w64, win64) (push) Has been cancelled
Windows Examples / build (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled

[RCORE] Fix issue with screenshots on HIGHDPI displays
This commit is contained in:
Ray 2025-04-12 20:56:36 +02:00 committed by GitHub
commit cb111ad15e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1879,7 +1879,10 @@ void TakeScreenshot(const char *fileName)
// Security check to (partially) avoid malicious code
if (strchr(fileName, '\'') != NULL) { TRACELOG(LOG_WARNING, "SYSTEM: Provided fileName could be potentially malicious, avoid [\'] character"); return; }
Vector2 scale = GetWindowScaleDPI();
// apply a scale if we are doing HIGHDPI auto-scaling
Vector2 scale = { 1,1 };
if (IsWindowState(FLAG_WINDOW_HIGHDPI)) scale = GetWindowScaleDPI();
unsigned char *imgData = rlReadScreenPixels((int)((float)CORE.Window.render.width*scale.x), (int)((float)CORE.Window.render.height*scale.y));
Image image = { imgData, (int)((float)CORE.Window.render.width*scale.x), (int)((float)CORE.Window.render.height*scale.y), 1, PIXELFORMAT_UNCOMPRESSED_R8G8B8A8 };