[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