godot/thirdparty/freetype/include/freetype/internal/services/svmm.h

/****************************************************************************
 *
 * svmm.h
 *
 *   The FreeType Multiple Masters and GX var services (specification).
 *
 * Copyright (C) 2003-2023 by
 * David Turner, Robert Wilhelm, Werner Lemberg, and Dominik Röttsches.
 *
 * This file is part of the FreeType project, and may only be used,
 * modified, and distributed under the terms of the FreeType project
 * license, LICENSE.TXT.  By continuing to use, modify, or distribute
 * this file you indicate that you have read the license and
 * understand and accept it fully.
 *
 */


#ifndef SVMM_H_
#define SVMM_H_

#include <freetype/ftmm.h>
#include <freetype/internal/ftserv.h>
#include <freetype/internal/ftmmtypes.h>


FT_BEGIN_HEADER


  /*
   * A service used to manage multiple-masters data in a given face.
   *
   * See the related APIs in `ftmm.h' (FT_MULTIPLE_MASTERS_H).
   *
   */

#define FT_SERVICE_ID_MULTI_MASTERS


  FT_Get_MM_Func;

  FT_Get_MM_Var_Func;

  FT_Set_MM_Design_Func;

  /* use return value -1 to indicate that the new coordinates  */
  /* are equal to the current ones; no changes are thus needed */
  FT_Set_Var_Design_Func;

  /* use return value -1 to indicate that the new coordinates  */
  /* are equal to the current ones; no changes are thus needed */
  FT_Set_MM_Blend_Func;

  FT_Get_Var_Design_Func;

  FT_Set_Named_Instance_Func;

  FT_Get_Default_Named_Instance_Func;

  FT_Get_MM_Blend_Func;

  FT_Get_Var_Blend_Func;

  FT_Done_Blend_Func;

  FT_Set_MM_WeightVector_Func;

  FT_Get_MM_WeightVector_Func;

  FT_Construct_PS_Name_Func;

  FT_Var_Load_Delta_Set_Idx_Map_Func;

  FT_Var_Load_Item_Var_Store_Func;

  FT_Var_Get_Item_Delta_Func;

  FT_Var_Done_Item_Var_Store_Func;

  FT_Var_Done_Delta_Set_Idx_Map_Func;


  FT_DEFINE_SERVICE( MultiMasters )
  {};


#define FT_DEFINE_SERVICE_MULTIMASTERSREC( class_,                      \
                                           get_mm_,                     \
                                           set_mm_design_,              \
                                           set_mm_blend_,               \
                                           get_mm_blend_,               \
                                           get_mm_var_,                 \
                                           set_var_design_,             \
                                           get_var_design_,             \
                                           set_named_instance_,         \
                                           get_default_named_instance_, \
                                           set_mm_weightvector_,        \
                                           get_mm_weightvector_,        \
                                                                        \
                                           construct_ps_name_,          \
                                           load_delta_set_idx_map_,     \
                                           load_item_var_store_,        \
                                           get_item_delta_,             \
                                           done_item_var_store_,        \
                                           done_delta_set_idx_map_,     \
                                           get_var_blend_,              \
                                           done_blend_ )

  /* */


FT_END_HEADER

#endif /* SVMM_H_ */


/* END */