csFontCache Class Reference
[Common Plugin Classes]
A cache for font glyphs.
More...
#include <csplugincommon/canvas/fontcache.h>
Inheritance diagram for csFontCache:
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
typedef csArray<PlaneGlyphs*, PlaneGlyphElementHandler> csFontCache::PlaneGlyphsArray [protected] |
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.
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.
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 | ( | ) |
Delete empty PlaneGlyphs from known fonts.
Referenced by csG2DDrawText< Tpixel, Tpixmixer1, Tpixmixer2, Tpixmixer3 >::DrawText().
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.
Member Data Documentation
the current clipping rect
Definition at line 152 of file fontcache.h.
Referenced by csG2DDrawText< Tpixel, Tpixmixer1, Tpixmixer2, Tpixmixer3 >::DrawText().
LRUEntry* csFontCache::head [protected] |
csArray<KnownFont*> csFontCache::knownFonts [protected] |
csBlockAllocator<LRUEntry> csFontCache::LRUAlloc [protected] |
LRUEntry* csFontCache::tail [protected] |
The documentation for this class was generated from the following file:
- csplugincommon/canvas/fontcache.h
Generated for Crystal Space by doxygen 1.4.7