Recommended Posts

You know, Mac and Linux distributions comes with a great text rendering engine.

 

Mac OS X Yosamite - http://www.superb.info/wp-content/uploads/2014/06/Screen-Shot-2014-06-03-at-01.06.36.png

Ubuntu - http://1.bp.blogspot.com/-fuOitpHeFVw/U1FUr8oKhMI/AAAAAAAADjo/FpVnS97aikc/s1600/ubuntu14.04-unity.png

 

The texts looks like very smooth, like a written in Photoshop...

 

Why aren't Windows comes with a great text rendering engine?

 

Thank you.

Link to comment
https://www.neowin.net/forum/topic/1259178-windows-text-rendering-engine/
Share on other sites

Windows has about 4 different font renderers built in (Not counting apps like Office that has another couple in it), half of them are actually quite good (Better than what OS X or Linux produces anyway). The main reason applications don't use the good ones is either because they need to target Windows XP/Vista (Where they didn't exist), or the way you use them isn't a good fit to the way their program is written (The new APIs pretty much require you to use the GPU for UI rendering, a lot of apps don't). And Microsoft can't just port old applications across to the new APIs, because of just how different the new APIs are, so trying to use them causes rendering issues and slowdowns (Which you can see with gdipp/mactype)

That's not really an issue for new applications, every single Metro app (for instance) uses one of the new rendering APIs, and desktop applications like IE/Firefox use them too. Over time most applications will transition to the new APIs, and then every app will have nicer looking text.

  • Like 2
  On 05/06/2015 at 10:49, The_Decryptor said:

Windows has about 4 different font renderers built in (Not counting apps like Office that has another couple in it), half of them are actually quite good (Better than what OS X or Linux produces anyway). The main reason applications don't use the good ones is either because they need to target Windows XP/Vista (Where they didn't exist), or the way you use them isn't a good fit to the way their program is written (The new APIs pretty much require you to use the GPU for UI rendering, a lot of apps don't). And Microsoft can't just port old applications across to the new APIs, because of just how different the new APIs are, so trying to use them causes rendering issues and slowdowns (Which you can see with gdipp/mactype)

That's not really an issue for new applications, every single Metro app (for instance) uses one of the new rendering APIs, and desktop applications like IE/Firefox use them too. Over time most applications will transition to the new APIs, and then every app will have nicer looking text.

Oh, i got it. Thanks for the reply.

I wish font rendering in Windows was as good across the board as it can be in Linux.

 

That "can be" is important. A lingering legal threat about use of patent-encumbered techniques is still perceived.  Some distributions avoid shipping code that uses those techniques to avoid potential legal liability.  Red Hat, for example, does not. Font rendering quality can be improved after installation by savvy users in those products.

 

Distributions like Ubuntu, located in jurisdictions different than Red Hat, don't see the same potential legal threat and ship font rendering engines that deliver rather nice displays.

 

Linux does have an advantage in that all but the most ancient applications use a single, standard, font rendering engine. Unlike Windows,a user's tweaks are reflected system-wide.

 

I have found that many people forget that carefully adjusting their monitor's sharpness setting has an impact on font display.  I find on Windows, though, a very fine line between too sharp -- characters resolve to their individual pixels -- and not nearly sharp enough -- smudgy, fuzzy characters.

 

I've been looking at Win10 on a 27-inch 2560x1440 display.  Modern/Metro apps (believe they use grayscale and full hinting) look acceptable. Chrome is bad.  Project Spartan/Edge is not bad.  Firefox is not bad, either.  Other non-MS apps often look not so good at all.  Given that there are tens of thousands of older apps that people will continue to use for years, I imagine Microsoft will be dragging around support for old font rendering engines for some time.

  On 05/06/2015 at 10:49, The_Decryptor said:

Windows has about 4 different font renderers built in (Not counting apps like Office that has another couple in it), half of them are actually quite good (Better than what OS X or Linux produces anyway). The main reason applications don't use the good ones is either because they need to target Windows XP/Vista (Where they didn't exist), or the way you use them isn't a good fit to the way their program is written (The new APIs pretty much require you to use the GPU for UI rendering, a lot of apps don't). And Microsoft can't just port old applications across to the new APIs, because of just how different the new APIs are, so trying to use them causes rendering issues and slowdowns (Which you can see with gdipp/mactype)

That's not really an issue for new applications, every single Metro app (for instance) uses one of the new rendering APIs, and desktop applications like IE/Firefox use them too. Over time most applications will transition to the new APIs, and then every app will have nicer looking text.

 

Why is it that new, Windows Vista+ only applications like IE11 and Office 2013 have such awful rendering then? If they can use the new (DirectWrite?) font rendering and not have to worry about pre-Vista why don't they? They look awful.

  On 06/06/2015 at 14:05, neufuse said:

maybe it's just me but I think mac's font smoothing looks awful... always looks too bold

Ditto, always found the *Nix/OSX font rendering to be "muddy", I like it crisp.. but *shrug* that's just me and what I'm used to. You can install a different font renderer (FreeType based) for the older non accelerated programs to get a similar look but don't recommend it.. kinda quirky at times.
  On 06/06/2015 at 14:05, neufuse said:

maybe it's just me but I think mac's font smoothing looks awful... always looks too bold

 

You are not only one.

 

I have that problem on my iMac.  Font looks bleeding.

 

I have crisp looking font on my Windows pc.

 

Maybe new iMac (5K) may be better. I have not tested it yet.

  On 06/06/2015 at 13:39, joncr said:

I wish font rendering in Windows was as good across the board as it can be in Linux.

 

That "can be" is important. A lingering legal threat about use of patent-encumbered techniques is still perceived.  Some distributions avoid shipping code that uses those techniques to avoid potential legal liability.  Red Hat, for example, does not. Font rendering quality can be improved after installation by savvy users in those products.

...

Nah, the hinting patents expired years ago, problem is that hinting is what causes the crappy font rendering. "Slight hinting" (In Freetype speak) is the best compromise, where it only applies some hints to the font, and leaves other outlines untouched. That's what DirectWrite/WPF does, and what Freetype can be told to do (But there's other problems with the Linux implementation of Freetype that make it about as good as Windows 95 era GDI)

 

  On 06/06/2015 at 13:58, kozukumi said:

Why is it that new, Windows Vista+ only applications like IE11 and Office 2013 have such awful rendering then? If they can use the new (DirectWrite?) font rendering and not have to worry about pre-Vista why don't they? They look awful.

Yep, they're the ones using the better font rendering methods, and that's the result you get. The "blurryness" is actually how the font is supposed to have looked all along, it was architectural limitations in GDI that stopped that, and left Windows users with boxy/squared off fonts for 20 years (Which a lot of people have grown used to)

The GDI boxy rendering is "super crisp" because it destroys how the font looks and fits it to the pixel grid (Any AA GDI does is a hack around the core rendering, which is plain B&W), DirectWrite/WPF on the other hand lay out the font exactly as the designer intended, while trying to snap some parts of the font to the pixel grid (Like the cross bar in T, because most LCD screens have more horizontal resolution than vertical), which means that parts of the glyphs can end up between pixels, and AA then ends up covering multiple pixels (A 1 pixel wide line offset 0.5 pixels ends up with 2 pixels with 50% coverage, etc.)

 

The DirectWrite/WPF approach is better for a bunch of ways, you get more accurate rendering, and measurement is more accurate (Meaning what you see on the screen actually matches what you see on a printed output, like PDF). Because GDI snaps everything to whole pixels, you end up accumulating an error as you move across a line, leading to uneven spacing between characters, and differing line lengths in odd ways (Like a larger font size ending up with a smaller line length because the accumulated error is different).

This topic is now closed to further replies.
  • Posts

    • £129 in the U.K., that is a fair drop in price and if anyone have a need for one then now is a good time to buy one. But for most people if they have a pretty good router it would be money wasted,, unless they need Wi-Fi 7 and I doubt many will notice any difference even if they have Wi-Fi 7 devices. The 2.5Gb/s lan and Wan could be useful for some people, but why only one 2.5 lan? sure, there is not much around in the 2.5Gb/s line at the moment and a lot of devices like TVs would not benefit by it, but if someone has a couple of computers with 2.5Gb/s lan, they have to buy a switch, so more cost. So a unmanaged one can be picked up for around £50 these days, but that is still extra and electrical another socket and box. I suppose sticking another 2.5Gb LAN on the router would have added a bit of more cost, but not that much. I don't really have much need for a Wi-Fi 7 router, I have an Archer AX53 that does what I need, the one thing I do miss is the USB port that don't seem to be a thing these days on routers, just to stick a small USB drive in for documents, saves booting up the nas.
    • But it is a step in the right direction, and besides you need to understand that this is a technology that is still in the laboratory. We are not even sure if there will be a final product or if the product will be altered over and over again before a final product. Thinking and responding in a positive way would be ideal when responding to this article.
    • I think it is more to do with the wider channels, so more data can be sent at the same time, not about frequencies. No doubt some other things as well.
    • UniGetUI 3.3.0 by Razvan Serea UniGetUI is an application whose main goal is to create an intuitive GUI for the most common CLI package managers for Windows 10 and Windows 11, such as Winget, Scoop and Chocolatey. With UniGetUI, you'll be able to download, install, update and uninstall any software that's published on the supported package managers — and so much more. UniGetUI features Install, update and remove software from your system easily at one click: UniGetUI combines the packages from the most used package managers for windows: WinGet, Chocolatey, Scoop, Pip, Npm and .NET Tool. Discover new packages and filter them to easily find the package you want. View detailed metadata about any package before installing it. Get the direct download URL or the name of the publisher, as well as the size of the download. Easily bulk-install, update or uninstall multiple packages at once selecting multiple packages before performing an operation Automatically update packages, or be notified when updates become available. Skip versions or completely ignore updates in a per-package basis. Manage your available updates at the touch of a button from the Widgets pane or from Dev Home pane with UniGetUI Widgets. The system tray icon will also show the available updates and installed package, to efficiently update a program or remove a package from your system. Easily customize how and where packages are installed. Select different installation options and switches for each package. Install an older version or force to install a 32bit architecture. [But don't worry, those options will be saved for future updates for this package] Share packages with your friends to show them off that program you found. Here is an example: Hey @friend, Check out this program! Export custom lists of packages to then import them to another machine and install those packages with previously-specified, custom installation parameters. Setting up machines or configuring a specific software setup has never been easier. Backup your packages to a local file to easily recover your setup in a matter of seconds when migrating to a new machine UniGetUI 3.3.0 release notes: This release was expected to be 3.2.1, but it incudes more changes than planned, so it has been named 3.3.0 instead. Changelog Added default install options on a per-package-manager level! Added pre/post-install/update/uninstall commands! Added an option to close/kill process(es) before installing/updating/uninstalling a package Added cloud package backup and restore (via GitHub) more info on that here. Added the option to bulk-download installers Added the option to select package manager executable PowerShell7 can now clear older versions when updating to a new one Improvements to InstallOptions dialogs Installer download will properly guess the downloaded file name. Added "Dependencies" field to Package Details. Improvements to WinGet source management Searchbox has been moved to the titiebar, less wasted space Improvements for when window size is less wide Toolbar improvements Improvements on internal error detection and handling YAML and XML can't be created no more (more info on that here: #3860) Lots of bugfixes Other internal improvements Security enhancements Some features (pre/post install commands, command-line arguments, etc.) will be restricted by default. Bundles will also have those features restricted by default. Those features can be enabled with toggles that require an UAC prompt to be modified Bundles will show a security report when potentially dangerous settings are present. Fix some potential command-injection vulnerabilities from custom command-line arguments What's changed Load translations from Tolgee by @martinet101 in #3644 Dynamic JSON [de]serialization by @marticliment in #3679 Bump vedantmgoyal9/winget-releaser from 3e78d7ff0f525445bca5d6a989d31cdca383372e to 19e706d4c9121098010096f9c495a70a7518b30f in the actions-deps group by @dependabot[bot] in #3711 Update Scoop nirsoft bucket URL to ScoopInstaller/Nirsoft by @hboyd2003 in #3719 Per-package-manager and global default installation options by @marticliment in #3685 Further improvements to InstallOptions by @marticliment in #3721 Add toggle to enable/disable insecure settings by @marticliment in #3722 Make 'Pause updates for' submenu item use translation by @szumsky in #3705 Add toggle to enable/disable insecure settings by @marticliment in #3723 Separe Install, update and uninstall custom command-line args by @marticliment in #3748 Warn the user when a bundle contains potentially harmful prefs by @marticliment in #3749 Setting keys will be stored on const strings by @marticliment in #3750 Improve local icon detection code comments by @mrixner in #3767 Pre-install and post-install operations by @marticliment in #3756 Show Version in Update Live Dialog by @mrixner in #3798 Clear older versions of PowerShell7 modules on update by @marticliment in #3810 Allow Executable Selection by @mrixner in #3703 Add dependencies field to Package Details by @marticliment in #3822 Feat/recheck version before update by @theguy000 in #3827 feat: Add Cloud Backup and Restore via GitHub Gists by @theguy000 in #3826 Bundles file size improvements by @marticliment in #3832 Move searchbox to titlebar by @marticliment in #3837 Fix crashes & better error handling by @marticliment in #3859 Improvements to WinGet source management by @marticliment in #3876 Allow the user to force user gsudo via a SecureSetting (fix #3692) by @marticliment in #3877 Improvements to Toolbar by @marticliment in #3882 Download: UniGetUI 3.3.0 | 53.3 MB (Open Source) Links: WingetUI Home Page | GitHub | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • You wouldn't buy a car if you had to disassemble half the vehicle to do an oil change. The same is true in software. There comes a point where company A's desire to maximize profits hurts consumers.
  • Recent Achievements

    • One Month Later
      Ricky Chan earned a badge
      One Month Later
    • First Post
      leoniDAM earned a badge
      First Post
    • Reacting Well
      Ian_ earned a badge
      Reacting Well
    • One Month Later
      Ian_ earned a badge
      One Month Later
    • Dedicated
      MacDaddyAz earned a badge
      Dedicated
  • Popular Contributors

    1. 1
      +primortal
      505
    2. 2
      ATLien_0
      207
    3. 3
      Michael Scrip
      205
    4. 4
      Xenon
      141
    5. 5
      +FloatingFatMan
      116
  • Tell a friend

    Love Neowin? Tell a friend!