settlers 3 and dib engine

Skrzynka skrzynka365 at
Sat Sep 8 16:18:13 CDT 2007

Jesse Allen wrote:

>On 9/8/07, Skrzynka <skrzynka365 at> wrote:
>>I'm trying to get Settlers 3 to run on Wine. After fixing some race
>>condition (seems like the thread calling WaitForXXXObject was giving up
>>time-slice too early after the call) it seems that the only problem left
>>is very slow text output. What I could understand from the forum
>>archives is that with no DIB engine, the rendering into a DC causes
>>copying of the bitmap to/from server (is that correct?). I'd like to
>>contribute to the DIB engine if it's possible/needed, so I'd like to ask
>>about a few things. There were some discussion recently about an
>>implementation of DIB engine by Jesse Allen - what is the status of DIB
>>engine? I compiled winedib.drv but ExtTextOut function is missing there
>>and overall there are regressions visible when running Settlers 3 (wrong
>>colors, no text at all). Which docs/urls/sources would you recommend to
>>read to get some quick introduction to the DIB engine? Which particular
>>functions are making current impl slow? Or, in general: where to start?
>>Sorry for any silly questions...
>>Thanks & regards
>> Piotr
>Yes ExtTextOut will probably need to be implemented, as well as
>whatever family of functions that might go with it. There might be
>some cooperation necessary with the display driver here I don't know.
>You're pretty much on your own right now if you go there, as you'll
>need to figure out how to do everything.
>A simpler project might be to implement the drawing algorithms in
>graphics.c. It needs to be done, and I do believe I have enough
>infrastructure here (with some tweaking) to get this stuff done. So I
>would take a look at things like LineTo, Filling, Circles, etc. The
>docs for the drawing functions are in dib_*.c.
>Stretching needs to be done, as well finish support for RLE
>compression and proper checking for bitmaps recieved into the dib
>A task I will start very soon is forwarding to the display driver.
>This will probably fix most of the regressions if it indeed works, but
>it will slow the whatever bitmap operations down that go through the
>dib engine that just foward back--this is okay for the time being
>while this stuff gets written.
>If you want to start hacking on it, I would very appreciate it. I can
>commit your patches to my tree and you will receive credit for your
>work. I hope to get the driver into the tree someday soon, but only
>when correct forwarding, bitmap support, and blitting is fully
>----- AlphaNet - najtaniej w sieci! --------
>  Odnowienia domen w rewelacyjnych cenach!
> .pl - 65 zl, - 50 zl, reg - 20 zl
I'll do what I can. However it's far too early to bother about my commits :)
I'm trying to compare and understand the control flow of both drivers 
(winex11 and winedib). At which function in winex11 is copying data 
to/from server taking place? And in what function/file is the check for 
winedib driver availability done?

----- AlphaNet - najtaniej w sieci! --------
  Odnowienia domen w rewelacyjnych cenach!
 .pl - 65 zl, - 50 zl, reg - 20 zl

More information about the wine-devel mailing list