can someone please, some dev, elaborate how does WinNT/Win32 low level graphics actually work? From all my research I arrived to this conclusion, that "Windows Platform" supports no less than 3 graphic driver architectures:
- GDI driver - these are old WinNT graphics drivers which are used by actual Windows GUI, they support some very primitive HW acceleration like accelerated bitblts and some primitives drawing + transparency operations on Win2K, but for most of the cards out there these feats are emulated by direct memory access and drawing every pixel by CPU (standard VGA/SVGA).
- Direct3D HAL driver - these are completely different type of drivers and are used solely by Direct3D, I guess there are some hacks done in whole windows GUI to be able to draw into window etc.
- OpenGL ICD driver - these are another kind of drivers which are used by OpenGL on Windows, guess even more hacking is done to be able to blend OGL output with D3D and plain GDI one. I am unable to imagine how these work.
If this is true it means also, that doing HW accelerated GFX on Windows is quite a mess. Plus it means that that to fully support some GFX card those card's developers have to write all these 3 drivers?
Someone mentioned here that some OpenGL implementations, like nVidia's ones are in reality using some kind of in-house "mini-driver" which is used by D3D and GDI too, and to which all these 3 upper layers talk.
Is it like that? I am just curious what does it all mean for ReactOS, and whether all these 3 types of drivers will be supported?
It was told somewhere here too, that at some point of time nVidia's OpenGL ICDs worked in ReactOS, and I saw it was discussed recently. Does this invalidates above statement about common "mini-driver"?