| /***************************************************************************/ |
| /* */ |
| /* ftsystem.h */ |
| /* */ |
| /* FreeType low-level system interface definition (specification). */ |
| /* */ |
| /* Copyright 1996-2000 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, |
| unsigned char* buffer, |
| unsigned long count ); |
| |
| typedef void (*FT_Stream_Close)( FT_Stream stream ); |
| |
| |
| struct FT_StreamRec_ |
| { |
| unsigned 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; |
| unsigned char* cursor; |
| unsigned char* limit; |
| }; |
| |
| |
| #endif /* FTSYSTEM_H */ |
| |
| |
| /* END */ |