Carsten Haitzler (The Rasterman)
raster at rasterman.com
Sat Dec 13 02:58:07 PST 2008
On Fri, 12 Dec 2008 17:08:38 -0000 "Charles Lindsey" <chl at clerew.man.ac.uk>
> On Thu, 11 Dec 2008 14:23:51 -0000, Clemens Eisserer
> <linuxhippy at gmail.com> wrote:
> >> From the plain X Server POV, antialiasing is always going to be hard,
> >> because to do it you need to know the background color or pixmap, and
> >> the
> >> Xserver does not keep track of how you had earlier set it, so it is up
> >> to
> >> individual toolkits to keep track, and not all of them do.
> > Well, using XRender nobody needs to keep track of anything, its just
> > composition with a mask (which is generated by the CPU in the case of
> > trapezoids).
> No, I think you miss my point (or else I miss yours).
> AIUI, the purpose of Xrender is to enable as much as possible of the image
> information to be stored on the server, rather than in the client
> application which may be far away over some network.
> So it allows you to to construct your image out of various bits and pieces
> which may be more or less transparent. In the simplest cases (yes, I know
> you can do more complicated things) you are simply trying to paint some
> glyphs on top of a "background". But when you have combined those
> together, all the server is allowed to store is the result of the
> compositing - i.e. it has no knowledge of what was the original background
> and was was the added glyph.
> And that is no problem at all, until you want to throw away the glyph that
> was there before and write a new glyph in its place. And then you need to
> know what the original background behind the old glyph was, but the server
> does not have that information, and so it has to be kept in the
> application, which is precisely what Xrender was trying to avoid :-( .
> Now even the original X-11 system allowed you to specify a background (as
> a plain color, or as a pixmap - possibly tiled). But it never retained
> that information, and it was the lack of that retention that I was
> complaining about.
what you want is a retained-mode rendering system... like a canvas! everything
in a canvas is an object - text, backgrounds, overlays - you manipulate each
item as you please and the canvas worries about how to redraw and thus make
your changes come to life :) i know of one at least that makes all of this kind
of hassle go away and works... for me... :)
------------- Codito, ergo sum - "I code, therefore I am" --------------
The Rasterman (Carsten Haitzler) raster at rasterman.com
More information about the xorg