[Scummvm-git-logs] scummvm master -> 44f19d74be7f37ab148aa533483a738eeed15a90

sev- noreply at scummvm.org
Tue Jun 28 21:36:32 UTC 2022


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:
44f19d74be COMMON: MACGUI: Fix transparency artifacts in subMenu


Commit: 44f19d74be7f37ab148aa533483a738eeed15a90
    https://github.com/scummvm/scummvm/commit/44f19d74be7f37ab148aa533483a738eeed15a90
Author: Avijeet (am388488 at gmail.com)
Date: 2022-06-28T23:36:29+02:00

Commit Message:
COMMON: MACGUI: Fix transparency artifacts in subMenu

Changed paths:
    graphics/macgui/macmenu.cpp
    graphics/macgui/macmenu.h


diff --git a/graphics/macgui/macmenu.cpp b/graphics/macgui/macmenu.cpp
index ea9c3ba8264..3a7b258e3c2 100644
--- a/graphics/macgui/macmenu.cpp
+++ b/graphics/macgui/macmenu.cpp
@@ -1000,7 +1000,7 @@ bool MacMenu::draw(ManagedSurface *g, bool forceRedraw) {
 
 
 	for (uint i = 0; i < _menustack.size(); i++) {
-		renderSubmenu(_menustack[i], (i == _menustack.size() - 1));
+		renderSubmenu(g, _menustack[i], (i == _menustack.size() - 1));
 	}
 
 	if (g)
@@ -1012,7 +1012,7 @@ bool MacMenu::draw(ManagedSurface *g, bool forceRedraw) {
 	return true;
 }
 
-void MacMenu::renderSubmenu(MacMenuSubMenu *menu, bool recursive) {
+void MacMenu::renderSubmenu(ManagedSurface *g, MacMenuSubMenu *menu, bool recursive) {
 	Common::Rect *r = &menu->bbox;
 
 	if (r->width() == 0 || r->height() == 0)
@@ -1123,7 +1123,7 @@ void MacMenu::renderSubmenu(MacMenuSubMenu *menu, bool recursive) {
 	}
 
 	if (recursive && menu->highlight != -1 && menu->items[menu->highlight]->submenu != nullptr)
-		renderSubmenu(menu->items[menu->highlight]->submenu, false);
+		renderSubmenu(g, menu->items[menu->highlight]->submenu, false);
 
 	if (_wm->_mode & kWMModalMenuMode) {
 		// TODO: Instead of cropping, reposition the submenu
@@ -1135,7 +1135,8 @@ void MacMenu::renderSubmenu(MacMenuSubMenu *menu, bool recursive) {
 		if (r->top + h >= _screen.h)
 			h = _screen.h - 1 - r->top;
 
-		g_system->copyRectToScreen(_screen.getBasePtr(r->left, r->top), _screen.pitch, r->left, r->top, w, h);
+		g->transBlitFrom(_screen, _wm->_colorGreen);
+		g_system->copyRectToScreen(g->getBasePtr(r->left, r->top), g->pitch, r->left, r->top, w, h);
 	}
 }
 
diff --git a/graphics/macgui/macmenu.h b/graphics/macgui/macmenu.h
index 0205c019110..83ca1a433a8 100644
--- a/graphics/macgui/macmenu.h
+++ b/graphics/macgui/macmenu.h
@@ -136,7 +136,7 @@ private:
 
 	int calcSubMenuWidth(MacMenuSubMenu *menu);
 	void calcSubMenuBounds(MacMenuSubMenu *menu, int x, int y);
-	void renderSubmenu(MacMenuSubMenu *menu, bool recursive = true);
+	void renderSubmenu(ManagedSurface *g, MacMenuSubMenu *menu, bool recursive = true);
 
 	bool keyEvent(Common::Event &event);
 	bool mouseClick(int x, int y);




More information about the Scummvm-git-logs mailing list