2D antialiasing?

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 mailing list