[Scummvm-git-logs] scummvm master -> 29973e86277b5217ff00646a9257ebf64d974317

moralrecordings code at moral.net.au
Tue Oct 12 00:22:59 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:
29973e8627 DIRECTOR: Revert change to inkBlitShape


Commit: 29973e86277b5217ff00646a9257ebf64d974317
    https://github.com/scummvm/scummvm/commit/29973e86277b5217ff00646a9257ebf64d974317
Author: Scott Percival (code at moral.net.au)
Date: 2021-10-12T08:19:29+08:00

Commit Message:
DIRECTOR: Revert change to inkBlitShape

Using the dest. rect for everything leaves snail trails
in most of Spaceship Warlock.

Changed paths:
    engines/director/castmember.cpp
    engines/director/director.h
    engines/director/graphics.cpp
    engines/director/window.cpp


diff --git a/engines/director/castmember.cpp b/engines/director/castmember.cpp
index cc9211bca7..68f23a74d7 100644
--- a/engines/director/castmember.cpp
+++ b/engines/director/castmember.cpp
@@ -614,16 +614,15 @@ Graphics::MacWidget *FilmLoopCastMember::createWidget(Common::Rect &bbox, Channe
 		pd.destRect = relBbox;
 
 		pd.srf = srcWidget ? srcWidget->getSurface() : nullptr;
-		Common::Rect srcWidgetBbox(width, height);
 		if (!pd.srf && src._spriteType != kBitmapSprite) {
 			// Shapes come colourized from macDrawPixel
 			pd.ms = src.getShape();
 			pd.applyColor = false;
-			pd.inkBlitShape();
+			pd.inkBlitShape(relBbox);
 		} else {
 			pd.setApplyColor();
 			// TODO: Support masks
-			pd.inkBlitStretchSurface(srcWidgetBbox, nullptr);
+			pd.inkBlitStretchSurface(relBbox, nullptr);
 		}
 		if (srcWidget)
 			delete srcWidget;
diff --git a/engines/director/director.h b/engines/director/director.h
index f28281de08..4f6a989a8e 100644
--- a/engines/director/director.h
+++ b/engines/director/director.h
@@ -153,7 +153,7 @@ struct DirectorPlotData {
 	// graphics.cpp
 	void setApplyColor();
 	uint32 preprocessColor(uint32 src);
-	void inkBlitShape();
+	void inkBlitShape(Common::Rect &srcRect);
 	void inkBlitSurface(Common::Rect &srcRect, const Graphics::Surface *mask);
 	void inkBlitStretchSurface(Common::Rect &srcRect, const Graphics::Surface *mask);
 
diff --git a/engines/director/graphics.cpp b/engines/director/graphics.cpp
index 36fdb1f59f..f62062fdbe 100644
--- a/engines/director/graphics.cpp
+++ b/engines/director/graphics.cpp
@@ -337,7 +337,7 @@ uint32 DirectorPlotData::preprocessColor(uint32 src) {
 	return src;
 }
 
-void DirectorPlotData::inkBlitShape() {
+void DirectorPlotData::inkBlitShape(Common::Rect &srcRect) {
 	if (!ms)
 		return;
 
@@ -355,12 +355,12 @@ void DirectorPlotData::inkBlitShape() {
 		break;
 	}
 
-	Common::Rect fillAreaRect((int)destRect.width(), (int)destRect.height());
-	fillAreaRect.moveTo(destRect.left, destRect.top);
-	Graphics::MacPlotData plotFill(dst, nullptr, &g_director->getPatterns(), ms->pattern, destRect.left, destRect.top, 1, ms->backColor);
+	Common::Rect fillAreaRect((int)srcRect.width(), (int)srcRect.height());
+	fillAreaRect.moveTo(srcRect.left, srcRect.top);
+	Graphics::MacPlotData plotFill(dst, nullptr, &g_director->getPatterns(), ms->pattern, srcRect.left, srcRect.top, 1, ms->backColor);
 
-	Common::Rect strokeRect(MAX((int)destRect.width() - ms->lineSize, 0), MAX((int)destRect.height() - ms->lineSize, 0));
-	strokeRect.moveTo(destRect.left, destRect.top);
+	Common::Rect strokeRect(MAX((int)srcRect.width() - ms->lineSize, 0), MAX((int)srcRect.height() - ms->lineSize, 0));
+	strokeRect.moveTo(srcRect.left, srcRect.top);
 	Graphics::MacPlotData plotStroke(dst, nullptr, &g_director->getPatterns(), 1, strokeRect.left, strokeRect.top, ms->lineSize, ms->backColor);
 
 	switch (ms->spriteType) {
diff --git a/engines/director/window.cpp b/engines/director/window.cpp
index 3c147fffd8..3e50e30ada 100644
--- a/engines/director/window.cpp
+++ b/engines/director/window.cpp
@@ -198,7 +198,7 @@ void Window::inkBlitFrom(Channel *channel, Common::Rect destRect, Graphics::Mana
 	pd.dst = blitTo;
 
 	if (pd.ms) {
-		pd.inkBlitShape();
+		pd.inkBlitShape(srcRect);
 	} else if (pd.srf) {
 		if (channel->isStretched()) {
 			srcRect = channel->getBbox(true);




More information about the Scummvm-git-logs mailing list