Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /***************************************************************************/
  2. /*                                                                         */
  3. /*  ftgasp.c                                                               */
  4. /*                                                                         */
  5. /*    Access of TrueType's `gasp' table (body).                            */
  6. /*                                                                         */
  7. /*  Copyright 2007 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.  
  18.  
  19. #include <ft2build.h>
  20. #include FT_GASP_H
  21. #include FT_INTERNAL_TRUETYPE_TYPES_H
  22.  
  23.  
  24.   FT_EXPORT_DEF( FT_Int )
  25.   FT_Get_Gasp( FT_Face  face,
  26.                FT_UInt  ppem )
  27.   {
  28.     FT_Int  result = FT_GASP_NO_TABLE;
  29.  
  30.  
  31.     if ( face && FT_IS_SFNT( face ) )
  32.     {
  33.       TT_Face  ttface = (TT_Face)face;
  34.  
  35.  
  36.       if ( ttface->gasp.numRanges > 0 )
  37.       {
  38.         TT_GaspRange  range     = ttface->gasp.gaspRanges;
  39.         TT_GaspRange  range_end = range + ttface->gasp.numRanges;
  40.  
  41.  
  42.         while ( ppem > range->maxPPEM )
  43.         {
  44.           range++;
  45.           if ( range >= range_end )
  46.             goto Exit;
  47.         }
  48.  
  49.         result = range->gaspFlag;
  50.  
  51.         /* ensure that we don't have spurious bits */
  52.         if ( ttface->gasp.version == 0 )
  53.           result &= 3;
  54.       }
  55.     }
  56.   Exit:
  57.     return result;
  58.   }
  59.  
  60.  
  61. /* END */
  62.