diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-07-24 18:15:55 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-07-24 18:16:29 +0300 |
commit | 68a9d80739b8281f28d18699dff572349f8b536a (patch) | |
tree | 4060e02a9b5b5f1ad82d8bd4bc8a96cf57bca918 /source/blender/compositor/operations | |
parent | d2fac7df32889a8a8da2f08f0b7c7af6869fb888 (diff) |
Compositor: Make it work for debug passes other than float
Diffstat (limited to 'source/blender/compositor/operations')
-rw-r--r-- | source/blender/compositor/operations/COM_RenderLayersProg.cpp | 18 | ||||
-rw-r--r-- | source/blender/compositor/operations/COM_RenderLayersProg.h | 6 |
2 files changed, 22 insertions, 2 deletions
diff --git a/source/blender/compositor/operations/COM_RenderLayersProg.cpp b/source/blender/compositor/operations/COM_RenderLayersProg.cpp index ad0ce3a6fc7..e7ce50f89fd 100644 --- a/source/blender/compositor/operations/COM_RenderLayersProg.cpp +++ b/source/blender/compositor/operations/COM_RenderLayersProg.cpp @@ -391,8 +391,26 @@ RenderLayersUVOperation::RenderLayersUVOperation() : RenderLayersBaseProg(SCE_PA /* ******** Debug Render Layers Cycles Operation ******** */ +#ifdef WITH_CYCLES_DEBUG + RenderLayersCyclesDebugOperation::RenderLayersCyclesDebugOperation(int pass) : RenderLayersBaseProg(pass, 1) { this->addOutputSocket(COM_DT_VALUE); } + +void RenderLayersCyclesDebugOperation::setScene(Scene *scene) +{ + RenderLayersBaseProg::setScene(scene); + switch (m_scene->r.debug_pass_type) { + case RENDER_PASS_DEBUG_BVH_TRAVERSAL_STEPS: + case RENDER_PASS_DEBUG_BVH_TRAVERSED_INSTANCES: + case RENDER_PASS_DEBUG_RAY_BOUNCES: + this->m_elementsize = 1; + default: + fprintf(stderr, "Unknown element size for debug pass"); + abort(); + } +} + +#endif diff --git a/source/blender/compositor/operations/COM_RenderLayersProg.h b/source/blender/compositor/operations/COM_RenderLayersProg.h index 8930753d7a3..edefd9aeb18 100644 --- a/source/blender/compositor/operations/COM_RenderLayersProg.h +++ b/source/blender/compositor/operations/COM_RenderLayersProg.h @@ -41,7 +41,7 @@ extern "C" { * @todo: rename to operation. */ class RenderLayersBaseProg : public NodeOperation { -private: +protected: /** * Reference to the scene object. */ @@ -74,7 +74,6 @@ private: */ const RenderData *m_rd; -protected: /** * Constructor */ @@ -213,9 +212,12 @@ public: RenderLayersUVOperation(); }; +#ifdef WITH_CYCLES_DEBUG class RenderLayersCyclesDebugOperation : public RenderLayersBaseProg { public: RenderLayersCyclesDebugOperation(int pass); + void setScene(Scene *scene); }; +#endif #endif |