The DIB engine was discussed quite a lot at WineConf. I am now trying to summarize these discussions to update bug 421 - Implement a DIB engine.
http://wine.codeweavers.com/bugzilla/show_bug.cgi?id=421
Is the following accurate, complete, etc? Comments? Other ideas? Any volunteers?
This was discussed quite a bit at WineConf. Ideas that were floated around are:
1. Have X export the required API ---------------------------------
XFree86 4 has all the needed code, for all bit depths and layouts we care about. We could try to have the X guys export this in the form of an API ala Xft. Wine could then link with this library to implement the DIB engine (or dlopen that library).
* Is the needed API already available? * If not, are the XFree86 guys willing to export it? * Almost everyone is using XFree86, but what about people who don't (embedded devices, Wine on Solaris...). We need a fallback. * We won't have to maintain that code which is a good thing, although it is not supposed to change much once written. * Will we be able to do all that we need with that API? Probably yes since it can be expected to match the X API quite closely and we are abel to use the X API.
2. Copy the relevant X code into Wine -------------------------------------
Since X has all the code and that code is under the X11 license we could copy it all into Wine.
* This means we will have to maintain the code ourselves, although it is not supposed to change much once written.
3. Copy the relevant code from MicroWindows/NanoGUI to Wine -----------------------------------------------------------
MicroWindows/NanoGUI also has code that could help us bootstrap our DIB engine. We probably don't want Wine to depend on these projects but we could copy their code into Wine.
* Are the licenses compatible? * Do they support all the bit depths and layouts we care about? * This means we will have to maintain the code ourselves, although it is not supposed to change much once written.
4. Copy the relevant code from GGI to Wine ------------------------------------------
GGI also has similar code. Again we probably don't want to introduce a dependency on GGI so the same questions apply:
* Are the licenses compatible? * Do they support all the bit depths and layouts we care about? * This means we will have to maintain the code ourselves, although it is not supposed to change much once written.
-- Francois Gouget fgouget@free.fr http://fgouget.free.fr/ "Utilisateur" (nom commun) : Mot utilisé par les informaticiens en lieu et place d'"idiot".