| #pragma once |
| |
| #ifndef TRENDERER_INCLUDED |
| #define TRENDERER_INCLUDED |
| |
| #include "trasterfx.h" |
| |
| #undef DVAPI |
| #undef DVVAR |
| #ifdef TFX_EXPORTS |
| #define DVAPI DV_EXPORT_API |
| #define DVVAR DV_EXPORT_VAR |
| #else |
| #define DVAPI DV_IMPORT_API |
| #define DVVAR DV_IMPORT_VAR |
| #endif |
| |
| |
| |
| |
| |
| class TRenderer; |
| class TRendererImp; |
| class TException; |
| class TRenderSettings; |
| class TRasterFxP; |
| class TFxCacheManager; |
| class TRenderResourceManager; |
| class TRenderResourceManagerGenerator; |
| |
| class TFxPair { |
| public: |
| TRasterFxP m_frameA, m_frameB; |
| TFxPair() : m_frameA(), m_frameB() {} |
| TFxPair(const TRasterFxP &frameA, TRasterFxP &frameB) |
| : m_frameA(frameA), m_frameB(frameB) {} |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class DVAPI TRenderPort { |
| TRectD m_renderArea; |
| |
| public: |
| struct RenderData; |
| |
| TRenderPort(); |
| virtual ~TRenderPort(); |
| |
| void setRenderArea(const TRectD &area); |
| TRectD &getRenderArea(); |
| |
| virtual void onRenderRasterStarted(const RenderData &renderData) {} |
| virtual void onRenderRasterCompleted(const RenderData &renderData) {} |
| virtual void onRenderFailure(const RenderData &renderData, TException &e) {} |
| virtual void onRenderFinished(bool isCanceled = false) {} |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| struct TRenderPort::RenderData { |
| std::vector<double> m_frames; |
| TRenderSettings m_info; |
| TRasterP m_rasA, m_rasB; |
| |
| unsigned long m_renderId; |
| |
| unsigned long m_taskId; |
| |
| |
| |
| RenderData() : m_renderId((unsigned long)-1), m_taskId((unsigned long)-1) {} |
| RenderData(const std::vector<double> &frames, const TRenderSettings &info, |
| const TRasterP &rasA, const TRasterP &rasB, unsigned long renderId, |
| unsigned long taskId) |
| : m_frames(frames) |
| , m_info(info) |
| , m_rasA(rasA) |
| , m_rasB(rasB) |
| , m_renderId(renderId) |
| , m_taskId(taskId) {} |
| }; |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| class DVAPI TRenderer { |
| TRendererImp *m_imp; |
| |
| friend class TRenderResourceManagerGenerator; |
| TRenderResourceManager *getManager(unsigned int id) const; |
| |
| public: |
| |
| |
| struct RenderData { |
| double m_frame; |
| TRenderSettings m_info; |
| TFxPair m_fxRoot; |
| |
| |
| RenderData(double frame, const TRenderSettings &info, const TFxPair &fxRoot) |
| : m_frame(frame), m_info(info), m_fxRoot(fxRoot) {} |
| }; |
| |
| public: |
| TRenderer(int nThread = 1); |
| TRenderer(TRendererImp *); |
| ~TRenderer(); |
| |
| TRenderer(const TRenderer &); |
| void operator=(const TRenderer &); |
| |
| operator bool() const { return m_imp; } |
| |
| void addPort(TRenderPort *port); |
| void removePort(TRenderPort *port); |
| |
| unsigned long startRendering( |
| const std::vector<TRenderer::RenderData> *renderDatas); |
| unsigned long startRendering(double f, const TRenderSettings &info, |
| const TFxPair &actualRoot); |
| |
| void abortRendering(unsigned long renderId); |
| void stopRendering(bool waitForCompleteStop = false); |
| |
| void enablePrecomputing(bool on); |
| bool isPrecomputingEnabled() const; |
| |
| void setThreadsCount(int nThreads); |
| |
| static TRenderer instance(); |
| |
| unsigned long rendererId(); |
| static unsigned long renderId(); |
| static unsigned long nextRenderId(); |
| |
| |
| |
| |
| |
| enum RenderStatus { |
| IDLE = 0x0, |
| FIRSTRUN = 0x1, |
| TESTRUN = 0x2, |
| COMPUTING = 0x4 |
| }; |
| int getRenderStatus(unsigned long renderId) const; |
| bool isAborted(unsigned long renderId) const; |
| |
| |
| |
| |
| static unsigned long buildRenderId(); |
| |
| void declareRenderStart(unsigned long renderId); |
| void declareRenderEnd(unsigned long renderId); |
| |
| void declareFrameStart(double frame); |
| void declareFrameEnd(double frame); |
| |
| void install(unsigned long renderId); |
| void uninstall(); |
| |
| |
| |
| |
| |
| static void initialize(); |
| }; |
| |
| |
| |
| typedef std::vector<TRenderer::RenderData> RenderDataVector; |
| |
| #endif |