[Bf-blender-cvs] [33bd2c1] master: Deduplicate some logic around debug passes

Sergey Sharybin noreply at git.blender.org
Fri Jul 24 17:48:53 CEST 2015


Commit: 33bd2c15971ba50bdb15414387bd26b1ef6a8ed0
Author: Sergey Sharybin
Date:   Fri Jul 24 17:45:14 2015 +0200
Branches: master
https://developer.blender.org/rB33bd2c15971ba50bdb15414387bd26b1ef6a8ed0

Deduplicate some logic around debug passes

===================================================================

M	source/blender/compositor/operations/COM_RenderLayersProg.cpp
M	source/blender/render/extern/include/RE_pipeline.h
M	source/blender/render/intern/source/render_result.c

===================================================================

diff --git a/source/blender/compositor/operations/COM_RenderLayersProg.cpp b/source/blender/compositor/operations/COM_RenderLayersProg.cpp
index e7ce50f..d93d327 100644
--- a/source/blender/compositor/operations/COM_RenderLayersProg.cpp
+++ b/source/blender/compositor/operations/COM_RenderLayersProg.cpp
@@ -402,15 +402,7 @@ RenderLayersCyclesDebugOperation::RenderLayersCyclesDebugOperation(int pass)
 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();
-	}
+	this->m_elementsize = RE_debug_pass_num_channels_get(m_scene->r.debug_pass_type);
 }
 
 #endif
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h
index 4b6004c..7951248 100644
--- a/source/blender/render/extern/include/RE_pipeline.h
+++ b/source/blender/render/extern/include/RE_pipeline.h
@@ -361,5 +361,12 @@ bool RE_RenderResult_is_stereo(RenderResult *res);
 struct RenderView *RE_RenderViewGetById(struct RenderResult *res, const int view_id);
 struct RenderView *RE_RenderViewGetByName(struct RenderResult *res, const char *viewname);
 
+/******* Debug pass helper functions *********/
+
+#ifdef WITH_CYCLES_DEBUG
+int RE_debug_pass_num_channels_get(int pass_type);
+const char *RE_debug_pass_name_get(int pass_type);
+#endif
+
 #endif /* __RE_PIPELINE_H__ */
 
diff --git a/source/blender/render/intern/source/render_result.c b/source/blender/render/intern/source/render_result.c
index a33f8e6..8d63c84 100644
--- a/source/blender/render/intern/source/render_result.c
+++ b/source/blender/render/intern/source/render_result.c
@@ -528,7 +528,7 @@ static RenderPass *render_layer_add_pass(RenderResult *rr, RenderLayer *rl, int
 }
 
 #ifdef WITH_CYCLES_DEBUG
-static const char *debug_pass_type_name_get(int debug_type)
+const char *RE_debug_pass_name_get(int debug_type)
 {
 	switch (debug_type) {
 		case RENDER_PASS_DEBUG_BVH_TRAVERSAL_STEPS:
@@ -541,7 +541,7 @@ static const char *debug_pass_type_name_get(int debug_type)
 	return "Unknown";
 }
 
-static int debug_pass_channels_get(int UNUSED(debug_type))
+int RE_debug_pass_num_channels_get(int UNUSED(debug_type))
 {
 	/* Only single case currently, might be handy for further debug passes. */
 	return 1;
@@ -553,11 +553,12 @@ static RenderPass *render_layer_add_debug_pass(RenderResult *rr,
                                                int debug_type,
                                                const char *view)
 {
-	int channels = debug_pass_channels_get(debug_type);
+	const char *name = RE_debug_pass_name_get(debug_type);
+	int channels = RE_debug_pass_num_channels_get(debug_type);
 	RenderPass *rpass = render_layer_add_pass(rr, rl, channels, pass_type, view);
 	rpass->debug_type = debug_type;
 	BLI_strncpy(rpass->name,
-	            debug_pass_type_name_get(debug_type),
+	            name,
 	            sizeof(rpass->name));
 	BLI_strncpy(rpass->internal_name, rpass->name, sizeof(rpass->internal_name));
 	return rpass;




More information about the Bf-blender-cvs mailing list