Hi folks,
Here's an update on the DIB engine that I've been working on for the last few months. This work has been made possible by the generosity of Google - so thanks go to them and of course to Dan.
You can find the code at http://repo.or.cz/w/wine/dibeng-hd.git
What's supported ================ - All dib section depths (including BI_BITFIELD support).
- Single pixel solid and dashed pens.
- The 16 rop2s.
- Solid and dib pattern brushes.
- A brunch of primitives for drawing onto all dib section surfaces.
- GDI32 apis: LineTo, Rectangle and PatBlt.
- An extensive test suite for all of the above.
What needs to be done ===================== - Blitting (eg BitBlt, StretchBlt and StretchDIBits) - I have some hacks for these in my tree.
- ExtTextOut
- Many more GDI32 apis - a lot of these should be easy given that we have a set of underlying dib drawing primitives.
- Non-MM_TEXT mapping modes and world transforms.
- The initial interaction with GDI32 in BITMAP_SelectObject is hacky and needs some work.
- Lots more...
Note that at the moment it's essentially useless because of the lack of blitting, so unless you fancy hacking on that yourself then you probably don't want to bother fetching the tree.
I'm going to stop working on this for a while (lots of fun Outlook 2007 bugs for me to look at!), but will endeavour to keep the tree up to date with respect to WineHQ. If someone *does* want to hack on this then feel free to send me patches!
Thanks, Huw.
Friday 01 August 2008 15:56:48 Huw Davies wrote:
Hi folks,
Here's an update on the DIB engine that I've been working on for the last few months. This work has been made possible by the generosity of Google - so thanks go to them and of course to Dan.
You can find the code at http://repo.or.cz/w/wine/dibeng-hd.git
What's supported
All dib section depths (including BI_BITFIELD support).
Single pixel solid and dashed pens.
The 16 rop2s.
Solid and dib pattern brushes.
A brunch of primitives for drawing onto all dib section surfaces.
GDI32 apis: LineTo, Rectangle and PatBlt.
An extensive test suite for all of the above.
What needs to be done
Blitting (eg BitBlt, StretchBlt and StretchDIBits) - I have some hacks for these in my tree.
ExtTextOut
Many more GDI32 apis - a lot of these should be easy given that we have a set of underlying dib drawing primitives.
Non-MM_TEXT mapping modes and world transforms.
The initial interaction with GDI32 in BITMAP_SelectObject is hacky and needs some work.
Lots more...
Note that at the moment it's essentially useless because of the lack of blitting, so unless you fancy hacking on that yourself then you probably don't want to bother fetching the tree.
I'm going to stop working on this for a while (lots of fun Outlook 2007 bugs for me to look at!), but will endeavour to keep the tree up to date with respect to WineHQ. If someone *does* want to hack on this then feel free to send me patches!
Thanks, Huw.
Hello, Huw!
Did you hear anything about Jesse Allen's version of DIB Engine: http://article.gmane.org/gmane.comp.emulators.wine.devel/53234 (His version - http://repo.or.cz/w/wine/dibdrv.git ) Do you know why it was neccesary to restart solving this problem with your work instead of accepting and developing that version? We'd like to continue develop your version. When are you going to remain this project?
Tha/nks, Serge.
On Fri, Aug 1, 2008 at 8:23 AM, Сергей Новосёлов chi@etersoft.ru wrote:
Did you hear anything about Jesse Allen's version of DIB Engine: http://article.gmane.org/gmane.comp.emulators.wine.devel/53234 (His version - http://repo.or.cz/w/wine/dibdrv.git ) Do you know why it was neccesary to restart solving this problem with your work instead of accepting and developing that version? We'd like to continue develop your version. When are you going to remain this project?
Tha/nks, Serge.
Mainly because I don't have time, I only have access to that git, and I have another job :) I did a bit of work on it last december that I didn't release. It's still on my hard drive. Huw's DIB tree is similar in concept to what I did. He was my mentor if you remember. But it doesn't mean what I was doing was usable. I trust Huw can manage building the basis of a DIB engine alot better than me. But I will likely download his tree and play around with it before school starts again.
I will likely download his tree and play around with it before school starts again.
Which functions will you work on? It is necessary for us to plan our further development.
On Fri, Aug 01, 2008 at 06:23:43PM +0400, Сергей Новосёлов wrote:
We'd like to continue develop your version. When are you going to remain this project?
Great! Please send me patches and I'll apply them. I'll probably merge with WineHQ on every WineHQ release.
I'm not planning on doing any work on it for a while, but will probably return to it at some point in the future.
Huw.
On Fri, 1 Aug 2008, Huw Davies wrote:
Hi folks,
Here's an update on the DIB engine that I've been working on for the last few months.
An important thing to note about this work is that its architecture should be acceptable to Alexandre. So it can go into WineHQ, the only blocker being that it's not quite complete enough yet.
So that leads to the most important question:
what's needed to allow it to go into WineHQ?
Blitting I guess. Everything else in the list below? Can we avoid having to implement everything before we can commit it?
[...]
What needs to be done
Blitting (eg BitBlt, StretchBlt and StretchDIBits) - I have some hacks for these in my tree.
ExtTextOut
Many more GDI32 apis - a lot of these should be easy given that we have a set of underlying dib drawing primitives.
Non-MM_TEXT mapping modes and world transforms.
The initial interaction with GDI32 in BITMAP_SelectObject is hacky and needs some work.
Lots more...
On Mon, Aug 4, 2008 at 2:23 AM, Francois Gouget fgouget@free.fr wrote:
On Fri, 1 Aug 2008, Huw Davies wrote:
Hi folks,
Here's an update on the DIB engine that I've been working on for the last few months.
An important thing to note about this work is that its architecture should be acceptable to Alexandre. So it can go into WineHQ, the only blocker being that it's not quite complete enough yet.
So that leads to the most important question:
what's needed to allow it to go into WineHQ?
Blitting I guess. Everything else in the list below? Can we avoid having to implement everything before we can commit it?
Could we forward unimplemented stuff back to x11drv now? That's one thing I never really did so my code seemed like it broke alot of stuff because of how much was missing.
On Fr, 2008-08-01 at 12:56 +0100, Huw Davies wrote:
Hi folks,
Here's an update on the DIB engine that I've been working on for the last few months. This work has been made possible by the generosity of Google - so thanks go to them and of course to Dan.
You can find the code at http://repo.or.cz/w/wine/dibeng-hd.git
Thanks for picking up the dib-engine issue.
What needs to be done
- Lots more...
The first thing, i like to see is a Design in the correct way: Inside gdi32 while using Eng* and friends. (Needed by Printer drivers, and any Display driver including mirror / remote display drivers)
IMHO, every other attemp to implement a DIB-Engine is a waste of time.
Marcel did some work last Year during SoC with the correct API (Eng* and friends) but also in the wrong location (he used wineddi.drv)
В сообщении от Saturday 09 August 2008 17:18:17 Detlef Riekenberg написал(а):
On Fr, 2008-08-01 at 12:56 +0100, Huw Davies wrote:
Hi folks,
The first thing, i like to see is a Design in the correct way: Inside gdi32 while using Eng* and friends. (Needed by Printer drivers, and any Display driver including mirror / remote display drivers)
why can't we release DIB-Engine as own driver? GDI32 functions are main and GDI32 calls driver functions in dependence of which type of DC we have (printer DC, Xwindow HDC or DIB DC)