[Scummvm-git-logs] scummvm master -> 247fbe54929e5618086798408dd5864cbc1b224d
athrxx
athrxx at scummvm.org
Thu Nov 11 18:30:38 UTC 2021
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:
247fbe5492 KYRA: (EOB/LOL) - reduce calls to updateScreen
Commit: 247fbe54929e5618086798408dd5864cbc1b224d
https://github.com/scummvm/scummvm/commit/247fbe54929e5618086798408dd5864cbc1b224d
Author: athrxx (athrxx at scummvm.org)
Date: 2021-11-11T19:30:22+01:00
Commit Message:
KYRA: (EOB/LOL) - reduce calls to updateScreen
(to improve performance with enabled vsync option)
Changed paths:
engines/kyra/engine/items_eob.cpp
engines/kyra/gui/gui_eob.cpp
engines/kyra/sequence/sequences_darkmoon.cpp
engines/kyra/sequence/sequences_eob.cpp
engines/kyra/text/text_rpg.cpp
diff --git a/engines/kyra/engine/items_eob.cpp b/engines/kyra/engine/items_eob.cpp
index 05ff3079a9..b21103a357 100644
--- a/engines/kyra/engine/items_eob.cpp
+++ b/engines/kyra/engine/items_eob.cpp
@@ -208,6 +208,8 @@ int EoBCoreEngine::deleteInventoryItem(int charIndex, int slot) {
if (_currentControlMode == 0)
gui_drawCharPortraitWithStats(charIndex);
+
+ _screen->updateScreen();
}
return _items[itm].value;
@@ -331,6 +333,8 @@ bool EoBCoreEngine::deletePartyItems(int16 itemType, int16 itemValue) {
}
}
+ _screen->updateScreen();
+
return res;
}
diff --git a/engines/kyra/gui/gui_eob.cpp b/engines/kyra/gui/gui_eob.cpp
index eee3db2216..24b1cda7af 100644
--- a/engines/kyra/gui/gui_eob.cpp
+++ b/engines/kyra/gui/gui_eob.cpp
@@ -207,6 +207,7 @@ void EoBCoreEngine::gui_drawCharPortraitWithStats(int index, bool screenUpdt) {
gui_drawInventoryItem(27, 1, 2);
_screen->setFont(cf);
+ _screen->updateScreen();
} else {
_screen->setFont(cf);
@@ -541,7 +542,6 @@ void EoBCoreEngine::gui_drawInventoryItem(int slot, int redraw, int pageNum) {
drawItemIconShape(pageNum, item, x, y);
}
_screen->_curPage = cp;
- _screen->updateScreen();
}
void EoBCoreEngine::gui_drawCharacterStatsPage() {
@@ -1490,6 +1490,8 @@ void EoBCoreEngine::gui_processInventorySlotClick(int slot) {
setHandItem(itm);
}
+ _screen->updateScreen();
+
} else if (slot == 27) {
gui_displayMap();
@@ -1498,6 +1500,7 @@ void EoBCoreEngine::gui_processInventorySlotClick(int slot) {
_characters[_updateCharNum].inventory[slot] = ih;
gui_drawInventoryItem(slot, 1, 0);
recalcArmorClass(_updateCharNum);
+ _screen->updateScreen();
}
}
@@ -2144,10 +2147,12 @@ int GUI_EoB::simpleMenu_process(int sd, const char *const *strings, void *b, int
if (_vm->gameFlags().platform == Common::kPlatformSegaCD) {
_vm->_txt->printShadedText(strings[simpleMenu_getMenuItem(currentItem, menuItemsMask, itemOffset)], 4, (sd == 8 ? 2 : 20) + currentItem * lineH, _menuTextColor, _menuShadowColor);
_vm->_txt->printShadedText(strings[simpleMenu_getMenuItem(newItem, menuItemsMask, itemOffset)], 4, (sd == 8 ? 2 : 20) + newItem * lineH, _menuHighlightColor, _menuShadowColor);
+ _screen->sega_getRenderer()->render(0, 6, 20, 26, 5);
} else {
_screen->printText(strings[simpleMenu_getMenuItem(currentItem, menuItemsMask, itemOffset)], x, y + currentItem * lineH, _menuTextColor, 0);
_screen->printText(strings[simpleMenu_getMenuItem(newItem, menuItemsMask, itemOffset)], x, y + newItem * lineH, _menuHighlightColor, 0);
}
+ _screen->updateScreen();
}
if (result != -1) {
diff --git a/engines/kyra/sequence/sequences_darkmoon.cpp b/engines/kyra/sequence/sequences_darkmoon.cpp
index 9a1f337a29..f698def285 100644
--- a/engines/kyra/sequence/sequences_darkmoon.cpp
+++ b/engines/kyra/sequence/sequences_darkmoon.cpp
@@ -209,10 +209,8 @@ int DarkMoonEngine::mainMenuLoop() {
_gui->simpleMenu_setup(6, 0, _mainMenuStrings, -1, 0, 0, _configRenderMode == Common::kRenderCGA ? 1 : guiSettings()->colors.guiColorWhite, guiSettings()->colors.guiColorLightRed, guiSettings()->colors.guiColorBlack);
_screen->updateScreen();
- while (sel == -1 && !shouldQuit()) {
+ while (sel == -1 && !shouldQuit())
sel = _gui->simpleMenu_process(6, _mainMenuStrings, 0, -1, 0);
- _screen->updateScreen();
- }
} while ((sel < 0 || sel > 5) && !shouldQuit());
if (_flags.platform == Common::kPlatformFMTowns && sel == 2) {
@@ -229,10 +227,8 @@ void DarkMoonEngine::townsUtilitiesMenu() {
do {
_gui->simpleMenu_setup(8, 0, _utilMenuStrings, -1, 0, 0, _configRenderMode == Common::kRenderCGA ? 1 : guiSettings()->colors.guiColorWhite, guiSettings()->colors.guiColorLightRed, guiSettings()->colors.guiColorBlack);
_screen->updateScreen();
- while (sel == -1 && !shouldQuit()) {
+ while (sel == -1 && !shouldQuit())
sel = _gui->simpleMenu_process(8, _utilMenuStrings, 0, -1, 0);
- _screen->updateScreen();
- }
if (sel == 0) {
_config2431 ^= true;
sel = -1;
diff --git a/engines/kyra/sequence/sequences_eob.cpp b/engines/kyra/sequence/sequences_eob.cpp
index 1e8080947a..a8bf723d1e 100644
--- a/engines/kyra/sequence/sequences_eob.cpp
+++ b/engines/kyra/sequence/sequences_eob.cpp
@@ -2280,12 +2280,8 @@ int EoBEngine::mainMenuLoop() {
_screen->sega_getRenderer()->render(0);
_screen->updateScreen();
- while (sel == -1 && !shouldQuit()) {
+ while (sel == -1 && !shouldQuit())
sel = _gui->simpleMenu_process(8, _mainMenuStrings, 0, -1, 0);
- if (_flags.platform == Common::kPlatformSegaCD)
- _screen->sega_getRenderer()->render(0, 6, 20, 26, 5);
- _screen->updateScreen();
- }
} while ((sel < 0 || sel > 5) && !shouldQuit());
return sel + 1;
diff --git a/engines/kyra/text/text_rpg.cpp b/engines/kyra/text/text_rpg.cpp
index fa865d417c..4ad968ffb3 100644
--- a/engines/kyra/text/text_rpg.cpp
+++ b/engines/kyra/text/text_rpg.cpp
@@ -192,6 +192,7 @@ void TextDisplayer_rpg::displayText(char *str, ...) {
switch (c - 1) {
case 0:
printLine(_currentLine);
+ _screen->updateScreen();
textPageBreak();
_numCharsPrinted = 0;
break;
@@ -260,6 +261,7 @@ void TextDisplayer_rpg::displayText(char *str, ...) {
printLine(_currentLine);
_screen->setFont(of);
+ _screen->updateScreen();
}
char TextDisplayer_rpg::parseCommand() {
@@ -327,6 +329,7 @@ void TextDisplayer_rpg::printLine(char *str) {
while (_textDimData[sdx].line >= lines) {
if ((lines - _waitButtonSpace) <= _lineCount && _allowPageBreak) {
_lineCount = 0;
+ _screen->updateScreen();
textPageBreak();
_numCharsPrinted = 0;
}
@@ -501,7 +504,6 @@ void TextDisplayer_rpg::printLine(char *str) {
_screen->printText(str, x1 & ~3, (y + 8) & ~7, col, 0);
} else {
_screen->printText(str, x1, y, col, _textDimData[sdx].color2);
- _screen->updateScreen();
}
_textDimData[sdx].column += lw;
More information about the Scummvm-git-logs
mailing list