Set shadows on/off only once each time setting is changed, not each frame.
Turn lights off when no longer drawing with lighting on.
Use GLM for shadow calculations.