tor-browser

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

ftmisc.h (2571B)


      1 /****************************************************************************
      2 *
      3 * ftmisc.h
      4 *
      5 *   Miscellaneous macros for stand-alone rasterizer (specification
      6 *   only).
      7 *
      8 * Copyright (C) 2005-2025 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   * This file is *not* portable!  You have to adapt
     23   * its definitions to your platform.
     24   *
     25   */
     26 
     27 #ifndef FTMISC_H_
     28 #define FTMISC_H_
     29 
     30 
     31  /* memset */
     32 #include FT_CONFIG_STANDARD_LIBRARY_H
     33 
     34 #define FT_BEGIN_HEADER
     35 #define FT_END_HEADER
     36 
     37 #define FT_LOCAL_DEF( x )   static x
     38 
     39 
     40  /* from include/freetype/fttypes.h */
     41 
     42  typedef unsigned char  FT_Byte;
     43  typedef signed int     FT_Int;
     44  typedef unsigned int   FT_UInt;
     45  typedef signed long    FT_Long;
     46  typedef unsigned long  FT_ULong;
     47  typedef signed long    FT_F26Dot6;
     48  typedef int            FT_Error;
     49 
     50 
     51 #define FT_STATIC_BYTE_CAST( type, var )  (type)(FT_Byte)(var)
     52 
     53 
     54  /* from include/freetype/ftsystem.h */
     55 
     56  typedef struct FT_MemoryRec_*  FT_Memory;
     57 
     58  typedef void* (*FT_Alloc_Func)( FT_Memory  memory,
     59                                  long       size );
     60 
     61  typedef void (*FT_Free_Func)( FT_Memory  memory,
     62                                void*      block );
     63 
     64  typedef void* (*FT_Realloc_Func)( FT_Memory  memory,
     65                                    long       cur_size,
     66                                    long       new_size,
     67                                    void*      block );
     68 
     69  typedef struct FT_MemoryRec_
     70  {
     71    void*            user;
     72 
     73    FT_Alloc_Func    alloc;
     74    FT_Free_Func     free;
     75    FT_Realloc_Func  realloc;
     76 
     77  } FT_MemoryRec;
     78 
     79 
     80  /* from src/ftcalc.c */
     81 
     82 #if ( defined _WIN32 || defined _WIN64 )
     83 
     84  typedef __int64  FT_Int64;
     85 
     86 #else
     87 
     88 #include "inttypes.h"
     89 
     90  typedef int64_t  FT_Int64;
     91 
     92 #endif
     93 
     94 
     95  static FT_Long
     96  FT_MulDiv_No_Round( FT_Long  a,
     97                      FT_Long  b,
     98                      FT_Long  c )
     99  {
    100    FT_Int   s;
    101    FT_Long  d;
    102 
    103 
    104    s = 1;
    105    if ( a < 0 ) { a = -a; s = -1; }
    106    if ( b < 0 ) { b = -b; s = -s; }
    107    if ( c < 0 ) { c = -c; s = -s; }
    108 
    109    d = (FT_Long)( c > 0 ? (FT_Int64)a * b / c
    110                         : 0x7FFFFFFFL );
    111 
    112    return ( s > 0 ) ? d : -d;
    113  }
    114 
    115 #endif /* FTMISC_H_ */
    116 
    117 
    118 /* END */