More framework for switching shaders