Exactly. This is a HUGELY oversimplified example. For that matter,Care to elaborate how most of what you've just posted will work in a protected mode enviroment?
Also isn't your explanation a over-simplification of how OpenGL and DirectX work? I don't believe either of them were primarily designed to create software renderers. Even alot of the GUI (non-3d) api calls are implemented in hardware, and accessed via the driver.
in just "plain C", you are NOT going to end up with super graphics
engines.
Quake has assembly in it. I'd be really surprised to learn that
most (all?) 3D engines are written without any assemly. I really
doubt that is the case.
Furthermore, libraries such as OpenGL, DirectX, etc, likely have
assembly in them also.
I doubt that you can do "anything" in C. For the kernel and drivers
of the OS, as with graphics engines, I'd be VERY surprised to see
it done in "pure C" with no assembly.
While you "may" be able to do it, this is in no way saying that it
is a "GoodThing(TM)" to do so. Again, without using assembly,
your graphics, while it may be possible to do so, are NOT going to
be up to par with Quake.
Quzah.