Home | History | Annotate | Download | only in base
      1 /***************************************************************************/
      2 /*                                                                         */
      3 /*  ftbase.h                                                               */
      4 /*                                                                         */
      5 /*    Private functions used in the `base' module (specification).         */
      6 /*                                                                         */
      7 /*  Copyright 2008-2018 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 */
     79