summaryrefslogtreecommitdiff
path: root/src/gui/truetypefont.cpp
diff options
context:
space:
mode:
authorYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2010-11-01 20:04:43 +0100
committerYohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer>2010-11-01 20:04:43 +0100
commit38f7cd9a9a49dc91b1c2e69b48308bd16d4b5aad (patch)
tree81d0e898790264114683cca9cfd3355bea114415 /src/gui/truetypefont.cpp
parentc5e341f7b5f5e4efcabd09e00e177bb873db8097 (diff)
parent1f69108501c4bf51f3adac9ffbf7a7631fb12b9a (diff)
downloadmana-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.cpp22
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;
}
}