tkOSX, was Re: [PD] how to set variable types

james tittle tigital at mac.com
Tue Aug 1 21:38:59 CEST 2006


On Jul 30, 2006, at 7:51 PM, Mathieu Bouchard wrote:
> Speaking of which, I think that Pd looks worse on OSX than on  
> Linux, mainly due to anti-aliasing. All boxes look blurry and dim.  
> This is because the anti-aliasing is done without any kerning.  
> Kerning is the rounding of pixel positions done to minimize the  
> amount of anti-aliasing required. This is because raw anti-aliasing  
> always gives that blurry effect that tires the eye.

...it really depends on what tcl/tk version you are using...I believe  
the current 8.4.13 is now fully using ATSUI font rendering, which  
should solve the anti-aliasing/kerning problems...but, it is a work  
in progress, and there aren't alot of eyeballs offering code...

...also wanted to point out that the point size/level at which anti- 
aliasing kicks in can be set in u_main.tk/pd.tk, around line 52:

     # set minimum line size for anti-aliasing.  If set to 1 or 0,  
then every
     # line will be anti-aliased.  While this makes connections and  
circles in
     # [bng] and such look really good, it makes boxes and messages  
look out of
     # focus.  Setting this to 2 makes it so the thick audio rate  
connections
     # are anti-aliased.  <hans at at.or.at> 2005-06-09
     set tk::mac::CGAntialiasLimit 2

...feel free to adjust to your preference...

> About the speed: Tcl/Tk on OSX includes a fake X11 library which is  
> a translation layer so that Tk doesn't have to be rewritten for  
> OSX. That layer shouldn't take much CPU in theory, but I don't know  
> how it's been implemented. May someone who cares about OSX figure  
> out why that X11/OSX layer sucks. This problem is distinct from the  
> superfluous canvas redrawing that happens on all platforms, but the  
> two problems cumulate to create some kind of disaster.

...true, tk is emulating X11 calls on osx:  unfortunately it was  
originally done in QuickDraw, which was fine for the time, but really  
started to fall to the side around 10.3, when Coregraphics/ATSUI/ 
Quartz/whatever rendering became "preferred"...It should be well  
known that most of the canvas drawing in pd (lines, boxes, text) has  
been converted to the newer API's, but there is still a hangup in  
that we are now dealing with a tri/quad buffered drawing system!   
Back in the day, one of Tk's innovations was double-buffered drawing,  
which gave a smooth user experience that was rare for the  
time...however, now we still have that behaviour, but also have in  
OSX's aqua the entire window system being automatically double  
buffered, so in effect we draw way too much!  Awhile ago I started to  
rip out the offscreen buffering in Tk so that everything was just  
drawn directly to  the window manager, but it was put on hold until  
the ATSUI code was more finalized...

...luckily, we seem to be at a spot for another try, so maybe I can  
find some time again...?

jamie




More information about the Pd-list mailing list