tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ftgasp.c (1355B)


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