[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