[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freetype-devel
Subject:    Re: [ft-devel] proposed enhancement to freetype for truetype diagnostics.
From:       Dave Crossland <dave () lab6 ! com>
Date:       2016-02-10 13:58:07
Message-ID: CAEozd0zo1e27Te2wqe-LggcQ9EK9EFTjHX0r4TrOXqiWq3w3mw () mail ! gmail ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Thanks for keeping us informed! :)

On 10 February 2016 at 01:26, Hin-Tak Leung <htl10@users.sourceforge.net>
wrote:

> Hi,
>
> An earlier version of some of this was sent to Werner privately
> yesterday. I thought a bit more, and posted it as:
>
> https://github.com/HinTak/Font-Validator/issues/5#issuecomment-182210815
>
> So this is a head-up that something will happen in that direction.
>
> Hin-Tak
>
> ===
> Implementing the whole 60 errors and dozen warnings from the closed source
> MS renderer seems daunting; so I looked into what is achievable/possible.
> Last summer I collected the test results of the 2003 binary against the
> fonts in win 8.1. The errors and warnings shown is actually a very
> restricted set:
>
> warnings:
> 3066 Instruction is only valid on the Apple platform
> 3555 Projection and freedom vectors at or near perpendicular
>
> errors:
> 4 Instruction already defined by rasterizer
> 69 Not called from pre-program
> 885 Point out of range
> 22788 RP1 and RP2 have the same position on the projection vector
> 1243 X and Y components of vector are invalid. X^2 + Y^2 != 0x4000^2
>
> "Instruction is only valid on the Apple platform" was determined to be
> bogus in previous private discussion with Werner. Out of this small list,
> "RP1 and RP2 have the same position on the projection vector" seems the
> obvious one to look at, as it is much more frequent by far, 90% of errors
> by instances, and also by other metrices (fonts involved, etc).
>
> grep'ing for 'rp1' in freetype sources show that back in Feb 2013, a very
> localized change in Freetype was made to make it cope with such brokenness
> in fonts to match the MS renderer's exact behavior.
> (
> http://savannah.nongnu.org/bugs/?38211
> https://bugs.freedesktop.org/show_bug.cgi?id=16442
> http://savannah.nongnu.org/bugs/?40975
> )
>
> So here is a plan: at exactly the same condition, a diagnostics enhanced
> Freetype should abort and return an error detail, instead of silently
> carrying on and working around brokenness in fonts.
>
> This goes towards implementing a test on already fairly well-behaved
> fonts, to make them even better - there are much more serious brokenness, I
> am sure, but it is a beginning to start something.
> ===
>



-- 
Cheers
Dave

[Attachment #5 (text/html)]

<div dir="ltr">Thanks for keeping us informed! :)</div><div \
class="gmail_extra"><br><div class="gmail_quote">On 10 February 2016 at 01:26, \
Hin-Tak Leung <span dir="ltr">&lt;<a href="mailto:htl10@users.sourceforge.net" \
target="_blank">htl10@users.sourceforge.net</a>&gt;</span> wrote:<br><blockquote \
class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc \
solid;padding-left:1ex">Hi,<br> <br>
An earlier version of some of this was sent to Werner privately<br>
yesterday. I thought a bit more, and posted it as:<br>
<br>
<a href="https://github.com/HinTak/Font-Validator/issues/5#issuecomment-182210815" \
rel="noreferrer" target="_blank">https://github.com/HinTak/Font-Validator/issues/5#issuecomment-182210815</a><br>
 <br>
So this is a head-up that something will happen in that direction.<br>
<br>
Hin-Tak<br>
<br>
===<br>
Implementing the whole 60 errors and dozen warnings from the closed source MS \
renderer seems daunting; so I looked into what is achievable/possible. Last summer I \
collected the test results of the 2003 binary against the fonts in win 8.1. The \
errors and warnings shown is actually a very restricted set:<br> <br>
warnings:<br>
3066 Instruction is only valid on the Apple platform<br>
3555 Projection and freedom vectors at or near perpendicular<br>
<br>
errors:<br>
4 Instruction already defined by rasterizer<br>
69 Not called from pre-program<br>
885 Point out of range<br>
22788 RP1 and RP2 have the same position on the projection vector<br>
1243 X and Y components of vector are invalid. X^2 + Y^2 != 0x4000^2<br>
<br>
&quot;Instruction is only valid on the Apple platform&quot; was determined to be \
bogus in previous private discussion with Werner. Out of this small list, &quot;RP1 \
and RP2 have the same position on the projection vector&quot; seems the obvious one \
to look at, as it is much more frequent by far, 90% of errors by instances, and also \
by other metrices (fonts involved, etc).<br> <br>
grep&#39;ing for &#39;rp1&#39; in freetype sources show that back in Feb 2013, a very \
localized change in Freetype was made to make it cope with such brokenness in fonts \
to match the MS renderer&#39;s exact behavior.<br> (<br>
<a href="http://savannah.nongnu.org/bugs/?38211" rel="noreferrer" \
target="_blank">http://savannah.nongnu.org/bugs/?38211</a><br> <a \
href="https://bugs.freedesktop.org/show_bug.cgi?id=16442" rel="noreferrer" \
target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=16442</a><br> <a \
href="http://savannah.nongnu.org/bugs/?40975" rel="noreferrer" \
target="_blank">http://savannah.nongnu.org/bugs/?40975</a><br> )<br>
<br>
So here is a plan: at exactly the same condition, a diagnostics enhanced Freetype \
should abort and return an error detail, instead of silently carrying on and working \
around brokenness in fonts.<br> <br>
This goes towards implementing a test on already fairly well-behaved fonts, to make \
them even better - there are much more serious brokenness, I am sure, but it is a \
beginning to start something.<br> ===<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div \
class="gmail_signature">Cheers<br>Dave</div> </div>



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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic