GPU: avoid redundant logic for non-spot lamps
This commit is contained in:
parent
72bf5d13e6
commit
fb5c6333f9
|
@ -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);
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue