From 66bbf336c6af7353ef0aeed58002c46543b30635 Mon Sep 17 00:00:00 2001 From: rubidium Date: Tue, 2 Jan 2007 19:19:48 +0000 Subject: (svn r7759) -Merge: makefile rewrite. This merge features: - A proper ./configure, so everything needs to be configured only once, not for every make. - Usage of makedepend when available. This greatly reduces the time needed for generating the dependencies. - A generator for all project files. There is a single file with sources, which is used to generate Makefiles and the project files for MSVC. - Proper support for OSX universal binaries. - Object files for non-MSVC compiles are also placed in separate directories, making is faster to switch between debug and release compiles and it does not touch the directory with the source files. - Functionality to make a bundle of all needed files for for example a nightly or distribution of a binary with all needed GRFs and language files. Note: as this merge moves almost all files, it is recommended to make a backup of your working copy before updating your working copy. --- src/fontcache.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/fontcache.h (limited to 'src/fontcache.h') diff --git a/src/fontcache.h b/src/fontcache.h new file mode 100644 index 000000000..249f35cd0 --- /dev/null +++ b/src/fontcache.h @@ -0,0 +1,56 @@ +/* $Id$ */ + +#ifndef FONTCACHE_H +#define FONTCACHE_H + +/** Get the SpriteID mapped to the given font size and key */ +SpriteID GetUnicodeGlyph(FontSize size, uint32 key); + +/** Map a SpriteID to the font size and key */ +void SetUnicodeGlyph(FontSize size, uint32 key, SpriteID sprite); + +/** Initialize the glyph map */ +void InitializeUnicodeGlyphMap(void); + +#ifdef WITH_FREETYPE + +typedef struct FreeTypeSettings { + char small_font[260]; + char medium_font[260]; + char large_font[260]; + uint small_size; + uint medium_size; + uint large_size; +} FreeTypeSettings; + +extern FreeTypeSettings _freetype; + +void InitFreeType(void); +const struct Sprite *GetGlyph(FontSize size, uint32 key); +uint GetGlyphWidth(FontSize size, uint32 key); + +#else + +/* Stub for initializiation */ +static inline void InitFreeType(void) {} + +/** Get the Sprite for a glyph */ +static inline const Sprite *GetGlyph(FontSize size, uint32 key) +{ + SpriteID sprite = GetUnicodeGlyph(size, key); + if (sprite == 0) sprite = GetUnicodeGlyph(size, '?'); + return GetSprite(sprite); +} + + +/** Get the width of a glyph */ +static inline uint GetGlyphWidth(FontSize size, uint32 key) +{ + SpriteID sprite = GetUnicodeGlyph(size, key); + if (sprite == 0) sprite = GetUnicodeGlyph(size, '?'); + return SpriteExists(sprite) ? GetSprite(sprite)->width + (size != FS_NORMAL) : 0; +} + +#endif /* WITH_FREETYPE */ + +#endif /* FONTCACHE_H */ -- cgit v1.2.3-54-g00ecf