Juce text rendering is unprofessional and amateur


#1

Jules,

I saw that you responded to one of the other guys on my thread by using a “640x480” straw man argument.
This is a perfect example of your cognitive dissonance – you have to create exaggerated situations in order to make the distorted reality in your head make sense.

I’m on a 1920x1200 display. Juce text rendering still looks bad.

And it doesn’t even matter what the resolution of the display is because I’m using plugin GUIs which occupy a fixed pixel areas onscreen.
Your text rendering is still highly unprofessional, amateur at best.

Take a look here:
http://ctrlr.org/page.php?p=ddb

I was trying to use one of these and it’s [size=200]GIVING ME A HEADACHE TRYING TO READ THE TEXT[/size]
Literally a headache.[size=150] I am worrying about my pair of glasses.[/size] I have never encountered any text rendering like JUCE’s that is literally [size=150]painful.[/size]

You’re like some weird religious zealot nutcase about your text rendering and you refuse to even consider our feelings and observations.
You shut down all dialog and discussion about it because it conflicts with the belief you NEED to hold onto.

And BTW I am NOT any of these other guys you’ve fought with in the past. If you want to know who I am, I can tell you.


#2

are you using the latest Juce ?

Because on Windows, with Direct2D and CoreGraphics on OSX, I don’t see why it would look different from the OS.


#3

Now you’re just trolling. I provided the source code for you to get hinted output in your JUCE application and you’re still complaining, and doing so in an immature fashion.


#4

TheVinn, I hate to argue with you because I can see you’re concerned about the issue.
I’m not trolling. I’m genuinely upset and I genuinely get a headache from the text.

but

  1. I am having a trouble with trying to use OTHER dev’s plugins and programs. Not everybody is going to use the snippet of code you posted. I can’t email them all begging them to switch to TheVinn’s snippet. Only by Jules making something official can we begin to see improvement across the range of applications that utilize JUCE.

  2. While you’ve improved on Jules rendering in many cases, the text rendering in your snippet has a lot of problems. I would not use it. I’m looking for something that looks as good as Apple & Microsoft.


#5

Mind posting a screenshot?


#6

[quote=“Zola”]I’m genuinely upset and I genuinely get a headache from the text.
[/quote]

Disproportionate emotional response and an opto triggered vascular headache? I actually hope you are trolling, because if you are sincere you might have a brain tumor…


#7

The panels on the website are created by many people, they use their own fonts/sizes and other stuff, don’t put that webpage as an example of bad text rendering, that application is an example of many bad things (i know i wrote it). And just to add my two cents, i always found JUCE’s font rendering to be better then any OS native (ClearType etc) stuff.


#8

Trolling concerns aside, I believe there is a legitimate issue at the core of this. In my opinion Juce’s text rendering is not up to scratch in Windows, I can’t really comment on other platforms. Maybe it looks great on Mac, and that’s why Jules isn’t as worried as I think he ought to be.

Making use of Vinnie’s FreeType amalgam certainly helps, but as a user of embedded fonts that means I have to work around any TextLayouts in my LookAndFeel as well.

…and yes, I have embedded SilkScreen - but I avoid using small fonts as much as possible.

-Andrew

(EDIT) - Just saw the other thread, ouch! I think you’re harming the cause Zola.


#9

What do you mean by work around TextLayout? Why in the LookAndFeel? And what is the SilkScreen library?


#10

What do you mean by work around TextLayout? Why in the LookAndFeel? And what is the SilkScreen library?[/quote]

TextLayouts don’t seem to render with FreeType - that means that I need workarounds for AlertWindows and Tooltips:

[list][]In my LookAndFeel I use an embedded font as my default, so I make sure getAlertWindowFont() uses the system default sans-serif instead (no FreeType, but also no issues regardless of the setting of JUCE_USE_DIRECTWRITE).[/]
[]In drawTooltip() I optionally use the original TextLayout method or alternatively just a drawText() (which is OK for single line tooltips). The option is controlled using a flag defined in the LookAndFeel constructor. So if an app needs multi-line tooltips I’ll use the original TextLayout code path. getTooltipSize() also respects the flag so I get the correct line width[/][/list]

SilkScreen is a bitmapped font.


#11

Hmm…I use AlertWindow with FreeTypeFaces and no problems. But I have disabled Direct2D.


#12

[quote=“jfitzpat”][quote=“Zola”]I’m genuinely upset and I genuinely get a headache from the text.
[/quote]

Disproportionate emotional response and an opto triggered vascular headache? I actually hope you are trolling, because if you are sincere you might have a brain tumor…[/quote]

LOL.

http://producingoss.com/en/difficult-people.html


#13

OK - I guess there’s no drawback to doing it that way if you avoid using system fonts?


#14

OK - I guess there’s no drawback to doing it that way if you avoid using system fonts?[/quote]

Well FreeTypeFaces only works with embedded fonts or font files that you open yourself, since there is no dignified way to process the Windows registry and reliably obtain a full path to a font file (which FreeType needs to open).


#15

Wow, that article is really good!!!


#16

OK - I guess there’s no drawback to doing it that way if you avoid using system fonts?[/quote]

Well FreeTypeFaces only works with embedded fonts or font files that you open yourself, since there is no dignified way to process the Windows registry and reliably obtain a full path to a font file (which FreeType needs to open).[/quote]

Exactly - I don’t use FreeType for system fonts, so if I want to use one (in addition to my FreeTyped embedded fonts) then DirectWrite would be the next clearest option. However as DirectWrite causes some issues with the FreeType approach, then I need to fall back to a Juce renderer instead. This isn’t a huge tragedy as while DirectWrite looks clearer for smaller text, I think Juce does a better job with larger text.

Anyway, thanks Vinnie - once again you’ve motivated me to make improvements to both my thinking & my code.

-Andrew

PS - Time to let this thread and it’s unattractive title to sink down the list…


#17

FWIW, from Win95 forward, it is possible to find most installed fonts using:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Fonts

and

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Fonts

But I would tend to follow Vinnie’s advice and stick with embedded fonts. There are some related keys that have to be parsed carefully to be truly compatible:

http://support.microsoft.com/kb/102960

And you can still get hosed if you don’t query some DDI functions under GDI… It’s kind of a rabbit hole.

On the flip side, if you’ve embedded the font and are using the same engine for extracting glyphs (ex. FreeType), you should get pretty consistent results across the different JUCE supported platforms.


#18

Thanks for the advice jfitzpat. I like the sense of control with embedded fonts and I don’t actually want to use system fonts right now - I just want to paint myself into a corner in future if I can help it :slight_smile: