Edit

kc3-lang/freetype/src/raster/ftmisc.h

Branch :

  • Show log

    Commit

  • Author : Alexei Podtelezhnikov
    Date : 2024-01-27 11:11:22
    Hash : 47574f7e
    Message : Update all copyright notices.

  • src/raster/ftmisc.h
  • /****************************************************************************
     *
     * ftmisc.h
     *
     *   Miscellaneous macros for stand-alone rasterizer (specification
     *   only).
     *
     * Copyright (C) 2005-2024 by
     * David Turner, Robert Wilhelm, and Werner Lemberg.
     *
     * This file is part of the FreeType project, and may only be used
     * modified and distributed under the terms of the FreeType project
     * license, LICENSE.TXT.  By continuing to use, modify, or distribute
     * this file you indicate that you have read the license and
     * understand and accept it fully.
     *
     */
    
    
      /****************************************************
       *
       * This file is *not* portable!  You have to adapt
       * its definitions to your platform.
       *
       */
    
    #ifndef FTMISC_H_
    #define FTMISC_H_
    
    
      /* memset */
    #include FT_CONFIG_STANDARD_LIBRARY_H
    
    #define FT_BEGIN_HEADER
    #define FT_END_HEADER
    
    #define FT_LOCAL_DEF( x )   static x
    
    
      /* from include/freetype/fttypes.h */
    
      typedef unsigned char  FT_Byte;
      typedef signed int     FT_Int;
      typedef unsigned int   FT_UInt;
      typedef signed long    FT_Long;
      typedef unsigned long  FT_ULong;
      typedef signed long    FT_F26Dot6;
      typedef int            FT_Error;
    
    
    #define FT_STATIC_BYTE_CAST( type, var )  (type)(FT_Byte)(var)
    
    
      /* from include/freetype/ftsystem.h */
    
      typedef struct FT_MemoryRec_*  FT_Memory;
    
      typedef void* (*FT_Alloc_Func)( FT_Memory  memory,
                                      long       size );
    
      typedef void (*FT_Free_Func)( FT_Memory  memory,
                                    void*      block );
    
      typedef void* (*FT_Realloc_Func)( FT_Memory  memory,
                                        long       cur_size,
                                        long       new_size,
                                        void*      block );
    
      typedef struct FT_MemoryRec_
      {
        void*            user;
    
        FT_Alloc_Func    alloc;
        FT_Free_Func     free;
        FT_Realloc_Func  realloc;
    
      } FT_MemoryRec;
    
    
      /* from src/ftcalc.c */
    
    #if ( defined _WIN32 || defined _WIN64 )
    
      typedef __int64  FT_Int64;
    
    #else
    
    #include "inttypes.h"
    
      typedef int64_t  FT_Int64;
    
    #endif
    
    
      static FT_Long
      FT_MulDiv_No_Round( FT_Long  a,
                          FT_Long  b,
                          FT_Long  c )
      {
        FT_Int   s;
        FT_Long  d;
    
    
        s = 1;
        if ( a < 0 ) { a = -a; s = -1; }
        if ( b < 0 ) { b = -b; s = -s; }
        if ( c < 0 ) { c = -c; s = -s; }
    
        d = (FT_Long)( c > 0 ? (FT_Int64)a * b / c
                             : 0x7FFFFFFFL );
    
        return ( s > 0 ) ? d : -d;
      }
    
    #endif /* FTMISC_H_ */
    
    
    /* END */