[Scummvm-git-logs] scummvm master -> ff49cb2303538e090101f2f509e77c43ac46da79

sev- sev at scummvm.org
Sat Aug 15 12:51:55 UTC 2020


This automated email contains information about 6 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
29533d9c5e GRAPHICS: MACGUI: Fix typo in findBestColor
5ea23f666f DIRECTOR: Make rendering tests work in 32bpp
c03149d87f DIRECTOR: Blit images directly to 32-bit in 32bpp mode
6d72ebd1e2 GRAPHICS: MACGUI: Made MacButtons and desktop render in 32bpp
56fddcb965 GRAPHICS: MACGUI: Tidy up code
ff49cb2303 GRAPHICS: MACGUI: Make pattern drawing 32bpp-aware


Commit: 29533d9c5e55362e47ce661c64385342071377a3
    https://github.com/scummvm/scummvm/commit/29533d9c5e55362e47ce661c64385342071377a3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-15T14:50:26+02:00

Commit Message:
GRAPHICS: MACGUI: Fix typo in findBestColor

Changed paths:
    graphics/macgui/macwindowmanager.cpp


diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index 950f016f8a..b996d4644d 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -943,7 +943,7 @@ uint MacWindowManager::findBestColor(byte cr, byte cg, byte cb) {
 	uint bestColor = 0;
 	double min = 0xFFFFFFFF;
 
-	if (_pixelformat.bytesPerPixel == 24)
+	if (_pixelformat.bytesPerPixel == 4)
 		return cr << 24 | cg << 16 | cb << 8 | 0xff;
 
 	uint32 color = cr << 16 | cg << 8 | cb;


Commit: 5ea23f666f32d5a0973672d809fdcac6dfe80d21
    https://github.com/scummvm/scummvm/commit/5ea23f666f32d5a0973672d809fdcac6dfe80d21
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-15T14:50:26+02:00

Commit Message:
DIRECTOR: Make rendering tests work in 32bpp

Changed paths:
    engines/director/graphics.cpp
    engines/director/tests.cpp


diff --git a/engines/director/graphics.cpp b/engines/director/graphics.cpp
index a9cf04927d..23d1416de0 100644
--- a/engines/director/graphics.cpp
+++ b/engines/director/graphics.cpp
@@ -725,7 +725,12 @@ static const byte mouseDown[] = {
  * All other color ids can be converted with: 255 - colorId.
  **/
 uint32 DirectorEngine::transformColor(uint32 color) {
-	return 255 - color;
+	if (_pixelformat.bytesPerPixel == 1)
+		return 255 - color;
+
+	color = 255 - color;
+
+	return _wm->findBestColor(_currentPalette[color * 3], _currentPalette[color * 3 + 1], _currentPalette[color * 3 + 2]);
 }
 
 void DirectorEngine::loadPatterns() {
diff --git a/engines/director/tests.cpp b/engines/director/tests.cpp
index 5e54cbe865..dde632f9c9 100644
--- a/engines/director/tests.cpp
+++ b/engines/director/tests.cpp
@@ -54,8 +54,8 @@ void Window::testFontScaling() {
 
 	Graphics::ManagedSurface surface;
 
-	surface.create(w, h);
-	surface.clear(255);
+	surface.create(w, h, _wm->_pixelformat);
+	surface.clear(_wm->_colorWhite);
 
 	Graphics::MacFont origFont(Graphics::kMacFontNewYork, 18);
 
@@ -93,7 +93,10 @@ void Window::testFontScaling() {
 
 			for (x = x1; x < x1 + 6; x++)
 				for (y = y1; y < y1 + 6; y++)
-					*((byte *)surface.getBasePtr(x, y)) = _vm->transformColor(i * 16 + j);
+					if (_wm->_pixelformat.bytesPerPixel == 1)
+						*((byte *)surface.getBasePtr(x, y)) = _vm->transformColor(i * 16 + j);
+					else
+						*((uint32 *)surface.getBasePtr(x, y)) = _vm->transformColor(i * 16 + j);
 		}
 	}
 


Commit: c03149d87fc219e3755ae45045df44c8e22e01ed
    https://github.com/scummvm/scummvm/commit/c03149d87fc219e3755ae45045df44c8e22e01ed
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-15T14:50:26+02:00

Commit Message:
DIRECTOR: Blit images directly to 32-bit in 32bpp mode

Changed paths:
    engines/director/images.cpp


diff --git a/engines/director/images.cpp b/engines/director/images.cpp
index f5f4ecc066..517fd62946 100644
--- a/engines/director/images.cpp
+++ b/engines/director/images.cpp
@@ -21,6 +21,7 @@
  */
 
 #include "common/substream.h"
+#include "graphics/macgui/macwindowmanager.h"
 #include "image/codecs/bmp_raw.h"
 
 #include "director/director.h"
@@ -241,14 +242,18 @@ bool BITDDecoder::loadStream(Common::SeekableReadStream &stream) {
 						if (paletted) {
 							*((byte *)_surface->getBasePtr(x, y)) = color;
 						} else {
-							*((uint32 *)_surface->getBasePtr(x, y)) = color ? 0xffffff : 0;
+							*((uint32 *)_surface->getBasePtr(x, y)) = color ? g_director->_wm->_colorWhite : g_director->_wm->_colorBlack;
 						}
 					}
 					break;
 
 				case 8:
 					// this calculation is wrong.. need a demo with colours.
-					*((byte *)_surface->getBasePtr(x, y)) = g_director->transformColor(pixels[(y * _surface->w) + x + (y * offset)]);
+					if (paletted) {
+						*((byte *)_surface->getBasePtr(x, y)) = g_director->transformColor(pixels[(y * _surface->w) + x + (y * offset)]);
+					} else {
+						*((uint32 *)_surface->getBasePtr(x, y)) = g_director->transformColor(pixels[(y * _surface->w) + x + (y * offset)]);
+					}
 					x++;
 					break;
 


Commit: 6d72ebd1e2febeda4ff137ddcf28c61cdf2526e3
    https://github.com/scummvm/scummvm/commit/6d72ebd1e2febeda4ff137ddcf28c61cdf2526e3
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-15T14:50:26+02:00

Commit Message:
GRAPHICS: MACGUI: Made MacButtons and desktop render in 32bpp

Changed paths:
    graphics/macgui/macbutton.cpp
    graphics/macgui/macwindowmanager.cpp


diff --git a/graphics/macgui/macbutton.cpp b/graphics/macgui/macbutton.cpp
index 84afd158b6..33e3c1a55f 100644
--- a/graphics/macgui/macbutton.cpp
+++ b/graphics/macgui/macbutton.cpp
@@ -55,7 +55,7 @@ MacButton::MacButton(MacButtonType buttonType, TextAlign textAlignment, MacWidge
 		break;
 	}
 
-	_composeSurface->create(_dims.width(), _dims.height());
+	_composeSurface->create(_dims.width(), _dims.height(), _wm->_pixelformat);
 	_composeSurface->clear(_bgcolor);
 }
 
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index b996d4644d..a5723a4932 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -464,11 +464,15 @@ void MacWindowManager::drawDesktop() {
 	if (_desktopBmp) {
 		for (uint i = 0; i < _desktop->w; ++i) {
 			for (uint j = 0; j < _desktop->h; ++j) {
-				uint32 color = *(uint32*)_desktopBmp->getBasePtr(i % _desktopBmp->w, j % _desktopBmp->h);
-				byte r, g, b;
-				_desktopBmp->format.colorToRGB(color, r, g, b);
-				if (color > 0) {
-					*((byte *)_desktop->getBasePtr(i, j)) = findBestColor(r, g, b);
+				uint32 color = *(uint32 *)_desktopBmp->getBasePtr(i % _desktopBmp->w, j % _desktopBmp->h);
+				if (_pixelformat.bytesPerPixel == 1) {
+					byte r, g, b;
+					_desktopBmp->format.colorToRGB(color, r, g, b);
+					if (color > 0) {
+						*((byte *)_desktop->getBasePtr(i, j)) = findBestColor(r, g, b);
+					}
+				} else {
+					*((uint32 *)_desktop->getBasePtr(i, j)) = color;
 				}
 			}
 		}


Commit: 56fddcb965652bf9fdd274d05601fd1ea2d94cfa
    https://github.com/scummvm/scummvm/commit/56fddcb965652bf9fdd274d05601fd1ea2d94cfa
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-15T14:50:27+02:00

Commit Message:
GRAPHICS: MACGUI: Tidy up code

Changed paths:
    graphics/macgui/macwindowmanager.cpp


diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index a5723a4932..1a538cafab 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -921,6 +921,8 @@ void MacWindowManager::popCursor() {
 ///////////////////
 // Palette stuff
 ///////////////////
+#define LOOKUPCOLOR(x) _color ## x = findBestColor(palette[kColor ## x * 3], palette[kColor ## x  * 3 + 1], palette[kColor ## x * 3 + 2]);
+
 void MacWindowManager::passPalette(const byte *pal, uint size) {
 	if (_palette)
 		free(_palette);
@@ -931,25 +933,25 @@ void MacWindowManager::passPalette(const byte *pal, uint size) {
 
 	_colorHash.clear();
 
-	_colorWhite = findBestColor(palette[kColorWhite * 3], palette[kColorWhite * 3 + 1], palette[kColorWhite * 3 + 2]);
-	_colorGray80 = findBestColor(palette[kColorGray80 * 3], palette[kColorGray80 * 3 + 1], palette[kColorGray80 * 3 + 2]);
-	_colorGray88 = findBestColor(palette[kColorGray88 * 3], palette[kColorGray88 * 3 + 1], palette[kColorGray88 * 3 + 2]);
-	_colorGrayEE = findBestColor(palette[kColorGrayEE * 3], palette[kColorGrayEE * 3 + 1], palette[kColorGrayEE * 3 + 2]);
-	_colorBlack = findBestColor(palette[kColorBlack * 3], palette[kColorBlack * 3 + 1], palette[kColorBlack * 3 + 2]);
-	_colorGreen = findBestColor(palette[kColorGreen * 3], palette[kColorGreen * 3 + 1], palette[kColorGreen * 3 + 2]);
-	_colorGreen2 = findBestColor(palette[kColorGreen2 * 3], palette[kColorGreen2 * 3 + 1], palette[kColorGreen2 * 3 + 2]);
+	LOOKUPCOLOR(White);
+	LOOKUPCOLOR(Gray80);
+	LOOKUPCOLOR(Gray88);
+	LOOKUPCOLOR(GrayEE);
+	LOOKUPCOLOR(Black);
+	LOOKUPCOLOR(Green);
+	LOOKUPCOLOR(Green2);
 
 	drawDesktop();
 	setFullRefresh(true);
 }
 
 uint MacWindowManager::findBestColor(byte cr, byte cg, byte cb) {
-	uint bestColor = 0;
-	double min = 0xFFFFFFFF;
-
 	if (_pixelformat.bytesPerPixel == 4)
 		return cr << 24 | cg << 16 | cb << 8 | 0xff;
 
+	uint bestColor = 0;
+	double min = 0xFFFFFFFF;
+
 	uint32 color = cr << 16 | cg << 8 | cb;
 
 	if (_colorHash.contains(color))


Commit: ff49cb2303538e090101f2f509e77c43ac46da79
    https://github.com/scummvm/scummvm/commit/ff49cb2303538e090101f2f509e77c43ac46da79
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-08-15T14:50:27+02:00

Commit Message:
GRAPHICS: MACGUI: Make pattern drawing 32bpp-aware

Changed paths:
    graphics/macgui/macwindow.cpp


diff --git a/graphics/macgui/macwindow.cpp b/graphics/macgui/macwindow.cpp
index bd58ae701c..e7a333c600 100644
--- a/graphics/macgui/macwindow.cpp
+++ b/graphics/macgui/macwindow.cpp
@@ -380,11 +380,19 @@ void MacWindow::drawPattern() {
 	byte *pat = _wm->getPatterns()[_pattern - 1];
 	for (int y = 0; y < _composeSurface->h; y++) {
 		for (int x = 0; x < _composeSurface->w; x++) {
-			byte *dst = (byte *)_composeSurface->getBasePtr(x, y);
-			if (pat[y % 8] & (1 << (7 - (x % 8))))
-				*dst = _wm->_colorBlack;
-			else
-				*dst = _wm->_colorWhite;
+			if (_wm->_pixelformat.bytesPerPixel == 1) {
+				byte *dst = (byte *)_composeSurface->getBasePtr(x, y);
+				if (pat[y % 8] & (1 << (7 - (x % 8))))
+					*dst = _wm->_colorBlack;
+				else
+					*dst = _wm->_colorWhite;
+			} else {
+				uint32 *dst = (uint32 *)_composeSurface->getBasePtr(x, y);
+				if (pat[y % 8] & (1 << (7 - (x % 8))))
+					*dst = _wm->_colorBlack;
+				else
+					*dst = _wm->_colorWhite;
+			}
 		}
 	}
 }




More information about the Scummvm-git-logs mailing list