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:45:14 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-07-24 18:45:14 +0300
commit33bd2c15971ba50bdb15414387bd26b1ef6a8ed0 (patch)
tree931dc1c77b4a46ea1e9a3e5d14a0d90b1fbe7a34
parent68a9d80739b8281f28d18699dff572349f8b536a (diff)
Deduplicate some logic around debug passes
-rw-r--r--source/blender/compositor/operations/COM_RenderLayersProg.cpp10
-rw-r--r--source/blender/render/extern/include/RE_pipeline.h7
-rw-r--r--source/blender/render/intern/source/render_result.c9
3 files changed, 13 insertions, 13 deletions
diff --git a/source/blender/compositor/operations/COM_RenderLayersProg.cpp b/source/blender/compositor/operations/COM_RenderLayersProg.cpp
index e7ce50f89fd..d93d327d07d 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 4b6004cea3d..7951248b38e 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 a33f8e6bdd0..8d63c84b438 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;