⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftsystem.h

📁 奇趣公司比较新的qt/emd版本
💻 H
字号:
/***************************************************************************//*                                                                         *//*  ftsystem.h                                                             *//*                                                                         *//*    FreeType low-level system interface definition (specification).      *//*                                                                         *//*  Copyright 1996-2001, 2002, 2005 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.                                        *//*                                                                         *//***************************************************************************/#ifndef __FTSYSTEM_H__#define __FTSYSTEM_H__#include <ft2build.h>FT_BEGIN_HEADER  /*************************************************************************/  /*                                                                       */  /* <Section>                                                             */  /*   system_interface                                                    */  /*                                                                       */  /* <Title>                                                               */  /*   System Interface                                                    */  /*                                                                       */  /* <Abstract>                                                            */  /*   How FreeType manages memory and i/o.                                */  /*                                                                       */  /* <Description>                                                         */  /*   This section contains various definitions related to memory         */  /*   management and i/o access.  You need to understand this             */  /*   information if you want to use a custom memory manager or you own   */  /*   i/o streams.                                                        */  /*                                                                       */  /*************************************************************************/  /*************************************************************************/  /*                                                                       */  /*                  M E M O R Y   M A N A G E M E N T                    */  /*                                                                       */  /*************************************************************************/  /*************************************************************************   *   * @type:   *   FT_Memory   *   * @description:   *   A handle to a given memory manager object, defined with an   *   @FT_MemoryRec structure.   *   */  typedef struct FT_MemoryRec_*  FT_Memory;  /*************************************************************************   *   * @functype:   *   FT_Alloc_Func   *   * @description:   *   A function used to allocate `size' bytes from `memory'.   *   * @input:   *   memory ::   *     A handle to the source memory manager.   *   *   size ::   *     The size in bytes to allocate.   *   * @return:   *   Address of new memory block.  0 in case of failure.   *   */  typedef void*  (*FT_Alloc_Func)( FT_Memory  memory,                    long       size );  /*************************************************************************   *   * @functype:   *   FT_Free_Func   *   * @description:   *   A function used to release a given block of memory.   *   * @input:   *   memory ::   *     A handle to the source memory manager.   *   *   block ::   *     The address of the target memory block.   *   */  typedef void  (*FT_Free_Func)( FT_Memory  memory,                   void*      block );  /*************************************************************************   *   * @functype:   *   FT_Realloc_Func   *   * @description:   *   A function used to re-allocate a given block of memory.   *   * @input:   *   memory ::   *     A handle to the source memory manager.   *   *   cur_size ::   *     The block's current size in bytes.   *   *   new_size ::   *     The block's requested new size.   *   *   block ::   *     The block's current address.   *   * @return:   *   New block address.  0 in case of memory shortage.   *   * @note:   *   In case of error, the old block must still be available.   *   */  typedef void*  (*FT_Realloc_Func)( FT_Memory  memory,                      long       cur_size,                      long       new_size,                      void*      block );  /*************************************************************************   *   * @struct:   *   FT_MemoryRec   *   * @description:   *   A structure used to describe a given memory manager to FreeType 2.   *   * @fields:   *   user ::   *     A generic typeless pointer for user data.   *   *   alloc ::   *     A pointer type to an allocation function.   *   *   free ::   *     A pointer type to an memory freeing function.   *   *   realloc ::   *     A pointer type to a reallocation function.   *   */  struct  FT_MemoryRec_  {    void*            user;    FT_Alloc_Func    alloc;    FT_Free_Func     free;    FT_Realloc_Func  realloc;  };  /*************************************************************************/  /*                                                                       */  /*                       I / O   M A N A G E M E N T                     */  /*                                                                       */  /*************************************************************************/  /*************************************************************************   *   * @type:   *   FT_Stream   *   * @description:   *   A handle to an input stream.   *   */  typedef struct FT_StreamRec_*  FT_Stream;  /*************************************************************************   *   * @struct:   *   FT_StreamDesc   *   * @description:   *   A union type used to store either a long or a pointer.  This is used   *   to store a file descriptor or a `FILE*' in an input stream.   *   */  typedef union  FT_StreamDesc_  {    long   value;    void*  pointer;  } FT_StreamDesc;  /*************************************************************************   *   * @functype:   *   FT_Stream_IoFunc   *   * @description:   *   A function used to seek and read data from a given input stream.   *   * @input:   *   stream ::   *     A handle to the source stream.   *   *   offset ::   *     The offset of read in stream (always from start).   *   *   buffer ::   *     The address of the read buffer.   *   *   count ::   *     The number of bytes to read from the stream.   *   * @return:   *   The number of bytes effectively read by the stream.   *   * @note:   *   This function might be called to perform a seek or skip operation   *   with a `count' of 0.   *   */  typedef unsigned long  (*FT_Stream_IoFunc)( FT_Stream       stream,                       unsigned long   offset,                       unsigned char*  buffer,                       unsigned long   count );  /*************************************************************************   *   * @functype:   *   FT_Stream_CloseFunc   *   * @description:   *   A function used to close a given input stream.   *   * @input:   *  stream ::   *     A handle to the target stream.   *   */  typedef void  (*FT_Stream_CloseFunc)( FT_Stream  stream );  /*************************************************************************   *   * @struct:   *   FT_StreamRec   *   * @description:   *   A structure used to describe an input stream.   *   * @input:   *   base ::   *     For memory-based streams, this is the address of the first stream   *     byte in memory.  This field should always be set to NULL for   *     disk-based streams.   *   *   size ::   *     The stream size in bytes.   *   *   pos ::   *     The current position within the stream.   *   *   descriptor ::   *     This field is a union that can hold an integer or a pointer.  It is   *     used by stream implementations to store file descriptors or `FILE*'   *     pointers.   *   *   pathname ::   *     This field is completely ignored by FreeType.  However, it is often   *     useful during debugging to use it to store the stream's filename   *     (where available).   *   *   read ::   *     The stream's input function.   *   *   close ::   *     The stream;s close function.   *   *   memory ::   *     The memory manager to use to preload frames.  This is set   *     internally by FreeType and shouldn't be touched by stream   *     implementations.   *   *   cursor ::   *     This field is set and used internally by FreeType when parsing   *     frames.   *   *   limit ::   *     This field is set and used internally by FreeType when parsing   *     frames.   *   */  typedef struct  FT_StreamRec_  {    unsigned char*       base;    unsigned long        size;    unsigned long        pos;    FT_StreamDesc        descriptor;    FT_StreamDesc        pathname;    FT_Stream_IoFunc     read;    FT_Stream_CloseFunc  close;    FT_Memory            memory;    unsigned char*       cursor;    unsigned char*       limit;  } FT_StreamRec;  /* */FT_END_HEADER#endif /* __FTSYSTEM_H__ *//* END */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -