OpenGL: Reuse GradientTriangle instances to avoid recompiling GLSL code all the time