diff options
author | Campbell Barton <ideasman42@gmail.com> | 2016-03-21 08:06:04 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2016-03-21 08:06:04 +0300 |
commit | fb5c6333f9aa8f05b030262d321e0233a034ab8a (patch) | |
tree | 89bad1c1c31770ebc402c949de957e6f5808871a /source/blender/gpu | |
parent | 72bf5d13e6e65b055326e840d68f8fd9e237c1df (diff) |
GPU: avoid redundant logic for non-spot lamps
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/intern/gpu_material.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index 2624bf2865a..bf9fb4cb718 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -2193,12 +2193,16 @@ void GPU_lamp_update(GPULamp *lamp, int lay, int hide, float obmat[4][4]) copy_m4_m4(lamp->obmat, mat); invert_m4_m4(lamp->imat, mat); - /* update spotlamp scale on X and Y axis */ - lamp->spotvec[0] = obmat_scale[0] / obmat_scale[2]; - lamp->spotvec[1] = obmat_scale[1] / obmat_scale[2]; + if (lamp->type == LA_SPOT) { + /* update spotlamp scale on X and Y axis */ + lamp->spotvec[0] = obmat_scale[0] / obmat_scale[2]; + lamp->spotvec[1] = obmat_scale[1] / obmat_scale[2]; + } - /* makeshadowbuf */ - gpu_lamp_calc_winmat(lamp); + if (GPU_lamp_has_shadow_buffer(lamp)) { + /* makeshadowbuf */ + gpu_lamp_calc_winmat(lamp); + } } void GPU_lamp_update_colors(GPULamp *lamp, float r, float g, float b, float energy) |