Roderick Colenbrander ha scritto:
Hi,

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
anymore.

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.

Roderick




Hi Roderick,

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.
So :
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
   step.
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.

Ciao

Max



Reply via email to