* src/cache/ftccache.c (ftc_node_destroy, ftc_cache_lookup): Fix tracing strings. * src/cache/ftccmap.c (ftc_cmap_family_init): Ditto. * src/cache/ftcmanag.c (ftc_family_table_alloc, ftc_family_table_free, FTC_Manager_Check): Ditto. * src/cache/ftcsbits.c (ftc_sbit_node_load): Ditto.
116 lines
3.8 KiB
C
116 lines
3.8 KiB
C
/***************************************************************************/
|
|
/* */
|
|
/* ftcglyph.c */
|
|
/* */
|
|
/* FreeType Glyph Image (FT_Glyph) cache (body). */
|
|
/* */
|
|
/* Copyright 2000-2001 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. */
|
|
/* */
|
|
/***************************************************************************/
|
|
|
|
|
|
#include <ft2build.h>
|
|
#include FT_CACHE_H
|
|
#include FT_CACHE_INTERNAL_GLYPH_H
|
|
#include FT_ERRORS_H
|
|
#include FT_LIST_H
|
|
#include FT_INTERNAL_OBJECTS_H
|
|
#include FT_INTERNAL_DEBUG_H
|
|
|
|
#include "ftcerror.h"
|
|
|
|
|
|
/* create a new chunk node, setting its cache index and ref count */
|
|
FT_EXPORT_DEF( void )
|
|
ftc_glyph_node_init( FTC_GlyphNode gnode,
|
|
FT_UInt gindex,
|
|
FTC_GlyphFamily gfam )
|
|
{
|
|
FT_UInt len;
|
|
FT_UInt start = FTC_GLYPH_FAMILY_START( gfam, gindex );
|
|
|
|
|
|
gnode->item_start = (FT_UShort)start;
|
|
|
|
len = gfam->item_total - start;
|
|
if ( len > gfam->item_count )
|
|
len = gfam->item_count;
|
|
|
|
gnode->item_count = (FT_UShort)len;
|
|
gfam->family.num_nodes++;
|
|
}
|
|
|
|
|
|
FT_EXPORT_DEF( void )
|
|
ftc_glyph_node_done( FTC_GlyphNode gnode,
|
|
FTC_Cache cache )
|
|
{
|
|
/* finalize the node */
|
|
gnode->item_count = 0;
|
|
gnode->item_start = 0;
|
|
|
|
ftc_node_done( FTC_NODE( gnode ), cache );
|
|
}
|
|
|
|
|
|
FT_EXPORT_DEF( FT_Bool )
|
|
ftc_glyph_node_compare( FTC_GlyphNode gnode,
|
|
FTC_GlyphQuery gquery )
|
|
{
|
|
FT_UInt start = (FT_UInt)gnode->item_start;
|
|
FT_UInt count = (FT_UInt)gnode->item_count;
|
|
|
|
return FT_BOOL( (FT_UInt)( gquery->gindex - start ) < count );
|
|
}
|
|
|
|
|
|
/*************************************************************************/
|
|
/*************************************************************************/
|
|
/***** *****/
|
|
/***** CHUNK SETS *****/
|
|
/***** *****/
|
|
/*************************************************************************/
|
|
/*************************************************************************/
|
|
|
|
|
|
FT_EXPORT_DEF( FT_Error )
|
|
ftc_glyph_family_init( FTC_GlyphFamily gfam,
|
|
FT_UInt32 hash,
|
|
FT_UInt item_count,
|
|
FT_UInt item_total,
|
|
FTC_GlyphQuery gquery,
|
|
FTC_Cache cache )
|
|
{
|
|
FT_Error error;
|
|
|
|
|
|
error = ftc_family_init( FTC_FAMILY( gfam ), FTC_QUERY( gquery ), cache );
|
|
if ( !error )
|
|
{
|
|
gfam->hash = hash;
|
|
gfam->item_total = item_total;
|
|
gfam->item_count = item_count;
|
|
|
|
FTC_GLYPH_FAMILY_FOUND( gfam, gquery );
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
|
|
FT_EXPORT_DEF( void )
|
|
ftc_glyph_family_done( FTC_GlyphFamily gfam )
|
|
{
|
|
ftc_family_done( FTC_FAMILY( gfam ) );
|
|
}
|
|
|
|
|
|
/* END */
|