From 33bd2c15971ba50bdb15414387bd26b1ef6a8ed0 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 24 Jul 2015 17:45:14 +0200 Subject: Deduplicate some logic around debug passes --- source/blender/compositor/operations/COM_RenderLayersProg.cpp | 10 +--------- source/blender/render/extern/include/RE_pipeline.h | 7 +++++++ source/blender/render/intern/source/render_result.c | 9 +++++---- 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; -- cgit v1.2.3