• Show log

    Commit

  • Hash : e78e2d29
    Author : Ben Wagner
    Date : 2023-04-06T11:16:29

    [sfnt, truetype] Add `size_reset` to `MetricsVariations`.
    
    This is a generalization of commit
    
    ```
    commit e6699596af5c5d6f0ae0ea06e19df87dce088df8
    Author: Werner Lemberg <wl@gnu.org>
    Date:   Thu Feb 2 11:38:04 2017 +0100
    
        [truetype] Fix MVAR post-action handling.
    ```
    
    It is also possible for plain `CFF ` style fonts to contain an `fvar` and
    `MVAR` table and use `cff_metrics_adjust`.  `tt_size_reset` should only be
    called with `TT_Size` and never with `CFF_Size`.
    
    Allow the "metrics-variations" service to specify the correct function (if
    any) to reset `FT_Size`s after adjusting metrics.
    
    * src/truetype/ttobjs.c (tt_size_reset): Split off some functionality
    into...
    (tt_size_reset_height): ... this new function.
    
    * src/truetype/ttdriver.c (tt_service_metrics_variations): Add
    `size_reset`.
    (tt_size_select, tt_size_request): Updated.
    
    * src/truetype/ttobjs.h: Updated.
    
    * include/freetype/internal/services/svmetric.h (MetricsVariations): Add
    `size_reset`.
    (FT_DEFINE_SERVICE_METRICSVARIATIONSREC): Updated.
    
    * include/freetype/internal/tttypes.h (TT_FaceRec_): Rename `var` to
    `tt_var` and add `face_var`.
    
    * src/cff/cffdrivr.c (cff_service_metrics_variations): Add `size_reset`.
    (cff_hadvance_adjust, cff_metrics_adjust): Updated.
    
    * src/cff/cffobjs.c (cff_face_init): Use `face_var`.
    
    * src/sfnt/sfobjs.c (sfnt_init_face): Initialize `face_var`.
    
    * src/sfnt/ttmtx.c (tt_face_get_metrics): Use `tt_var`.
    
    * src/truetype/ttgxvar.c (tt_size_reset_iterator): Renamed to...
    (ft_size_reset_iterator): ... this new function.
    Call `size_reset`.
    (tt_apply_mvar): Pass `size_reset` to `ft_size_reset_iterator`.
    
    Fixes #1211