I already know that sub-pixel positioning causes DirectWrite text rendering to be blurry compared to GDI.
However, my question is a bit more fundamental: Why can't DirectWrite (and related methods) be made to render text as sharply as GDI?
In other words:
What prevents DirectWrite from being able to snap text to the nearest pixel, the way GDI can?
Is it, for example, a hardware issue? A driver architecture issue? Is it simply not implemented? Or something else?
Smaller sample:
Larger samples:
Direct2D, aliased:
Direct2D, default:
Direct2D ("classic GDI"):
Direct2D ("natural GDI"):
Actual classic GDI:
Actual ClearType GDI:
clearTypeLevel
set to zero. Note that sharpness comes at the expense of accuracy. See for example the rotated text and how chunky it looks in GDI, and how uneven the spacing is in GDI compared to subpixel. – Raymond Chen