freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ft-devel] [patch] TrueType GX/AAT validator


From: mpsuzuki
Subject: Re: [ft-devel] [patch] TrueType GX/AAT validator
Date: Wed, 24 Aug 2005 00:18:52 +0900

Dear Mr. George Williams,

On 22 Aug 2005 22:04:00 -0700
George Williams <address@hidden> wrote:

>On Mon, 2005-08-22 at 18:29, address@hidden wrote:
>>       - state transition diagram uses undefined glyph ID
>A note of caution here, the apple world makes use of undefined glyph IDs
>as temporary state flags. One state machine will test for a condition
>and apply a substitution which creates an invalid GID, then another
>state machine will detect the bad GID, change it to something valid and
>enter a new state where it does other substitutions.
>   Example font: Zapfino 4.1d6

Based on your detailed analysis (thanks again), I removed the line
"       - state transition diagram uses undefined glyph ID"
from the essential error list, and add following paragraph
into the section. If I'm misunderstanding, please let me know.

    In addition,  gxvalid doesn't check  "temporal glyph ID" used in the
    chained State Machines (in "mort" and "morx" tables).  When a layout
    feature is implemented by  single State Machine,  glyph ID converted
    by State Machine is passed to the glyph renderer, thus it should not
    point to undefined glyph ID.  But if a layout feature is implemented
    by chained State Machines, the component State Machine (if it is not
    final one) is permitted to generate  undefined glyph ID for temporal
    use, because it is handled  by next component State Machine, instead
    of the glyph renderer.  To validate such temporal glyph ID,  gxvalid
    must stack  all undefined glyph IDs  which is possible in the output
    of previous State Machine and search them in "ClassTable" of current
    State Machine.  It is too complexed work to  list all possible glyph
    IDs from StateTable, especially from ligature substitution table.

I think quick hack is not enough to solve this issue,
so I want to put it to TODO of gxvalid.

Regards,
mpsuzuki




reply via email to

[Prev in Thread] Current Thread [Next in Thread]