Do GL and DX 'go through' the Windows GDI?

Started by
3 comments, last by 21st Century Moose 9 years, 9 months ago
I do realise to answer this question you would pretty much need to know everything, kernel architecture, memory management, the HAL etc and how they all intertwine with each other. For example you can do a lot of graphics stuff with the GDI dialog boxes, probably full 2D/3D rendering also, I only know the basics as there are so man toolkits or RAD languages that bypass directly using the GDI. So how do GL/DX interact with the GDI, they must interact the OS at some point, so what is the relationship between these graphics libraries and the OS?
Advertisement

http://en.wikipedia.org/wiki/Graphics_Device_Interface#Windows_Vista

In Windows Vista, all Windows applications including GDI and GDI+ applications run in the new compositing engine, Desktop Window Manager which is built atop the Windows Display Driver Model.

http://en.wikipedia.org/wiki/DirectX

Direct3D 9Ex, Direct3D 10, and Direct3D 11 are only available for Windows Vista and newer because each of these new versions was built to depend upon the new Windows Display Driver Model that was introduced for Windows Vista

So, for at least Windows Vista and newer operating systems, GDI and DirectX are built on top of the Windows Display Driver Model, DirectX more directly. I'm not sure what Windows did before Vista, but I'm almost 100% certain DirectX bypassed GDI.

C++: A Dialog | C++0x Features: Part1 (lambdas, auto, static_assert) , Part 2 (rvalue references) , Part 3 (decltype) | Write Games | Fix Your Timestep!

Their big change was that the drivers took advantage of the 3D chips.

Before that time graphics cards effectively had a 3D mode for 3D graphics, and a 2D mode that has been the same since the mid 1990's introduced 2D graphics cards for Windows. One of Vista's big changes was that Aero ran the card as a 3D graphics card for the blending and effects.

The drivers needed to be modified to accommodate that change. Windowed D3D applications were no longer just 3d within a rectangle, but became 3D everywhere.

For full screen programs, both before and now you get access to everything.

Short answer: No, and since Vista it's the other way around: GDI goes through DX drivers when compositing is enabled. GL drivers have always been separate from both DX and GDI. (I don't like long answers smile.png )

This description of the WDDM driver model should help: http://msdn.microsoft.com/en-us/library/windows/hardware/ff570589%28v=vs.85%29.aspx

There's even a nice diagram that shows where everything fits

IC504961.png

Direct3D has need of instancing, but we do not. We have plenty of glVertexAttrib calls.

This topic is closed to new replies.

Advertisement