[ros-kernel] OpenGL

James Tabor jimtabor at adsl-64-217-116-74.dsl.hstntx.swbell.net
Sat Jan 31 07:58:51 CET 2004


Hi!
Reading from "Windows Graphics Programming" by Feng Yuan. Page 70-71,

The window extension (WGL) part is defined in the GDI header file wingdi.h.
OpenGL uses library files opengl.lib and gdi32.lib and runtime DLL's opengl32.dll
and gdi32.dll.

Uses mini-client architecture (MCD) to facilitate OpenGL drivers, OpenGL.dll
loads mcd32.dll, the OS-supplied client-side Dll, and an optional vendor
supplied user mode OpenGL driver. You can find your OpenGL drivers by searching
for OpenGLDrivers in the registry. The MCD client and the OpenGl user mode
driver uses GDI function ExtEscape to send commands to the graphics engine
and driver in kernel mode. A display driver providing OpenGl optimization
is needed to support its MCD portion, with the help of a kernel MCD server
in mcdsrv32.dll.

I think I posted a OpenGl sourced device driver on this list sometime ago,
hopefully someone still has it.

Royce Mitchell III wrote:
> blight and I have been doing a little bit of research on OpenGL for 
> Steven, and I think getting OpenGL support into ReactOS is going to be a 
> piece of cake (relatively speaking).
> 
> I've put my notes up on the wiki:
> 
>    http://mok.lvcm.com/cgi-bin/reactos/roswiki?OpenGL
> 
> 1) We can pull in Mesa for the software/generic implementation.
> 
no need
> 2) We add a little bit of code to query the registry for OpenGL drivers.
> 
yes, only in opengl
> 3) If any OpenGL drivers are found, redirect our OpenGL32's gl functions 
> to the driver.
> 
no, look at gdi32/misc/wingl.c. Also when OpenGL loads it does read the registry,
For what? "OpenGLDrivers"!

> 4) Implement ExtEscape*() function, so the ICD can communicate with the 
> kernel gdi/display driver.
yeap-er!
> 
> Peace,
> 
> Royce3
> 
> * It's my educated guess that this is the function that ICDs use to talk 
> to the GDI driver. Somebody who's good at API snooping might be able to 
> confirm this.
> 


More information about the Ros-kernel mailing list