[Scummvm-git-logs] scummvm master -> 494a92ee194b0b8c3cc623f36aed56ee683c3e8e

djsrv dservilla at gmail.com
Fri Aug 7 21:24:47 UTC 2020


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

Summary:
61cfbdc469 GRAPHICS: MACGUI: Add more colors as properties
494a92ee19 GRAPHICS: MACGUI: Add transparency to border bmps


Commit: 61cfbdc469a3cb23cbd66c6f2d31874f4d1919fb
    https://github.com/scummvm/scummvm/commit/61cfbdc469a3cb23cbd66c6f2d31874f4d1919fb
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-07T16:47:19-04:00

Commit Message:
GRAPHICS: MACGUI: Add more colors as properties

Finding the closets color in the current palette is necessary for
transparency in bitmap borders to work.

Changed paths:
    graphics/macgui/macbutton.cpp
    graphics/macgui/macmenu.cpp
    graphics/macgui/mactext.cpp
    graphics/macgui/mactextwindow.cpp
    graphics/macgui/macwidget.cpp
    graphics/macgui/macwindow.cpp
    graphics/macgui/macwindowborder.cpp
    graphics/macgui/macwindowmanager.cpp
    graphics/macgui/macwindowmanager.h


diff --git a/graphics/macgui/macbutton.cpp b/graphics/macgui/macbutton.cpp
index 92a5b558e4..84afd158b6 100644
--- a/graphics/macgui/macbutton.cpp
+++ b/graphics/macgui/macbutton.cpp
@@ -137,7 +137,7 @@ bool MacButton::draw(ManagedSurface *g, bool forceRedraw) {
 	if (!MacButton::draw(forceRedraw))
 		return false;
 
-	g->transBlitFrom(*_composeSurface, _composeSurface->getBounds(), Common::Point(_dims.left - 2, _dims.top - 2), kColorGreen2);
+	g->transBlitFrom(*_composeSurface, _composeSurface->getBounds(), Common::Point(_dims.left - 2, _dims.top - 2), _wm->_colorGreen2);
 
 	return true;
 }
diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index c2426a2e3c..72dd490d3a 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -776,14 +776,14 @@ bool MacMenu::draw(ManagedSurface *g, bool forceRedraw) {
 
 	_contentIsDirty = false;
 
-	_screen.clear(kColorGreen);
+	_screen.clear(_wm->_colorGreen);
 
 	drawFilledRoundRect(&_screen, r, kDesktopArc, _wm->_colorWhite);
 	r.top = 7;
 	_screen.fillRect(r, _wm->_colorWhite);
 	r.top = kMenuHeight - 1;
 	r.bottom++;
-	_screen.fillRect(r, kColorGreen);
+	_screen.fillRect(r, _wm->_colorGreen);
 	r.bottom--;
 	_screen.fillRect(r, _wm->_colorBlack);
 
@@ -832,7 +832,7 @@ bool MacMenu::draw(ManagedSurface *g, bool forceRedraw) {
 		renderSubmenu(_menustack[i], (i == _menustack.size() - 1));
 	}
 
-	g->transBlitFrom(_screen, kColorGreen);
+	g->transBlitFrom(_screen, _wm->_colorGreen);
 
 	if (!(_wm->_mode & kWMModalMenuMode))
 		g_system->copyRectToScreen(g->getPixels(), g->pitch, 0, 0, g->w, g->h);
@@ -893,7 +893,7 @@ void MacMenu::renderSubmenu(MacMenuSubMenu *menu, bool recursive) {
 				ty = 0;
 				accelX -= x;
 
-				_tempSurface.clear(kColorGreen);
+				_tempSurface.clear(_wm->_colorGreen);
 			}
 
 			if (menu->items[i]->unicode) {
@@ -920,7 +920,7 @@ void MacMenu::renderSubmenu(MacMenuSubMenu *menu, bool recursive) {
 					byte *dst = (byte *)_screen.getBasePtr(x, y+ii);
 					byte pat = _wm->getPatterns()[kPatternCheckers2 - 1][ii % 8];
 					for (int j = 0; j < r->width(); j++) {
-						if (*src != kColorGreen && (pat & (1 << (7 - (x + j) % 8))))
+						if (*src != _wm->_colorGreen && (pat & (1 << (7 - (x + j) % 8))))
 							*dst = *src;
 						src++;
 						dst++;
diff --git a/graphics/macgui/mactext.cpp b/graphics/macgui/mactext.cpp
index 12efda3df0..7dc1eb182a 100644
--- a/graphics/macgui/mactext.cpp
+++ b/graphics/macgui/mactext.cpp
@@ -895,7 +895,7 @@ bool MacText::draw(ManagedSurface *g, bool forceRedraw) {
 	if (!draw(forceRedraw))
 		return false;
 
-	g->transBlitFrom(*_composeSurface, _composeSurface->getBounds(), Common::Point(_dims.left - 2, _dims.top - 2), kColorGreen2);
+	g->transBlitFrom(*_composeSurface, _composeSurface->getBounds(), Common::Point(_dims.left - 2, _dims.top - 2), _wm->_colorGreen2);
 
 	return true;
 }
diff --git a/graphics/macgui/mactextwindow.cpp b/graphics/macgui/mactextwindow.cpp
index 8f397067c6..b76bfc30ab 100644
--- a/graphics/macgui/mactextwindow.cpp
+++ b/graphics/macgui/mactextwindow.cpp
@@ -162,7 +162,7 @@ bool MacTextWindow::draw(bool forceRedraw) {
 	if (_selectedText.endY != -1)
 		drawSelection();
 
-	_composeSurface->transBlitFrom(_borderSurface, kColorGreen);
+	_composeSurface->transBlitFrom(_borderSurface, _wm->_colorGreen);
 
 	return true;
 }
@@ -171,13 +171,13 @@ bool MacTextWindow::draw(ManagedSurface *g, bool forceRedraw) {
 	if (!draw(forceRedraw))
 		return false;
 
-	g->transBlitFrom(*_composeSurface, _composeSurface->getBounds(), Common::Point(_dims.left - 2, _dims.top - 2), kColorGreen2);
+	g->transBlitFrom(*_composeSurface, _composeSurface->getBounds(), Common::Point(_dims.left - 2, _dims.top - 2), _wm->_colorGreen2);
 
 	return true;
 }
 
 void MacTextWindow::blit(ManagedSurface *g, Common::Rect &dest) {
-	g->transBlitFrom(*_composeSurface, _composeSurface->getBounds(), dest, kColorGreen2);
+	g->transBlitFrom(*_composeSurface, _composeSurface->getBounds(), dest, _wm->_colorGreen2);
 }
 
 void MacTextWindow::drawSelection() {
diff --git a/graphics/macgui/macwidget.cpp b/graphics/macgui/macwidget.cpp
index 090948abe5..4367fd5427 100644
--- a/graphics/macgui/macwidget.cpp
+++ b/graphics/macgui/macwidget.cpp
@@ -82,7 +82,7 @@ bool MacWidget::draw(ManagedSurface *g, bool forceRedraw) {
 }
 
 void MacWidget::blit(ManagedSurface *g, Common::Rect &dest) {
-	g->transBlitFrom(*_composeSurface, _composeSurface->getBounds(), dest, kColorGreen2);
+	g->transBlitFrom(*_composeSurface, _composeSurface->getBounds(), dest, _wm->_colorGreen2);
 }
 
 void MacWidget::setColors(int fg, int bg) {
diff --git a/graphics/macgui/macwindow.cpp b/graphics/macgui/macwindow.cpp
index f8e8a248e1..f246baf3d4 100644
--- a/graphics/macgui/macwindow.cpp
+++ b/graphics/macgui/macwindow.cpp
@@ -177,14 +177,14 @@ bool MacWindow::draw(ManagedSurface *g, bool forceRedraw) {
 		return false;
 
 	g->blitFrom(*_composeSurface, Common::Rect(0, 0, _composeSurface->w, _composeSurface->h), Common::Point(_innerDims.left, _innerDims.top));
-	g->transBlitFrom(_borderSurface, Common::Rect(0, 0, _borderSurface.w, _borderSurface.h), Common::Point(_dims.left, _dims.top), kColorGreen);
+	g->transBlitFrom(_borderSurface, Common::Rect(0, 0, _borderSurface.w, _borderSurface.h), Common::Point(_dims.left, _dims.top), _wm->_colorGreen);
 
 	return true;
 }
 
 void MacWindow::blit(ManagedSurface *g, Common::Rect &dest) {
 	// Only the inner surface is blitted here
-	g->transBlitFrom(*_composeSurface, _composeSurface->getBounds(), dest, kColorGreen2);
+	g->transBlitFrom(*_composeSurface, _composeSurface->getBounds(), dest, _wm->_colorGreen2);
 }
 
 void MacWindow::center(bool toCenter) {
@@ -292,20 +292,20 @@ void MacWindow::drawBorder() {
 }
 
 void MacWindow::prepareBorderSurface(ManagedSurface *g) {
-	// We draw rect with outer kColorGreen2 and inner kColorGreen, so on 2 passes we cut out
+	// We draw rect with outer _wm->_colorGreen2 and inner _wm->_colorGreen, so on 2 passes we cut out
 	// scene by external shape of the border
 	int sz = kBorderWidth / 2;
 	int width = g->w;
 	int height = g->h;
-	g->clear(kColorGreen2);
-	g->fillRect(Common::Rect(sz, sz, width - sz, height - sz), kColorGreen);
+	g->clear(_wm->_colorGreen2);
+	g->fillRect(Common::Rect(sz, sz, width - sz, height - sz), _wm->_colorGreen);
 }
 
 void MacWindow::drawBorderFromSurface(ManagedSurface *g) {
-	g->clear(kColorGreen2);
+	g->clear(_wm->_colorGreen2);
 	Common::Rect inside = _innerDims;
 	inside.moveTo(_macBorder.getOffset().left, _macBorder.getOffset().top);
-	g->fillRect(inside, kColorGreen);
+	g->fillRect(inside, _wm->_colorGreen);
 
 	_macBorder.blitBorderInto(*g, _active, _wm);
 }
diff --git a/graphics/macgui/macwindowborder.cpp b/graphics/macgui/macwindowborder.cpp
index 19f055cb1a..45a35a906c 100644
--- a/graphics/macgui/macwindowborder.cpp
+++ b/graphics/macgui/macwindowborder.cpp
@@ -117,13 +117,10 @@ void MacWindowBorder::blitBorderInto(ManagedSurface &destination, bool active, M
 	}
 
 	srf.create(destination.w, destination.h, destination.format);
-	srf.fillRect(Common::Rect(srf.w, srf.h), kColorGreen2);
-
-	byte palette[kColorCount * 3];
-	g_system->getPaletteManager()->grabPalette(palette, 0, kColorCount);
+	srf.fillRect(Common::Rect(srf.w, srf.h), wm->_colorGreen2);
 
 	src->blit(srf, 0, 0, srf.w, srf.h, NULL, 0, wm);
-	destination.transBlitFrom(srf, kColorGreen2);
+	destination.transBlitFrom(srf, wm->_colorGreen2);
 	srf.free();
 }
 
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index ba496f2c2b..10f81b36f1 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -177,9 +177,12 @@ MacWindowManager::MacWindowManager(uint32 mode, MacPatterns *patterns) {
 	_engineR = nullptr;
 	_redrawEngineCallback = nullptr;
 
-	_colorBlack = 0;
-	_colorWhite = 2;
-	_colorOffWhite = 5;
+	_colorBlack = kColorBlack;
+	_colorGray = kColorGray;
+	_colorWhite = kColorWhite;
+	_colorGreen = kColorGreen;
+	_colorGreen2 = kColorGreen2;
+	_colorOffWhite = kColorOffWhite;
 
 	_fullRefresh = true;
 
@@ -817,63 +820,24 @@ void MacWindowManager::popCursor() {
 // Palette stuff
 ///////////////////
 void MacWindowManager::passPalette(const byte *pal, uint size) {
-	const byte *p = pal;
-
 	if (_palette)
 		free(_palette);
 
 	_palette = (byte *)malloc(size * 3);
+	memcpy(_palette, pal, size * 3);
 	_paletteSize = size;
 
 	_colorHash.clear();
 
-	_colorWhite = -1;
-	_colorOffWhite = -1;
-	_colorBlack = -1;
-
-	// Search pure white and black colors
-	for (uint i = 0; i < size; i++) {
-		if (_colorWhite == -1 && p[0] == 0xff && p[1] == 0xff && p[2] == 0xff)
-			_colorWhite = i;
-
-		if (_colorOffWhite == -1 && p[0] == 0xee && p[1] == 0xee && p[2] == 0xee)
-			_colorOffWhite = i;
-
-		if (_colorBlack == -1 && p[0] == 0x00 && p[1] == 0x00 && p[2] == 0x00)
-			_colorBlack = i;
-
-		_palette[i * 3 + 0] = *p++;
-		_palette[i * 3 + 1] = *p++;
-		_palette[i * 3 + 2] = *p++;
-	}
-
-	if (_colorWhite != -1 && _colorOffWhite != -1 && _colorBlack != -1)
-		return;
-
-	// We did not find some color. Let's find closest approximations
-	float darkest = 1000.0f, brightest = -1.0f;
-	int di = -1, bi = -1;
-	p = pal;
+	_colorWhite = findBestColor(palette[kColorWhite * 3], palette[kColorWhite * 3 + 1], palette[kColorWhite * 3 + 2]);
+	_colorGray = findBestColor(palette[kColorGray * 3], palette[kColorGray * 3 + 1], palette[kColorGray * 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]);
+	_colorOffWhite = findBestColor(palette[kColorOffWhite * 3], palette[kColorOffWhite * 3 + 1], palette[kColorOffWhite * 3 + 2]);
 
-	for (uint i = 0; i < size; i++) {
-		float gray = p[0] * 0.3f + p[1] * 0.59f + p[2] * 0.11f;
-
-		if (darkest > gray) {
-			darkest = gray;
-			di = i;
-		}
-
-		if (brightest < gray) {
-			brightest = gray;
-			bi = i;
-		}
-
-		p += 3;
-	}
-
-	_colorWhite = bi;
-	_colorOffWhite = bi;
-	_colorBlack = di;
+	drawDesktop();
+	setFullRefresh(true);
 }
 
 uint MacWindowManager::findBestColor(byte cr, byte cg, byte cb) {
diff --git a/graphics/macgui/macwindowmanager.h b/graphics/macgui/macwindowmanager.h
index c2eb5f7a9a..fcf40c9bec 100644
--- a/graphics/macgui/macwindowmanager.h
+++ b/graphics/macgui/macwindowmanager.h
@@ -304,7 +304,7 @@ public:
 	bool _menuTimerActive;
 	bool _mouseDown;
 
-	int _colorBlack, _colorWhite, _colorOffWhite;
+	int _colorBlack, _colorGray, _colorWhite, _colorGreen, _colorGreen2, _colorOffWhite;
 
 	MacWidget *_hoveredWidget;
 


Commit: 494a92ee194b0b8c3cc623f36aed56ee683c3e8e
    https://github.com/scummvm/scummvm/commit/494a92ee194b0b8c3cc623f36aed56ee683c3e8e
Author: djsrv (dservilla at gmail.com)
Date: 2020-08-07T16:47:19-04:00

Commit Message:
GRAPHICS: MACGUI: Add transparency to border bmps

Changed paths:
    devtools/create_macgui/RoundClose_act.bmp
    devtools/create_macgui/RoundClose_inac.bmp
    devtools/create_macgui/StandardCloseZoom_act.bmp
    devtools/create_macgui/StandardCloseZoom_inac.bmp
    devtools/create_macgui/StandardClose_act.bmp
    devtools/create_macgui/StandardClose_inac.bmp
    devtools/create_macgui/Standard_act.bmp
    devtools/create_macgui/Standard_inac.bmp
    devtools/create_macgui/ThinNoTitleShadow_act.bmp
    devtools/create_macgui/ThinNoTitleShadow_inac.bmp


diff --git a/devtools/create_macgui/RoundClose_act.bmp b/devtools/create_macgui/RoundClose_act.bmp
index aee9dfbc3e..d75b26ba35 100644
Binary files a/devtools/create_macgui/RoundClose_act.bmp and b/devtools/create_macgui/RoundClose_act.bmp differ
diff --git a/devtools/create_macgui/RoundClose_inac.bmp b/devtools/create_macgui/RoundClose_inac.bmp
index 6408a2c85d..929cb56030 100644
Binary files a/devtools/create_macgui/RoundClose_inac.bmp and b/devtools/create_macgui/RoundClose_inac.bmp differ
diff --git a/devtools/create_macgui/StandardCloseZoom_act.bmp b/devtools/create_macgui/StandardCloseZoom_act.bmp
index e307103f6b..c1d38d2e6a 100644
Binary files a/devtools/create_macgui/StandardCloseZoom_act.bmp and b/devtools/create_macgui/StandardCloseZoom_act.bmp differ
diff --git a/devtools/create_macgui/StandardCloseZoom_inac.bmp b/devtools/create_macgui/StandardCloseZoom_inac.bmp
index fc54b8352e..41524ec40a 100644
Binary files a/devtools/create_macgui/StandardCloseZoom_inac.bmp and b/devtools/create_macgui/StandardCloseZoom_inac.bmp differ
diff --git a/devtools/create_macgui/StandardClose_act.bmp b/devtools/create_macgui/StandardClose_act.bmp
index b18fdd321a..054f3e55c9 100644
Binary files a/devtools/create_macgui/StandardClose_act.bmp and b/devtools/create_macgui/StandardClose_act.bmp differ
diff --git a/devtools/create_macgui/StandardClose_inac.bmp b/devtools/create_macgui/StandardClose_inac.bmp
index ca54f5af02..edc1afe1b3 100644
Binary files a/devtools/create_macgui/StandardClose_inac.bmp and b/devtools/create_macgui/StandardClose_inac.bmp differ
diff --git a/devtools/create_macgui/Standard_act.bmp b/devtools/create_macgui/Standard_act.bmp
index b9d2d0f873..c116f7177b 100644
Binary files a/devtools/create_macgui/Standard_act.bmp and b/devtools/create_macgui/Standard_act.bmp differ
diff --git a/devtools/create_macgui/Standard_inac.bmp b/devtools/create_macgui/Standard_inac.bmp
index c574e27e61..04f1cf6c8c 100644
Binary files a/devtools/create_macgui/Standard_inac.bmp and b/devtools/create_macgui/Standard_inac.bmp differ
diff --git a/devtools/create_macgui/ThinNoTitleShadow_act.bmp b/devtools/create_macgui/ThinNoTitleShadow_act.bmp
index e8fa4d44a7..b81ac280c3 100644
Binary files a/devtools/create_macgui/ThinNoTitleShadow_act.bmp and b/devtools/create_macgui/ThinNoTitleShadow_act.bmp differ
diff --git a/devtools/create_macgui/ThinNoTitleShadow_inac.bmp b/devtools/create_macgui/ThinNoTitleShadow_inac.bmp
index e8fa4d44a7..b81ac280c3 100644
Binary files a/devtools/create_macgui/ThinNoTitleShadow_inac.bmp and b/devtools/create_macgui/ThinNoTitleShadow_inac.bmp differ




More information about the Scummvm-git-logs mailing list