Fixed setDisplayText issue

This commit is contained in:
mathusummut
2018-06-25 17:29:50 +02:00
parent 91af4e3dd3
commit 2a42a10d43
5 changed files with 35 additions and 35 deletions

View File

@@ -2773,7 +2773,7 @@ namespace Glest {
textRenderer3D->render(text, pos.x, pos.y); textRenderer3D->render(text, pos.x, pos.y);
safeTextRender.end(); safeTextRender.end();
glDisable(GL_BLEND); //glDisable(GL_BLEND);
glPopAttrib(); glPopAttrib();
} }
@@ -2794,7 +2794,7 @@ namespace Glest {
//textRenderer3D->end(); //textRenderer3D->end();
safeTextRender.end(); safeTextRender.end();
glDisable(GL_BLEND); //glDisable(GL_BLEND);
glPopAttrib(); glPopAttrib();
} }
@@ -2990,7 +2990,7 @@ namespace Glest {
textRenderer3D->render(text, pos.x, pos.y); textRenderer3D->render(text, pos.x, pos.y);
safeTextRender.end(); safeTextRender.end();
glDisable(GL_BLEND); //glDisable(GL_BLEND);
glPopAttrib(); glPopAttrib();
} }
@@ -3010,7 +3010,7 @@ namespace Glest {
textRenderer3D->render(text, pos.x, pos.y, centered); textRenderer3D->render(text, pos.x, pos.y, centered);
safeTextRender.end(); safeTextRender.end();
glDisable(GL_BLEND); //glDisable(GL_BLEND);
glPopAttrib(); glPopAttrib();
} }
@@ -5287,15 +5287,13 @@ namespace Glest {
//dead alpha //dead alpha
const SkillType *st = unit->getCurrSkill(); const SkillType *st = unit->getCurrSkill();
float alpha = 1.0f;
if (st->getClass() == scDie && static_cast<const DieSkillType*>(st)->getFade()) { if (st->getClass() == scDie && static_cast<const DieSkillType*>(st)->getFade()) {
float alpha = 1.0f - unit->getAnimProgressAsFloat(); alpha = 1.0f - unit->getAnimProgressAsFloat();
glDisable(GL_COLOR_MATERIAL); }
glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, Vec4f(1.0f, 1.0f, 1.0f, alpha).ptr());
} else {
glEnable(GL_COLOR_MATERIAL); glEnable(GL_COLOR_MATERIAL);
// we cut off a tiny bit here to avoid problems with fully transparent texture parts cutting units in background rendered later. // we cut off a tiny bit here to avoid problems with fully transparent texture parts cutting units in background rendered later.
glAlphaFunc(GL_GREATER, 0.02f); glAlphaFunc(GL_GREATER, 0.02f);
}
//render //render
Model *model = unit->getCurrentModelPtr(); Model *model = unit->getCurrentModelPtr();
@@ -5305,7 +5303,7 @@ namespace Glest {
model->updateInterpolationData(unit->getAnimProgressAsFloat(), unit->isAlive() && !unit->isAnimProgressBound()); model->updateInterpolationData(unit->getAnimProgressAsFloat(), unit->isAlive() && !unit->isAnimProgressBound());
//} //}
modelRenderer->render(model); modelRenderer->render(model, alpha);
triangleCount += model->getTriangleCount(); triangleCount += model->getTriangleCount();
pointCount += model->getVertexCount(); pointCount += model->getVertexCount();
@@ -6021,7 +6019,7 @@ namespace Glest {
glVertex2i(mx + mw, my + mh); glVertex2i(mx + mw, my + mh);
glEnd(); glEnd();
glDisable(GL_BLEND); //glDisable(GL_BLEND);
glActiveTexture(fowTexUnit); glActiveTexture(fowTexUnit);
glDisable(GL_TEXTURE_2D); glDisable(GL_TEXTURE_2D);
@@ -6140,7 +6138,7 @@ namespace Glest {
} }
} }
glDisable(GL_BLEND); //glDisable(GL_BLEND);
//draw units //draw units
VisibleQuadContainerCache &qCache = getQuadCache(); VisibleQuadContainerCache &qCache = getQuadCache();
@@ -6374,7 +6372,7 @@ namespace Glest {
glDisableClientState(GL_COLOR_ARRAY); glDisableClientState(GL_COLOR_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_VERTEX_ARRAY);
glDisable(GL_BLEND); //glDisable(GL_BLEND);
} }
} }
} }
@@ -6752,7 +6750,7 @@ namespace Glest {
} }
glEnd(); glEnd();
} }
glDisable(GL_BLEND); //glDisable(GL_BLEND);
//raindrops //raindrops
if (menuBackground->getRain()) { if (menuBackground->getRain()) {
@@ -8059,7 +8057,7 @@ namespace Glest {
glColor4fv(defColor.ptr()); glColor4fv(defColor.ptr());
//blend state //blend state
glDisable(GL_BLEND); //glDisable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
//if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__); //if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
@@ -8150,7 +8148,7 @@ namespace Glest {
//if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__); //if(SystemFlags::VERBOSE_MODE_ENABLED) printf("In [%s::%s %d]\n",extractFileFromDirectoryPath(__FILE__).c_str(),__FUNCTION__,__LINE__);
//disable everything //disable everything
glDisable(GL_BLEND); //glDisable(GL_BLEND);
glDisable(GL_LIGHTING); glDisable(GL_LIGHTING);
glDisable(GL_ALPHA_TEST); glDisable(GL_ALPHA_TEST);
glDisable(GL_DEPTH_TEST); glDisable(GL_DEPTH_TEST);
@@ -8322,7 +8320,7 @@ namespace Glest {
glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE); glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
//blend state //blend state
glDisable(GL_BLEND); //glDisable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
//alpha test state //alpha test state
@@ -8692,7 +8690,7 @@ namespace Glest {
glVertex2i(x + maxSize, y + progressbarHeight); glVertex2i(x + maxSize, y + progressbarHeight);
glVertex2i(x + maxSize, y); glVertex2i(x + maxSize, y);
glEnd(); glEnd();
glDisable(GL_BLEND); //glDisable(GL_BLEND);
//text //text
//glColor3fv(defColor.ptr()); //glColor3fv(defColor.ptr());
@@ -8744,7 +8742,7 @@ namespace Glest {
glVertex2i(x + maxSize, y + 10); glVertex2i(x + maxSize, y + 10);
glVertex2i(x + maxSize, y); glVertex2i(x + maxSize, y);
glEnd(); glEnd();
glDisable(GL_BLEND); //glDisable(GL_BLEND);
//text //text
glColor3fv(defColor.ptr()); glColor3fv(defColor.ptr());

View File

@@ -29,10 +29,10 @@ namespace Glest {
Display::Display() { Display::Display() {
if (SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem, "In [%s::%s Line: %d]\n", __FILE__, __FUNCTION__, __LINE__); if (SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem, "In [%s::%s Line: %d]\n", __FILE__, __FUNCTION__, __LINE__);
colors[0] = Vec4f(1.f, 1.f, 1.f, 0.0f); colors[0] = Vec4f(1.f, 1.f, 1.f, 1.0f);
colors[1] = Vec4f(1.f, 0.5f, 0.5f, 0.0f); colors[1] = Vec4f(1.f, 0.5f, 0.5f, 1.0f);
colors[2] = Vec4f(0.5f, 0.5f, 1.0f, 0.0f); colors[2] = Vec4f(0.5f, 0.5f, 1.0f, 1.0f);
colors[3] = Vec4f(0.5f, 1.0f, 0.5f, 0.0f); colors[3] = Vec4f(0.5f, 1.0f, 0.5f, 1.0f);
colors[4] = Vec4f(0.0f, 0.0f, 0.0f, 1.0f); colors[4] = Vec4f(0.0f, 0.0f, 0.0f, 1.0f);
colors[5] = Vec4f(0.0f, 0.0f, 1.0f, 1.0f); colors[5] = Vec4f(0.0f, 0.0f, 1.0f, 1.0f);
colors[6] = Vec4f(1.0f, 0.0f, 0.0f, 1.0f); colors[6] = Vec4f(1.0f, 0.0f, 0.0f, 1.0f);

View File

@@ -36,7 +36,7 @@ namespace Shared {
ModelRendererGl(); ModelRendererGl();
virtual void begin(bool renderNormals, bool renderTextures, bool renderColors, bool colorPickingMode, MeshCallback *meshCallback); virtual void begin(bool renderNormals, bool renderTextures, bool renderColors, bool colorPickingMode, MeshCallback *meshCallback);
virtual void end(); virtual void end();
virtual void render(Model *model, int renderMode = rmNormal); virtual void render(Model *model, int renderMode = rmNormal, float alpha = 1.0f);
virtual void renderNormalsOnly(Model *model); virtual void renderNormalsOnly(Model *model);
void setDuplicateTexCoords(bool duplicateTexCoords) { void setDuplicateTexCoords(bool duplicateTexCoords) {
@@ -48,7 +48,7 @@ namespace Shared {
private: private:
void renderMesh(Mesh *mesh, int renderMode = rmNormal); void renderMesh(Mesh *mesh, int renderMode = rmNormal, float alpha = 1.0f);
void renderMeshNormals(Mesh *mesh); void renderMeshNormals(Mesh *mesh);
}; };

View File

@@ -58,7 +58,7 @@ namespace Shared {
ModelRenderer() { ModelRenderer() {
renderNormals = false; renderNormals = false;
renderTextures = false; renderTextures = false;
renderColors = false; renderColors = true;
colorPickingMode = false; colorPickingMode = false;
meshCallback = NULL; meshCallback = NULL;
@@ -69,7 +69,7 @@ namespace Shared {
virtual void begin(bool renderNormals, bool renderTextures, bool renderColors, bool colorPickingMode, MeshCallback *meshCallback = NULL) = 0; virtual void begin(bool renderNormals, bool renderTextures, bool renderColors, bool colorPickingMode, MeshCallback *meshCallback = NULL) = 0;
virtual void end() = 0; virtual void end() = 0;
virtual void render(Model *model, int renderMode = rmNormal) = 0; virtual void render(Model *model, int renderMode = rmNormal, float alpha = 1.0f) = 0;
virtual void renderNormalsOnly(Model *model) = 0; virtual void renderNormalsOnly(Model *model) = 0;
}; };

View File

@@ -124,7 +124,7 @@ namespace Shared {
assertGl(); assertGl();
} }
void ModelRendererGl::render(Model *model, int renderMode) { void ModelRendererGl::render(Model *model, int renderMode, float alpha) {
//assertions //assertions
assert(rendering); assert(rendering);
assertGl(); assertGl();
@@ -134,7 +134,7 @@ namespace Shared {
//render every mesh //render every mesh
//if(model->getIsStaticModel() == true) { //if(model->getIsStaticModel() == true) {
for (uint32 i = 0; i < model->getMeshCount(); ++i) { for (uint32 i = 0; i < model->getMeshCount(); ++i) {
renderMesh(model->getMeshPtr(i), renderMode); renderMesh(model->getMeshPtr(i), renderMode, alpha);
} }
//} //}
//assertions //assertions
@@ -159,7 +159,7 @@ namespace Shared {
// ===================== PRIVATE ======================= // ===================== PRIVATE =======================
void ModelRendererGl::renderMesh(Mesh *mesh, int renderMode) { void ModelRendererGl::renderMesh(Mesh *mesh, int renderMode, float alpha) {
if (renderMode == rmSelection && mesh->getNoSelect() == true) {// don't render this and do nothing if (renderMode == rmSelection && mesh->getNoSelect() == true) {// don't render this and do nothing
return; return;
@@ -174,17 +174,19 @@ namespace Shared {
} else { } else {
glEnable(GL_CULL_FACE); glEnable(GL_CULL_FACE);
} }
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
//glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, Vec4f(1.0f, 1.0f, 1.0f, alpha).ptr());
if (renderMode == rmNormal && mesh->getGlow() == true) { if (renderMode == rmNormal && mesh->getGlow() == true) {
// glow on // glow on
glDisable(GL_LIGHTING); glDisable(GL_LIGHTING);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
} }
if (this->colorPickingMode == false) { if (this->colorPickingMode == false) {
//set color //set color
if (renderColors) { if (renderColors) {
Vec4f color(mesh->getDiffuseColor(), mesh->getOpacity()); Vec4f color(mesh->getDiffuseColor(), mesh->getOpacity() * alpha);
glColor4fv(color.ptr()); glColor4fv(color.ptr());
} }