[Mono-winforms-list] Double Buffering

Jonathan S. Chambers Jonathan.Chambers@ansys.com
Thu, 28 Apr 2005 20:51:35 -0400


This is a multi-part message in MIME format.

------_=_NextPart_001_01C54C55.97BA195B
Content-Type: text/plain;
	charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable

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:=09
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:=09
Subject:	RE: [Mono-winforms-list] Double Buffering
Also, the setting of 'needs_redraw =3D 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:=09
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."=20
      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).=20

Thanks,
Jonathan








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





------_=_NextPart_001_01C54C55.97BA195B
Content-Type: text/x-patch;
	name="svn.diff"
Content-Transfer-Encoding: base64
Content-Description: svn.diff
Content-Disposition: attachment;
	filename="svn.diff"

SW5kZXg6IENvbnRyb2wuY3MKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ29udHJvbC5jcwkocmV2aXNpb24gNDM3
NDkpCisrKyBDb250cm9sLmNzCSh3b3JraW5nIGNvcHkpCkBAIC0zMTczLDggKzMxNzMsOCBAQAog
CiAJCQkJCWlmICghbmVlZHNfcmVkcmF3KSB7CiAJCQkJCQkvLyBKdXN0IGJsaXQgdGhlIHByZXZp
b3VzIGltYWdlCi0JCQkJCQlwYWludF9ldmVudC5HcmFwaGljcy5EcmF3SW1hZ2UgKEltYWdlQnVm
ZmVyLCBwYWludF9ldmVudC5DbGlwUmVjdGFuZ2xlKTsKLQkJCQkJCW5lZWRzX3JlZHJhdyA9IGZh
bHNlOworCQkJCQkJcGFpbnRfZXZlbnQuR3JhcGhpY3MuRHJhd0ltYWdlIChJbWFnZUJ1ZmZlciwg
Q2xpZW50UmVjdGFuZ2xlKTsKKwkJCQkJCVhwbGF0VUkuUGFpbnRFdmVudEVuZChIYW5kbGUpOwog
CQkJCQkJcmV0dXJuOwogCQkJCQl9CiAKQEAgLTMxOTAsOCArMzE5MCwxMCBAQAogCQkJCQlPblBh
aW50KHBhaW50X2V2ZW50KTsKIAogCQkJCQlpZiAoKGNvbnRyb2xfc3R5bGUgJiBDb250cm9sU3R5
bGVzLkRvdWJsZUJ1ZmZlcikgIT0gMCkgewotCQkJCQkJZGMuRHJhd0ltYWdlIChJbWFnZUJ1ZmZl
ciwgcGFpbnRfZXZlbnQuQ2xpcFJlY3RhbmdsZSk7CisJCQkJCQkKKwkJCQkJCWRjLkRyYXdJbWFn
ZSAoSW1hZ2VCdWZmZXIsIENsaWVudFJlY3RhbmdsZSk7CiAJCQkJCQlwYWludF9ldmVudC5TZXRH
cmFwaGljcyAoZGMpOworCQkJCQkJbmVlZHNfcmVkcmF3ID0gZmFsc2U7CiAJCQkJCX0KIAogCQkJ
CQlYcGxhdFVJLlBhaW50RXZlbnRFbmQoSGFuZGxlKTsK

------_=_NextPart_001_01C54C55.97BA195B--