Re: [ft-devel] State of TrueType interpreter v38 and up?

2015-12-03 Thread Werner LEMBERG

> I'm interested in adding native ClearType to the definition

`Native' ClearType is implemented.

> If I remember correctly, that is what Infinality set out to do and
> Behdad mentioned that it's slow.

Yes, it's slow.  Improvements welcome.

> How far did the integration go?  What work remains?

There are a whole bunch of improvements for the auto-hinter not yet
integrated, but this doesn't affect the TT engine.

> I reckon my stem darkening work will have to wait until the TrueType
> driver can do native Y-only-hinting..

There is a misunderstanding, see above.  `Native' ClearType doesn't do
y-only hinting!  It's simply that advance width modifications are
ignored in Windows at a later stage, namely in the rasterizer.


Werner

___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] State of TrueType interpreter v38 and up?

2015-12-03 Thread Nikolaus Waxweiler

Infinality patches are integrated. See in ttinterp.c under |#ifdef
TT_CONFIG_OPTION_SUBPIXEL_HINTING


Ah, okay, so ClearType support is theoretically complete? What about v39 
and v40?



I personally do not like how this is done. Also the truth remains that
ClearType patents will prevent this from wide acceptance in the near
future. By then you will upgrade to a 4k monitor and forget this.


I what way do you not like it? And Werner said something like leaving 
half the hints out is not covered by patents? I thought only subpixel 
rendering is covered by patents? I also fear that crappy LoDPI screens 
will be with us for quite a while...


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] State of TrueType interpreter v38 and up?

2015-12-03 Thread Werner LEMBERG
>> Infinality patches are integrated. See in ttinterp.c under |#ifdef
>> TT_CONFIG_OPTION_SUBPIXEL_HINTING
> 
> Ah, okay, so ClearType support is theoretically complete?  What about
> v39 and v40?

ClearType consists of multiple parts.  The first one is the
interpretation of the hints, which is complete (more or less).  The
second one consists how the hinted outlines are converted to raster
images.  There are big differences between the MS engine and FreeType,
which can't be `fixed' without completely redesigning FreeType.

>> I personally do not like how this is done. Also the truth remains
>> that ClearType patents will prevent this from wide acceptance in
>> the near future.  By then you will upgrade to a 4k monitor and
>> forget this.
> 
> In what way do you not like it?  And Werner said something like
> leaving half the hints out is not covered by patents?

The ClearType rendering *filter* is patented, not the ClearType
compatibility mode for hinting instructions.


Werner

___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] State of TrueType interpreter v38 and up?

2015-12-03 Thread Nikolay Sivov

On 03.12.2015 21:38, Werner LEMBERG wrote:



There is a misunderstanding, see above.  `Native' ClearType doesn't do
y-only hinting!  It's simply that advance width modifications are
ignored in Windows at a later stage, namely in the rasterizer.


I'm confused. Is this "native ClearType" actually called "Natural
ClearType" or "natural advance widths"?


MS created too many buzzwords :-(

   `Native ClearType ' means `no ClearType backwards-compatibility
   mode'

   `natural ClearType mode' is DWrite talk for subpixel positioning

   `natural ClearType widths' is GDI talk for integer pixel positioning
   with subpixel rendering.



Mostly as note to my future self, to summarize those rendering modes in 
DWrite terms, please correct me if I got anything wrong:


DWRITE_RENDERING_MODE_ALIASED

No antialiasing (still hinted I think)

DWRITE_RENDERING_MODE_GDI_CLASSIC

Horizontal direction AA, advances are adjusted.

DWRITE_RENDERING_MODE_GDI_NATURAL

Horizontal direction AA, advances are not adjusted, but still rounded.

DWRITE_RENDERING_MODE_NATURAL

Horizontal axis AA, with subpixel positioning, i.e. no snapping to pixel 
boundaries.


DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC

Both axis AA, with subpixel positioning

DWRITE_RENDERING_MODE_OUTLINE

Raw design outlines, irrelevant in this context.

In all cases that offer AA, it could be either cleartype or grayscale, 
it's specified separately from rendering mode. Could it mean that in 
grayscale mode DWrite NATURAL mode is the same as GDI_NATURAL?


I remember that symmetric mode is not supported in freetype yet, so we 
can forget about it.


So the question is what does freetype support from this list, and how 
can I switch between different modes? I know that one option is a 
per-library engine version setting, but what does it change in terms of 
those listed modes (also is there any reason to never switch it back and 
forth between render operations, performance penalty for example?).





___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] State of TrueType interpreter v38 and up?

2015-12-03 Thread Nikolaus Waxweiler

MS created too many buzzwords :-(

   `Native ClearType ' means `no ClearType backwards-compatibility
   mode'

   `natural ClearType mode' is DWrite talk for subpixel positioning

   `natural ClearType widths' is GDI talk for integer pixel positioning
   with subpixel rendering.


Now I'm more confused :B


MS Windows doesn't support that, and FreeType doesn't support it
either.


Uh, wait. I thought one of the core ideas of ClearType is that glyphs 
are snapped to the pixel grid only on the Y-axis? By Y-only hinting I 
mean what the slight autohinter and the CFF engine do. Are you telling 
me I'm even more confused? :B And if so, why didn't you say so when I 
posted my documentation update? :O


So what exactly must the TT driver support or imitate so that it fits 
the description of “Use native vertical-grid-only-snapping if driver and 
font supports it [...]”? If I understand correctly, FT already does 
subpixel positioning and natural advance widths in light mode 
(autohinter, CFF)?



The latter: MS uses super-sampling, which *virtually* increases the
device resolution by a factor of 10 or so, while FreeType does
*really* increase the resolution.


Ah. I take it those differences don't matter? Any known advantages and 
disadvantages to either approach?



___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] State of TrueType interpreter v38 and up?

2015-12-03 Thread Nikolaus Waxweiler

There are a whole bunch of improvements for the auto-hinter not yet
integrated, but this doesn't affect the TT engine.


Mhm, sounds like a job for me. I'll put it somewhere on my todo list :P


There is a misunderstanding, see above.  `Native' ClearType doesn't do
y-only hinting!  It's simply that advance width modifications are
ignored in Windows at a later stage, namely in the rasterizer.


I'm confused. Is this "native ClearType" actually called "Natural 
ClearType" or "natural advance widths"? I guess that's something FT 
already does? What I meant to say is I want the part of ClearType that 
does Y-only hinting.



ClearType consists of multiple parts. The first one is the
interpretation of the hints, which is complete (more or less).


This, I guess? I don't fully understand the description of the 
interpreter versions. Does GETINFO == 39 (v2.0) and 40 (v2.1) bring 
anything to the table that would be relevant to FT?


A quick search didn't turn up any specifications except that one guide 
for how ClearType tries to be backwards compatible...



The second one consists how the hinted outlines are converted to
raster images. There are big differences between the MS engine and
FreeType, which can't be `fixed' without completely redesigning
FreeType.


Could you provide some specifics? Do you mean how the rasterizer handles 
anti-aliasing and subpixel-rendering?


___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel


Re: [ft-devel] State of TrueType interpreter v38 and up?

2015-12-03 Thread Werner LEMBERG

>> There is a misunderstanding, see above.  `Native' ClearType doesn't do
>> y-only hinting!  It's simply that advance width modifications are
>> ignored in Windows at a later stage, namely in the rasterizer.
> 
> I'm confused. Is this "native ClearType" actually called "Natural
> ClearType" or "natural advance widths"?

MS created too many buzzwords :-(

  `Native ClearType ' means `no ClearType backwards-compatibility
  mode'

  `natural ClearType mode' is DWrite talk for subpixel positioning

  `natural ClearType widths' is GDI talk for integer pixel positioning
  with subpixel rendering.

> What I meant to say is I want the part of ClearType that does Y-only
> hinting.

MS Windows doesn't support that, and FreeType doesn't support it
either.

> Does GETINFO == 39 (v2.0) and 40 (v2.1) bring anything to the table
> that would be relevant to FT?

Versions 39 and 40 essentially add different rendering modes only,
which isn't directly relevant to FreeType.

>> The second one consists how the hinted outlines are converted to
>> raster images.  There are big differences between the MS engine and
>> FreeType, which can't be `fixed' without completely redesigning
>> FreeType.
> 
> Could you provide some specifics?  Do you mean how the rasterizer
> handles anti-aliasing and subpixel-rendering?

The latter: MS uses super-sampling, which *virtually* increases the
device resolution by a factor of 10 or so, while FreeType does
*really* increase the resolution.


Werner

___
Freetype-devel mailing list
Freetype-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/freetype-devel