BitBlt speed WinXP

Herbert König herbertkoenig at gmx.net
Sun Feb 18 14:51:20 UTC 2007


Hello,

using BitBlt for speed I draw some 15.000 white rectangles on a Morph.
Each is 4x4 pixels.

On my slow computer I get 480ms for the following method:

testDrawWhiteRects
        "just try if the white rectangles are drawn correctly"

        | bb |
        bb := BitBlt new.
        bb setDestForm: Display.
        bb width: dotSize ; height: dotSize .
        bb fillColor: Color white; combinationRule: Form paint.
        rectangleCoords do: [:koords| bb destX: koords x; destY: koords y; copyBits.]

If I comment out the actual transfer (the copyBits) the result is only
25ms.

I use a Display depth of 32, no difference if I change between big and
little endian and my Win also uses 32 bits display depth.

Tried with 3.7 and 3.9 VM. Also nearly no difference between OpenGL
and Direct3D.

On a fast computer (1.86GHz Pentium M) results aren't much better (10
and 270ms).

Is this to be expected, or am I doing something wrong? We have
Ballon3D which promises real time movement and I guess it finally
relies on BitBlt. So I expected much better performance.
  
Thanks for any pointers,

Herbert                          mailto:herbertkoenig at gmx.net




More information about the Squeak-dev mailing list