Commit: f036e1875f3dc4caa550078acdffb077f7f082f6 Author: Campbell Barton Date: Mon Mar 21 16:06:04 2016 +1100 Branches: blender-v2.77-release https://developer.blender.org/rBf036e1875f3dc4caa550078acdffb077f7f082f6
GPU: avoid redundant logic for non-spot lamps =================================================================== M source/blender/editors/space_view3d/view3d_draw.c M source/blender/gpu/intern/gpu_material.c =================================================================== diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index 087c533..d81ef17 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2508,7 +2508,11 @@ static void gpu_render_lamp_update(Scene *scene, View3D *v3d, if (srl) layers &= srl->lay; - if (layers && GPU_lamp_override_visible(lamp, srl, NULL) && GPU_lamp_has_shadow_buffer(lamp)) { + if (layers && + GPU_lamp_has_shadow_buffer(lamp) && + /* keep last, may do string lookup */ + GPU_lamp_override_visible(lamp, srl, NULL)) + { shadow = MEM_callocN(sizeof(View3DShadow), "View3DShadow"); shadow->lamp = lamp; BLI_addtail(shadows, shadow); diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c index fcace47..7437e2d 100644 --- a/source/blender/gpu/intern/gpu_material.c +++ b/source/blender/gpu/intern/gpu_material.c @@ -2186,12 +2186,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) _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs