https://webglfundamentals.org/webgl/lessons/resources/webgl-state-diagram.html