From 596492e639f07b6a0a3f705a0f944dc57f94b7e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Wed, 29 May 2019 23:52:37 +0200 Subject: DRW: Refactor to use object pointer for drawcall by default This cleans up a bit of duplicated code and some confusion about what was culled and what wasn't. Now everything is culled based on the given object pointer. If the object pointer is NULL there is no culling performed. --- source/blender/draw/engines/workbench/workbench_deferred.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'source/blender/draw/engines/workbench/workbench_deferred.c') diff --git a/source/blender/draw/engines/workbench/workbench_deferred.c b/source/blender/draw/engines/workbench/workbench_deferred.c index 3e442ce2125..516d4de897f 100644 --- a/source/blender/draw/engines/workbench/workbench_deferred.c +++ b/source/blender/draw/engines/workbench/workbench_deferred.c @@ -993,7 +993,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob) material = get_or_create_material_data( vedata, ob, mat, image, iuser, color_type, interp); } - DRW_shgroup_call_object(material->shgrp, geom_array[i], ob); + DRW_shgroup_call(material->shgrp, geom_array[i], ob); } } } @@ -1030,7 +1030,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob) } if (geom) { - DRW_shgroup_call_object(material->shgrp, geom, ob); + DRW_shgroup_call(material->shgrp, geom, ob); } } } @@ -1077,7 +1077,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob) material = get_or_create_material_data( vedata, ob, mat, NULL, NULL, V3D_SHADING_MATERIAL_COLOR, 0); } - DRW_shgroup_call_object(material->shgrp, geoms[i], ob); + DRW_shgroup_call(material->shgrp, geoms[i], ob); } } } @@ -1120,7 +1120,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob) } DRW_shgroup_uniform_vec3(grp, "lightDirection", engine_object_data->shadow_dir, 1); DRW_shgroup_uniform_float_copy(grp, "lightDistance", 1e5f); - DRW_shgroup_call(grp, geom_shadow, ob->obmat); + DRW_shgroup_call_no_cull(grp, geom_shadow, ob); #ifdef DEBUG_SHADOW_VOLUME DRW_debug_bbox(&engine_object_data->shadow_bbox, (float[4]){1.0f, 0.0f, 0.0f, 1.0f}); #endif @@ -1142,7 +1142,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob) } DRW_shgroup_uniform_vec3(grp, "lightDirection", engine_object_data->shadow_dir, 1); DRW_shgroup_uniform_float_copy(grp, "lightDistance", extrude_distance); - DRW_shgroup_call(grp, DRW_cache_object_surface_get(ob), ob->obmat); + DRW_shgroup_call_no_cull(grp, DRW_cache_object_surface_get(ob), ob); } if (is_manifold) { @@ -1154,7 +1154,7 @@ void workbench_deferred_solid_cache_populate(WORKBENCH_Data *vedata, Object *ob) } DRW_shgroup_uniform_vec3(grp, "lightDirection", engine_object_data->shadow_dir, 1); DRW_shgroup_uniform_float_copy(grp, "lightDistance", extrude_distance); - DRW_shgroup_call(grp, geom_shadow, ob->obmat); + DRW_shgroup_call_no_cull(grp, geom_shadow, ob); #ifdef DEBUG_SHADOW_VOLUME DRW_debug_bbox(&engine_object_data->shadow_bbox, (float[4]){0.0f, 1.0f, 0.0f, 1.0f}); #endif -- cgit v1.2.3