| Index: third_party/freetype2/src/include/freetype/ftsystem.h
|
| diff --git a/third_party/freetype2/src/include/freetype/ftsystem.h b/third_party/freetype2/src/include/freetype/ftsystem.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..2bc999910b47c473c7422c944dc2bcdb62094c5c
|
| --- /dev/null
|
| +++ b/third_party/freetype2/src/include/freetype/ftsystem.h
|
| @@ -0,0 +1,355 @@
|
| +/***************************************************************************/
|
| +/* */
|
| +/* ftsystem.h */
|
| +/* */
|
| +/* FreeType low-level system interface definition (specification). */
|
| +/* */
|
| +/* Copyright 1996-2015 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.
|
| + *
|
| + * @also:
|
| + * See @FT_StreamRec for the publicly accessible fields of a given
|
| + * stream object.
|
| + *
|
| + */
|
| + 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. A non-zero return value then indicates an
|
| + * error.
|
| + *
|
| + */
|
| + 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.
|
| + *
|
| + * In case of compressed streams where the size is unknown before
|
| + * actually doing the decompression, the value is set to 0x7FFFFFFF.
|
| + * (Note that this size value can occur for normal streams also; it is
|
| + * thus just a hint.)
|
| + *
|
| + * 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 */
|
|
|