/src/freetype/src/autofit/afmodule.c

https://bitbucket.org/cabalistic/ogredeps/ · C · 93 lines · 53 code · 23 blank · 17 comment · 0 complexity · 65442f67a0817aa1b3b9dc23b7fdd6ca MD5 · raw file

  1. /***************************************************************************/
  2. /* */
  3. /* afmodule.c */
  4. /* */
  5. /* Auto-fitter module implementation (body). */
  6. /* */
  7. /* Copyright 2003-2006, 2009, 2011 by */
  8. /* David Turner, Robert Wilhelm, and Werner Lemberg. */
  9. /* */
  10. /* This file is part of the FreeType project, and may only be used, */
  11. /* modified, and distributed under the terms of the FreeType project */
  12. /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
  13. /* this file you indicate that you have read the license and */
  14. /* understand and accept it fully. */
  15. /* */
  16. /***************************************************************************/
  17. #include "afmodule.h"
  18. #include "afloader.h"
  19. #include "afpic.h"
  20. #ifdef FT_DEBUG_AUTOFIT
  21. int _af_debug_disable_horz_hints;
  22. int _af_debug_disable_vert_hints;
  23. int _af_debug_disable_blue_hints;
  24. void* _af_debug_hints;
  25. #endif
  26. #include FT_INTERNAL_OBJECTS_H
  27. typedef struct FT_AutofitterRec_
  28. {
  29. FT_ModuleRec root;
  30. AF_LoaderRec loader[1];
  31. } FT_AutofitterRec, *FT_Autofitter;
  32. FT_CALLBACK_DEF( FT_Error )
  33. af_autofitter_init( FT_Autofitter module )
  34. {
  35. return af_loader_init( module->loader, module->root.library->memory );
  36. }
  37. FT_CALLBACK_DEF( void )
  38. af_autofitter_done( FT_Autofitter module )
  39. {
  40. af_loader_done( module->loader );
  41. }
  42. FT_CALLBACK_DEF( FT_Error )
  43. af_autofitter_load_glyph( FT_Autofitter module,
  44. FT_GlyphSlot slot,
  45. FT_Size size,
  46. FT_UInt glyph_index,
  47. FT_Int32 load_flags )
  48. {
  49. FT_UNUSED( size );
  50. return af_loader_load_glyph( module->loader, slot->face,
  51. glyph_index, load_flags );
  52. }
  53. FT_DEFINE_AUTOHINTER_SERVICE(
  54. af_autofitter_service,
  55. NULL,
  56. NULL,
  57. NULL,
  58. (FT_AutoHinter_GlyphLoadFunc)af_autofitter_load_glyph )
  59. FT_DEFINE_MODULE(
  60. autofit_module_class,
  61. FT_MODULE_HINTER,
  62. sizeof ( FT_AutofitterRec ),
  63. "autofitter",
  64. 0x10000L, /* version 1.0 of the autofitter */
  65. 0x20000L, /* requires FreeType 2.0 or above */
  66. (const void*)&AF_AF_AUTOFITTER_SERVICE_GET,
  67. (FT_Module_Constructor)af_autofitter_init,
  68. (FT_Module_Destructor) af_autofitter_done,
  69. (FT_Module_Requester) NULL )
  70. /* END */