diff options
author | Martin Kiewitz | 2010-01-29 14:05:21 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-01-29 14:05:21 +0000 |
commit | 1bcbd71c976b1a1159c2a44ec9cdc41acfb6791c (patch) | |
tree | 74230adbdaad9e9eaa80ca451de5a9265dbd882e | |
parent | caeafb29ffa0d45998dfafa7e8d431636f1dab60 (diff) | |
download | scummvm-rg350-1bcbd71c976b1a1159c2a44ec9cdc41acfb6791c.tar.gz scummvm-rg350-1bcbd71c976b1a1159c2a44ec9cdc41acfb6791c.tar.bz2 scummvm-rg350-1bcbd71c976b1a1159c2a44ec9cdc41acfb6791c.zip |
SCI: hacked up a bit sci32 graphics to support (theoretically) scaling
svn-id: r47668
-rw-r--r-- | engines/sci/graphics/gui.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/engines/sci/graphics/gui.cpp b/engines/sci/graphics/gui.cpp index 5d3362598f..b5a567b727 100644 --- a/engines/sci/graphics/gui.cpp +++ b/engines/sci/graphics/gui.cpp @@ -974,6 +974,8 @@ void SciGui::frameOut() { uint16 leftPos = GET_SEL32V(_s->_segMan, viewObj, x); uint16 topPos = GET_SEL32V(_s->_segMan, viewObj, y); priority = GET_SEL32V(_s->_segMan, viewObj, priority); + uint16 scaleX = GET_SEL32V(_s->_segMan, viewObj, scaleX); + uint16 scaleY = GET_SEL32V(_s->_segMan, viewObj, scaleY); //int16 signal = GET_SEL32V(_s->_segMan, viewObj, signal); // FIXME: See above @@ -991,8 +993,17 @@ void SciGui::frameOut() { continue; } - if (viewId != 0xffff) - drawCel(viewId, loopNo, celNo, leftPos, topPos, priority, 0); + if (viewId != 0xffff) { + Common::Rect celRect; + View *view = _gfx->getView(viewId); + celRect.left = leftPos; + celRect.top = topPos; + celRect.right = celRect.left + view->getWidth(loopNo, celNo); + celRect.bottom = celRect.top + view->getHeight(loopNo, celNo); + celRect.clip(_gfx->_curPort->rect); + _gfx->drawCel(view, loopNo, celNo, celRect, priority, 0, scaleX, scaleY); + } + //drawCel(viewId, loopNo, celNo, leftPos, topPos, priority, 0); } } } |