1 /****************************************************************************
   2  *
   3  * ftsynth.h
   4  *
   5  *   FreeType synthesizing code for emboldening and slanting
   6  *   (specification).
   7  *
   8  * Copyright (C) 2000-2020 by
   9  * David Turner, Robert Wilhelm, and Werner Lemberg.
  10  *
  11  * This file is part of the FreeType project, and may only be used,
  12  * modified, and distributed under the terms of the FreeType project
  13  * license, LICENSE.TXT.  By continuing to use, modify, or distribute
  14  * this file you indicate that you have read the license and
  15  * understand and accept it fully.
  16  *
  17  */
  18 
  19 
  20   /*************************************************************************/
  21   /*************************************************************************/
  22   /*************************************************************************/
  23   /*************************************************************************/
  24   /*************************************************************************/
  25   /*********                                                       *********/
  26   /*********        WARNING, THIS IS ALPHA CODE!  THIS API         *********/
  27   /*********    IS DUE TO CHANGE UNTIL STRICTLY NOTIFIED BY THE    *********/
  28   /*********            FREETYPE DEVELOPMENT TEAM                  *********/
  29   /*********                                                       *********/
  30   /*************************************************************************/
  31   /*************************************************************************/
  32   /*************************************************************************/
  33   /*************************************************************************/
  34   /*************************************************************************/
  35 
  36 
  37   /* Main reason for not lifting the functions in this module to a  */
  38   /* 'standard' API is that the used parameters for emboldening and */
  39   /* slanting are not configurable.  Consider the functions as a    */
  40   /* code resource that should be copied into the application and   */
  41   /* adapted to the particular needs.                               */
  42 
  43 
  44 #ifndef FTSYNTH_H_
  45 #define FTSYNTH_H_
  46 
  47 
  48 #include <ft2build.h>
  49 #include FT_FREETYPE_H
  50 
  51 #ifdef FREETYPE_H
  52 #error "freetype.h of FreeType 1 has been loaded!"
  53 #error "Please fix the directory search order for header files"
  54 #error "so that freetype.h of FreeType 2 is found first."
  55 #endif
  56 
  57 
  58 FT_BEGIN_HEADER
  59 
  60   /* Embolden a glyph by a 'reasonable' value (which is highly a matter of */
  61   /* taste).  This function is actually a convenience function, providing  */
  62   /* a wrapper for @FT_Outline_Embolden and @FT_Bitmap_Embolden.           */
  63   /*                                                                       */
  64   /* For emboldened outlines the height, width, and advance metrics are    */
  65   /* increased by the strength of the emboldening -- this even affects     */
  66   /* mono-width fonts!                                                     */
  67   /*                                                                       */
  68   /* You can also call @FT_Outline_Get_CBox to get precise values.         */
  69   FT_EXPORT( void )
  70   FT_GlyphSlot_Embolden( FT_GlyphSlot  slot );
  71 
  72   /* Slant an outline glyph to the right by about 12 degrees. */
  73   FT_EXPORT( void )
  74   FT_GlyphSlot_Oblique( FT_GlyphSlot  slot );
  75 
  76   /* */
  77 
  78 
  79 FT_END_HEADER
  80 
  81 #endif /* FTSYNTH_H_ */
  82 
  83 
  84 /* END */