[英]Drawing on the X root window
我希望能够在Linux的根窗口上绘图。 即制作OSD。
我正在使用Gnome。
代码示例或链接到他们将不胜感激。
use X11::Protocol;
my $x = X11::Protocol->new();
my $desktop;
my ($root,undef,@kids)=$x->QueryTree($x->{'root'});
printf "%10x:\tRoot\n", $root;
foreach (@kids){
my $gdkw = Gtk2::Gdk::Window->foreign_new($_);
printf ("%10x:\tDesktop\n",$gdkw->get_xid),$desktop=$gdkw,last if $gdkw->get_type_hint eq 'desktop';
}
$desktop=Gtk2::Gdk::Window->foreign_new($root) if ! $desktop;
#------------------------------------------
我可以找到桌面,由xwininfo验证。 但是,我丢失了可以绘制桌面的代码,似乎使用了“set_back_pixmap”。
现在cairo可以非常简单地在任何窗口上绘图,只需使用即可
$cr = Gtk2::Gdk::Cairo::Context->create ($drawable);
但是,这在桌面上不起作用。 也许是由于内核更新? 或者我现在搞砸了Ubuntu 10.04-3。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.