[Scummvm-git-logs] scummvm master -> 1852df571d7eeb6df979b7e2679be09ef4d95fda

aquadran noreply at scummvm.org
Thu Oct 31 11:40:42 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:
1852df571d WINTERMUTE: Amend to commit with TGA handling.


Commit: 1852df571d7eeb6df979b7e2679be09ef4d95fda
    https://github.com/scummvm/scummvm/commit/1852df571d7eeb6df979b7e2679be09ef4d95fda
Author: Paweł Kołodziejski (aquadran at gmail.com)
Date: 2024-10-31T12:40:36+01:00

Commit Message:
WINTERMUTE: Amend to commit with TGA handling.

Handle gfx swap data also for 3D renderer. Revert for 2D renderer for now.

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 961e5e6ee6e..aa9b7da457d 100644
--- a/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
+++ b/engines/wintermute/base/gfx/opengl/base_surface_opengl3d.cpp
@@ -161,9 +161,17 @@ bool BaseSurfaceOpenGL3D::create(const Common::String &filename, bool defaultCK,
 	}
 
 #ifdef SCUMM_BIG_ENDIAN
-	_imageData = img.getSurface()->convertTo(Graphics::PixelFormat(4, 8, 8, 8, 8, 24, 16, 8, 0), img.getPalette(), img.getPaletteCount());
+	if (img.getSurface()->format.bytesPerPixel == 1 && _filename.hasSuffix(".tga")) {
+		_imageData = img.getSurface()->convertTo(Graphics::PixelFormat(4, 8, 8, 8, 8, 24, 0, 8, 16), img.getPalette(), img.getPaletteCount());
+	} else {
+		_imageData = img.getSurface()->convertTo(Graphics::PixelFormat(4, 8, 8, 8, 8, 24, 16, 8, 0), img.getPalette(), img.getPaletteCount());
+	}
 #else
-	_imageData = img.getSurface()->convertTo(Graphics::PixelFormat(4, 8, 8, 8, 8, 0, 8, 16, 24), img.getPalette(), img.getPaletteCount());
+	if (img.getSurface()->format.bytesPerPixel == 1 && _filename.hasSuffix(".tga")) {
+		_imageData = img.getSurface()->convertTo(Graphics::PixelFormat(4, 8, 8, 8, 8, 16, 8, 0, 24), img.getPalette(), img.getPaletteCount());
+	} else {
+		_imageData = img.getSurface()->convertTo(Graphics::PixelFormat(4, 8, 8, 8, 8, 0, 8, 16, 24), img.getPalette(), img.getPaletteCount());
+	}
 #endif
 
 	if (BaseEngine::instance().getTargetExecutable() < WME_LITE) {
diff --git a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
index 8a8b119e5fc..1122ef0614e 100644
--- a/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
+++ b/engines/wintermute/base/gfx/osystem/base_surface_osystem.cpp
@@ -121,16 +121,6 @@ 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