| [Index] | [TOC] | 
| FT_Memory | FT_MemoryRec | FT_Stream_CloseFunc | 
| FT_Alloc_Func | FT_Stream | FT_StreamRec | 
| FT_Free_Func | FT_StreamDesc | |
| FT_Realloc_Func | FT_Stream_IoFunc | 
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.
Defined in FT_SYSTEM_H (ftsystem.h).
typedef struct FT_MemoryRec_* FT_Memory;
A handle to a given memory manager object, defined with an FT_MemoryRec structure.
| [Index] | [Top] | [TOC] | 
Defined in FT_SYSTEM_H (ftsystem.h).
typedef void* (*FT_Alloc_Func)( FT_Memory memory, long size );
A function used to allocate ‘size’ bytes from ‘memory’.
| memory | A handle to the source memory manager. | 
| size | The size in bytes to allocate. | 
Address of new memory block. 0 in case of failure.
| [Index] | [Top] | [TOC] | 
Defined in FT_SYSTEM_H (ftsystem.h).
typedef void (*FT_Free_Func)( FT_Memory memory, void* block );
A function used to release a given block of memory.
| memory | A handle to the source memory manager. | 
| block | The address of the target memory block. | 
| [Index] | [Top] | [TOC] | 
Defined in FT_SYSTEM_H (ftsystem.h).
typedef void* (*FT_Realloc_Func)( FT_Memory memory, long cur_size, long new_size, void* block );
A function used to re-allocate a given block of memory.
| 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. | 
New block address. 0 in case of memory shortage.
In case of error, the old block must still be available.
| [Index] | [Top] | [TOC] | 
Defined in FT_SYSTEM_H (ftsystem.h).
struct FT_MemoryRec_ { void* user; FT_Alloc_Func alloc; FT_Free_Func free; FT_Realloc_Func realloc; };
A structure used to describe a given memory manager to FreeType 2.
| 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. | 
| [Index] | [Top] | [TOC] | 
Defined in FT_SYSTEM_H (ftsystem.h).
typedef struct FT_StreamRec_* FT_Stream;
A handle to an input stream.
| [Index] | [Top] | [TOC] | 
Defined in FT_SYSTEM_H (ftsystem.h).
typedef union FT_StreamDesc_ { long value; void* pointer; } FT_StreamDesc;
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.
| [Index] | [Top] | [TOC] | 
Defined in FT_SYSTEM_H (ftsystem.h).
typedef unsigned long (*FT_Stream_IoFunc)( FT_Stream stream, unsigned long offset, unsigned char* buffer, unsigned long count );
A function used to seek and read data from a given input stream.
| 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. | 
The number of bytes effectively read by the stream.
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.
| [Index] | [Top] | [TOC] | 
Defined in FT_SYSTEM_H (ftsystem.h).
typedef void (*FT_Stream_CloseFunc)( FT_Stream stream );
A function used to close a given input stream.
| stream | A handle to the target stream. | 
| [Index] | [Top] | [TOC] | 
Defined in FT_SYSTEM_H (ftsystem.h).
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;
A structure used to describe an input stream.
| 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. | 
| [Index] | [Top] | [TOC] |