DIB Engine

Massimo Del Fedele max at veneto.com
Thu Nov 13 05:23:29 CST 2008

Roderick Colenbrander ha scritto:

> Under the hood Windows uses Eng* functions in the win2k/winxp driver model (perhaps even Vista, don't know). 
> It is a different architecture than what Wine uses we are close to a win3.1 design. 
> The use of the real win32 functions would offer the possibility of using native printer drivers again 
> (not sure if this is something we really want).
> Doing stuff the microsoft way might have advantages for properly integrating ddraw and other things.
> On the other hand it could be a lot of work to get right.

I'm afraid too... I think we've got do decide if do it on the quick side 
or on the "right" side. IMHO I'd choose the first one for the moment....
> Here's my view on DirectDraw / D3D and the DIB engine.
> There are two cases. First of all you have plain 'software rendering' in which we do 2d ddraw using GDI
> and DIB. The use of a DIB engine would save us some roundtrips to X and make color conversion more
> efficient. Depending on the situation it could boost performance quite a bit.
That's what I'd like to solve first, but it's maybe too deeply tied to 
the other stuffs... still don't know.

I've seen that in Autocad all rendering (in 2d mode) is done by autocad 
itself, besides TTF fonts. When there are TTF fonts inside drawing, the 
most time is spent in dib_coerce stuff, so translating DIB to X11 and 
back, in order to use X11 font rendering engine. The speed difference 
between TTF and non-TTF is something like 100:1 or worse.
Switching to 3d mode, the font rendering is done (ugly) by autocad 
itself, so the things speeds up a lot (but some half speed than in 2d 
mode, indeed). Fonts are just outlined, line styles are not applied, 
etc, so it's not a viable workaround.

What I'd like to know... It would make sense (I mean, could it enter 
wine repo) to extend Huw Davies/Jesse Allen's approach of implementing 
the engine ? I'd like to try it, but I'd not like to spend some 
weeks/months coding using the wrong approach :-)

Also I'd like to see in wine a partial DIB engine, as I explained at 
post starting. Would it be possible, or shall I stop it by now ?


More information about the wine-devel mailing list