Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2016-03-21 08:06:04 +0300
committerCampbell Barton <ideasman42@gmail.com>2016-03-21 08:06:04 +0300
commitfb5c6333f9aa8f05b030262d321e0233a034ab8a (patch)
tree89bad1c1c31770ebc402c949de957e6f5808871a /source/blender/gpu
parent72bf5d13e6e65b055326e840d68f8fd9e237c1df (diff)
GPU: avoid redundant logic for non-spot lamps
Diffstat (limited to 'source/blender/gpu')
-rw-r--r--source/blender/gpu/intern/gpu_material.c14
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)