[Scummvm-git-logs] scummvm master -> 0d928bbd069b3991e419f2875237ea6ba66dcd5e
aquadran
noreply at scummvm.org
Thu Oct 31 10:50:59 UTC 2024
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
0d928bbd06 WINTERMUTE: Adapt color key to TGA decoder color components layout.
Commit: 0d928bbd069b3991e419f2875237ea6ba66dcd5e
https://github.com/scummvm/scummvm/commit/0d928bbd069b3991e419f2875237ea6ba66dcd5e
Author: PaweÅ KoÅodziejski (aquadran at gmail.com)
Date: 2024-10-31T11:50:53+01:00
Commit Message:
WINTERMUTE: Adapt color key to TGA decoder color components layout.
ScummVM TGA decoder interpreting pallete component as RGB, but TGA has GBR
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 5376eb2d44b..961e5e6ee6e 100644
--- a/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
@@ -137,6 +137,16 @@ bool BaseSurfaceOpenGL3D::create(const Common::String &filename, bool defaultCK,
ckBlue = 255;
}
+ //
+ // ScummVM TGA decoder interpreting palette as RGB, but TGA data has as BGR
+ // swap R and B color components
+ //
+ if (img.getPaletteCount() != 0 && _filename.hasSuffix(".tga")) {
+ byte tmp = ckBlue;
+ ckBlue = ckRed;
+ ckRed = tmp;
+ }
+
_ckDefault = defaultCK;
_ckRed = ckRed;
_ckGreen = ckGreen;
diff --git a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
index 1122ef0614e..8a8b119e5fc 100644
--- a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
+++ b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
@@ -121,6 +121,16 @@ bool BaseSurfaceOSystem::finishLoad() {
_surface->free();
delete _surface;
+ //
+ // ScummVM TGA decoder interpreting palette as RGB, but TGA data has as BGR
+ // swap R and B color components
+ //
+ if (image->getPaletteCount() != 0 && _filename.hasSuffix(".tga")) {
+ byte tmp = _ckBlue;
+ _ckBlue = _ckRed;
+ _ckRed = tmp;
+ }
+
bool needsColorKey = false;
bool replaceAlpha = true;
if (image->getSurface()->format.bytesPerPixel == 1) {
More information about the Scummvm-git-logs
mailing list