[Mono-winforms-list] Double Buffering

Peter Dennis Bartok peter@novonyx.com
Tue, 3 May 2005 14:19:01 -0600


Yeah, I had a look at it when you originally posted, but since I couldn't 
test at the time (working on richtext), it slipped my mind. Thanks for the 
reminder. I just committed a modified version, one that doesn't redraw the 
whole clientrectangle bitmap every time, but only the exposed area.
Thanks for catching this! I'm guessing you're using now double-buffering in 
PropertyGrid? Cool.

Cheers,
  Peter

-----Original Message-----
From: "Jonathan S. Chambers" <Jonathan.Chambers@ansys.com>
To: <mono-winforms-list@lists.ximian.com>
Date: 03 May, 2005 13:40
Subject: RE: [Mono-winforms-list] Double Buffering


Anyone take a look at this patch? I'm planning on checking in some
updates to the propertygrid, and this patch would cause redrawing of the
control to work correctly.

Thanks,
Jonathan

-----Original Message-----
From: mono-winforms-list-admin@lists.ximian.com
[mailto:mono-winforms-list-admin@lists.ximian.com] On Behalf Of Jonathan
S. Chambers
Sent: Thursday, April 28, 2005 8:52 PM
To: Jonathan S. Chambers; mono-winforms-list@lists.ximian.com
Subject: RE: [Mono-winforms-list] Double Buffering

Sorry about the message flurry. XplatUI.PaintEventEnd(Handle) wasn't
being called in quick repainting logic.

Thanks,
Jonathan


-----Original Message-----
From: mono-winforms-list-admin@lists.ximian.com on behalf of Jonathan
S. Chambers
Sent: Thu 4/28/2005 8:40 PM
To: Jonathan S. Chambers; mono-winforms-list@lists.ximian.com
Cc:
Subject: RE: [Mono-winforms-list] Double Buffering
The first patch is valid. The second is not. The logic looks like it
still needs fixed (when should needs_redraw be set to false), but my
solution does not seem to be working...




-----Original Message-----
From: mono-winforms-list-admin@lists.ximian.com on behalf of Jonathan
S. Chambers
Sent: Thu 4/28/2005 8:31 PM
To: Jonathan S. Chambers; mono-winforms-list@lists.ximian.com
Cc:
Subject: RE: [Mono-winforms-list] Double Buffering
Also, the setting of 'needs_redraw = false' (line 3181) should be moved
outside of the if block. Notice that it can never actually get inside
the if block, since that is the only place needs_redraw is set to false.

- Jonathan


-----Original Message-----
From: mono-winforms-list-admin@lists.ximian.com on behalf of Jonathan
S. Chambers
Sent: Thu 4/28/2005 8:21 PM
To: mono-winforms-list@lists.ximian.com
Cc:
Subject: [Mono-winforms-list] Double Buffering
      I noticed that support for double buffering has been included in
Control.cs. This is nice, except that I think the two calls to DrawImage
(lines 3177 and 3195) should pass ClientRectangle as the second
parameter, rather than ClipRectangle of the paint event args. According
to MS documentation, and actual behavior,  "The image represented by the
image object is scaled to the dimensions of the rect rectangle."
      Thus with the code as is, the code as is draws the ImageBuffer to
the ClipRectangle. When the clip rectangle is the entire control, this
makes sense. However, when the clip rectangle is just part of the
control (like when a partially obstructing window is removed) the whole
control is drawn to the clip area. (I can send an image if anyone wants
to see).

Thanks,
Jonathan








_______________________________________________
Mono-winforms-list maillist  -  Mono-winforms-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-winforms-list






_______________________________________________
Mono-winforms-list maillist  -  Mono-winforms-list@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-winforms-list