diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-05-21 17:55:17 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-05-22 14:29:05 +0300 |
commit | 742848843dd04df530f25ac5111cfc2f16237f51 (patch) | |
tree | 66a135625015608516bcf28c366744d772c8bafe /source/blender/draw/engines | |
parent | 925b5823ccbc4fb3f7f90b29950e3d7bb0d5c90e (diff) |
DRW: Add view param to DRW_culling_* functions
Diffstat (limited to 'source/blender/draw/engines')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_lightprobes.c | 3 | ||||
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_lights.c | 5 | ||||
-rw-r--r-- | source/blender/draw/engines/workbench/workbench_studiolight.c | 3 |
3 files changed, 7 insertions, 4 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_lightprobes.c b/source/blender/draw/engines/eevee/eevee_lightprobes.c index 56038892ca8..9b193c3a837 100644 --- a/source/blender/draw/engines/eevee/eevee_lightprobes.c +++ b/source/blender/draw/engines/eevee/eevee_lightprobes.c @@ -466,7 +466,8 @@ static bool eevee_lightprobes_culling_test(Object *ob) for (int v = 0; v < 8; ++v) { mul_m4_v3(tmp, bbox.vec[v]); } - return DRW_culling_box_test(&bbox); + const DRWView *default_view = DRW_view_default_get(); + return DRW_culling_box_test(default_view, &bbox); } case LIGHTPROBE_TYPE_CUBE: return true; /* TODO */ diff --git a/source/blender/draw/engines/eevee/eevee_lights.c b/source/blender/draw/engines/eevee/eevee_lights.c index b4eda1b0f29..e966fadbcdb 100644 --- a/source/blender/draw/engines/eevee/eevee_lights.c +++ b/source/blender/draw/engines/eevee/eevee_lights.c @@ -1347,8 +1347,9 @@ void EEVEE_draw_shadows(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, DRWView .center = {ob->obmat[3][0], ob->obmat[3][1], ob->obmat[3][2]}, .radius = light_attenuation_radius_get(la, light_threshold), }; - cube_visible[i] = DRW_culling_sphere_test(&bsphere); + cube_visible[i] = DRW_culling_sphere_test(view, &bsphere); } + bool cascade_visible[MAX_SHADOW_CASCADE]; for (i = 0; (ob = linfo->shadow_cascade_ref[i]) && (i < MAX_SHADOW_CASCADE); i++) { EEVEE_LightEngineData *led = EEVEE_light_data_get(ob); @@ -1359,7 +1360,7 @@ void EEVEE_draw_shadows(EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, DRWView plane_from_point_normal_v3(plane, sh_data->viewmat[3], sh_data->viewmat[2]); /* TODO: check against near/far instead of "local Z = 0" plane. * Or even the cascades AABB. */ - cascade_visible[i] = DRW_culling_plane_test(plane); + cascade_visible[i] = DRW_culling_plane_test(view, plane); } /* Cube Shadow Maps */ diff --git a/source/blender/draw/engines/workbench/workbench_studiolight.c b/source/blender/draw/engines/workbench/workbench_studiolight.c index af07a818533..fbe538c5994 100644 --- a/source/blender/draw/engines/workbench/workbench_studiolight.c +++ b/source/blender/draw/engines/workbench/workbench_studiolight.c @@ -230,7 +230,8 @@ bool studiolight_object_cast_visible_shadow(WORKBENCH_PrivateData *wpd, WORKBENCH_ObjectData *oed) { BoundBox *shadow_bbox = studiolight_object_shadow_bbox_get(wpd, ob, oed); - return DRW_culling_box_test(shadow_bbox); + const DRWView *default_view = DRW_view_default_get(); + return DRW_culling_box_test(default_view, shadow_bbox); } float studiolight_object_shadow_distance(WORKBENCH_PrivateData *wpd, |