Re: A little bit of research on font smoothing in X



On  3 Aug, Peter Bortas shouted:
->  "Dan Kaminsky" <effugas@best.com> writes:
->  
->  > I *may* have a solution.  If Times New Roman is requested from the font
->  > server at point size 12, font smoothing is impossible--a monochrome graphic
->  > has been delivered.  However, if point size 24 is requested, and then
->  > quickly downsampled bilinearly or with a 3x3blur+nearest neighbor and
->  > combined with the point size 12 font metrics, an antialiasable font will
->  > have been created.
->  > 
->  > The system isn't perfect, however.  The X-Server would have to be smart
->  > enough to know to downsample a 24 point font when 12 point metrics have been
->  > provided, and then to implement the minimal level of alpha levels.  I can
->  > say this--Xfree86 gets this, EVERYONE will follow.
->  
->  It's actually possible to do this now. You can preload the relevant
->  X-server calls to copy the background, request a font at double size,
->  resize it to get some alpha-smoothing and then copy the result back to
->  screen. I've seen it done by one of my colleagues at work. The result
->  was something that, although looking good, crawled on the Sparc4's
->  we were using back then.

and guess what.. I just did it again :) i have anti-aliased truetype
fonts happening now in X (using freetype as the engine) the traffic
involevs a get and a put image plus the usual alpha compositing - works
on any arbitary X drawable. API currently is VERY similar to
XDrawString so it could almost be replaced with a search/replace
work...:) It's not a shared lib yet tho... but it isnt TOO slow.
infact most of the slowness comes from freetype's rendering - If I add
some glyph caching, that's when the fun begins :) Whatever the case I'm
going to be puting anti-aliased truetype font support into
enlightenment:) why ? it looks sexy :)

-- 
--------------- Codito, ergo sum - "I code, therefore I am" --------------------
raster@rasterman.com       /\___ /\ ___/||\___ ____/|/\___  raster@redhat.com
Carsten Haitzler           | _ //__\\ __||_ __\\ ___|| _ /  Red Hat Advanced
218/21 Conner Drive        || // __ \\_ \ | |   \ _/_|| /   Development Labs
Chapel Hill NC 27514 USA   ||\\\/  \//__/ |_|   /___/||\\   919 547 0012 ext 282
+1 (919) 929 9443, 801 4392   For pure Enlightenment   http://www.rasterman.com/



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]