[Bf-blender-cvs] [e75059e3b6a] master: Cleanup: removed runtime error

Jeroen Bakker noreply at git.blender.org
Tue Feb 25 16:16:43 CET 2020


Commit: e75059e3b6a22b70bef4b4f86829f79f1abd188f
Author: Jeroen Bakker
Date:   Tue Feb 25 16:15:03 2020 +0100
Branches: master
https://developer.blender.org/rBe75059e3b6a22b70bef4b4f86829f79f1abd188f

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.

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

M	source/blender/draw/engines/eevee/eevee_materials.c
M	source/blender/makesdna/DNA_layer_types.h

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

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;



More information about the Bf-blender-cvs mailing list