update Shader, take now Option<~str>, pass None if you don't use vertex or fragment shader