This is just a question about OpenGL design.
Why is it that so many functions explicitly state the data type and component count in the function name, while others do not?
Case in point:
glVertex3f - three components per vertex, floating point type
glVertexPointer - we specify component count and type as parameters to the function. Doesn’t this eliminate certain driver optimization opportunities by requiring a data type check, potential data casts, etc?
It just seems inconsistent, and I’d like to know ‘why’ if there’s someone with the answer.