Don't copy scenery in the renderer
This commit is contained in:
parent
db0be5204f
commit
56dae1e38e
10 changed files with 20 additions and 41 deletions
|
@ -203,9 +203,8 @@ int main(int argc, char** argv)
|
||||||
Vector3 step = {conf_camera_step_x, conf_camera_step_y, conf_camera_step_z};
|
Vector3 step = {conf_camera_step_x, conf_camera_step_y, conf_camera_step_z};
|
||||||
camera->setLocation(camera->getLocation().add(step));
|
camera->setLocation(camera->getLocation().add(step));
|
||||||
|
|
||||||
renderer = new SoftwareCanvasRenderer();
|
renderer = new SoftwareCanvasRenderer(scenery);
|
||||||
renderer->setConfig(conf_render_params);
|
renderer->setConfig(conf_render_params);
|
||||||
renderer->setScenery(scenery);
|
|
||||||
|
|
||||||
if (outputcount >= conf_first_picture)
|
if (outputcount >= conf_first_picture)
|
||||||
{
|
{
|
||||||
|
|
|
@ -17,12 +17,12 @@
|
||||||
|
|
||||||
MainModelerWindow::MainModelerWindow()
|
MainModelerWindow::MainModelerWindow()
|
||||||
{
|
{
|
||||||
Scenery scenery;
|
scenery = new Scenery();
|
||||||
scenery.autoPreset();
|
scenery->autoPreset();
|
||||||
|
|
||||||
Logs::debug() << "Initialized scenery:\n" << scenery.toString() << std::endl;
|
Logs::debug() << "Initialized scenery:\n" << scenery->toString() << std::endl;
|
||||||
|
|
||||||
renderer = new OpenGLRenderer(&scenery);
|
renderer = new OpenGLRenderer(scenery);
|
||||||
|
|
||||||
render_preview_provider = new RenderPreviewProvider();
|
render_preview_provider = new RenderPreviewProvider();
|
||||||
|
|
||||||
|
@ -77,11 +77,6 @@ void MainModelerWindow::setState(const QString &stateName)
|
||||||
rootObject()->setProperty("state", stateName);
|
rootObject()->setProperty("state", stateName);
|
||||||
}
|
}
|
||||||
|
|
||||||
Scenery *MainModelerWindow::getScenery() const
|
|
||||||
{
|
|
||||||
return renderer->getScenery();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainModelerWindow::keyReleaseEvent(QKeyEvent *event)
|
void MainModelerWindow::keyReleaseEvent(QKeyEvent *event)
|
||||||
{
|
{
|
||||||
if (getState() == "Render Dialog")
|
if (getState() == "Render Dialog")
|
||||||
|
|
|
@ -21,7 +21,7 @@ public:
|
||||||
QString getState() const;
|
QString getState() const;
|
||||||
void setState(const QString &stateName);
|
void setState(const QString &stateName);
|
||||||
|
|
||||||
Scenery *getScenery() const;
|
inline Scenery *getScenery() const {return scenery;}
|
||||||
inline OpenGLRenderer *getRenderer() const {return renderer;}
|
inline OpenGLRenderer *getRenderer() const {return renderer;}
|
||||||
inline ModelerCameras *getCamera() const {return cameras;}
|
inline ModelerCameras *getCamera() const {return cameras;}
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ protected:
|
||||||
virtual void keyReleaseEvent(QKeyEvent *event) override;
|
virtual void keyReleaseEvent(QKeyEvent *event) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Scenery *scenery;
|
||||||
OpenGLRenderer *renderer;
|
OpenGLRenderer *renderer;
|
||||||
|
|
||||||
AtmosphereModeler *atmosphere;
|
AtmosphereModeler *atmosphere;
|
||||||
|
|
|
@ -76,8 +76,7 @@ void RenderProcess::startRender(Scenery *scenery, const RenderConfig &config)
|
||||||
delete renderer;
|
delete renderer;
|
||||||
}
|
}
|
||||||
|
|
||||||
renderer = new SoftwareCanvasRenderer();
|
renderer = new SoftwareCanvasRenderer(scenery);
|
||||||
renderer->setScenery(scenery);
|
|
||||||
renderer->setConfig(config);
|
renderer->setConfig(config);
|
||||||
|
|
||||||
destination->setCanvas(renderer->getCanvas());
|
destination->setCanvas(renderer->getCanvas());
|
||||||
|
|
|
@ -14,7 +14,7 @@ namespace opengl {
|
||||||
class OPENGLSHARED_EXPORT OpenGLRenderer: public SoftwareRenderer
|
class OPENGLSHARED_EXPORT OpenGLRenderer: public SoftwareRenderer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
OpenGLRenderer(Scenery* scenery=0);
|
OpenGLRenderer(Scenery* scenery);
|
||||||
virtual ~OpenGLRenderer();
|
virtual ~OpenGLRenderer();
|
||||||
|
|
||||||
inline OpenGLSkybox *getSkybox() const {return skybox;}
|
inline OpenGLSkybox *getSkybox() const {return skybox;}
|
||||||
|
|
|
@ -14,7 +14,8 @@
|
||||||
#include "ColorProfile.h"
|
#include "ColorProfile.h"
|
||||||
#include "CanvasPreview.h"
|
#include "CanvasPreview.h"
|
||||||
|
|
||||||
SoftwareCanvasRenderer::SoftwareCanvasRenderer()
|
SoftwareCanvasRenderer::SoftwareCanvasRenderer(Scenery *scenery):
|
||||||
|
SoftwareRenderer(scenery)
|
||||||
{
|
{
|
||||||
started = false;
|
started = false;
|
||||||
finished = false;
|
finished = false;
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace software {
|
||||||
class SOFTWARESHARED_EXPORT SoftwareCanvasRenderer: public SoftwareRenderer
|
class SOFTWARESHARED_EXPORT SoftwareCanvasRenderer: public SoftwareRenderer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
SoftwareCanvasRenderer();
|
SoftwareCanvasRenderer(Scenery *scenery);
|
||||||
virtual ~SoftwareCanvasRenderer();
|
virtual ~SoftwareCanvasRenderer();
|
||||||
|
|
||||||
inline const Canvas *getCanvas() const {return canvas;}
|
inline const Canvas *getCanvas() const {return canvas;}
|
||||||
|
|
|
@ -20,14 +20,9 @@
|
||||||
#include "System.h"
|
#include "System.h"
|
||||||
#include "Thread.h"
|
#include "Thread.h"
|
||||||
|
|
||||||
SoftwareRenderer::SoftwareRenderer(Scenery* scenery)
|
SoftwareRenderer::SoftwareRenderer(Scenery* scenery):
|
||||||
|
scenery(scenery)
|
||||||
{
|
{
|
||||||
this->scenery = new Scenery;
|
|
||||||
if (scenery)
|
|
||||||
{
|
|
||||||
scenery->copy(this->scenery);
|
|
||||||
}
|
|
||||||
|
|
||||||
render_quality = 5;
|
render_quality = 5;
|
||||||
render_camera = new CameraDefinition;
|
render_camera = new CameraDefinition;
|
||||||
|
|
||||||
|
@ -61,13 +56,6 @@ SoftwareRenderer::~SoftwareRenderer()
|
||||||
delete terrain_renderer;
|
delete terrain_renderer;
|
||||||
delete textures_renderer;
|
delete textures_renderer;
|
||||||
delete water_renderer;
|
delete water_renderer;
|
||||||
|
|
||||||
delete scenery;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SoftwareRenderer::setScenery(Scenery* scenery)
|
|
||||||
{
|
|
||||||
scenery->copy(this->scenery);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SoftwareRenderer::prepare()
|
void SoftwareRenderer::prepare()
|
||||||
|
|
|
@ -15,7 +15,7 @@ class SOFTWARESHARED_EXPORT SoftwareRenderer
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SoftwareRenderer(Scenery* scenery=0);
|
SoftwareRenderer(Scenery* scenery);
|
||||||
virtual ~SoftwareRenderer();
|
virtual ~SoftwareRenderer();
|
||||||
|
|
||||||
/* Render base configuration */
|
/* Render base configuration */
|
||||||
|
@ -30,13 +30,6 @@ public:
|
||||||
virtual Vector3 projectPoint(const Vector3 &point);
|
virtual Vector3 projectPoint(const Vector3 &point);
|
||||||
virtual Vector3 unprojectPoint(const Vector3 &point);
|
virtual Vector3 unprojectPoint(const Vector3 &point);
|
||||||
|
|
||||||
/*!
|
|
||||||
* \brief Set the scenery to render.
|
|
||||||
*
|
|
||||||
* Don't call this after rendering has already started.
|
|
||||||
*/
|
|
||||||
virtual void setScenery(Scenery* scenery);
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \brief Prepare the renderer sub-systems.
|
* \brief Prepare the renderer sub-systems.
|
||||||
*
|
*
|
||||||
|
|
|
@ -11,15 +11,18 @@ class FluidMediumManager_Test:public BaseTestCase
|
||||||
protected:
|
protected:
|
||||||
virtual void setUp()
|
virtual void setUp()
|
||||||
{
|
{
|
||||||
renderer = new SoftwareRenderer();
|
scenery = new Scenery();
|
||||||
|
renderer = new SoftwareRenderer(scenery);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void tearDown()
|
virtual void tearDown()
|
||||||
{
|
{
|
||||||
delete renderer;
|
delete renderer;
|
||||||
|
delete scenery;
|
||||||
}
|
}
|
||||||
|
|
||||||
SoftwareRenderer* renderer;
|
Scenery *scenery;
|
||||||
|
SoftwareRenderer *renderer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue