Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2015-07-24 18:15:55 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-07-24 18:16:29 +0300
commit68a9d80739b8281f28d18699dff572349f8b536a (patch)
tree4060e02a9b5b5f1ad82d8bd4bc8a96cf57bca918
parentd2fac7df32889a8a8da2f08f0b7c7af6869fb888 (diff)
Compositor: Make it work for debug passes other than float
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersProg.cpp18
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersProg.h6
-rw-r--r--source/blender/nodes/composite/nodes/node_composite_image.c2
3 files changed, 23 insertions, 3 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
diff --git a/source/blender/nodes/composite/nodes/node_composite_image.c b/source/blender/nodes/composite/nodes/node_composite_image.c
index 1985037c5ce..208c1f84387 100644
--- a/source/blender/nodes/composite/nodes/node_composite_image.c
+++ b/source/blender/nodes/composite/nodes/node_composite_image.c
@@ -74,7 +74,7 @@ static bNodeSocketTemplate cmp_node_rlayers_out[] = {
{ SOCK_RGBA, 0, N_("Subsurface Indirect"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
{ SOCK_RGBA, 0, N_("Subsurface Color"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
#ifdef WITH_CYCLES_DEBUG
- { SOCK_FLOAT, 0, N_("Debug"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
+ { SOCK_RGBA, 0, N_("Debug"), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f},
#endif
{ -1, 0, "" }
};