CrystalSpace

Public API Reference

csFontCache Class Reference
[Common Plugin Classes]

A cache for font glyphs. More...

#include <csplugincommon/canvas/fontcache.h>

Inheritance diagram for csFontCache:

Inheritance graph
[legend]

List of all members.

Public Member Functions

KnownFont * CacheFont (iFont *font)
 Set up stuff to cache glyphs of this font.
GlyphCacheData * CacheGlyph (KnownFont *font, utf32_char glyph, uint flags)
 Store glyph-specific information.
GlyphCacheData * GetCacheData (KnownFont *font, utf32_char glyph, uint flags)
 Request cached data for a glyph of a known font.
KnownFont * GetCachedFont (iFont *font)
 Request whether a font is known already.
GlyphCacheData * GetLeastUsed ()
 Get cached data for the least used glyph.
void PurgeEmptyPlanes ()
 Delete empty PlaneGlyphs from known fonts.
void SetClipRect (int x1, int y1, int x2, int y2)
void UncacheFont (iFont *font)
 Uncache this font.
void UncacheGlyph (GlyphCacheData *cacheData)
 Uncache cached glyph data.
virtual void WriteString (iFont *font, int x, int y, int fg, int bg, const void *text, bool isWide, uint flags)
 Draw a string.

Public Attributes

int ClipX1
 the current clipping rect
int ClipX2
int ClipY1
int ClipY2

Protected Types

typedef csArray
< PlaneGlyphs *,
PlaneGlyphElementHandler > 
PlaneGlyphsArray
 Array of a number of glyphs.

Protected Member Functions

void AddCacheData (KnownFont *font, utf32_char glyph, GlyphCacheData *cacheData)
 Add a glyph to the cache.
GlyphCacheData * CacheGlyphUnsafe (KnownFont *font, utf32_char glyph, uint flags)
 Store glyph-specific information, but omit some safety checks.
LRUEntry * FindLRUEntry (GlyphCacheData *cacheData)
 Find an LRU entry for a specific cache data.
LRUEntry * FindLRUEntry (KnownFont *font, utf32_char glyph)
 Find an LRU entry for a specific font/glyph pair.
virtual GlyphCacheData * InternalCacheGlyph (KnownFont *font, utf32_char glyph, uint flags)
 Cache canvas-dependent information for a specific font/glyph pair.
GlyphCacheData * InternalGetCacheData (KnownFont *font, utf32_char glyph)
 Request cached data for a glyph of a known font.
virtual void InternalUncacheGlyph (GlyphCacheData *cacheData)
 Uncache canvas-dependent information.
void RemoveCacheData (GlyphCacheData *cacheData)
 Remove a glyph from the cache. @@ Does not update PlaneGlyphs!
void RemoveLRUEntry (LRUEntry *entry)
 Remove a glyph from the cache.
void SetupCacheData (GlyphCacheData *cacheData, KnownFont *font, utf32_char glyph, uint flags)
 Fill the basic cache data.

Static Protected Member Functions

static csArrayCmp
< KnownFont *, iFont * > 
KnownFontArrayKeyFunctor (iFont *f)

Protected Attributes

FontDeleteNotify * deleteCallback
LRUEntry * head
 First entry in LRU list.
csArray< KnownFont * > knownFonts
 Array of known fonts.
csBlockAllocator
< LRUEntry > 
LRUAlloc
 Allocator for LRU list entries.
csSet< csPtrKey
< KnownFont > > 
purgeableFonts
LRUEntry * tail
 Last entry in LRU list.

Classes

struct  FontDeleteNotify
 Font deletion callback. More...
struct  GlyphCacheData
 Some basic data associated with a glyph. More...
struct  KnownFont
 A font known to the cache. More...
struct  LRUEntry
 An entry in the LRU list. More...
class  PlaneGlyphElementHandler
struct  PlaneGlyphs
 Array of a number of glyphs. More...


Detailed Description

A cache for font glyphs.

It is intended as a baseclass, which a canvas extends to store glyphs in a canvas-dependent way. It provides facilities to quickly locate data associated with a specific glyph of a specific font, as well as means to manage glyphs if only a limited space to store them is present.

Definition at line 53 of file fontcache.h.


Member Typedef Documentation

Array of a number of glyphs.

This is the "first" dimension of the glyphs array, and consists of a variable number of "planes". If a plane doesn't contain a glyph, it doesn't take up memory.

Definition at line 139 of file fontcache.h.


Member Function Documentation

void csFontCache::AddCacheData ( KnownFont *  font,
utf32_char  glyph,
GlyphCacheData *  cacheData 
) [protected]

Add a glyph to the cache.

KnownFont* csFontCache::CacheFont ( iFont *  font  ) 

Set up stuff to cache glyphs of this font.

Referenced by csG2DDrawText< Tpixel, Tpixmixer1, Tpixmixer2, Tpixmixer3 >::DrawText().

GlyphCacheData* csFontCache::CacheGlyph ( KnownFont *  font,
utf32_char  glyph,
uint  flags 
)

Store glyph-specific information.

Referenced by csG2DDrawText< Tpixel, Tpixmixer1, Tpixmixer2, Tpixmixer3 >::DrawText().

GlyphCacheData* csFontCache::CacheGlyphUnsafe ( KnownFont *  font,
utf32_char  glyph,
uint  flags 
) [protected]

Store glyph-specific information, but omit some safety checks.

LRUEntry* csFontCache::FindLRUEntry ( GlyphCacheData *  cacheData  )  [protected]

Find an LRU entry for a specific cache data.

LRUEntry* csFontCache::FindLRUEntry ( KnownFont *  font,
utf32_char  glyph 
) [protected]

Find an LRU entry for a specific font/glyph pair.

GlyphCacheData* csFontCache::GetCacheData ( KnownFont *  font,
utf32_char  glyph,
uint  flags 
)

Request cached data for a glyph of a known font.

KnownFont* csFontCache::GetCachedFont ( iFont *  font  ) 

Request whether a font is known already.

Referenced by csG2DDrawText< Tpixel, Tpixmixer1, Tpixmixer2, Tpixmixer3 >::DrawText().

GlyphCacheData* csFontCache::GetLeastUsed (  ) 

Get cached data for the least used glyph.

virtual GlyphCacheData* csFontCache::InternalCacheGlyph ( KnownFont *  font,
utf32_char  glyph,
uint  flags 
) [protected, virtual]

Cache canvas-dependent information for a specific font/glyph pair.

GlyphCacheData* csFontCache::InternalGetCacheData ( KnownFont *  font,
utf32_char  glyph 
) [protected]

Request cached data for a glyph of a known font.

virtual void csFontCache::InternalUncacheGlyph ( GlyphCacheData *  cacheData  )  [protected, virtual]

Uncache canvas-dependent information.

void csFontCache::PurgeEmptyPlanes (  ) 

void csFontCache::RemoveCacheData ( GlyphCacheData *  cacheData  )  [protected]

Remove a glyph from the cache. @@ Does not update PlaneGlyphs!

void csFontCache::RemoveLRUEntry ( LRUEntry *  entry  )  [protected]

Remove a glyph from the cache.

void csFontCache::SetupCacheData ( GlyphCacheData *  cacheData,
KnownFont *  font,
utf32_char  glyph,
uint  flags 
) [protected]

Fill the basic cache data.

void csFontCache::UncacheFont ( iFont *  font  ) 

Uncache this font.

void csFontCache::UncacheGlyph ( GlyphCacheData *  cacheData  ) 

Uncache cached glyph data.

virtual void csFontCache::WriteString ( iFont *  font,
int  x,
int  y,
int  fg,
int  bg,
const void *  text,
bool  isWide,
uint  flags 
) [virtual]

Draw a string.

Reimplemented in csGLFontCache.


Member Data Documentation

the current clipping rect

Definition at line 152 of file fontcache.h.

Referenced by csG2DDrawText< Tpixel, Tpixmixer1, Tpixmixer2, Tpixmixer3 >::DrawText().

First entry in LRU list.

Definition at line 89 of file fontcache.h.

Array of known fonts.

Definition at line 156 of file fontcache.h.

Allocator for LRU list entries.

Definition at line 94 of file fontcache.h.

Last entry in LRU list.

Definition at line 91 of file fontcache.h.


The documentation for this class was generated from the following file:
Generated for Crystal Space 1.2.1 by doxygen 1.5.3