From e32603e6c06e60924a9aaf187bf7c417557c0048 Mon Sep 17 00:00:00 2001 From: fgenesis Date: Fri, 29 Apr 2022 10:34:10 +0200 Subject: [PATCH] less compression for screenshots so taking one is faster --- BBGE/Core.cpp | 2 +- BBGE/Image.cpp | 8 ++++++-- BBGE/Image.h | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/BBGE/Core.cpp b/BBGE/Core.cpp index 225a5c1..4517a36 100644 --- a/BBGE/Core.cpp +++ b/BBGE/Core.cpp @@ -2265,7 +2265,7 @@ bool Core::saveScreenshot(const std::string &filename, bool png) size_t w = getWindowWidth(), h = getWindowHeight(); unsigned char *imageData = grabCenteredScreenshot(w, h); bool ok = png - ? pngSaveRGBA(filename.c_str(), w, h, imageData) + ? pngSaveRGBA(filename.c_str(), w, h, imageData, 3) : tgaSaveRGBA(filename.c_str(), w, h, imageData); delete [] imageData; return ok; diff --git a/BBGE/Image.cpp b/BBGE/Image.cpp index 88d1ab9..63cf363 100644 --- a/BBGE/Image.cpp +++ b/BBGE/Image.cpp @@ -5,9 +5,13 @@ #include "ttvfs_stdio.h" #include "Base.h" -bool pngSaveRGBA(const char *filename, size_t width, size_t height, unsigned char *data) +bool pngSaveRGBA(const char *filename, size_t width, size_t height, unsigned char *data, unsigned compressLevel) { - return !!stbi_write_png(filename, (int)width, (int)height, 4, data, width * 4); + const int oldlevel = stbi_write_png_compression_level; + stbi_write_png_compression_level = compressLevel; // HACK: ugly API but what can you do + bool ok = !!stbi_write_png(filename, (int)width, (int)height, 4, data, width * 4); + stbi_write_png_compression_level = oldlevel; + return ok; } bool tgaSaveRGBA(const char *filename, size_t width, size_t height, unsigned char *data) diff --git a/BBGE/Image.h b/BBGE/Image.h index 040144f..c304537 100644 --- a/BBGE/Image.h +++ b/BBGE/Image.h @@ -5,7 +5,7 @@ bool tgaSaveRGBA(const char *filename, size_t width, size_t height, unsigned char *data); bool zgaSaveRGBA(const char *filename, size_t width, size_t height, unsigned char *data); -bool pngSaveRGBA(const char *filename, size_t width, size_t height, unsigned char *data); +bool pngSaveRGBA(const char *filename, size_t width, size_t height, unsigned char *data, unsigned compressLevel); struct ImageData {