[ros-kernel] far fetched question

cm c.mench at free.fr
Thu Nov 13 20:45:28 CET 2003


I just looked at the road map for ReactOS

I noticed that Direct X is planned for October 2004

No mention of OpenGL is present

Reading this mailing list I saw that j.tabor plans
some OpenGL work


Do you think the time frame is the same as for directX ?
or maybe before?

My thinking is that openGl driver part of the graphics
driver is not so far from were you are now. I may be
wrong of course.

The question is because I work on a User32.dll + GDI32.dll
replacement for using OpenGL for rendering the desktop.

As my program is not more than a toy on windows, it would
be interesting on reactos as primary window server. But
Hardware OpenGL must exist


Sorry if you consider this mail as spam, but i really want to
know is Hardware OpenGL is on the TodoList or never
will be supported


And in any case,

            congratulation for the fantastic work you all already
have done.


                    CM.





Some basic explanation of planned architecture...
------------------------------------------------------------ 
Server side :




All objects that the client and the server have access to are

exposed trough shared memory. For instance a bitmap is

modifiable by the client and used by the server at the same time.




Internal:




Shared memory API : cross platform (W32/linux) shared memory layer.




  a.. Instantiation

  b.. Suppression

  c.. Locking

  d.. Retrieve info for clients (size, pointer).




Object API:

  a.. register object names along with attributes.

  b.. Find

  c.. Delete




List handling API




Video Device driver API:




  a.. Creation of the rendering surface

  b.. Retrieval if OpenGl capable or not

  c.. Video card memory handling

  d.. Global video settings (tiled/compressed textures or not, etc.)




Painter API :

  a.. Software or

  b.. OpenGl render to texture:

  c.. Render to texture viewport parameter helper functions (for partial
rerender on already existant textures)

  d.. Bitmapped text (freetype)

  e.. Simple drawing

  f.. Bitmaps (blitting, etc)

  g.. Line

  h.. Rectangle

  i.. Filled rectangle

  j.. 2D Bezier lines, patches or grids
  k.. Gradient fill

  l.. Filled and stroked forms

  m.. Clipping mechanism
  n.. Invalidate rectangle mechanism (for partial redraws in software but
also in render to texture operations).




Renderer API:

  a.. Desktop compositor

  b.. Window animator

  c.. Windows zooming (global desktop animations)

  d.. Maximise/minimise(iconise)/focus animations

  e.. Mouse cursor handling for rendering and windows notifications


Exported:
  a.. Class registering

  b.. Control/window creation

  c.. Window/control modification

  d.. Message passing

  e.. GDI functions (simple draw API)

  f.. Using painter API

Transport protocol:
  a.. Unidirectional named pipes for client to server messages.

  b.. Shared memory created when needed and released when reference to
object has disappeared.


Client side :

The access to the server is made by at least two DLL linked to the client
application. These libraries are GDI32.DLL and USER32.DLL




User32.dll:

  a.. Exports compatible with MS

  b.. Initiate the dialog with the server

  c.. Allow registering of classes in server

  d.. Allow windows creation and handling

  e.. Message dispatching to client from server.

  f.. Specific export for server handling

  g.. Resolution changing

  h.. Server information retrieval

  i.. Launching global window animations



GDI32.dll:

  a.. allow simple draw operations

  b.. Lines

  c.. Bitmaps




More information about the Ros-kernel mailing list