From d18b9616bbe54db5d33363a197c8b9efa6161fa8 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Mon, 4 Apr 2011 03:28:21 +0300 Subject: Rename TrueTypeFont to SDLFont. --- src/gui/gui.cpp | 16 +- src/gui/sdlfont.cpp | 340 ++++++++++++++++++++++++++++++++++++++++ src/gui/sdlfont.h | 105 +++++++++++++ src/gui/truetypefont.cpp | 340 ---------------------------------------- src/gui/truetypefont.h | 105 ------------- src/gui/widgets/textpreview.cpp | 6 +- 6 files changed, 456 insertions(+), 456 deletions(-) create mode 100644 src/gui/sdlfont.cpp create mode 100644 src/gui/sdlfont.h delete mode 100644 src/gui/truetypefont.cpp delete mode 100644 src/gui/truetypefont.h (limited to 'src/gui') diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index baccb7796..aecb6a6f8 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -26,7 +26,7 @@ #include "gui/palette.h" #include "gui/sdlinput.h" #include "gui/theme.h" -#include "gui/truetypefont.h" +#include "gui/sdlfont.h" #include "gui/widgets/mouseevent.h" #include "gui/widgets/window.h" @@ -113,7 +113,7 @@ Gui::Gui(Graphics *graphics): try { - mGuiFont = new TrueTypeFont(fontFile, fontSize); + mGuiFont = new SDLFont(fontFile, fontSize); } catch (const gcn::Exception &e) { @@ -128,7 +128,7 @@ Gui::Gui(Graphics *graphics): try { - mInfoParticleFont = new TrueTypeFont( + mInfoParticleFont = new SDLFont( fontFile, fontSize, TTF_STYLE_BOLD); } catch (const gcn::Exception &e) @@ -144,7 +144,7 @@ Gui::Gui(Graphics *graphics): try { - boldFont = new TrueTypeFont(fontFile, fontSize); + boldFont = new SDLFont(fontFile, fontSize); } catch (const gcn::Exception &e) { @@ -159,7 +159,7 @@ Gui::Gui(Graphics *graphics): try { - mHelpFont = new TrueTypeFont(fontFile, fontSize); + mHelpFont = new SDLFont(fontFile, fontSize); } catch (const gcn::Exception &e) { @@ -295,20 +295,20 @@ void Gui::updateFonts() if (fontFile.empty()) fontFile = branding.getStringValue("font"); - static_cast(mGuiFont)->loadFont(fontFile, fontSize); + static_cast(mGuiFont)->loadFont(fontFile, fontSize); fontFile = config.getValue("particleFont", ""); if (fontFile.empty()) fontFile = branding.getStringValue("particleFont"); - static_cast(mInfoParticleFont)->loadFont( + static_cast(mInfoParticleFont)->loadFont( fontFile, fontSize, TTF_STYLE_BOLD); fontFile = config.getValue("boldFont", ""); if (fontFile.empty()) fontFile = branding.getStringValue("boldFont"); - static_cast(boldFont)->loadFont(fontFile, fontSize); + static_cast(boldFont)->loadFont(fontFile, fontSize); } void Gui::distributeMouseEvent(gcn::Widget* source, int type, int button, diff --git a/src/gui/sdlfont.cpp b/src/gui/sdlfont.cpp new file mode 100644 index 000000000..ab20eee97 --- /dev/null +++ b/src/gui/sdlfont.cpp @@ -0,0 +1,340 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2009 Aethyra Development Team + * Copyright (C) 2011 The ManaPlus Developers + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "gui/sdlfont.h" + +#include "client.h" +#include "graphics.h" +#include "log.h" +#include "main.h" + +#include "resources/image.h" +#include "resources/resourcemanager.h" + +#include "utils/stringutils.h" + +#include + +const unsigned int CACHE_SIZE = 256; +const unsigned int CACHE_SIZE_SMALL1 = 90; +const unsigned int CACHE_SIZE_SMALL2 = 150; + +char *strBuf; + +class SDLTextChunk +{ + public: + SDLTextChunk(const std::string &text, const gcn::Color &color) : + img(0), text(text), color(color) + { + } + + ~SDLTextChunk() + { + delete img; + img = 0; + } + + bool operator==(const SDLTextChunk &chunk) const + { + return (chunk.text == text && chunk.color == color); + } + + void generate(TTF_Font *font) + { + SDL_Color sdlCol; + sdlCol.b = static_cast(color.b); + sdlCol.r = static_cast(color.r); + sdlCol.g = static_cast(color.g); + + getSafeUtf8String(text, strBuf); + +// SDL_Surface *surface = TTF_RenderUTF8_Solid( + SDL_Surface *surface = TTF_RenderUTF8_Blended( + font, strBuf, sdlCol); + + if (!surface) + { + img = 0; + return; + } + + img = Image::load(surface); + + SDL_FreeSurface(surface); + } + + Image *img; + std::string text; + gcn::Color color; +}; + +typedef std::list::iterator CacheIterator; + +static int fontCounter; + +SDLFont::SDLFont(const std::string &filename, int size, int style) : + mCreateCounter(0), + mDeleteCounter(0) +{ + ResourceManager *resman = ResourceManager::getInstance(); + + if (fontCounter == 0 && TTF_Init() == -1) + { + throw GCN_EXCEPTION("Unable to initialize SDL_ttf: " + + std::string(TTF_GetError())); + } + + if (!fontCounter) + { + strBuf = new char[65535]; + memset(strBuf, 0, 65535); + } + + ++fontCounter; + mFont = TTF_OpenFont(resman->getPath(filename).c_str(), size); + + if (!mFont) + { + logger->log("Error finding font " + filename); + mFont = TTF_OpenFont(resman->getPath( + "fonts/dejavusans.ttf").c_str(), size); + if (!mFont) + { + throw GCN_EXCEPTION("SDLSDLFont::SDLSDLFont: " + + std::string(TTF_GetError())); + } + } + + TTF_SetFontStyle(mFont, style); + mCleanTime = cur_time + 120; +} + +SDLFont::~SDLFont() +{ + TTF_CloseFont(mFont); + mFont = 0; + --fontCounter; + + if (fontCounter == 0) + { + TTF_Quit(); + delete []strBuf; + } +} + +void SDLFont::loadFont(const std::string &filename, int size, int style) +{ + ResourceManager *resman = ResourceManager::getInstance(); + + if (fontCounter == 0 && TTF_Init() == -1) + { + logger->log("Unable to initialize SDL_ttf: " + + std::string(TTF_GetError())); + return; + } + + TTF_Font *font = TTF_OpenFont(resman->getPath(filename).c_str(), size); + + if (!font) + { + logger->log("SDLSDLFont::SDLSDLFont: " + + std::string(TTF_GetError())); + return; + } + + if (mFont) + TTF_CloseFont(mFont); + + mFont = font; + TTF_SetFontStyle(mFont, style); + clear(); +} + +void SDLFont::clear() +{ + for (unsigned short f = 0; f < static_cast( + CACHES_NUMBER); f ++) + { + mCache[static_cast(f)].clear(); + } +} + +void SDLFont::drawString(gcn::Graphics *graphics, + const std::string &text, + int x, int y) +{ + if (text.empty()) + return; + + Graphics *g = dynamic_cast(graphics); + + gcn::Color col = g->getColor(); + const float alpha = static_cast(col.a) / 255.0f; + + /* The alpha value is ignored at string generation so avoid caching the + * same text with different alpha values. + */ + col.a = 255; + + SDLTextChunk chunk(text, col); + + unsigned char chr = text[0]; + std::list *cache = &mCache[chr]; + + bool found = false; + +#ifdef DEBUG_FONT + int cnt = 0; +#endif + + for (CacheIterator i = cache->begin(); i != cache->end(); ++i) + { + if (chunk == (*i)) + { + // Raise priority: move it to front + cache->splice(cache->begin(), *cache, i); + found = true; + break; + } +#ifdef DEBUG_FONT + cnt ++; +#endif + } +#ifdef DEBUG_FONT + logger->log("drawString: " + text + ", iterations: " + toString(cnt)); +#endif + + // Surface not found + if (!found) + { + if (cache->size() >= CACHE_SIZE) + { +#ifdef DEBUG_FONT_COUNTERS + mDeleteCounter ++; +#endif + cache->pop_back(); + } +#ifdef DEBUG_FONT_COUNTERS + mCreateCounter ++; +#endif + cache->push_front(chunk); + cache->front().generate(mFont); + + if (!mCleanTime) + { + mCleanTime = cur_time + 120; + } + else if (mCleanTime < cur_time) + { + doClean(); + mCleanTime = cur_time + 120; + } + } + + if (cache->front().img) + { + cache->front().img->setAlpha(alpha); + g->drawImage(cache->front().img, x, y); + } + +} + +void SDLFont::createSDLTextChunk(SDLTextChunk *chunk) +{ + if (!chunk || chunk->text.empty()) + return; + + const float alpha = static_cast(chunk->color.a) / 255.0f; + chunk->color.a = 255; + chunk->generate(mFont); + if (chunk->img) + chunk->img->setAlpha(alpha); +} + +int SDLFont::getWidth(const std::string &text) const +{ + if (text.empty()) + return 0; + + unsigned char chr = text[0]; + std::list *cache = &mCache[chr]; + +#ifdef DEBUG_FONT + int cnt = 0; +#endif + + for (CacheIterator i = cache->begin(); i != cache->end(); ++i) + { + if (i->text == text) + { + // Raise priority: move it to front + // Assumption is that TTF::draw will be called next + cache->splice(cache->begin(), *cache, i); + if (i->img) + return i->img->getWidth(); + else + return 0; + } +#ifdef DEBUG_FONT + cnt ++; +#endif + } + +#ifdef DEBUG_FONT + logger->log("getWidth: " + text + ", iterations: " + toString(cnt)); +#endif + + int w, h; + getSafeUtf8String(text, strBuf); + TTF_SizeUTF8(mFont, strBuf, &w, &h); + return w; +} + +int SDLFont::getHeight() const +{ + return TTF_FontHeight(mFont); +} + +void SDLFont::doClean() +{ + for (int f = 0; f < CACHES_NUMBER; f ++) + { + std::list *cache = &mCache[f]; + if (cache->size() > CACHE_SIZE_SMALL2) + { +#ifdef DEBUG_FONT_COUNTERS + mDeleteCounter += 10; +#endif + for (int d = 0; d < 10; d ++) + cache->pop_back(); + } + else if (cache->size() > CACHE_SIZE_SMALL1) + { +#ifdef DEBUG_FONT_COUNTERS + mDeleteCounter ++; +#endif + cache->pop_back(); + } + } +} \ No newline at end of file diff --git a/src/gui/sdlfont.h b/src/gui/sdlfont.h new file mode 100644 index 000000000..86ef2f1e9 --- /dev/null +++ b/src/gui/sdlfont.h @@ -0,0 +1,105 @@ +/* + * The ManaPlus Client + * Copyright (C) 2004-2009 The Mana World Development Team + * Copyright (C) 2009-2010 The Mana Developers + * Copyright (C) 2011 The ManaPlus Developers + * Copyright (C) 2009 Aethyra Development Team + * + * This file is part of The ManaPlus Client. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef SDLFONT_H +#define SDLFONT_H + +#include + +#ifdef __APPLE__ +#include +#else +#ifdef __WIN32__ +#include +#else +#include +#endif +#endif + +#include +#include + +#define CACHES_NUMBER 256 + +class SDLTextChunk; + +/** + * A wrapper around SDL_ttf for allowing the use of TrueType fonts. + * + * NOTE: This class initializes SDL_ttf as necessary. + */ +class SDLFont : public gcn::Font +{ + public: + /** + * Constructor. + * + * @param filename Font filename. + * @param size Font size. + */ + SDLFont(const std::string &filename, int size, int style = 0); + + /** + * Destructor. + */ + ~SDLFont(); + + void loadFont(const std::string &filename, int size, int style = 0); + + void createSDLTextChunk(SDLTextChunk *chunk); + + virtual int getWidth(const std::string &text) const; + + virtual int getHeight() const; + + std::list *getCache() + { return mCache; } + + /** + * @see Font::drawString + */ + void drawString(gcn::Graphics *graphics, + const std::string &text, + int x, int y); + + void clear(); + + void doClean(); + + int getCreateCounter() const + { return mCreateCounter; } + + int getDeleteCounter() const + { return mDeleteCounter; } + + private: + TTF_Font *mFont; + unsigned mCreateCounter; + unsigned mDeleteCounter; + + // Word surfaces cache + mutable std::list mCache[CACHES_NUMBER]; + int mCleanTime; +}; + +#endif diff --git a/src/gui/truetypefont.cpp b/src/gui/truetypefont.cpp deleted file mode 100644 index 62003d94c..000000000 --- a/src/gui/truetypefont.cpp +++ /dev/null @@ -1,340 +0,0 @@ -/* - * The ManaPlus Client - * Copyright (C) 2004-2009 The Mana World Development Team - * Copyright (C) 2009-2010 The Mana Developers - * Copyright (C) 2011 The ManaPlus Developers - * Copyright (C) 2009 Aethyra Development Team - * - * This file is part of The ManaPlus Client. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#include "gui/truetypefont.h" - -#include "client.h" -#include "graphics.h" -#include "log.h" -#include "main.h" - -#include "resources/image.h" -#include "resources/resourcemanager.h" - -#include "utils/stringutils.h" - -#include - -const unsigned int CACHE_SIZE = 256; -const unsigned int CACHE_SIZE_SMALL1 = 90; -const unsigned int CACHE_SIZE_SMALL2 = 150; - -char *strBuf; - -class TextChunk -{ - public: - TextChunk(const std::string &text, const gcn::Color &color) : - img(0), text(text), color(color) - { - } - - ~TextChunk() - { - delete img; - img = 0; - } - - bool operator==(const TextChunk &chunk) const - { - return (chunk.text == text && chunk.color == color); - } - - void generate(TTF_Font *font) - { - SDL_Color sdlCol; - sdlCol.b = static_cast(color.b); - sdlCol.r = static_cast(color.r); - sdlCol.g = static_cast(color.g); - - getSafeUtf8String(text, strBuf); - -// SDL_Surface *surface = TTF_RenderUTF8_Solid( - SDL_Surface *surface = TTF_RenderUTF8_Blended( - font, strBuf, sdlCol); - - if (!surface) - { - img = 0; - return; - } - - img = Image::load(surface); - - SDL_FreeSurface(surface); - } - - Image *img; - std::string text; - gcn::Color color; -}; - -typedef std::list::iterator CacheIterator; - -static int fontCounter; - -TrueTypeFont::TrueTypeFont(const std::string &filename, int size, int style) : - mCreateCounter(0), - mDeleteCounter(0) -{ - ResourceManager *resman = ResourceManager::getInstance(); - - if (fontCounter == 0 && TTF_Init() == -1) - { - throw GCN_EXCEPTION("Unable to initialize SDL_ttf: " + - std::string(TTF_GetError())); - } - - if (!fontCounter) - { - strBuf = new char[65535]; - memset(strBuf, 0, 65535); - } - - ++fontCounter; - mFont = TTF_OpenFont(resman->getPath(filename).c_str(), size); - - if (!mFont) - { - logger->log("Error finding font " + filename); - mFont = TTF_OpenFont(resman->getPath( - "fonts/dejavusans.ttf").c_str(), size); - if (!mFont) - { - throw GCN_EXCEPTION("SDLTrueTypeFont::SDLTrueTypeFont: " + - std::string(TTF_GetError())); - } - } - - TTF_SetFontStyle(mFont, style); - mCleanTime = cur_time + 120; -} - -TrueTypeFont::~TrueTypeFont() -{ - TTF_CloseFont(mFont); - mFont = 0; - --fontCounter; - - if (fontCounter == 0) - { - TTF_Quit(); - delete []strBuf; - } -} - -void TrueTypeFont::loadFont(const std::string &filename, int size, int style) -{ - ResourceManager *resman = ResourceManager::getInstance(); - - if (fontCounter == 0 && TTF_Init() == -1) - { - logger->log("Unable to initialize SDL_ttf: " + - std::string(TTF_GetError())); - return; - } - - TTF_Font *font = TTF_OpenFont(resman->getPath(filename).c_str(), size); - - if (!font) - { - logger->log("SDLTrueTypeFont::SDLTrueTypeFont: " + - std::string(TTF_GetError())); - return; - } - - if (mFont) - TTF_CloseFont(mFont); - - mFont = font; - TTF_SetFontStyle(mFont, style); - clear(); -} - -void TrueTypeFont::clear() -{ - for (unsigned short f = 0; f < static_cast( - CACHES_NUMBER); f ++) - { - mCache[static_cast(f)].clear(); - } -} - -void TrueTypeFont::drawString(gcn::Graphics *graphics, - const std::string &text, - int x, int y) -{ - if (text.empty()) - return; - - Graphics *g = dynamic_cast(graphics); - - gcn::Color col = g->getColor(); - const float alpha = static_cast(col.a) / 255.0f; - - /* The alpha value is ignored at string generation so avoid caching the - * same text with different alpha values. - */ - col.a = 255; - - TextChunk chunk(text, col); - - unsigned char chr = text[0]; - std::list *cache = &mCache[chr]; - - bool found = false; - -#ifdef DEBUG_FONT - int cnt = 0; -#endif - - for (CacheIterator i = cache->begin(); i != cache->end(); ++i) - { - if (chunk == (*i)) - { - // Raise priority: move it to front - cache->splice(cache->begin(), *cache, i); - found = true; - break; - } -#ifdef DEBUG_FONT - cnt ++; -#endif - } -#ifdef DEBUG_FONT - logger->log("drawString: " + text + ", iterations: " + toString(cnt)); -#endif - - // Surface not found - if (!found) - { - if (cache->size() >= CACHE_SIZE) - { -#ifdef DEBUG_FONT_COUNTERS - mDeleteCounter ++; -#endif - cache->pop_back(); - } -#ifdef DEBUG_FONT_COUNTERS - mCreateCounter ++; -#endif - cache->push_front(chunk); - cache->front().generate(mFont); - - if (!mCleanTime) - { - mCleanTime = cur_time + 120; - } - else if (mCleanTime < cur_time) - { - doClean(); - mCleanTime = cur_time + 120; - } - } - - if (cache->front().img) - { - cache->front().img->setAlpha(alpha); - g->drawImage(cache->front().img, x, y); - } - -} - -void TrueTypeFont::createTextChunk(TextChunk *chunk) -{ - if (!chunk || chunk->text.empty()) - return; - - const float alpha = static_cast(chunk->color.a) / 255.0f; - chunk->color.a = 255; - chunk->generate(mFont); - if (chunk->img) - chunk->img->setAlpha(alpha); -} - -int TrueTypeFont::getWidth(const std::string &text) const -{ - if (text.empty()) - return 0; - - unsigned char chr = text[0]; - std::list *cache = &mCache[chr]; - -#ifdef DEBUG_FONT - int cnt = 0; -#endif - - for (CacheIterator i = cache->begin(); i != cache->end(); ++i) - { - if (i->text == text) - { - // Raise priority: move it to front - // Assumption is that TTF::draw will be called next - cache->splice(cache->begin(), *cache, i); - if (i->img) - return i->img->getWidth(); - else - return 0; - } -#ifdef DEBUG_FONT - cnt ++; -#endif - } - -#ifdef DEBUG_FONT - logger->log("getWidth: " + text + ", iterations: " + toString(cnt)); -#endif - - int w, h; - getSafeUtf8String(text, strBuf); - TTF_SizeUTF8(mFont, strBuf, &w, &h); - return w; -} - -int TrueTypeFont::getHeight() const -{ - return TTF_FontHeight(mFont); -} - -void TrueTypeFont::doClean() -{ - for (int f = 0; f < CACHES_NUMBER; f ++) - { - std::list *cache = &mCache[f]; - if (cache->size() > CACHE_SIZE_SMALL2) - { -#ifdef DEBUG_FONT_COUNTERS - mDeleteCounter += 10; -#endif - for (int d = 0; d < 10; d ++) - cache->pop_back(); - } - else if (cache->size() > CACHE_SIZE_SMALL1) - { -#ifdef DEBUG_FONT_COUNTERS - mDeleteCounter ++; -#endif - cache->pop_back(); - } - } -} \ No newline at end of file diff --git a/src/gui/truetypefont.h b/src/gui/truetypefont.h deleted file mode 100644 index 9279cee63..000000000 --- a/src/gui/truetypefont.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * The ManaPlus Client - * Copyright (C) 2004-2009 The Mana World Development Team - * Copyright (C) 2009-2010 The Mana Developers - * Copyright (C) 2011 The ManaPlus Developers - * Copyright (C) 2009 Aethyra Development Team - * - * This file is part of The ManaPlus Client. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -#ifndef TRUETYPEFONT_H -#define TRUETYPEFONT_H - -#include - -#ifdef __APPLE__ -#include -#else -#ifdef __WIN32__ -#include -#else -#include -#endif -#endif - -#include -#include - -#define CACHES_NUMBER 256 - -class TextChunk; - -/** - * A wrapper around SDL_ttf for allowing the use of TrueType fonts. - * - * NOTE: This class initializes SDL_ttf as necessary. - */ -class TrueTypeFont : public gcn::Font -{ - public: - /** - * Constructor. - * - * @param filename Font filename. - * @param size Font size. - */ - TrueTypeFont(const std::string &filename, int size, int style = 0); - - /** - * Destructor. - */ - ~TrueTypeFont(); - - void loadFont(const std::string &filename, int size, int style = 0); - - void createTextChunk(TextChunk *chunk); - - virtual int getWidth(const std::string &text) const; - - virtual int getHeight() const; - - std::list *getCache() - { return mCache; } - - /** - * @see Font::drawString - */ - void drawString(gcn::Graphics *graphics, - const std::string &text, - int x, int y); - - void clear(); - - void doClean(); - - int getCreateCounter() const - { return mCreateCounter; } - - int getDeleteCounter() const - { return mDeleteCounter; } - - private: - TTF_Font *mFont; - unsigned mCreateCounter; - unsigned mDeleteCounter; - - // Word surfaces cache - mutable std::list mCache[CACHES_NUMBER]; - int mCleanTime; -}; - -#endif diff --git a/src/gui/widgets/textpreview.cpp b/src/gui/widgets/textpreview.cpp index 6171a072f..6d41bef06 100644 --- a/src/gui/widgets/textpreview.cpp +++ b/src/gui/widgets/textpreview.cpp @@ -28,7 +28,7 @@ #include "gui/gui.h" #include "gui/palette.h" -#include "gui/truetypefont.h" +#include "gui/sdlfont.h" #include @@ -66,9 +66,9 @@ void TextPreview::draw(gcn::Graphics* graphics) graphics->fillRectangle(gcn::Rectangle(0, 0, getWidth(), getHeight())); } - if (mTextBGColor && typeid(*mFont) == typeid(TrueTypeFont)) + if (mTextBGColor && typeid(*mFont) == typeid(SDLFont)) { - TrueTypeFont *font = static_cast(mFont); + SDLFont *font = static_cast(mFont); int x = font->getWidth(mText) + 1 + 2 * ((mOutline || mShadow) ? 1 :0); int y = font->getHeight() + 1 + 2 * ((mOutline || mShadow) ? 1 : 0); graphics->setColor(gcn::Color(static_cast(mTextBGColor->r), -- cgit v1.2.3-60-g2f50