freetype-commit
[Top][All Lists]
Advanced

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

[Git][freetype/freetype][master] [type42] Fix auto-hinting.


From: Alexei Podtelezhnikov (@apodtele)
Subject: [Git][freetype/freetype][master] [type42] Fix auto-hinting.
Date: Thu, 27 May 2021 15:40:36 +0000

Alexei Podtelezhnikov pushed to branch master at FreeType / FreeType

Commits:

2 changed files:

Changes:

  • ChangeLog
    1
    +2021-05-27  Alexei Podtelezhnikov  <apodtele@gmail.com>
    
    2
    +
    
    3
    +	[type42] Fix auto-hinting.
    
    4
    +
    
    5
    +	The autohinter could not access the base (unscaled) outline in the
    
    6
    +	child TrueType glyph slot. We now share the internal parts between
    
    7
    +	the parent and child glyph slots. Fixes #1057.
    
    8
    +
    
    9
    +	* src/type42/t42objs.c (T42_GlyphSlot_Init): Remove the internal parts
    
    10
    +	of `T42_GlyphSlot' and replace it with the child TrueType structure.
    
    11
    +	(T42_GlyphSlot_Done): Updated accordingly.
    
    12
    +
    
    1 13
     2021-05-25  Werner Lemberg  <wl@gnu.org>
    
    2 14
     
    
    3 15
     	[psaux] Guard and trace AFM kern data allocation.
    

  • src/type42/t42objs.c
    ... ... @@ -583,6 +583,7 @@
    583 583
         FT_Face        face    = t42slot->face;
    
    584 584
         T42_Face       t42face = (T42_Face)face;
    
    585 585
         FT_GlyphSlot   ttslot;
    
    586
    +    FT_Memory      memory  = face->memory;
    
    586 587
         FT_Error       error   = FT_Err_Ok;
    
    587 588
     
    
    588 589
     
    
    ... ... @@ -598,6 +599,11 @@
    598 599
             slot->ttslot = ttslot;
    
    599 600
         }
    
    600 601
     
    
    602
    +    /* share the loader so that the autohinter can see it */
    
    603
    +    FT_GlyphLoader_Done( t42slot->internal->loader );
    
    604
    +    FT_FREE( t42slot->internal );
    
    605
    +    t42slot->internal = slot->ttslot->internal;
    
    606
    +
    
    601 607
         return error;
    
    602 608
       }
    
    603 609
     
    
    ... ... @@ -609,6 +615,7 @@
    609 615
     
    
    610 616
     
    
    611 617
         FT_Done_GlyphSlot( slot->ttslot );
    
    618
    +    t42slot->internal = NULL;
    
    612 619
       }
    
    613 620
     
    
    614 621
     
    


  • reply via email to

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