1 /****************************************************************************
   2  *
   3  * ftbase.h
   4  *
   5  *   Private functions used in the `base' module (specification).
   6  *
   7  * Copyright (C) 2008-2019 by
   8  * David Turner, Robert Wilhelm, Werner Lemberg, and suzuki toshiya.
   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 #ifndef FTBASE_H_
  20 #define FTBASE_H_
  21 
  22 
  23 #include <ft2build.h>
  24 #include FT_INTERNAL_OBJECTS_H
  25 
  26 
  27 FT_BEGIN_HEADER
  28 
  29 
  30 #ifdef FT_CONFIG_OPTION_MAC_FONTS
  31 
  32   /* MacOS resource fork cannot exceed 16MB at least for Carbon code; */
  33   /* see https://support.microsoft.com/en-us/kb/130437                */
  34 #define FT_MAC_RFORK_MAX_LEN  0x00FFFFFFUL
  35 
  36 
  37   /* Assume the stream is sfnt-wrapped PS Type1 or sfnt-wrapped CID-keyed */
  38   /* font, and try to load a face specified by the face_index.            */
  39   FT_LOCAL( FT_Error )
  40   open_face_PS_from_sfnt_stream( FT_Library     library,
  41                                  FT_Stream      stream,
  42                                  FT_Long        face_index,
  43                                  FT_Int         num_params,
  44                                  FT_Parameter  *params,
  45                                  FT_Face       *aface );
  46 
  47 
  48   /* Create a new FT_Face given a buffer and a driver name. */
  49   /* From ftmac.c.                                          */
  50   FT_LOCAL( FT_Error )
  51   open_face_from_buffer( FT_Library   library,
  52                          FT_Byte*     base,
  53                          FT_ULong     size,
  54                          FT_Long      face_index,
  55                          const char*  driver_name,
  56                          FT_Face     *aface );
  57 
  58 
  59 #if  defined( FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK ) && \
  60     !defined( FT_MACINTOSH )
  61   /* Mac OS X/Darwin kernel often changes recommended method to access */
  62   /* the resource fork and older methods makes the kernel issue the    */
  63   /* warning of deprecated method.  To calm it down, the methods based */
  64   /* on Darwin VFS should be grouped and skip the rest methods after   */
  65   /* the case the resource is opened but found to lack a font in it.   */
  66   FT_LOCAL( FT_Bool )
  67   ft_raccess_rule_by_darwin_vfs( FT_Library library, FT_UInt  rule_index );
  68 #endif
  69 
  70 #endif /* FT_CONFIG_OPTION_MAC_FONTS */
  71 
  72 
  73 FT_END_HEADER
  74 
  75 #endif /* FTBASE_H_ */
  76 
  77 
  78 /* END */