A lot of engines do this to some extent (eg. OGRE3D, Irrlicht, et al.) but there are pitfalls there as well. While jquery does a good job of shimming in hacks for older browsers the world of graphics programming isn't really that flexible and even newer drivers can still be a total grab bag of what they support - think of it like this: you have the latest version of Firefox and you can support everything but rendering text in italics. How would you shim that in? Can you? What if it tells you it supports it but it actually slants text the other way? What if it renders correctly but doing it the normal way takes an hour but there's a hack for only this operating system and version of Gecko that works. Also there really isn't a manual and StackOverflow is full of questions that contain all your search terms but are actually for a completely unrelated matter.
So you drop it from the common interface that your abstraction presents because it's just not consistent enough....
There are also a TONNE of shader abstraction languages that transcribe to HLSL or GLSL on the fly for the same reason.
tldr; Engine developers stare into the abyss and somehow the abyss gives back a projection matrix.
So you drop it from the common interface that your abstraction presents because it's just not consistent enough....
There are also a TONNE of shader abstraction languages that transcribe to HLSL or GLSL on the fly for the same reason.
tldr; Engine developers stare into the abyss and somehow the abyss gives back a projection matrix.