The DIB engine... does anyone know how to get it into Wine?
Massimo Del Fedele
max at veneto.com
Tue Apr 28 10:13:06 CDT 2009
Roderick Colenbrander ha scritto:
> Massimo demonstrated the need for a DIB engine for Autocad but the way
> it is implemented is not fully correct. We already talked a bit about
> that on IRC. He is right that it should be implemented inside gdi32
> and that it should be done in small steps (where possible). His idea
> is to add his 'DIB engine' and then fix the rest of the code and let
> everything converge in the end to the 'right' design. Part of the
> right design is that winex11.drv shouldn't work directly on DIBs
> Alexandre hasn't commented on the design except for saying that he
> didn't think that Massimo his current patches would converge to the
> 'right' design. Personally I think that the initial work for a DIB
> engine should focus on moving the DIB code away from winex11.drv. This
> is not a simple task and will likely require large patches. When all
> DIB code is abstracted away from winex11.drv adding a DIB engine will
> be a lot easier.
The way I'm doing it is indeed seen by me as e temporary step for the
migration and a way to "make things moving on" :-)
Maybe I didn't spoke enough about the way I was planning when switched to the
"new approach"... So I'll put it here. Maybe it can be useful for future plans.
1) Implement a "working" engine as an *alternative* driver; that's what
my winedib.drv aims to be. It doesn't touch nor gdi32 (almost...) nor
winex11; it's just a second choice driver with separed processing for
DIBs. The fact that it uses winex11 is secondary and just an intermediate
2) when winedib.drv is working good enough, wanted to "detach" it from
winex11.drv, so make another "driver" comprising DDB parts of wineX11
and all optimizations needed.
I mean : DDB in the "other" winex11 driver, DIB in winedib BUT with
a DIB copy in DDB format in the "other" winex11. That would optimize
blitting on screen and from/to DDB/DIB. It would be a sort of double
buffering of DIBs.
3) from steps 1/2, we resort with a winex11 driver without the DIB hassles
AND all dib processing inside winedib.
Last step would be to move the winedib code into gdi32 and replace the
old winex11 with the new one.
Steps 1-2 can be made without interfering with wine; step 3 would be made
only when the engine is stable and tested enough to not cause regressions;
it could also be made in small patches.
More information about the wine-devel