From 5376aa7b3cb234134cec5923f65ab7c9273a9528 Mon Sep 17 00:00:00 2001 From: richiesams Date: Mon, 29 Jul 2013 15:08:03 -0500 Subject: ZVISION: Move generating the RenderTable to outside setRenderState This allows the panorama/tilt options to mutated without having to generate the table multiple times. --- engines/zvision/console.cpp | 17 +++++++++++++++++ engines/zvision/console.h | 1 + engines/zvision/render_table.cpp | 17 +++++++++++++++-- engines/zvision/render_table.h | 1 + 4 files changed, 34 insertions(+), 2 deletions(-) (limited to 'engines') diff --git a/engines/zvision/console.cpp b/engines/zvision/console.cpp index 12555fe3cc..e9bbdd74bb 100644 --- a/engines/zvision/console.cpp +++ b/engines/zvision/console.cpp @@ -42,6 +42,7 @@ Console::Console(ZVision *engine) : GUI::Debugger(), _engine(engine) { DCmd_Register("loadsound", WRAP_METHOD(Console, cmdLoadSound)); DCmd_Register("raw2wav", WRAP_METHOD(Console, cmdRawToWav)); DCmd_Register("setrenderstate", WRAP_METHOD(Console, cmdSetRenderState)); + DCmd_Register("generaterendertable", WRAP_METHOD(Console, cmdGenerateRenderTable)); } bool Console::cmdLoadImage(int argc, const char **argv) { @@ -119,4 +120,20 @@ bool Console::cmdSetRenderState(int argc, const char **argv) { return true; } +bool Console::cmdGenerateRenderTable(int argc, const char **argv) { + _engine->getRenderManager()->getRenderTable()->generateRenderTable(); + + return true; +} + +bool Console::cmdSetPanoramaFoV(int argc, const char **argv) { + + return true; +} + +bool Console::cmdSetPanoramaScale(int argc, const char **argv) { + + return true; +} + } // End of namespace ZVision diff --git a/engines/zvision/console.h b/engines/zvision/console.h index e2937030eb..7fa4acc194 100644 --- a/engines/zvision/console.h +++ b/engines/zvision/console.h @@ -42,6 +42,7 @@ private: bool cmdLoadSound(int argc, const char **argv); bool cmdRawToWav(int argc, const char **argv); bool cmdSetRenderState(int argc, const char **argv); + bool cmdGenerateRenderTable(int argc, const char **argv); }; } // End of namespace ZVision diff --git a/engines/zvision/render_table.cpp b/engines/zvision/render_table.cpp index 5754c91b24..1ba1648d39 100644 --- a/engines/zvision/render_table.cpp +++ b/engines/zvision/render_table.cpp @@ -49,10 +49,9 @@ void RenderTable::setRenderState(RenderState newState) { case PANORAMA: _panoramaOptions.fieldOfView = 60; _panoramaOptions.linearScale = 0.55f; - generatePanoramaLookupTable(); break; case TILT: - generateTiltLookupTable(); + break; case FLAT: // Intentionally left empty @@ -112,6 +111,20 @@ void RenderTable::mutateImage(uint16 *sourceBuffer, uint16* destBuffer, uint32 i } } +void RenderTable::generateRenderTable() { + switch (_renderState) { + case ZVision::RenderTable::PANORAMA: + generatePanoramaLookupTable(); + break; + case ZVision::RenderTable::TILT: + generateTiltLookupTable(); + break; + case ZVision::RenderTable::FLAT: + // Intentionally left empty + break; + } +} + void RenderTable::generatePanoramaLookupTable() { memset(_internalBuffer, 0, _numRows * _numColumns * sizeof(uint16)); diff --git a/engines/zvision/render_table.h b/engines/zvision/render_table.h index 3f87c2e026..a48e608db8 100644 --- a/engines/zvision/render_table.h +++ b/engines/zvision/render_table.h @@ -62,6 +62,7 @@ public: RenderState getRenderState() { return _renderState; } void setRenderState(RenderState newState); void mutateImage(uint16 *sourceBuffer, uint16* destBuffer, uint32 imageWidth, uint32 imageHeight, Common::Rect subRectangle, Common::Rect destRectangle); + void generateRenderTable(); private: void generatePanoramaLookupTable(); -- cgit v1.2.3