diff options
author | Martin Kiewitz | 2010-01-31 17:14:58 +0000 |
---|---|---|
committer | Martin Kiewitz | 2010-01-31 17:14:58 +0000 |
commit | 66c88b98f54fb750bebb038ef92636bcc906db55 (patch) | |
tree | 453adae0cbd2ff6c76ccd98e61e34f14318ee42a /engines/sci/graphics | |
parent | 6a3308150fd401b25cb2cab1c8c494fbf3af1a12 (diff) | |
download | scummvm-rg350-66c88b98f54fb750bebb038ef92636bcc906db55.tar.gz scummvm-rg350-66c88b98f54fb750bebb038ef92636bcc906db55.tar.bz2 scummvm-rg350-66c88b98f54fb750bebb038ef92636bcc906db55.zip |
SCI: GfxCache is now also called directly w/o SciGui nor SciGui32
svn-id: r47759
Diffstat (limited to 'engines/sci/graphics')
-rw-r--r-- | engines/sci/graphics/cache.cpp | 24 | ||||
-rw-r--r-- | engines/sci/graphics/cache.h | 4 | ||||
-rw-r--r-- | engines/sci/graphics/gui.cpp | 21 | ||||
-rw-r--r-- | engines/sci/graphics/gui.h | 10 | ||||
-rw-r--r-- | engines/sci/graphics/gui32.cpp | 21 | ||||
-rw-r--r-- | engines/sci/graphics/gui32.h | 8 |
6 files changed, 31 insertions, 57 deletions
diff --git a/engines/sci/graphics/cache.cpp b/engines/sci/graphics/cache.cpp index bce467a480..8d153e8472 100644 --- a/engines/sci/graphics/cache.cpp +++ b/engines/sci/graphics/cache.cpp @@ -53,14 +53,30 @@ void GfxCache::purgeCache() { _cachedViews.clear(); } -View *GfxCache::getView(GuiResourceId viewNum) { +View *GfxCache::getView(GuiResourceId viewId) { if (_cachedViews.size() >= MAX_CACHED_VIEWS) purgeCache(); - if (!_cachedViews.contains(viewNum)) - _cachedViews[viewNum] = new View(_resMan, _screen, _palette, viewNum); + if (!_cachedViews.contains(viewId)) + _cachedViews[viewId] = new View(_resMan, _screen, _palette, viewId); - return _cachedViews[viewNum]; + return _cachedViews[viewId]; +} + +int16 GfxCache::kernelViewGetCelWidth(GuiResourceId viewId, int16 loopNo, int16 celNo) { + return getView(viewId)->getCelInfo(loopNo, celNo)->width; +} + +int16 GfxCache::kernelViewGetCelHeight(GuiResourceId viewId, int16 loopNo, int16 celNo) { + return getView(viewId)->getCelInfo(loopNo, celNo)->height; +} + +int16 GfxCache::kernelViewGetLoopCount(GuiResourceId viewId) { + return getView(viewId)->getLoopCount(); +} + +int16 GfxCache::kernelViewGetCelCount(GuiResourceId viewId, int16 loopNo) { + return getView(viewId)->getLoopInfo(loopNo)->celCount; } } // End of namespace Sci diff --git a/engines/sci/graphics/cache.h b/engines/sci/graphics/cache.h index 804ce810e4..a8c3dd5a13 100644 --- a/engines/sci/graphics/cache.h +++ b/engines/sci/graphics/cache.h @@ -43,6 +43,10 @@ public: ~GfxCache(); View *getView(GuiResourceId viewNum); + int16 kernelViewGetCelWidth(GuiResourceId viewId, int16 loopNo, int16 celNo); + int16 kernelViewGetCelHeight(GuiResourceId viewId, int16 loopNo, int16 celNo); + int16 kernelViewGetLoopCount(GuiResourceId viewId); + int16 kernelViewGetCelCount(GuiResourceId viewId, int16 loopNo); private: void purgeCache(); diff --git a/engines/sci/graphics/gui.cpp b/engines/sci/graphics/gui.cpp index 9b7ef36f1a..ae14a7e73b 100644 --- a/engines/sci/graphics/gui.cpp +++ b/engines/sci/graphics/gui.cpp @@ -50,10 +50,9 @@ namespace Sci { -SciGui::SciGui(EngineState *state, GfxScreen *screen, GfxPalette *palette, Cursor *cursor, GfxPorts *ports, AudioPlayer *audio) - : _s(state), _screen(screen), _palette(palette), _cursor(cursor), _ports(ports), _audio(audio) { +SciGui::SciGui(EngineState *state, GfxScreen *screen, GfxPalette *palette, GfxCache *cache, Cursor *cursor, GfxPorts *ports, AudioPlayer *audio) + : _s(state), _screen(screen), _palette(palette), _cache(cache), _cursor(cursor), _ports(ports), _audio(audio) { - _cache = new GfxCache(_s->resMan, _screen, _palette); _compare = new GfxCompare(_s->_segMan, _s->_kernel, _cache, _screen); _paint16 = new GfxPaint16(_s->resMan, _s->_segMan, _s->_kernel, _cache, _ports, _screen, _palette); _transitions = new Transitions(this, _screen, _palette, _s->resMan->isVGA()); @@ -655,22 +654,6 @@ void SciGui::setCursorZone(Common::Rect zone) { _cursor->setMoveZone(zone); } -int16 SciGui::getCelWidth(GuiResourceId viewId, int16 loopNo, int16 celNo) { - return _cache->getView(viewId)->getCelInfo(loopNo, celNo)->width; -} - -int16 SciGui::getCelHeight(GuiResourceId viewId, int16 loopNo, int16 celNo) { - return _cache->getView(viewId)->getCelInfo(loopNo, celNo)->height; -} - -int16 SciGui::getLoopCount(GuiResourceId viewId) { - return _cache->getView(viewId)->getLoopCount(); -} - -int16 SciGui::getCelCount(GuiResourceId viewId, int16 loopNo) { - return _cache->getView(viewId)->getLoopInfo(loopNo)->celCount; -} - void SciGui::syncWithFramebuffer() { _screen->syncWithFramebuffer(); } diff --git a/engines/sci/graphics/gui.h b/engines/sci/graphics/gui.h index 4242ecbdda..5e002d57c6 100644 --- a/engines/sci/graphics/gui.h +++ b/engines/sci/graphics/gui.h @@ -57,8 +57,8 @@ class Transitions; class SciGui { public: - SciGui(EngineState *s, GfxScreen *screen, GfxPalette *palette, Cursor *cursor, GfxPorts *ports, AudioPlayer *audio); - virtual ~SciGui(); + SciGui(EngineState *s, GfxScreen *screen, GfxPalette *palette, GfxCache *cache, Cursor *cursor, GfxPorts *ports, AudioPlayer *audio); + ~SciGui(); virtual void init(bool usesOldGfxFunctions); @@ -123,12 +123,6 @@ public: virtual void moveCursor(Common::Point pos); void setCursorZone(Common::Rect zone); - virtual int16 getCelWidth(GuiResourceId viewId, int16 loopNo, int16 celNo); - virtual int16 getCelHeight(GuiResourceId viewId, int16 loopNo, int16 celNo); - - virtual int16 getLoopCount(GuiResourceId viewId); - virtual int16 getCelCount(GuiResourceId viewId, int16 loopNo); - virtual void syncWithFramebuffer(); virtual reg_t portraitLoad(Common::String resourceName); diff --git a/engines/sci/graphics/gui32.cpp b/engines/sci/graphics/gui32.cpp index f690ec68da..ed12c33757 100644 --- a/engines/sci/graphics/gui32.cpp +++ b/engines/sci/graphics/gui32.cpp @@ -44,10 +44,9 @@ namespace Sci { -SciGui32::SciGui32(EngineState *state, GfxScreen *screen, GfxPalette *palette, Cursor *cursor) - : _s(state), _screen(screen), _palette(palette), _cursor(cursor) { +SciGui32::SciGui32(EngineState *state, GfxScreen *screen, GfxPalette *palette, GfxCache *cache, Cursor *cursor) + : _s(state), _screen(screen), _palette(palette), _cache(cache), _cursor(cursor) { - _cache = new GfxCache(_s->resMan, _screen, _palette); _compare = new GfxCompare(_s->_segMan, _s->_kernel, _cache, _screen); } @@ -217,22 +216,6 @@ void SciGui32::setCursorZone(Common::Rect zone) { _cursor->setMoveZone(zone); } -int16 SciGui32::getCelWidth(GuiResourceId viewId, int16 loopNo, int16 celNo) { - return _cache->getView(viewId)->getCelInfo(loopNo, celNo)->width; -} - -int16 SciGui32::getCelHeight(GuiResourceId viewId, int16 loopNo, int16 celNo) { - return _cache->getView(viewId)->getCelInfo(loopNo, celNo)->height; -} - -int16 SciGui32::getLoopCount(GuiResourceId viewId) { - return _cache->getView(viewId)->getLoopCount(); -} - -int16 SciGui32::getCelCount(GuiResourceId viewId, int16 loopNo) { - return _cache->getView(viewId)->getLoopInfo(loopNo)->celCount; -} - void SciGui32::syncWithFramebuffer() { _screen->syncWithFramebuffer(); } diff --git a/engines/sci/graphics/gui32.h b/engines/sci/graphics/gui32.h index 1484af4219..1092cb9508 100644 --- a/engines/sci/graphics/gui32.h +++ b/engines/sci/graphics/gui32.h @@ -39,7 +39,7 @@ class Text; class SciGui32 { public: - SciGui32(EngineState *s, GfxScreen *screen, GfxPalette *palette, Cursor *cursor); + SciGui32(EngineState *s, GfxScreen *screen, GfxPalette *palette, GfxCache *cache, Cursor *cursor); ~SciGui32(); void init(); @@ -64,12 +64,6 @@ public: void moveCursor(Common::Point pos); void setCursorZone(Common::Rect zone); - int16 getCelWidth(GuiResourceId viewId, int16 loopNo, int16 celNo); - int16 getCelHeight(GuiResourceId viewId, int16 loopNo, int16 celNo); - - int16 getLoopCount(GuiResourceId viewId); - int16 getCelCount(GuiResourceId viewId, int16 loopNo); - void syncWithFramebuffer(); void addScreenItem(reg_t object); |