2014-09-09 15:56:52 +00:00
|
|
|
#ifndef RENDERPROCESS_H
|
|
|
|
#define RENDERPROCESS_H
|
|
|
|
|
|
|
|
#include "modeler_global.h"
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
|
|
|
|
namespace paysages {
|
|
|
|
namespace modeler {
|
|
|
|
|
|
|
|
class RenderProcess: public QObject
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
2015-07-22 17:23:22 +00:00
|
|
|
RenderProcess(MainModelerWindow *window, RenderPreviewProvider *destination);
|
2014-09-09 15:56:52 +00:00
|
|
|
virtual ~RenderProcess();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Start the rendering process in a separate thread.
|
|
|
|
*/
|
|
|
|
void startRender(Scenery *scenery, const RenderConfig &config);
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Stop any currently running render.
|
|
|
|
*/
|
|
|
|
void stopRender();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Get the size of the preview image.
|
|
|
|
*/
|
|
|
|
const QSize getPreviewSize();
|
|
|
|
|
2015-07-22 22:28:27 +00:00
|
|
|
inline bool isRendering() const {return rendering;}
|
|
|
|
|
|
|
|
public slots:
|
|
|
|
/**
|
|
|
|
* Start a quick render.
|
|
|
|
*/
|
|
|
|
void startQuickRender();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Start a final render.
|
|
|
|
*/
|
|
|
|
void startFinalRender();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Show the previous rendering.
|
|
|
|
*/
|
|
|
|
void showPreviousRender();
|
|
|
|
|
2014-09-09 15:56:52 +00:00
|
|
|
protected:
|
|
|
|
virtual void timerEvent(QTimerEvent *event) override;
|
|
|
|
|
|
|
|
private:
|
2015-07-22 17:23:22 +00:00
|
|
|
MainModelerWindow *window;
|
2014-09-09 15:56:52 +00:00
|
|
|
RenderPreviewProvider *destination;
|
2015-07-22 22:28:27 +00:00
|
|
|
bool has_render;
|
2014-09-09 15:56:52 +00:00
|
|
|
bool rendering;
|
|
|
|
SoftwareCanvasRenderer *renderer;
|
|
|
|
Thread *render_thread;
|
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif // RENDERPROCESS_H
|