Font Rendering


#1

Using a TTF font in JUCE: 

The left hand side is my computer (latest Mavericks).  The right hand side someone elses (10.6.8). 

I'm doing:

 tfLabel = Typeface::createSystemTypefaceFor(BinaryData::RobotoThin_ttf, BinaryData::RobotoThin_ttfSize)

Then: 

        Font textFont = Font(laf->tfLabel).withHeight(17.0);

        g.setFont(textFont);

Any obvious idea why one of them looks rubbish?

 


#2

Is yours a retina display? Which rendering engine are you using? 


#3

Not retina and mmm, what ever the default is.

 

Seems to also be affecting the system font although more subtle as its' wider (look at Level and Time).

 


#4

What are the screen resolutions of each system?

Rail


#5

The good one is on a 30" cinema at 2560 × 1600.  But it also looks good on my MacBook Air (non-retina) 1440x900.

I'll find out what Oli was using for the rough looking ones. (The answer is 1920x1200). 

It's not a consistent problem either.  It's gone away today apparently with the same binary on the same system.  Another test system has also produced the problem though... 

I'm collecting some more data...


#6

Okay, so I'm completely stumped.  Let me try the easy question - has anyone ever seen this problem before? :)

 


#7

Sorry, no idea - the one on the right doesn't look like OSX rendering, or the juce software renderer. Maybe something odd about 10.6, but I've not seen it before.


#8

Just a thought, is this a plugin? Are you both usng the same host/version?


#9

Dave - just getting into this question.  Might be Logic X related...


#10

Ok - looks like it is.  Why does it look different in Logic? I'd assumed, naively, that it'd render the same in different hosts on the same system...


#11

Add 

 CGContextSetAllowsFontSmoothing(context, true);

just below

CGContextSetShouldSmoothFonts (context, true);

in

CoreGraphicsContext juce constructor

 


#12

Wow.. So they have three similar-but-not-quite-the-same methods for disabling anti-aliasing..?? Nasty.

Thanks for the heads-up on that, I'll add that to the code. So now we have to do all this crap:

    CGContextSetShouldSmoothFonts (context, true);

    CGContextSetAllowsFontSmoothing (context, true);

    CGContextSetShouldAntialias (context, true);

..just to have anti-aliased font rendering!


#13

I do hope that makes things look HOT in logic again ... :)