Use SDL or SFML. They both let you write RGBA into a buffer and throw it onto the screen. I think they both handle hardware stretching and scaling, too.
> Having 20 different versions of each function for every combination of data type and size.
Welcome to C land.
> I'm sure it's all related to how SGI machines worked in the early 90s and how graphics hardware evolved since then
Fixed pipeline would be, I suppose. The programmable pipeline is what you get when you have GL 1.x users reinvent the API. It's great for graphics experts and a barrier for everyone else.
> Having 20 different versions of each function for every combination of data type and size.
Welcome to C land.
> I'm sure it's all related to how SGI machines worked in the early 90s and how graphics hardware evolved since then
Fixed pipeline would be, I suppose. The programmable pipeline is what you get when you have GL 1.x users reinvent the API. It's great for graphics experts and a barrier for everyone else.