diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-07-24 18:45:14 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-07-24 18:45:14 +0300 |
commit | 33bd2c15971ba50bdb15414387bd26b1ef6a8ed0 (patch) | |
tree | 931dc1c77b4a46ea1e9a3e5d14a0d90b1fbe7a34 /source/blender | |
parent | 68a9d80739b8281f28d18699dff572349f8b536a (diff) |
Deduplicate some logic around debug passes
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/compositor/operations/COM_RenderLayersProg.cpp | 10 | ||||
-rw-r--r-- | source/blender/render/extern/include/RE_pipeline.h | 7 | ||||
-rw-r--r-- | 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; |