From e75059e3b6a22b70bef4b4f86829f79f1abd188f Mon Sep 17 00:00:00 2001 From: Jeroen Bakker Date: Tue, 25 Feb 2020 16:15:03 +0100 Subject: Cleanup: removed runtime error The render passes checked all bits of an integer, that can lead to runtime errors. Added the max bit in the DNA and used this. --- source/blender/draw/engines/eevee/eevee_materials.c | 3 ++- source/blender/makesdna/DNA_layer_types.h | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'source') diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/engines/eevee/eevee_materials.c index 0c9efeb0a16..7661dfb41a5 100644 --- a/source/blender/draw/engines/eevee/eevee_materials.c +++ b/source/blender/draw/engines/eevee/eevee_materials.c @@ -124,7 +124,8 @@ extern char datatoc_gpu_shader_uniform_color_frag_glsl[]; ~EEVEE_RENDER_PASS_ENVIRONMENT; \ if (__filtered_##render_pass_index_ != 0) { \ int render_pass_index_ = 1; \ - for (int bit_##render_pass_ = 0; bit_##render_pass_ < 32; bit_##render_pass_++) { \ + for (int bit_##render_pass_ = 0; bit_##render_pass_ < EEVEE_RENDER_PASS_MAX_BIT; \ + bit_##render_pass_++) { \ eViewLayerEEVEEPassType render_pass_ = (1 << bit_##render_pass_); \ if ((__filtered_##render_pass_index_ & render_pass_) != 0) { #define RENDER_PASS_ITER_END(render_pass_index_) \ diff --git a/source/blender/makesdna/DNA_layer_types.h b/source/blender/makesdna/DNA_layer_types.h index 09d02e9a375..62ae5768879 100644 --- a/source/blender/makesdna/DNA_layer_types.h +++ b/source/blender/makesdna/DNA_layer_types.h @@ -47,6 +47,7 @@ typedef enum eViewLayerEEVEEPassType { EEVEE_RENDER_PASS_AO = (1 << 13), EEVEE_RENDER_PASS_BLOOM = (1 << 14), } eViewLayerEEVEEPassType; +#define EEVEE_RENDER_PASS_MAX_BIT 15 typedef struct Base { struct Base *next, *prev; -- cgit v1.2.3