- bugfix for rendering labels (now properly lines up with other controls)

This commit is contained in:
Mark Vejvoda
2011-10-02 02:14:05 +00:00
parent 75e73ec85d
commit 5d0eea51e3
5 changed files with 147 additions and 42 deletions

View File

@@ -19,6 +19,7 @@ namespace Shared { namespace Graphics { namespace Gl {
class Font2DGl;
class Font3DGl;
class TextRenderer2DGl;
class TextRenderer3DGl;
// =====================================================
@@ -64,6 +65,46 @@ public:
virtual void end();
};
class TextRendererSafeWrapper {
protected:
TextRenderer *renderer;
Font *font;
bool mustEnd;
public:
TextRendererSafeWrapper(TextRenderer *renderer,Font *font) {
mustEnd = false;
this->renderer = renderer;
this->font = font;
begin();
}
~TextRendererSafeWrapper() {
end();
}
void begin() {
if(this->renderer != NULL) {
if(dynamic_cast<TextRenderer2DGl *>(renderer) != NULL) {
dynamic_cast<TextRenderer2DGl *>(renderer)->begin(dynamic_cast<Font2D *>(this->font));
mustEnd = true;
}
if(dynamic_cast<TextRenderer3DGl *>(renderer) != NULL) {
mustEnd = true;
dynamic_cast<TextRenderer3DGl *>(renderer)->begin(dynamic_cast<Font3D *>(this->font));
}
}
}
void end() {
if(this->renderer != NULL && mustEnd == true) {
this->renderer->end();
mustEnd = false;
}
}
};
}}}//end namespace
#endif