[Scummvm-git-logs] scummvm master -> 2a90acd0eb1557caff4c8d942b058372e1dd70af
npjg
nathanael.gentrydb8 at gmail.com
Mon Aug 10 15:22:26 UTC 2020
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:
6a69c3a81f DIRECTOR: Draw windowed transitions in right area
2a90acd0eb DIRECTOR: Offload transition handling to WM
Commit: 6a69c3a81f696e6744703a24f3c95f2d816cabb4
https://github.com/scummvm/scummvm/commit/6a69c3a81f696e6744703a24f3c95f2d816cabb4
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-08-10T11:15:34-04:00
Commit Message:
DIRECTOR: Draw windowed transitions in right area
Changed paths:
engines/director/transitions.cpp
diff --git a/engines/director/transitions.cpp b/engines/director/transitions.cpp
index 52aae17314..52b67b10bf 100644
--- a/engines/director/transitions.cpp
+++ b/engines/director/transitions.cpp
@@ -516,12 +516,12 @@ void Window::playTransition(uint16 transDuration, uint8 transArea, uint8 transCh
}
if (fullredraw) {
- g_system->copyRectToScreen(_composeSurface->getBasePtr(clipRect.left, clipRect.top), _composeSurface->pitch, clipRect.left, clipRect.top, w, h);
+ g_system->copyRectToScreen(_composeSurface->getBasePtr(clipRect.left, clipRect.top), _composeSurface->pitch, _innerDims.left + clipRect.left, _innerDims.top + clipRect.top, w, h);
} else {
rto.clip(clipRect);
if (rto.height() > 0 && rto.width() > 0) {
- g_system->copyRectToScreen(_composeSurface->getBasePtr(rto.left, rto.top), _composeSurface->pitch, rto.left, rto.top, rto.width(), rto.height());
+ g_system->copyRectToScreen(_composeSurface->getBasePtr(rto.left, rto.top), _composeSurface->pitch, _innerDims.left + rto.left, _innerDims.top + rto.top, rto.width(), rto.height());
}
}
@@ -702,7 +702,7 @@ void Window::dissolveTrans(TransParams &t, Common::Rect &clipRect, Graphics::Man
}
} while (rnd != seed);
- g_system->copyRectToScreen(_composeSurface->getBasePtr(clipRect.left, clipRect.top), _composeSurface->pitch, clipRect.left, clipRect.top, clipRect.width(), clipRect.height());
+ g_system->copyRectToScreen(_composeSurface->getBasePtr(clipRect.left, clipRect.top), _composeSurface->pitch, _innerDims.left + clipRect.left, _innerDims.top + clipRect.top, clipRect.width(), clipRect.height());
g_system->updateScreen();
g_lingo->executePerFrameHook(t.frame, i + 1);
@@ -806,7 +806,7 @@ void Window::dissolvePatternsTrans(TransParams &t, Common::Rect &clipRect, Graph
}
}
- g_system->copyRectToScreen(_composeSurface->getBasePtr(clipRect.left, clipRect.top), _composeSurface->pitch, clipRect.left, clipRect.top, clipRect.width(), clipRect.height());
+ g_system->copyRectToScreen(_composeSurface->getBasePtr(clipRect.left, clipRect.top), _composeSurface->pitch, _innerDims.left + clipRect.left, _innerDims.top + clipRect.top, clipRect.width(), clipRect.height());
g_system->updateScreen();
g_lingo->executePerFrameHook(t.frame, i + 1);
@@ -977,7 +977,7 @@ void Window::transMultiPass(TransParams &t, Common::Rect &clipRect, Graphics::Ma
if (rto.height() > 0 && rto.width() > 0) {
_composeSurface->blitFrom(*nextFrame, rto, Common::Point(rto.left, rto.top));
- g_system->copyRectToScreen(_composeSurface->getBasePtr(rto.left, rto.top), _composeSurface->pitch, rto.left, rto.top, rto.width(), rto.height());
+ g_system->copyRectToScreen(_composeSurface->getBasePtr(rto.left, rto.top), _composeSurface->pitch, _innerDims.left + rto.left, _innerDims.top + rto.top, rto.width(), rto.height());
}
}
rects.clear();
@@ -1031,7 +1031,7 @@ void Window::transZoom(TransParams &t, Common::Rect &clipRect, Graphics::Managed
r.setWidth(t.xStepSize * i * 2);
r.moveTo(w / 2 - t.xStepSize * i, h / 2 - t.yStepSize * i);
- g_system->copyRectToScreen(_composeSurface->getPixels(), _composeSurface->pitch, 0, 0, w, h);
+ g_system->copyRectToScreen(_composeSurface->getPixels(), _composeSurface->pitch, _innerDims.left, _innerDims.top, w, h);
g_system->updateScreen();
g_lingo->executePerFrameHook(t.frame, i);
Commit: 2a90acd0eb1557caff4c8d942b058372e1dd70af
https://github.com/scummvm/scummvm/commit/2a90acd0eb1557caff4c8d942b058372e1dd70af
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-08-10T11:17:16-04:00
Commit Message:
DIRECTOR: Offload transition handling to WM
Changed paths:
engines/director/transitions.cpp
engines/director/window.h
diff --git a/engines/director/transitions.cpp b/engines/director/transitions.cpp
index 52b67b10bf..0ecf7ffc95 100644
--- a/engines/director/transitions.cpp
+++ b/engines/director/transitions.cpp
@@ -133,7 +133,12 @@ struct {
void Window::exitTransition(Graphics::ManagedSurface *nextFrame, Common::Rect clipRect) {
_composeSurface->blitFrom(*nextFrame, clipRect, Common::Point(clipRect.left, clipRect.top));
- g_system->copyRectToScreen(_composeSurface->getBasePtr(clipRect.left, clipRect.top), _composeSurface->pitch, clipRect.left, clipRect.top, clipRect.width(), clipRect.height());
+ stepTransition();
+}
+
+void Window::stepTransition() {
+ _contentIsDirty = true;
+ g_director->draw();
}
void Window::playTransition(uint16 transDuration, uint8 transArea, uint8 transChunkSize, TransitionType transType, uint frame) {
@@ -516,16 +521,14 @@ void Window::playTransition(uint16 transDuration, uint8 transArea, uint8 transCh
}
if (fullredraw) {
- g_system->copyRectToScreen(_composeSurface->getBasePtr(clipRect.left, clipRect.top), _composeSurface->pitch, _innerDims.left + clipRect.left, _innerDims.top + clipRect.top, w, h);
+ stepTransition();
} else {
rto.clip(clipRect);
- if (rto.height() > 0 && rto.width() > 0) {
- g_system->copyRectToScreen(_composeSurface->getBasePtr(rto.left, rto.top), _composeSurface->pitch, _innerDims.left + rto.left, _innerDims.top + rto.top, rto.width(), rto.height());
- }
+ if (rto.height() > 0 && rto.width() > 0)
+ stepTransition();
}
- g_system->updateScreen();
g_lingo->executePerFrameHook(t.frame, i);
}
}
@@ -702,8 +705,7 @@ void Window::dissolveTrans(TransParams &t, Common::Rect &clipRect, Graphics::Man
}
} while (rnd != seed);
- g_system->copyRectToScreen(_composeSurface->getBasePtr(clipRect.left, clipRect.top), _composeSurface->pitch, _innerDims.left + clipRect.left, _innerDims.top + clipRect.top, clipRect.width(), clipRect.height());
- g_system->updateScreen();
+ stepTransition();
g_lingo->executePerFrameHook(t.frame, i + 1);
@@ -806,8 +808,7 @@ void Window::dissolvePatternsTrans(TransParams &t, Common::Rect &clipRect, Graph
}
}
- g_system->copyRectToScreen(_composeSurface->getBasePtr(clipRect.left, clipRect.top), _composeSurface->pitch, _innerDims.left + clipRect.left, _innerDims.top + clipRect.top, clipRect.width(), clipRect.height());
- g_system->updateScreen();
+ stepTransition();
g_lingo->executePerFrameHook(t.frame, i + 1);
@@ -977,13 +978,11 @@ void Window::transMultiPass(TransParams &t, Common::Rect &clipRect, Graphics::Ma
if (rto.height() > 0 && rto.width() > 0) {
_composeSurface->blitFrom(*nextFrame, rto, Common::Point(rto.left, rto.top));
- g_system->copyRectToScreen(_composeSurface->getBasePtr(rto.left, rto.top), _composeSurface->pitch, _innerDims.left + rto.left, _innerDims.top + rto.top, rto.width(), rto.height());
+ stepTransition();
}
}
rects.clear();
- g_system->updateScreen();
-
g_lingo->executePerFrameHook(t.frame, i);
g_system->delayMillis(t.stepDuration);
@@ -1031,9 +1030,6 @@ void Window::transZoom(TransParams &t, Common::Rect &clipRect, Graphics::Managed
r.setWidth(t.xStepSize * i * 2);
r.moveTo(w / 2 - t.xStepSize * i, h / 2 - t.yStepSize * i);
- g_system->copyRectToScreen(_composeSurface->getPixels(), _composeSurface->pitch, _innerDims.left, _innerDims.top, w, h);
- g_system->updateScreen();
-
g_lingo->executePerFrameHook(t.frame, i);
g_system->delayMillis(t.stepDuration);
diff --git a/engines/director/window.h b/engines/director/window.h
index 2c1e78ee67..98cd140398 100644
--- a/engines/director/window.h
+++ b/engines/director/window.h
@@ -105,6 +105,7 @@ class Window : public Graphics::MacWindow, public Object<Window> {
// transitions.cpp
void exitTransition(Graphics::ManagedSurface *nextFrame, Common::Rect clipRect);
+ void stepTransition();
void playTransition(uint16 transDuration, uint8 transArea, uint8 transChunkSize, TransitionType transType, uint frame);
void initTransParams(TransParams &t, Common::Rect &clipRect);
void dissolveTrans(TransParams &t, Common::Rect &clipRect, Graphics::ManagedSurface *tmpSurface);
More information about the Scummvm-git-logs
mailing list