[Bf-blender-cvs] [c15352dd67f] blender-v2.83-release: Fix T79509 Workbench: Object color mode broken if more than 4096 objects

Clément Foucault noreply at git.blender.org
Wed Aug 12 09:44:10 CEST 2020


Commit: c15352dd67f551f559c40d7d5e0402dc6ec2e913
Author: Clément Foucault
Date:   Wed Aug 5 19:27:44 2020 +0200
Branches: blender-v2.83-release
https://developer.blender.org/rBc15352dd67f551f559c40d7d5e0402dc6ec2e913

Fix T79509 Workbench: Object color mode broken if more than 4096 objects

This was due to the new DRWShadingGroup not being saved and reused for
the next objects.

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

M	source/blender/draw/engines/workbench/workbench_materials.c

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

diff --git a/source/blender/draw/engines/workbench/workbench_materials.c b/source/blender/draw/engines/workbench/workbench_materials.c
index 00638aa9f61..9d54d4c7e75 100644
--- a/source/blender/draw/engines/workbench/workbench_materials.c
+++ b/source/blender/draw/engines/workbench/workbench_materials.c
@@ -228,15 +228,15 @@ DRWShadingGroup *workbench_material_setup_ex(WORKBENCH_PrivateData *wpd,
       workbench_material_ubo_data(wpd, ob, NULL, &wpd->material_ubo_data_curr[mat_id], color_type);
 
       const bool transp = wpd->shading.xray_alpha < 1.0f || ob->color[3] < 1.0f;
-      DRWShadingGroup *grp = wpd->prepass[transp][infront][hair].common_shgrp;
+      DRWShadingGroup **grp = &wpd->prepass[transp][infront][hair].common_shgrp;
       if (resource_changed) {
-        grp = DRW_shgroup_create_sub(grp);
-        DRW_shgroup_uniform_block(grp, "material_block", wpd->material_ubo_curr);
+        *grp = DRW_shgroup_create_sub(*grp);
+        DRW_shgroup_uniform_block(*grp, "material_block", wpd->material_ubo_curr);
       }
       if (r_transp && transp) {
         *r_transp = true;
       }
-      return grp;
+      return *grp;
     }
   }
 }



More information about the Bf-blender-cvs mailing list