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
bool overridefogOfWarValue = fogOfWar;
for(int i=0; i<fowTex->getPixmap()->getW(); ++i){
for(int j=0; j<fowTex->getPixmap()->getH(); ++j){
for(int indexPixelWidth = 0;
indexPixelWidth < fowTex->getPixmap()->getW();
++indexPixelWidth){
for(int indexPixelHeight = 0;
indexPixelHeight < fowTex->getPixmap()->getH();
++indexPixelHeight){
if ((fogOfWar == false && overridefogOfWarValue == false) &&
(gameSettings->getFlagTypes1() & ft1_show_map_resources) != ft1_show_map_resources) {
float p0 = fowPixmap0->getPixelf(i, j);
float p1 = fowPixmap1->getPixelf(i, j);
//printf("Line: %d\n",__LINE__);
float p0 = fowPixmap0->getPixelf(indexPixelWidth, indexPixelHeight);
float p1 = fowPixmap1->getPixelf(indexPixelWidth, indexPixelHeight);
if (p0 > p1) {
fowPixmap1->setPixel(i, j, p0);
fowPixmap1->setPixel(indexPixelWidth, indexPixelHeight, p0);
}
else {
fowPixmap1->setPixel(i, j, p1);
fowPixmap1->setPixel(indexPixelWidth, indexPixelHeight, p1);
}
}
else if((fogOfWar && overridefogOfWarValue) ||
(gameSettings->getFlagTypes1() & ft1_show_map_resources) != ft1_show_map_resources) {
float p0= fowPixmap0->getPixelf(i, j);
float p1= fowPixmap1->getPixelf(i, j);
//printf("Line: %d\n",__LINE__);
if(p1>exploredAlpha){
fowPixmap1->setPixel(i, j, exploredAlpha);
float p0= fowPixmap0->getPixelf(indexPixelWidth, indexPixelHeight);
float p1= fowPixmap1->getPixelf(indexPixelWidth, indexPixelHeight);
if(p1 > exploredAlpha) {
fowPixmap1->setPixel(indexPixelWidth, indexPixelHeight, exploredAlpha);
}
if(p0>p1){
fowPixmap1->setPixel(i, j, p0);
if(p0 > p1) {
fowPixmap1->setPixel(indexPixelWidth, indexPixelHeight, p0);
}
}
else{
fowPixmap1->setPixel(i, j, 1.f);
else {
//printf("Line: %d\n",__LINE__);
fowPixmap1->setPixel(indexPixelWidth, indexPixelHeight, 1.f);
}
}
}
@ -218,12 +227,17 @@ void Minimap::resetFowTex() {
void Minimap::updateFowTex(float t) {
if(fowPixmap0 && fowTex) {
for(int i=0; i<fowPixmap0->getW(); ++i){
for(int j=0; j<fowPixmap0->getH(); ++j){
float p1= fowPixmap1->getPixelf(i, j);
if(p1!=fowTex->getPixmap()->getPixelf(i, j)){
float p0= fowPixmap0->getPixelf(i, j);
fowTex->getPixmap()->setPixel(i, j, p0+(t*(p1-p0)));
for(int indexPixelWidth = 0;
indexPixelWidth < fowPixmap0->getW();
++indexPixelWidth){
for(int indexPixelHeight = 0;
indexPixelHeight < fowPixmap0->getH();
++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) {
break;
}
if(chrono.getMillis() % 5 == 0) {
sleep(0);
}
}
if(showPerfStats) {