- turned off the interpolation cache which was taking too much memory. Please test this to see if performance is affected, this should REALLY help with memory usage.

This commit is contained in:
Mark Vejvoda 2012-07-22 00:04:44 +00:00
parent e1054d6e07
commit f681b309a9
4 changed files with 13 additions and 3 deletions

View File

@ -25,6 +25,8 @@
#include "game_constants.h"
#include <wx/stdpaths.h>
#include <platform_util.h>
//#include "interpolation.h"
#ifndef WIN32
#include <errno.h>
#endif
@ -62,6 +64,7 @@ const string g3dviewerVersionString= "v1.3.6";
string fileFormat = "png";
namespace Glest { namespace Game {
string getGameReadWritePath(string lookupKey) {
string path = "";
if(path == "" && getenv("GLESTHOME") != NULL) {
@ -2035,6 +2038,8 @@ END_EVENT_TABLE()
// ===============================================
bool App::OnInit() {
//InterpolationData::setEnableCache(false);
SystemFlags::VERBOSE_MODE_ENABLED = false;
//Renderer::windowW = 1920;
//Renderer::windowH = 1440;

View File

@ -35,12 +35,14 @@ private:
std::map<float, std::map<bool, Vec3f *> > cacheVertices;
std::map<float, std::map<bool, Vec3f *> > cacheNormals;
bool enableCache;
static bool enableCache;
public:
InterpolationData(const Mesh *mesh);
~InterpolationData();
static void setEnableCache(bool enabled) { enableCache = enabled; }
const Vec3f *getVertices() const {return vertices==NULL? mesh->getVertices(): vertices;}
const Vec3f *getNormals() const {return normals==NULL? mesh->getNormals(): normals;}

View File

@ -30,6 +30,8 @@ namespace Shared{ namespace Graphics{
// class InterpolationData
// =====================================================
bool InterpolationData::enableCache = false;
InterpolationData::InterpolationData(const Mesh *mesh) {
assert(GlobalStaticFlags::getIsNonGraphicalModeEnabled() == false);
@ -43,8 +45,6 @@ InterpolationData::InterpolationData(const Mesh *mesh) {
normals= new Vec3f[mesh->getVertexCount()];
}
enableCache = true;
cacheVertices.clear();
cacheNormals.clear();
}

View File

@ -117,6 +117,9 @@ void Mesh::end() {
// ========================== shadows & interpolation =========================
void Mesh::buildInterpolationData(){
if(interpolationData != NULL) {
printf("**WARNING possible memory leak [Mesh::buildInterpolationData()]\n");
}
interpolationData= new InterpolationData(this);
}