I've read some articles describing what the OpenGL state machine is, but my question is, why is it called a state machine? In my understanding, a state machine features:
- State transition: given a source state and input, it transitions to a target state.
- Output: a transition (or state if it's a Moore machine) yields an output.
But none of these characteristics does an OpenGL "state machine" really possesses. For 1, although the state transitioning exists, but it's completely free to jump from any state to any other state, giving any input (GL call) - there's no rule for it which makes the transitioning meaningless. For 2, it doesn't generate outputs like text or pixel right from the state machine itself.
In that sense, wouldn't it be better called "state set"?