diff options
author | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2010-11-01 20:04:43 +0100 |
---|---|---|
committer | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2010-11-01 20:04:43 +0100 |
commit | 38f7cd9a9a49dc91b1c2e69b48308bd16d4b5aad (patch) | |
tree | 81d0e898790264114683cca9cfd3355bea114415 /src/gui/truetypefont.cpp | |
parent | c5e341f7b5f5e4efcabd09e00e177bb873db8097 (diff) | |
parent | 1f69108501c4bf51f3adac9ffbf7a7631fb12b9a (diff) | |
download | mana-client-38f7cd9a9a49dc91b1c2e69b48308bd16d4b5aad.tar.gz mana-client-38f7cd9a9a49dc91b1c2e69b48308bd16d4b5aad.tar.bz2 mana-client-38f7cd9a9a49dc91b1c2e69b48308bd16d4b5aad.tar.xz mana-client-38f7cd9a9a49dc91b1c2e69b48308bd16d4b5aad.zip |
Merge branch '0.5' of gitorious.org:mana/mana
Conflicts:
src/being.cpp
src/client.cpp
src/commandhandler.cpp
src/gui/setup_video.cpp
src/gui/socialwindow.cpp
src/gui/viewport.cpp
src/gui/widgets/browserbox.cpp
src/gui/widgets/itemcontainer.cpp
src/imageparticle.cpp
src/localplayer.cpp
src/localplayer.h
src/map.cpp
src/net/tmwa/beinghandler.cpp
src/particle.cpp
src/particle.h
src/player.cpp
src/player.h
Diffstat (limited to 'src/gui/truetypefont.cpp')
-rw-r--r-- | src/gui/truetypefont.cpp | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/gui/truetypefont.cpp b/src/gui/truetypefont.cpp index e2ae5b93..ebc01ec7 100644 --- a/src/gui/truetypefont.cpp +++ b/src/gui/truetypefont.cpp @@ -64,8 +64,8 @@ class TextChunk if (!surface) { - throw "Rendering font to surface failed: " + - std::string(TTF_GetError()); + img = 0; + return; } img = Image::load(surface); @@ -108,9 +108,7 @@ TrueTypeFont::~TrueTypeFont() --fontCounter; if (fontCounter == 0) - { TTF_Quit(); - } } void TrueTypeFont::drawString(gcn::Graphics *graphics, @@ -123,9 +121,7 @@ void TrueTypeFont::drawString(gcn::Graphics *graphics, Graphics *g = dynamic_cast<Graphics *>(graphics); if (!g) - { throw "Not a valid graphics object!"; - } gcn::Color col = g->getColor(); const float alpha = col.a / 255.0f; @@ -154,15 +150,16 @@ void TrueTypeFont::drawString(gcn::Graphics *graphics, if (!found) { if (mCache.size() >= CACHE_SIZE) - { mCache.pop_back(); - } mCache.push_front(chunk); mCache.front().generate(mFont); } - mCache.front().img->setAlpha(alpha); - g->drawImage(mCache.front().img, x, y); + if (mCache.front().img) + { + mCache.front().img->setAlpha(alpha); + g->drawImage(mCache.front().img, x, y); + } } int TrueTypeFont::getWidth(const std::string &text) const @@ -174,7 +171,10 @@ int TrueTypeFont::getWidth(const std::string &text) const // Raise priority: move it to front // Assumption is that TTF::draw will be called next mCache.splice(mCache.begin(), mCache, i); - return i->img->getWidth(); + if (i->img) + return i->img->getWidth(); + else + return 0; } } |