shadow logic is now applied to buffer context, not a newly created one each time drawScene is created