Hash :
e5680279
Author :
Date :
2005-02-26T00:12:04
* many, many files: several memory optimizations were implemented to drastically reduce the heap usage of FreeType, especially in the case of memory-mapped files. The idea is to avoid loading and decoding tables in the heap, and instead access the raw data whenever possible (i.e. when it doesn't compromise performance). This had several impacts: first, opening vera.ttf uses a ridiculous amount of memory (when the FT_Library footprint is accounted for), until you start loading glyphs. Even then, you'll save at least 20 Kb compared to the non optimized case. performance of various operations, including open/close has also been dramatically improved. More optimisations to come. The auto-hinter eats memory like crazy? This must be stopped...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
/***************************************************************************/
/* */
/* ttload.h */
/* */
/* Load the basic TrueType tables, i.e., tables that can be either in */
/* TTF or OTF fonts (specification). */
/* */
/* Copyright 1996-2001, 2002 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 __TTLOAD_H__
#define __TTLOAD_H__
#include <ft2build.h>
#include FT_INTERNAL_STREAM_H
#include FT_INTERNAL_TRUETYPE_TYPES_H
FT_BEGIN_HEADER
FT_LOCAL( TT_Table )
tt_face_lookup_table( TT_Face face,
FT_ULong tag );
FT_LOCAL( FT_Error )
tt_face_goto_table( TT_Face face,
FT_ULong tag,
FT_Stream stream,
FT_ULong* length );
FT_LOCAL( FT_Error )
tt_face_load_sfnt_header( TT_Face face,
FT_Stream stream,
FT_Long face_index,
SFNT_Header sfnt );
FT_LOCAL( FT_Error )
tt_face_load_directory( TT_Face face,
FT_Stream stream,
SFNT_Header sfnt );
FT_LOCAL( FT_Error )
tt_face_load_any( TT_Face face,
FT_ULong tag,
FT_Long offset,
FT_Byte* buffer,
FT_ULong* length );
FT_LOCAL( FT_Error )
tt_face_load_header( TT_Face face,
FT_Stream stream );
FT_LOCAL( FT_Error )
tt_face_load_metrics_header( TT_Face face,
FT_Stream stream,
FT_Bool vertical );
FT_LOCAL( FT_Error )
tt_face_load_cmap( TT_Face face,
FT_Stream stream );
FT_LOCAL( FT_Error )
tt_face_load_max_profile( TT_Face face,
FT_Stream stream );
FT_LOCAL( FT_Error )
tt_face_load_names( TT_Face face,
FT_Stream stream );
FT_LOCAL( FT_Error )
tt_face_load_os2( TT_Face face,
FT_Stream stream );
FT_LOCAL( FT_Error )
tt_face_load_postscript( TT_Face face,
FT_Stream stream );
FT_LOCAL( FT_Error )
tt_face_load_hdmx( TT_Face face,
FT_Stream stream );
FT_LOCAL( FT_Error )
tt_face_load_pclt( TT_Face face,
FT_Stream stream );
FT_LOCAL( void )
tt_face_free_names( TT_Face face );
FT_LOCAL( void )
tt_face_free_hdmx ( TT_Face face );
FT_LOCAL( FT_Error )
tt_face_load_gasp( TT_Face face,
FT_Stream stream );
#ifdef TT_CONFIG_OPTION_EMBEDDED_BITMAPS
FT_LOCAL( FT_Error )
tt_face_load_bitmap_header( TT_Face face,
FT_Stream stream );
#endif /* TT_CONFIG_OPTION_EMBEDDED_BITMAPS */
FT_END_HEADER
#endif /* __TTLOAD_H__ */
/* END */