のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

get_mm_var

     94   FT_EXPORT_DEF( FT_Error )
     95   FT_Get_MM_Var( FT_Face      face,
     96                  FT_MM_Var*  *amaster )
     97   {
     98     FT_Error                 error;
     99     FT_Service_MultiMasters  service;
    100 
    101 
    102     /* check of `face' delayed to `ft_face_get_mm_service' */
    103 
    104     if ( !amaster )
    105       return FT_THROW( Invalid_Argument );
    106 
    107     error = ft_face_get_mm_service( face, &service );
    108     if ( !error )
    109     {
    110       error = FT_ERR( Invalid_Argument );
    111       if ( service->get_mm_var )
    112         error = service->get_mm_var( face, amaster );
    113     }
    114 
    115     return error;
    116   }

http://tools.oesf.biz/android-8.1.0_r1.0/xref/external/pdfium/third_party/freetype/src/base/ftmm.c#95

     62   FT_DEFINE_SERVICE( MultiMasters )
     63   {
     64     FT_Get_MM_Func          get_mm;
     65     FT_Set_MM_Design_Func   set_mm_design;
     66     FT_Set_MM_Blend_Func    set_mm_blend;
     67     FT_Get_MM_Var_Func      get_mm_var;
     68     FT_Set_Var_Design_Func  set_var_design;
     69   };

http://tools.oesf.biz/android-8.1.0_r1.0/xref/external/pdfium/third_party/freetype/include/freetype/internal/services/svmm.h#96

 481 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
    482 
    483   FT_DEFINE_SERVICE_MULTIMASTERSREC(
    484     tt_service_gx_multi_masters,
    485 
    486     (FT_Get_MM_Func)        NULL,                   /* get_mm         */
    487     (FT_Set_MM_Design_Func) NULL,                   /* set_mm_design  */
    488     (FT_Set_MM_Blend_Func)  TT_Set_MM_Blend,        /* set_mm_blend   */
    489     (FT_Get_MM_Blend_Func)  TT_Get_MM_Blend,        /* get_mm_blend   */
    490     (FT_Get_MM_Var_Func)    TT_Get_MM_Var,          /* get_mm_var     */
    491     (FT_Set_Var_Design_Func)TT_Set_Var_Design,      /* set_var_design */
    492     (FT_Get_Var_Design_Func)TT_Get_Var_Design,      /* get_var_design */
    493 
    494     (FT_Get_Var_Blend_Func) tt_get_var_blend,       /* get_var_blend  */
    495     (FT_Done_Blend_Func)    tt_done_blend           /* done_blend     */
    496   )
    497 
    498   FT_DEFINE_SERVICE_METRICSVARIATIONSREC(
    499     tt_service_metrics_variations,
    500 
    501     (FT_HAdvance_Adjust_Func)tt_hadvance_adjust,     /* hadvance_adjust */
    502     (FT_LSB_Adjust_Func)     NULL,                   /* lsb_adjust      */
    503     (FT_RSB_Adjust_Func)     NULL,                   /* rsb_adjust      */
    504 
    505     (FT_VAdvance_Adjust_Func)tt_vadvance_adjust,     /* vadvance_adjust */
    506     (FT_TSB_Adjust_Func)     NULL,                   /* tsb_adjust      */
    507     (FT_BSB_Adjust_Func)     NULL,                   /* bsb_adjust      */
    508     (FT_VOrg_Adjust_Func)    NULL,                   /* vorg_adjust     */
    509 
    510     (FT_Metrics_Adjust_Func) tt_apply_mvar           /* metrics_adjust  */
    511   )
    512 
    513 #endif /* TT_CONFIG_OPTION_GX_VAR_SUPPORT */

これは、なんだろう?

    537 #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
    538   FT_DEFINE_SERVICEDESCREC6(
    539     tt_services,
    540 
    541     FT_SERVICE_ID_FONT_FORMAT,        FT_FONT_FORMAT_TRUETYPE,
    542     FT_SERVICE_ID_MULTI_MASTERS,      &TT_SERVICE_GX_MULTI_MASTERS_GET,
    543     FT_SERVICE_ID_METRICS_VARIATIONS, &TT_SERVICE_METRICS_VARIATIONS_GET,
    544     FT_SERVICE_ID_TRUETYPE_ENGINE,    &tt_service_truetype_engine,
    545     FT_SERVICE_ID_TT_GLYF,            &TT_SERVICE_TRUETYPE_GLYF_GET,
    546     FT_SERVICE_ID_PROPERTIES,         &TT_SERVICE_PROPERTIES_GET )
    547 #else
    548   FT_DEFINE_SERVICEDESCREC4(
    549     tt_services,
    550 
    551     FT_SERVICE_ID_FONT_FORMAT,     FT_FONT_FORMAT_TRUETYPE,
    552     FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine,
    553     FT_SERVICE_ID_TT_GLYF,         &TT_SERVICE_TRUETYPE_GLYF_GET,
    554     FT_SERVICE_ID_PROPERTIES,      &TT_SERVICE_PROPERTIES_GET )
    555 #endif