[Gtk-sharp-list] BitBlt to render images.

Miguel de Icaza miguel@ximian.com
Sun, 01 May 2005 15:03:33 -0400


--=-Zcj0cWm2RYJFU457EvEe
Content-Type: text/plain
Content-Transfer-Encoding: 7bit

Hello,

> >        * What kind of samples are missing?
> 
> I'm looking for the features to implement a right-to-left, smooth-scrolling
> graph displaying real-time data.  I have an (old) Win32 application which uses
> low-level stuff like BitBlt's etc to achieve this.  I'm not sure at what level I
> could implement the same thing in Gtk#, or whether other Gnome (GnomeCanvas?)
> stuff is needed, though I need it to work on both linux and Win32.

I have attached a program that does the right-to-left rendering using
BitBlt.  It depends on an image called "/tmp/a.png" to be available as
this is the image rendered.

This program uses Gdk.Pixbufs (which are client-side images), because it
was fast for me to use, but you might want to use server-side for a
sample like this as you would avoid sending the images from your app to
X on every iteration.

Also, this program has no error checking ;-)

Miguel.

--=-Zcj0cWm2RYJFU457EvEe
Content-Disposition: attachment; filename=graph.cs
Content-Type: text/x-csharp; name=graph.cs; charset=ISO-8859-1
Content-Transfer-Encoding: base64

dXNpbmcgU3lzdGVtOw0KdXNpbmcgR3RrOw0KdXNpbmcgR0xpYjsNCg0KY2xhc3MgRGVtbyB7DQoJ
c3RhdGljIERyYXdpbmdBcmVhIGQ7DQoJc3RhdGljIGludCB4Ow0KCXN0YXRpYyBHZGsuUGl4YnVm
IHBpeGJ1ZjsNCgkNCglzdGF0aWMgdm9pZCBNYWluICgpDQoJew0KCQlBcHBsaWNhdGlvbi5Jbml0
ICgpOw0KCQlXaW5kb3cgdyA9IG5ldyBXaW5kb3cgKCJIIik7DQoJCWQgPSBuZXcgRHJhd2luZ0Fy
ZWEgKCk7DQoJCWQuU2V0U2l6ZVJlcXVlc3QgKDIwMCwgMjAwKTsNCgkJZC5FeHBvc2VFdmVudCAr
PSBuZXcgRXhwb3NlRXZlbnRIYW5kbGVyIChFeHBvc2VIYW5kbGVyKTsNCgkJDQoJCXcuQWRkIChk
KTsNCgkJdy5TaG93QWxsICgpOw0KDQoJCXBpeGJ1ZiA9IG5ldyBHZGsuUGl4YnVmICgiL3RtcC9h
LnBuZyIpOw0KDQoJCUdMaWIuVGltZW91dC5BZGQgKDEwMCwgbmV3IFRpbWVvdXRIYW5kbGVyIChx
dWV1ZV9yZXBhaW50KSk7DQoJCUFwcGxpY2F0aW9uLlJ1biAoKTsNCgl9DQoNCglzdGF0aWMgYm9v
bCBxdWV1ZV9yZXBhaW50ICgpDQoJew0KCQl4ICs9IDU7DQoJCWQuUXVldWVEcmF3QXJlYSAoMCwg
MCwgZC5BbGxvY2F0aW9uLldpZHRoLCBkLkFsbG9jYXRpb24uSGVpZ2h0KTsNCg0KCQlpZiAoeCA9
PSBwaXhidWYuV2lkdGgpDQoJCQlyZXR1cm4gZmFsc2U7DQoJCQ0KCQlyZXR1cm4gdHJ1ZTsNCgl9
DQoNCglzdGF0aWMgdm9pZCBFeHBvc2VIYW5kbGVyIChvYmplY3QgYSAsIEd0ay5FeHBvc2VFdmVu
dEFyZ3MgYXJncykNCgl7DQogICAgICAgICAgICAgICAgR2RrLldpbmRvdyB3aW4gPSBhcmdzLkV2
ZW50LldpbmRvdzsNCg0KICAgICAgICAgICAgICAgIHdpbi5EcmF3UGl4YnVmIChkLlN0eWxlLldo
aXRlR0MsIHBpeGJ1ZiwgMCwgMCwgZC5BbGxvY2F0aW9uLldpZHRoLXgsIDAsIHgsIGQuQWxsb2Nh
dGlvbi5IZWlnaHQsIEdkay5SZ2JEaXRoZXIuTm9uZSwgMCwgMCk7DQoJfQ0KfQ0K


--=-Zcj0cWm2RYJFU457EvEe--