- added proper toggle for new unit title rendering

This commit is contained in:
Mark Vejvoda
2010-05-29 07:07:46 +00:00
parent 8b6af02ece
commit 3fdc1d2a18
3 changed files with 24 additions and 3 deletions

View File

@@ -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) {

View File

@@ -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 *,Vec3f>(unit,computeScreenPosition(unit->getCurrVectorFlat())) );
if(allowRenderUnitTitles == true) {
// Add to the pending render unit title list
renderUnitTitleList.push_back(std::pair<Unit *,Vec3f>(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) {

View File

@@ -257,7 +257,7 @@ private:
bool allowRotateUnits;
//std::vector<Unit *> renderUnitTitleList;
bool allowRenderUnitTitles;
std::vector<std::pair<Unit *,Vec3f> > 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);