[Scummvm-git-logs] scummvm master -> ecce34593e42790239d7544b806cdeb89fa456c7
ysj1173886760
42030331+ysj1173886760 at users.noreply.github.com
Fri Aug 20 12:59:59 UTC 2021
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:
d69144fa18 DIRECTOR: introduce updateWidget to fix updateStage.
ecce34593e DIRECTOR: combine renderVideo and updateWidgets.
Commit: d69144fa188647c0eb81355c3340d09f96a7eeee
https://github.com/scummvm/scummvm/commit/d69144fa188647c0eb81355c3340d09f96a7eeee
Author: ysj1173886760 (1173886760 at qq.com)
Date: 2021-08-20T20:53:44+08:00
Commit Message:
DIRECTOR: introduce updateWidget to fix updateStage.
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/score.cpp
engines/director/score.h
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index 9fe96a9e17..a47110367b 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -2291,6 +2291,7 @@ void LB::b_updateStage(int nargs) {
Score *score = movie->getScore();
+ score->updateWidget();
if (movie->_videoPlayback)
score->renderVideo();
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index cffc65f790..6d4b692327 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -630,6 +630,17 @@ void Score::renderVideo() {
}
}
+void Score::updateWidget() {
+ for (uint16 i = 0; i < _channels.size(); i++) {
+ Channel *channel = _channels[i];
+ CastMember *cast = channel->_sprite->_cast;
+ if (cast && cast->_type != kCastDigitalVideo && cast->isModified()) {
+ channel->replaceWidget();
+ _window->addDirtyRect(channel->getBbox());
+ }
+ }
+}
+
void Score::screenShot() {
Graphics::Surface rawSurface = _window->getSurface()->rawSurface();
const Graphics::PixelFormat requiredFormat_4byte(4, 8, 8, 8, 8, 0, 8, 16, 24);
diff --git a/engines/director/score.h b/engines/director/score.h
index 9885ef9d62..a2efbc100a 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -114,6 +114,7 @@ public:
void renderSprites(uint16 frameId, RenderMode mode = kRenderModeNormal);
void renderCursor(Common::Point pos, bool forceUpdate = false);
void renderVideo();
+ void updateWidget();
void playSoundChannel(uint16 frameId);
Commit: ecce34593e42790239d7544b806cdeb89fa456c7
https://github.com/scummvm/scummvm/commit/ecce34593e42790239d7544b806cdeb89fa456c7
Author: ysj1173886760 (1173886760 at qq.com)
Date: 2021-08-20T20:59:48+08:00
Commit Message:
DIRECTOR: combine renderVideo and updateWidgets.
Changed paths:
engines/director/lingo/lingo-builtins.cpp
engines/director/score.cpp
engines/director/score.h
diff --git a/engines/director/lingo/lingo-builtins.cpp b/engines/director/lingo/lingo-builtins.cpp
index a47110367b..303ad1e2f2 100644
--- a/engines/director/lingo/lingo-builtins.cpp
+++ b/engines/director/lingo/lingo-builtins.cpp
@@ -2291,10 +2291,7 @@ void LB::b_updateStage(int nargs) {
Score *score = movie->getScore();
- score->updateWidget();
- if (movie->_videoPlayback)
- score->renderVideo();
-
+ score->updateWidgets(movie->_videoPlayback);
movie->getWindow()->render();
// play any puppet sounds that have been queued
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 6d4b692327..b4ceda1814 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -335,7 +335,7 @@ void Score::update() {
if (keepWaiting) {
if (_movie->_videoPlayback) {
- renderVideo();
+ updateWidgets(true);
_window->render();
}
return;
@@ -619,22 +619,11 @@ void Score::renderCursor(Common::Point pos, bool forceUpdate) {
_currentCursor = _defaultCursor.getRef();
}
-void Score::renderVideo() {
+void Score::updateWidgets(bool hasVideoPlayback) {
for (uint16 i = 0; i < _channels.size(); i++) {
Channel *channel = _channels[i];
CastMember *cast = channel->_sprite->_cast;
- if (cast && cast->_type == kCastDigitalVideo && cast->isModified()) {
- channel->replaceWidget();
- _window->addDirtyRect(channel->getBbox());
- }
- }
-}
-
-void Score::updateWidget() {
- for (uint16 i = 0; i < _channels.size(); i++) {
- Channel *channel = _channels[i];
- CastMember *cast = channel->_sprite->_cast;
- if (cast && cast->_type != kCastDigitalVideo && cast->isModified()) {
+ if (cast && (cast->_type != kCastDigitalVideo || hasVideoPlayback) && cast->isModified()) {
channel->replaceWidget();
_window->addDirtyRect(channel->getBbox());
}
diff --git a/engines/director/score.h b/engines/director/score.h
index a2efbc100a..00a67d76d8 100644
--- a/engines/director/score.h
+++ b/engines/director/score.h
@@ -113,8 +113,7 @@ public:
void renderFrame(uint16 frameId, RenderMode mode = kRenderModeNormal);
void renderSprites(uint16 frameId, RenderMode mode = kRenderModeNormal);
void renderCursor(Common::Point pos, bool forceUpdate = false);
- void renderVideo();
- void updateWidget();
+ void updateWidgets(bool hasVideoPlayback);
void playSoundChannel(uint16 frameId);
More information about the Scummvm-git-logs
mailing list