DIB Engine & GSoC

Damjan Jovanovic damjan.jov at gmail.com
Fri Mar 2 06:09:54 CST 2007

On 3/1/07, Benoit Pradelle <ze_real_neo at yahoo.fr> wrote:
> First thank you for your very complete answer,
> I'm not really familiar with Wine (and the Windows API) and I don't
> understand why do you think that it will be such an hard work.

Read some code in dlls/winex11.drv in the wine tree, you will quickly
understand :-).

The other thing is that there are many aspects of GDI drawing, you
have to take into account region clipping, pens, brushes, line
thickness, line style, fill style, and other wonders, and make them
work in 1, 4, 8, 16, 24 and 32 bit colour depth pixel-for-pixel exact
with the way Windows does them.

> For me,
> the work will consist in redirect the GDI calls from the X11
> pseudo-driver to some new functions which will draw circles, lines,
> etc.. over DIBs.
> Do I misunderstand the work to do or under evaluate it ?

There are probably several ways to do a DIB engine.

The way I would do it, is the way that Transgaming did it in that
patch a number of years back, ie. where wine does:

X11DRV_LockDIBSection(..., DIB_Status_GdiMod, ...);
// draw with the X server
X11DRV_UnlockDIBSection(..., ...);

change it to do:

status = X11DRV_LockDIBSection(..., DIB_Status_None, ...);
if (status == DIB_Status_AppMod)
  // draw with the DIB engine
  X11DRV_DIB_Coerce(..., DIB_Status_GdiMod, ...);
  // draw with the X server
X11DRV_UnlockDIBSection(..., ...);

But I asked Alexandre about this, and he said the whole point of the
DIB engine is that you shouldn't need the locking. How that would work
is beyond me, after all, if you only draw on the client-side, you
still have to upload the image to the X server when you want it to
become visible, but what about images that aren't double-buffered, and
what about mixed drawing with OpenGL?

> And I've understand by reading this mail-list how important are
> regression tests and fluent transitions in functionalities for Wine.
> Stefan Dösinger a écrit :
> > Am Donnerstag 01 März 2007 14:03 schrieb Benoit Pradelle:

More information about the wine-devel mailing list