/***************************************************************************/ /* */ /* ftcsbits.h */ /* */ /* A small-bitmap cache (specification). */ /* */ /* 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. */ /* */ /***************************************************************************/ #ifndef __FTCSBITS_H__ #define __FTCSBITS_H__ #include #include FT_CACHE_H #include FT_CACHE_IMAGE_H FT_BEGIN_HEADER /*************************************************************************/ /* */ /*
*/ /* cache_subsystem */ /* */ /*************************************************************************/ /*************************************************************************/ /* */ /* */ /* FTC_SBit */ /* */ /* */ /* A handle to a small bitmap descriptor. See the FTC_SBitRec */ /* structure for details. */ /* */ typedef struct FTC_SBitRec_* FTC_SBit; /*************************************************************************/ /* */ /* */ /* FTC_SBitRec */ /* */ /* */ /* A very compact structure used to describe a small glyph bitmap. */ /* */ /* */ /* width :: The bitmap width in pixels. */ /* */ /* height :: The bitmap height in pixels. */ /* */ /* left :: The horizontal distance from the pen position to the */ /* left bitmap border (a.k.a. `left side bearing', or */ /* `lsb'). */ /* */ /* top :: The vertical distance from the pen position (on the */ /* baseline) to the upper bitmap border (a.k.a. `top side */ /* bearing'). The distance is positive for upwards */ /* Y coordinates. */ /* */ /* format :: The format of the glyph bitmap (monochrome or gray). */ /* */ /* pitch :: The number of bytes per bitmap line. May be positive */ /* or negative. */ /* */ /* xadvance :: The horizontal advance width in pixels. */ /* */ /* yadvance :: The vertical advance height in pixels. */ /* */ /* buffer :: A pointer to the bitmap pixels. */ /* */ typedef struct FTC_SBitRec_ { FT_Byte width; FT_Byte height; FT_Char left; FT_Char top; FT_Byte format; FT_Char pitch; FT_Char xadvance; FT_Char yadvance; FT_Byte* buffer; } FTC_SBitRec; /*************************************************************************/ /* */ /* */ /* FTC_SBit_Cache */ /* */ /* */ /* A handle to a small bitmap cache. These are special cache objects */ /* used to store small glyph bitmaps (and anti-aliased pixmaps) in a */ /* much more efficient way than the traditional glyph image cache */ /* implemented by FTC_Image_Cache. */ /* */ typedef struct FTC_SBitCacheRec_* FTC_SBitCache; /*************************************************************************/ /* */ /* */ /* FTC_SBit_Cache */ /* */ /* */ /* deprecated. please use @FTC_SBitCache instead */ /* */ typedef FTC_SBitCache FTC_SBit_Cache; /*************************************************************************/ /* */ /* */ /* FTC_SBitCache_New */ /* */ /* */ /* Creates a new cache to store small glyph bitmaps. */ /* */ /* */ /* manager :: A handle to the source cache manager. */ /* */ /* */ /* acache :: A handle to the new sbit cache. NULL in case of error. */ /* */ /* */ /* FreeType error code. 0 means success. */ /* */ FT_EXPORT( FT_Error ) FTC_SBitCache_New( FTC_Manager manager, FTC_SBitCache *acache ); /*************************************************************************/ /* */ /* */ /* FTC_SBitCache_Lookup */ /* */ /* */ /* Looks up a given small glyph bitmap in a given sbit cache and */ /* "lock" it to prevent its flushing from the cache until needed */ /* */ /* */ /* cache :: A handle to the source sbit cache. */ /* desc :: A pointer to the glyph image descriptor. */ /* gindex :: The glyph index. */ /* */ /* */ /* sbit :: A handle to a small bitmap descriptor. */ /* */ /* anode :: an opaque cache node pointer that will be used */ /* to release the sbit once it becomes unuseful. */ /* can be NULL, in which case this function will */ /* have the same effect than @FTC_SBit_Cache_Lookup */ /* */ /* */ /* FreeType error code. 0 means success. */ /* */ /* */ /* The small bitmap descriptor and its bit buffer are owned by the */ /* cache and should never be freed by the application. They might */ /* as well disappear from memory on the next cache lookup, so don't */ /* treat them as persistent data. */ /* */ /* The descriptor's `buffer' field is set to 0 to indicate a missing */ /* glyph bitmap. */ /* */ FT_EXPORT( FT_Error ) FTC_SBitCache_Lookup( FTC_SBitCache cache, FTC_ImageDesc* desc, FT_UInt gindex, FTC_SBit *sbit, FTC_Node *anode ); /* */ /*************************************************************************/ /* */ /* */ /* FTC_SBit_Cache_New */ /* */ /* */ /* Creates a new cache to store small glyph bitmaps. */ /* */ /* */ /* manager :: A handle to the source cache manager. */ /* */ /* */ /* acache :: A handle to the new sbit cache. NULL in case of error. */ /* */ /* */ /* FreeType error code. 0 means success. */ /* */ FT_EXPORT( FT_Error ) FTC_SBit_Cache_New( FTC_Manager manager, FTC_SBit_Cache *acache ); /*************************************************************************/ /* */ /* */ /* FTC_SBit_Cache_Lookup */ /* */ /* */ /* Looks up a given small glyph bitmap in a given sbit cache. */ /* */ /* */ /* cache :: A handle to the source sbit cache. */ /* desc :: A pointer to the glyph image descriptor. */ /* gindex :: The glyph index. */ /* */ /* */ /* sbit :: A handle to a small bitmap descriptor. */ /* */ /* */ /* FreeType error code. 0 means success. */ /* */ /* */ /* The small bitmap descriptor and its bit buffer are owned by the */ /* cache and should never be freed by the application. They might */ /* as well disappear from memory on the next cache lookup, so don't */ /* treat them as persistent data. */ /* */ /* The descriptor's `buffer' field is set to 0 to indicate a missing */ /* glyph bitmap. */ /* */ FT_EXPORT( FT_Error ) FTC_SBit_Cache_Lookup( FTC_SBit_Cache cache, FTC_Image_Desc* desc, FT_UInt gindex, FTC_SBit *sbit ); FT_END_HEADER #endif /* __FTCSBITS_H__ */ /* END */