diff --git a/source/glest_game/graphics/renderer.cpp b/source/glest_game/graphics/renderer.cpp index a82d4ae96..1ca65d4b6 100644 --- a/source/glest_game/graphics/renderer.cpp +++ b/source/glest_game/graphics/renderer.cpp @@ -372,6 +372,7 @@ void Renderer::initGame(const Game *game){ if(SystemFlags::getSystemSettingType(SystemFlags::debugSystem).enabled) SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s Line: %d]\n",__FILE__,__FUNCTION__,__LINE__); quadCache = VisibleQuadContainerCache(); + quadCache.clearFrustrumData(); SurfaceData::nextUniqueId = 1; mapSurfaceData.clear(); @@ -566,6 +567,7 @@ void Renderer::endGame(bool isFinalEnd) { game= NULL; quadCache = VisibleQuadContainerCache(); + quadCache.clearFrustrumData(); if(this->masterserverMode == true) { return; diff --git a/source/glest_game/graphics/renderer.h b/source/glest_game/graphics/renderer.h index d427cc905..43d5cf8b1 100644 --- a/source/glest_game/graphics/renderer.h +++ b/source/glest_game/graphics/renderer.h @@ -133,18 +133,9 @@ public: visibleScaledCellList.reserve(500); } void clearFrustrumData() { - for(unsigned int i = 0; i < frustumData.size(); ++i) { - vector &frustumDataInner = frustumData[i]; - for(unsigned int j = 0; j < frustumDataInner.size(); ++j) { - frustumDataInner[j] = 0.0f; - } - } - for(unsigned int i = 0; i < proj.size(); ++i) { - proj[i]= 0.0f; - } - for(unsigned int i = 0; i < modl.size(); ++i) { - modl[i]= 0.0f; - } + frustumData = vector >(6,vector(4,0)); + proj = vector(16,0); + modl = vector(16,0); } int cacheFrame; Quad2i lastVisibleQuad;