Official mirror of https://gitlab.freedesktop.org/freetype/freetype
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.7 KiB
95 lines
2.7 KiB
/************************************************************************** |
|
* |
|
* 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 */
|
|
|