aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorrichiesams2013-07-29 15:08:03 -0500
committerrichiesams2013-08-04 13:32:45 -0500
commit5376aa7b3cb234134cec5923f65ab7c9273a9528 (patch)
tree0487dbbcb814da36a70404259afd1f906fdc845d /engines
parent564379d3eed127fd6c41a9a42bb149afbc7fb75e (diff)
downloadscummvm-rg350-5376aa7b3cb234134cec5923f65ab7c9273a9528.tar.gz
scummvm-rg350-5376aa7b3cb234134cec5923f65ab7c9273a9528.tar.bz2
scummvm-rg350-5376aa7b3cb234134cec5923f65ab7c9273a9528.zip
ZVISION: Move generating the RenderTable to outside setRenderState
This allows the panorama/tilt options to mutated without having to generate the table multiple times.
Diffstat (limited to 'engines')
-rw-r--r--engines/zvision/console.cpp17
-rw-r--r--engines/zvision/console.h1
-rw-r--r--engines/zvision/render_table.cpp17
-rw-r--r--engines/zvision/render_table.h1
4 files changed, 34 insertions, 2 deletions
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();