2D antialiasing?

Charles Lindsey chl at clerew.man.ac.uk
Tue Dec 23 03:35:57 PST 2008


Sorry, I thought I had sene this weeks ago, but siddenly found it still in  
my Drafts folder.

On Mon, 15 Dec 2008 20:09:14 -0000, Clemens Eisserer  
<linuxhippy at gmail.com> wrote:

>> Indeed, but that means you need to assemble all your stuff in huge  
>> Pixmaps
>> at the application level, and then pass them over to the Xserver. But if
>> your application is separated from the Xserver by some (possibly slow)
>> network, then that is a lot of network traffic.
> No, Pixmaps server-side. So the only thing that changes are that
> another XID for you rendering commands is sent (the pixmap instead of
> the window) and additional XCopyArea-commands sent over the network.
> One such call is about ~40 bytes.

True, and when you  are _not_ doing antialiassing, the various Pixmaps you  
create are sent to the server, and are then XCopyArea-ed to the genuine  
window without ever leaving the Xserver again - at least, that is what  
should happen if the implementor does his job properly.

But with antialiassing, you can easily land up creating lots of (possibly  
large) Pixmaps (which get sent to the server) whose only purpose in life  
is to get brought back again using XGetImage so that you can perform the  
antialiassing in the application program and use XPutImage to put them  
into the real window (or maybe to another Pixmap). Those temporary Pixmaps  
then get deleted (but you still use up a helluvalot of Pixmap IDs that  
way).

That might well be poor implementation, but it sure happens. The Opera  
browser is a notable example (see my earlier thread on Xft Woes), though  
whether it is Opera's fault or QT's fault I do not yet know. I also have  
my suspicions concerning Adobe acroread.



-- 
Charles H. Lindsey ---------At Home, doing my own thing------------------------
Tel: +44 161 436 6131                       
   Web: http://www.cs.man.ac.uk/~chl
Email: chl at clerew.man.ac.uk      Snail: 5 Clerewood Ave, CHEADLE, SK8 3JU, U.K.
PGP: 2C15F1A9      Fingerprint: 73 6D C2 51 93 A0 01 E7 65 E8 64 7E 14 A4 AB A5



More information about the xorg mailing list