diff options
author | Thierry Vignaud <tv@mandriva.org> | 2008-09-24 22:16:18 +0000 |
---|---|---|
committer | Thierry Vignaud <tv@mandriva.org> | 2008-09-24 22:16:18 +0000 |
commit | 40a08b5681335665375233421ce1344c8155d10b (patch) | |
tree | e5c364a3c468591abd9fc9ae468220a551dd0107 /perl-install | |
parent | e83d04522dade04f7e128823f216aa52a1376f02 (diff) | |
download | drakx-40a08b5681335665375233421ce1344c8155d10b.tar drakx-40a08b5681335665375233421ce1344c8155d10b.tar.gz drakx-40a08b5681335665375233421ce1344c8155d10b.tar.bz2 drakx-40a08b5681335665375233421ce1344c8155d10b.tar.xz drakx-40a08b5681335665375233421ce1344c8155d10b.zip |
(_new_alpha_pixbuf,_pixbuf_render_alpha) move & rename code from mcc in order
to be able to render transparent pixbufs with dithering:
new_pixbuf() => _new_alpha_pixbuf()
render_alpha() => _pixbuf_render_alpha()
Diffstat (limited to 'perl-install')
-rw-r--r-- | perl-install/mygtk2.pm | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/perl-install/mygtk2.pm b/perl-install/mygtk2.pm index 3c9e9c579..6d1ca13f4 100644 --- a/perl-install/mygtk2.pm +++ b/perl-install/mygtk2.pm @@ -1376,6 +1376,21 @@ sub set_root_window_background_with_gc { $root->draw_rectangle($gc, 1, 0, 0, $w, $h); } +sub _new_alpha_pixbuf { + my ($pixbuf) = @_; + my ($height, $width) = ($pixbuf->get_height, $pixbuf->get_width); + my $new_pixbuf = Gtk2::Gdk::Pixbuf->new('rgb', 1, 8, $width, $height); + $new_pixbuf->fill(0x00000000); # transparent white + $width, $height, $new_pixbuf; +} + +sub _pixbuf_render_alpha { + my ($pixbuf, $alpha_threshold) = @_; + my ($width, $height, $new_pixbuf) = _new_alpha_pixbuf($pixbuf); + $pixbuf->composite($new_pixbuf, 0, 0, $width, $height, 0, 0, 1, 1, 'bilinear', $alpha_threshold); + $new_pixbuf; +} + sub pixmap_from_pixbuf { my ($widget, $pixbuf) = @_; my $window = $widget->window or internal_error("you can't use this function if the widget is not realised"); |