diff --git a/source/glest_game/game/game.cpp b/source/glest_game/game/game.cpp index 3106fb3d3..834395239 100644 --- a/source/glest_game/game/game.cpp +++ b/source/glest_game/game/game.cpp @@ -1043,8 +1043,16 @@ void Game::render2d(){ renderer.renderText(str, coreData.getMenuFontNormal(), Vec3f(1.0f), 10, 500, false); + if(renderer.getAllowRenderUnitTitles() == false) { + renderer.setAllowRenderUnitTitles(true); + } renderer.renderUnitTitles(coreData.getMenuFontNormal(),Vec3f(1.0f)); } + else { + if(renderer.getAllowRenderUnitTitles() == true) { + renderer.setAllowRenderUnitTitles(false); + } + } //network status if(renderNetworkStatus) { diff --git a/source/glest_game/graphics/renderer.cpp b/source/glest_game/graphics/renderer.cpp index 8e24ccf9f..ab311b39a 100644 --- a/source/glest_game/graphics/renderer.cpp +++ b/source/glest_game/graphics/renderer.cpp @@ -145,6 +145,7 @@ Renderer::Renderer(){ gi.setFactory(fr.getGraphicsFactory(config.getString("FactoryGraphics"))); GraphicsFactory *graphicsFactory= GraphicsInterface::getInstance().getFactory(); + this->allowRenderUnitTitles = false; this->menu = NULL; this->game = NULL; @@ -1632,8 +1633,10 @@ void Renderer::renderUnit(RenderEntity &entity,MeshCallbackTeamColor *meshCallba glPopMatrix(); unit->setVisible(true); - // Add to the pending render unit title list - renderUnitTitleList.push_back(std::pair(unit,computeScreenPosition(unit->getCurrVectorFlat())) ); + if(allowRenderUnitTitles == true) { + // Add to the pending render unit title list + renderUnitTitleList.push_back(std::pair(unit,computeScreenPosition(unit->getCurrVectorFlat())) ); + } entity.setState(resRendered); } @@ -3346,6 +3349,13 @@ Texture2D::Filter Renderer::strToTextureFilter(const string &s){ throw runtime_error("Error converting from string to FilterType, found: "+s); } +void Renderer::setAllowRenderUnitTitles(bool value) { + allowRenderUnitTitles = value; + if(allowRenderUnitTitles == false) { + renderUnitTitleList.clear(); + } +} + // This method renders titles for units void Renderer::renderUnitTitles(Font2D *font, Vec3f color) { if(renderUnitTitleList.size() > 0) { diff --git a/source/glest_game/graphics/renderer.h b/source/glest_game/graphics/renderer.h index 897d66742..2d6c4a149 100644 --- a/source/glest_game/graphics/renderer.h +++ b/source/glest_game/graphics/renderer.h @@ -257,7 +257,7 @@ private: bool allowRotateUnits; - //std::vector renderUnitTitleList; + bool allowRenderUnitTitles; std::vector > renderUnitTitleList; private: @@ -374,6 +374,9 @@ public: static string shadowsToStr(Shadows shadows); const Game * getGame() { return game; } + + void setAllowRenderUnitTitles(bool value); + bool getAllowRenderUnitTitles() { return allowRenderUnitTitles; } void renderUnitTitles(Font2D *font, Vec3f color); Vec3f computeScreenPosition(const Vec3f &worldPos);