| /************************************************************************** |
| * |
| * ftsystem.h 1.0 |
| * |
| * FreeType low-level system interface definition |
| * |
| * This file contains the definitions of the stream and memory interfaces |
| * used by FreeType. |
| * |
| * |
| * Copyright 1996-1999 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 |
| |
| /************************************************************************* |
| * |
| * M E M O R Y M A N A G E M E N T |
| * |
| *************************************************************************/ |
| |
| typedef struct FT_MemoryRec_* FT_Memory; |
| |
| typedef void* (*FT_Alloc_Func)( FT_Memory memory, |
| long size ); |
| |
| typedef void (*FT_Free_Func)( FT_Memory memory, |
| void* block ); |
| |
| typedef void* (*FT_Realloc_Func)( FT_Memory memory, |
| long cur_size, |
| long new_size, |
| void* block ); |
| |
| 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 |
| * |
| *************************************************************************/ |
| |
| typedef union FT_StreamDesc_ |
| { |
| long value; |
| void* pointer; |
| |
| } FT_StreamDesc; |
| |
| |
| typedef struct FT_StreamRec_* FT_Stream; |
| |
| typedef unsigned long (*FT_Stream_IO)( FT_Stream stream, |
| unsigned long offset, |
| char* buffer, |
| unsigned long count ); |
| |
| typedef void (*FT_Stream_Close)( FT_Stream stream ); |
| |
| struct FT_StreamRec_ |
| { |
| char* base; |
| unsigned long size; |
| unsigned long pos; |
| |
| FT_StreamDesc descriptor; |
| FT_StreamDesc pathname; /* ignored by FreeType - useful for debugging */ |
| |
| FT_Stream_IO read; |
| FT_Stream_Close close; |
| |
| FT_Memory memory; |
| char* cursor; |
| char* limit; |
| }; |
| |
| |
| #endif /* FTSYSTEM_H */ |