attempt to squeeze a bit more performance

This commit is contained in:
Mark Vejvoda
2013-11-11 19:33:25 +00:00
parent 07ac33ec99
commit 6705a346ef
2 changed files with 37 additions and 20 deletions

View File

@@ -183,33 +183,42 @@ void Minimap::resetFowTex() {
// Could turn off ONLY fog of war by setting below to false // Could turn off ONLY fog of war by setting below to false
bool overridefogOfWarValue = fogOfWar; bool overridefogOfWarValue = fogOfWar;
for(int i=0; i<fowTex->getPixmap()->getW(); ++i){ for(int indexPixelWidth = 0;
for(int j=0; j<fowTex->getPixmap()->getH(); ++j){ indexPixelWidth < fowTex->getPixmap()->getW();
++indexPixelWidth){
for(int indexPixelHeight = 0;
indexPixelHeight < fowTex->getPixmap()->getH();
++indexPixelHeight){
if ((fogOfWar == false && overridefogOfWarValue == false) && if ((fogOfWar == false && overridefogOfWarValue == false) &&
(gameSettings->getFlagTypes1() & ft1_show_map_resources) != ft1_show_map_resources) { (gameSettings->getFlagTypes1() & ft1_show_map_resources) != ft1_show_map_resources) {
float p0 = fowPixmap0->getPixelf(i, j); //printf("Line: %d\n",__LINE__);
float p1 = fowPixmap1->getPixelf(i, j);
float p0 = fowPixmap0->getPixelf(indexPixelWidth, indexPixelHeight);
float p1 = fowPixmap1->getPixelf(indexPixelWidth, indexPixelHeight);
if (p0 > p1) { if (p0 > p1) {
fowPixmap1->setPixel(i, j, p0); fowPixmap1->setPixel(indexPixelWidth, indexPixelHeight, p0);
} }
else { else {
fowPixmap1->setPixel(i, j, p1); fowPixmap1->setPixel(indexPixelWidth, indexPixelHeight, p1);
} }
} }
else if((fogOfWar && overridefogOfWarValue) || else if((fogOfWar && overridefogOfWarValue) ||
(gameSettings->getFlagTypes1() & ft1_show_map_resources) != ft1_show_map_resources) { (gameSettings->getFlagTypes1() & ft1_show_map_resources) != ft1_show_map_resources) {
float p0= fowPixmap0->getPixelf(i, j); //printf("Line: %d\n",__LINE__);
float p1= fowPixmap1->getPixelf(i, j);
if(p1>exploredAlpha){ float p0= fowPixmap0->getPixelf(indexPixelWidth, indexPixelHeight);
fowPixmap1->setPixel(i, j, exploredAlpha); float p1= fowPixmap1->getPixelf(indexPixelWidth, indexPixelHeight);
if(p1 > exploredAlpha) {
fowPixmap1->setPixel(indexPixelWidth, indexPixelHeight, exploredAlpha);
} }
if(p0>p1){ if(p0 > p1) {
fowPixmap1->setPixel(i, j, p0); fowPixmap1->setPixel(indexPixelWidth, indexPixelHeight, p0);
} }
} }
else{ else {
fowPixmap1->setPixel(i, j, 1.f); //printf("Line: %d\n",__LINE__);
fowPixmap1->setPixel(indexPixelWidth, indexPixelHeight, 1.f);
} }
} }
} }
@@ -218,12 +227,17 @@ void Minimap::resetFowTex() {
void Minimap::updateFowTex(float t) { void Minimap::updateFowTex(float t) {
if(fowPixmap0 && fowTex) { if(fowPixmap0 && fowTex) {
for(int i=0; i<fowPixmap0->getW(); ++i){ for(int indexPixelWidth = 0;
for(int j=0; j<fowPixmap0->getH(); ++j){ indexPixelWidth < fowPixmap0->getW();
float p1= fowPixmap1->getPixelf(i, j); ++indexPixelWidth){
if(p1!=fowTex->getPixmap()->getPixelf(i, j)){ for(int indexPixelHeight = 0;
float p0= fowPixmap0->getPixelf(i, j); indexPixelHeight < fowPixmap0->getH();
fowTex->getPixmap()->setPixel(i, j, p0+(t*(p1-p0))); ++indexPixelHeight){
float p1 = fowPixmap1->getPixelf(indexPixelWidth, indexPixelHeight);
float p2 = fowTex->getPixmap()->getPixelf(indexPixelWidth, indexPixelHeight);
if(p1 != p2) {
float p0 = fowPixmap0->getPixelf(indexPixelWidth, indexPixelHeight);
fowTex->getPixmap()->setPixel(indexPixelWidth, indexPixelHeight, p0+(t*(p1-p0)));
} }
} }
} }

View File

@@ -655,6 +655,9 @@ void World::updateAllFactionUnits() {
if(workThreadsFinished == true) { if(workThreadsFinished == true) {
break; break;
} }
if(chrono.getMillis() % 5 == 0) {
sleep(0);
}
} }
if(showPerfStats) { if(showPerfStats) {