2008/12/15 Dan Kegel dank@kegel.com:
- DIB Engine
As mentioned in http://www.winehq.org/wwn/354#Another%20shot%20at%20a%20DIB%20Engine Massimo picked up Jesse's DIB engine code and has been trying to use it with Autocad. He says he's starting to get fonts working. (It's surprising that he chose Jesse's 2007 implementation rather than Huw's 2008 implementation, but he said Jesse's seemed more usable at the moment, even though Huw's looked better in some ways).
What is the status of these? As far as I can tell, there are a few changes that could be merged into wine proper, without pulling in the respective DIB engines:
Huw -- gdi32: The dib colour table should always have 1 << bpp entries (for bpp <= 8). http://repo.or.cz/w/wine/dibeng-hd.git?a=commitdiff;h=4c9188ee5e8c56aa0fb571...
Huw -- gdi32: Don't use biSizeImage for a BI_BITFIELDS dib. http://repo.or.cz/w/wine/dibeng-hd.git?a=commitdiff;h=892bd17b188f8afa230303...
Jesse -- gdi32: Keep physDevs consistent to driver in Blt calls http://repo.or.cz/w/wine/dibdrv.git?a=commitdiff;h=754f91a30771a76e4704397f3...
Jesse -- gdi32: Pass color table to drivers with SelectBitmap http://repo.or.cz/w/wine/dibdrv.git?a=commitdiff;h=9b60e63fd31877c7350c757bf...
From there, it depends on whether Huw's approach, Jesse's approach or
some other approach is the way to go. It would be useful to try and get the 'core' DIB engine architecture in first, so that any necessary changes to the architecture can be made before too much time/effort is spent on this.
The core should have an option to turn on the DIB engine routing, so that it can live in the main tree without breaking existing applications. Once the core architecture is in place, it will then be a matter of filling in the blanks.
From there, the selection logic (which should be fairly small -- a
registry key check, like the Direct3D fbo setting?) can be removed.
Or am I missing something?
- Reece