[Scummvm-git-logs] scummvm master -> fc4478930be7ac661600c86351e659c81f4e1060
npjg
nathanael.gentrydb8 at gmail.com
Fri Jul 3 21:22:14 UTC 2020
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
30fb1b6c2c DIRECTOR: Remove old header entries
18f5c9c0e3 DIRECTOR: Merge dirty rect utility function
fc4478930b DIRECTOR: Only decompose colours for inks that need them
Commit: 30fb1b6c2c0cf3cf45891e34c3c70de58e489aab
https://github.com/scummvm/scummvm/commit/30fb1b6c2c0cf3cf45891e34c3c70de58e489aab
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-07-03T17:04:03-04:00
Commit Message:
DIRECTOR: Remove old header entries
Changed paths:
engines/director/stage.h
diff --git a/engines/director/stage.h b/engines/director/stage.h
index 86f001afad..9ef0aac45c 100644
--- a/engines/director/stage.h
+++ b/engines/director/stage.h
@@ -102,8 +102,6 @@ public:
private:
uint _stageColor;
void inkBlitFrom(Channel *channel, Common::Rect destRect, Graphics::ManagedSurface *blitTo = nullptr);
- void drawReverseSprite(Channel *channel, Common::Rect &srcRect, Common::Rect &destRect, Graphics::ManagedSurface *blitTo);
- void drawMatteSprite(Channel *channel, Common::Rect &srcRect, Common::Rect &destRect, Graphics::ManagedSurface *blitTo);
DirectorEngine *_vm;
Archive *_mainArchive;
Commit: 18f5c9c0e334a445bbe1a3eb12ac3bf293d80d2c
https://github.com/scummvm/scummvm/commit/18f5c9c0e334a445bbe1a3eb12ac3bf293d80d2c
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-07-03T17:04:03-04:00
Commit Message:
DIRECTOR: Merge dirty rect utility function
Changed paths:
engines/director/stage.cpp
engines/director/stage.h
diff --git a/engines/director/stage.cpp b/engines/director/stage.cpp
index 770ccd2cd8..85fa92380a 100644
--- a/engines/director/stage.cpp
+++ b/engines/director/stage.cpp
@@ -121,7 +121,7 @@ void Stage::mergeDirtyRects() {
if ((*rOuter).intersects(*rInner)) {
// These two rectangles overlap, so merge them
- unionRectangle(*rOuter, *rOuter, *rInner);
+ rOuter->extend(*rInner);
// remove the inner rect from the list
_dirtyRects.erase(rInner);
@@ -133,13 +133,6 @@ void Stage::mergeDirtyRects() {
}
}
-bool Stage::unionRectangle(Common::Rect &destRect, const Common::Rect &src1, const Common::Rect &src2) {
- destRect = src1;
- destRect.extend(src2);
-
- return !destRect.isEmpty();
-}
-
void Stage::inkBlitFrom(Channel *channel, Common::Rect destRect, Graphics::ManagedSurface *blitTo) {
Common::Rect srcRect = channel->getBbox();
destRect.clip(srcRect);
diff --git a/engines/director/stage.h b/engines/director/stage.h
index 9ef0aac45c..d002e6c7e3 100644
--- a/engines/director/stage.h
+++ b/engines/director/stage.h
@@ -47,7 +47,6 @@ class Stage : public Graphics::MacWindow {
bool render(bool forceRedraw = false, Graphics::ManagedSurface *blitTo = nullptr);
- bool unionRectangle(Common::Rect &destRect, const Common::Rect &src1, const Common::Rect &src2);
void setStageColor(uint stageColor);
void addDirtyRect(const Common::Rect &r);
void mergeDirtyRects();
Commit: fc4478930be7ac661600c86351e659c81f4e1060
https://github.com/scummvm/scummvm/commit/fc4478930be7ac661600c86351e659c81f4e1060
Author: Nathanael Gentry (nathanael.gentrydb8 at gmail.com)
Date: 2020-07-03T17:04:03-04:00
Commit Message:
DIRECTOR: Only decompose colours for inks that need them
Changed paths:
engines/director/graphics.cpp
diff --git a/engines/director/graphics.cpp b/engines/director/graphics.cpp
index d924af6f79..0a4528c0ac 100644
--- a/engines/director/graphics.cpp
+++ b/engines/director/graphics.cpp
@@ -799,9 +799,6 @@ void inkDrawPixel(int x, int y, int color, void *data) {
if (!p->destRect.contains(x, y))
return;
- byte rSrc, gSrc, bSrc;
- byte rDst, gDst, bDst;
-
const byte *src;
byte *dst;
@@ -828,9 +825,6 @@ void inkDrawPixel(int x, int y, int color, void *data) {
src = (const byte *)p->src->getBasePtr(p->srcPoint.x, p->srcPoint.y);
}
- g_director->_wm->decomposeColor(*src, rSrc, gSrc, bSrc);
- g_director->_wm->decomposeColor(*dst, rDst, gDst, bDst);
-
switch (p->ink) {
case kInkTypeBackgndTrans:
if (*src == p->backColor)
@@ -872,36 +866,46 @@ void inkDrawPixel(int x, int y, int color, void *data) {
*dst = *dst | *src;
break;
// Arithmetic ink types
- case kInkTypeBlend:
- if (*src != p->numColors - 1)
- *dst = p->_wm->findBestColor((rSrc + rDst) / 2, (gSrc + gDst) / 2, (bSrc + bDst) / 2);
- break;
- case kInkTypeAddPin:
- if (*src != p->numColors - 1)
- *dst = p->_wm->findBestColor(MIN((rSrc + rDst), p->numColors - 1), MIN((gSrc + gDst), p->numColors - 1), MIN((bSrc + bDst), p->numColors - 1));
- break;
- case kInkTypeAdd:
- if (*src != p->numColors - 1)
- *dst = p->_wm->findBestColor(abs(rSrc + rDst) % p->numColors, abs(gSrc + gDst) % p->numColors, abs(bSrc + bDst) % p->numColors);
- break;
- case kInkTypeSubPin:
- if (*src != p->numColors - 1)
- *dst = p->_wm->findBestColor(MAX(rSrc - rDst, 0), MAX(gSrc - gDst, 0), MAX(bSrc - bDst, 0));
- break;
- case kInkTypeLight:
- if (*src != p->numColors - 1)
- *dst = p->_wm->findBestColor(MAX(rSrc, rDst), MAX(gSrc, gDst), MAX(bSrc, bDst));
- break;
- case kInkTypeSub:
- if (*src != p->numColors - 1)
- *dst = p->_wm->findBestColor(abs(rSrc - rDst) % p->numColors, abs(gSrc - gDst) % p->numColors, abs(bSrc - bDst) % p->numColors);
- break;
- case kInkTypeDark:
- if (*src != p->numColors - 1)
- *dst = p->_wm->findBestColor(MIN(rSrc, rDst), MIN(gSrc, gDst), MIN(bSrc, bDst));
- break;
- default:
- warning("Stage::inkBlitFrom: Drawing not implemented yet");
+ default: {
+ byte rSrc, gSrc, bSrc;
+ byte rDst, gDst, bDst;
+
+ g_director->_wm->decomposeColor(*src, rSrc, gSrc, bSrc);
+ g_director->_wm->decomposeColor(*dst, rDst, gDst, bDst);
+
+ switch (p->ink) {
+ case kInkTypeBlend:
+ if (*src != p->numColors - 1)
+ *dst = p->_wm->findBestColor((rSrc + rDst) / 2, (gSrc + gDst) / 2, (bSrc + bDst) / 2);
+ break;
+ case kInkTypeAddPin:
+ if (*src != p->numColors - 1)
+ *dst = p->_wm->findBestColor(MIN((rSrc + rDst), p->numColors - 1), MIN((gSrc + gDst), p->numColors - 1), MIN((bSrc + bDst), p->numColors - 1));
+ break;
+ case kInkTypeAdd:
+ if (*src != p->numColors - 1)
+ *dst = p->_wm->findBestColor(abs(rSrc + rDst) % p->numColors, abs(gSrc + gDst) % p->numColors, abs(bSrc + bDst) % p->numColors);
+ break;
+ case kInkTypeSubPin:
+ if (*src != p->numColors - 1)
+ *dst = p->_wm->findBestColor(MAX(rSrc - rDst, 0), MAX(gSrc - gDst, 0), MAX(bSrc - bDst, 0));
+ break;
+ case kInkTypeLight:
+ if (*src != p->numColors - 1)
+ *dst = p->_wm->findBestColor(MAX(rSrc, rDst), MAX(gSrc, gDst), MAX(bSrc, bDst));
+ break;
+ case kInkTypeSub:
+ if (*src != p->numColors - 1)
+ *dst = p->_wm->findBestColor(abs(rSrc - rDst) % p->numColors, abs(gSrc - gDst) % p->numColors, abs(bSrc - bDst) % p->numColors);
+ break;
+ case kInkTypeDark:
+ if (*src != p->numColors - 1)
+ *dst = p->_wm->findBestColor(MIN(rSrc, rDst), MIN(gSrc, gDst), MIN(bSrc, bDst));
+ break;
+ default:
+ break;
+ }
+ }
}
}
More information about the Scummvm-git-logs
mailing list