Re: Text with transparent background
- From: "muppet" <scott asofyet org>
- To: gtk-perl-list gnome org
- Subject: Re: Text with transparent background
- Date: Mon, 1 Aug 2005 10:01:12 -0400 (EDT)
Dirk van der Walt said:
I'm currently trying to learn more on GDK.
How will I go about displaying text on the screen without
any background?
Could you clarify what you mean by "without any background"? Is that text
overlaid on a window regardless of the contents of the window, or something
like OSD text, which shows only the text and no background at all?
To achieve OSD-style display with conventional X, you must use shaped windows,
which means rendering the text to a pixmap, converting the text to a bitmap,
and using the bitmap as a mask for the window's shape
(Gtk2::Gdk::Window::combine_mask, IIRC). I don't have any clue how you'd do
that with state-of-the-art cool alpha transparency X.
A simple sample script will be most appreciated. :)
Not exactly what you're looking for, but the old gtk-perl tutorial has a
section on using pixmaps to create shaped windows.
http://personal.riverusers.com/~swilhelm/gtkperl-tutorial/pixmap.html#AEN5207
It should be quite straightforward to port that example to Gtk2.
As for how to create a shape mask from text... A pixmap is a drawable. A
pixbuf is a client-side image. You can use standard gdk drawing to draw text
on a drawable[1]. You can create a pixbuf from a drawable[2]. You can render
a pixbuf to a pixmap and mask[3]. Somewhere in there is the magic combination
you need.
[1] Gtk2::Gdk::Drawable::draw_layout().
http://developer.gnome.org/doc/API/2.0/gdk/gdk-Drawing-Primitives.html#gdk-draw-layout
Getting the required Gtk2::Pango::Layout, Gtk2::Gdk::GC, and
Gtk2::Gdk::Drawable is left as an exercise for you.
[2] Gtk2::Gdk::Pixbuf::get_from_drawable(), a.k.a.
gdk_pixbuf_get_from_drawable():
http://developer.gnome.org/doc/API/2.0/gdk/gdk-Pixbufs.html#id2789847
[3] Gtk2::Gdk::Pixbuf::render_pixmap_and_mask(), a.k.a.
gdk_pixbuf_render_pixmap_and_mask():
http://developer.gnome.org/doc/API/2.0/gdk/gdk-Pixbufs.html#id2789399
--
muppet <scott at asofyet dot org>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]