BTW, I’m not convinced that OS X is to blame here. Testing in Pages and Keynote, the text in my OP is just as light if not slightly lighter than Photoshop. From top to bottom below, JUCE, Photoshop, Pages
PhotoShop has a font rendering weight selector (below), and it would be amazing if JUCE’s rendering had similar capability to configure weight.
@jamiebullock - I’d expect Pages and Keynote to render text using the macOS APIs, however Photoshop is likely using a custom approach and won’t rely on the same APIs as Pages, Keynote, or most native Mac apps.
Have been looking into making text more legible at small font sizes. The second line is from Ableton, who I feel get it right in terms of correct font selection for legibility and also rendering (they are German after all). The first line is a similiar font to Ableton’s custom one (by https://lettersfromsweden.se), but with @martinrobinson-2 recommendation of disabling font smoothing in the graphics context and finally in the last line, we have the same font with font smoothing enabled. To my eyes, font smoothing actually messes up legibility especially at small sizes. It is very apparent in the dot over the ‘i’ and the "L’ in Live.
Would be great to have a function added to the graphics context class that allows for disabling of smoothing, rather than editing the framework directly. @martinrobinson-2 great find btw, have been annoyed by Juce’s font rendering for years, but seems it wasn’t really Juce all along!
We turned off font smoothing as per above so we could have consistency between OS-X and Windows. From beta testing it seems to have solved a problem that some mac users were having (mac pros with ati radeon hd 5770). The plug-in interface was taking ~5 seconds to open, turn smoothing off and goes down to 1.5 seconds. Would be great to have font smoothing on/off as a settable parameter of the Font class so as to avoid hacking the framework.
I would like to see this too. A general switch would do the job for me but it’s also ok if it’s part of the font itself. @roli is this something you can add? I don’t want to modify the framework code. I think font smoothing could be even switched off by default…
That is really odd… Did you profile it? Would be really interesting to see which functions are using up all that CPU.
OK, good request, I’ll add a macro to let you turn it off, though I think making it off by default would probably change the appearance of existing apps too much for it to be something we could use as a default.
A macro would be great. Turning font smoothing off on OSX allowed us to have unified font sizes between Windows and OSX, before we were checking the platform and using different font weights etc to get the two similar.
It is super odd, I haven’t been able to recreate it as I didn’t have access to a mac pro here. We just turned off font smoothing on OSX as the only change in a beta build and people came back saying the slow instantiation was solved. Also it was only instantiation of the editor that was slow, once created everything was fine. Don’t know if that helps in anyway!
Well, presumably the smoothing algorithm must have to run on a font while it’s being loaded, and it must take some time. Just seems bizarre that it could take so long - I was wondering if perhaps you’ve got something weird your code that’s repeatedly forcing a typeface to be reloaded or something, because even 1.5 seconds seems a bit long just to get a window on screen.