[Scummvm-git-logs] scummvm master -> e2fb531863d8cbe6f7791077888535b5840cc6ba
aquadran
noreply at scummvm.org
Thu Jun 12 10:24:13 UTC 2025
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .
Summary:
e2fb531863 WINTERMUTE: Implement greyscale conversion for some savegame images
Commit: e2fb531863d8cbe6f7791077888535b5840cc6ba
https://github.com/scummvm/scummvm/commit/e2fb531863d8cbe6f7791077888535b5840cc6ba
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2025-06-12T12:24:07+02:00
Commit Message:
WINTERMUTE: Implement greyscale conversion for some savegame images
Changed paths:
engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
diff --git a/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp b/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
index e70e7e04ab6..1ccd415cba4 100644
--- a/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
@@ -146,6 +146,17 @@ bool BaseSurfaceOpenGL3D::create(const Common::String &filename, bool defaultCK,
_imageData = img.getSurface()->convertTo(Graphics::PixelFormat(4, 8, 8, 8, 8, 0, 8, 16, 24), img.getPalette(), img.getPaletteCount());
#endif
+ if (_filename.matchString("savegame:*g", true)) {
+ uint8 r, g, b, a;
+ for (int x = 0; x < _imageData->w; x++) {
+ for (int y = 0; y < _imageData->h; y++) {
+ _imageData->format.colorToARGB(_imageData->getPixel(x, y), a, r, g, b);
+ uint8 grey = (uint8)(0.2126f * r + 0.7152f * g + 0.0722f * b);
+ _imageData->setPixel(x, y, _imageData->format.ARGBToColor(a, grey, grey, grey));
+ }
+ }
+ }
+
if (_filename.hasSuffix(".bmp")) {
// Ignores alpha channel for BMPs
needsColorKey = true;
diff --git a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
index 485874e94a7..09456314f57 100644
--- a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
+++ b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
@@ -110,12 +110,6 @@ bool BaseSurfaceOSystem::finishLoad() {
_width = image->getSurface()->w;
_height = image->getSurface()->h;
- bool isSaveGameGrayscale = _filename.matchString("savegame:*g", true);
- if (isSaveGameGrayscale) {
- warning("grayscaleConversion not yet implemented");
- // FIBITMAP *newImg = FreeImage_ConvertToGreyscale(img); TODO
- }
-
_surface->free();
delete _surface;
@@ -133,6 +127,17 @@ bool BaseSurfaceOSystem::finishLoad() {
_surface->copyFrom(*image->getSurface());
}
+ if (_filename.matchString("savegame:*g", true)) {
+ uint8 r, g, b, a;
+ for (int x = 0; x < _surface->w; x++) {
+ for (int y = 0; y < _surface->h; y++) {
+ _surface->format.colorToARGB(_surface->getPixel(x, y), a, r, g, b);
+ uint8 grey = (uint8)(0.2126f * r + 0.7152f * g + 0.0722f * b);
+ _surface->setPixel(x, y, _surface->format.ARGBToColor(a, grey, grey, grey));
+ }
+ }
+ }
+
if (_filename.hasSuffix(".bmp")) {
// Ignores alpha channel for BMPs
needsColorKey = true;
More information about the Scummvm-git-logs
mailing list