From: <sv...@ww...> - 2004-11-14 18:08:58
|
Author: mkrose Date: 2004-11-14 10:08:51 -0800 (Sun, 14 Nov 2004) New Revision: 1309 Modified: trunk/CSP/Demeter/CHANGES.current trunk/CSP/Demeter/DemeterDrawable.cpp trunk/CSP/Demeter/Terrain.cpp Log: Save and restore gl state when rendering the terrain. Cures some texture anomalies. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1309 Modified: trunk/CSP/Demeter/CHANGES.current =================================================================== --- trunk/CSP/Demeter/CHANGES.current 2004-11-14 18:04:43 UTC (rev 1308) +++ trunk/CSP/Demeter/CHANGES.current 2004-11-14 18:08:51 UTC (rev 1309) @@ -1,18 +1,21 @@ Version 0.3.2 (in progress) =========================== +2004-11-14: onsight + Save and restore gl state when rendering the terrain. + 2004-10-18: delta - Changed GL_CLAMP mode to GL_CLAMP_TO_EDGE_EXT in CreateTexture - to avoid edge clamping problem on windows. Need to be tested on - GNU/Linux. - + Changed GL_CLAMP mode to GL_CLAMP_TO_EDGE_EXT in CreateTexture + to avoid edge clamping problem on windows. Need to be tested on + GNU/Linux. + 2004-09-29: delta - Added #NOMINMAX before including windows.h to avoid - conflict with std::max/min. - + Added #NOMINMAX before including windows.h to avoid + conflict with std::max/min. + 2004-04-25: delta Adjusted paths. - + 2003-12-06: delta Minor changes to shut up .net 7.1 warnings. Demeter debug version links onto release SDL_image.lib. Modified: trunk/CSP/Demeter/DemeterDrawable.cpp =================================================================== --- trunk/CSP/Demeter/DemeterDrawable.cpp 2004-11-14 18:04:43 UTC (rev 1308) +++ trunk/CSP/Demeter/DemeterDrawable.cpp 2004-11-14 18:08:51 UTC (rev 1309) @@ -216,14 +216,13 @@ if (m_RefTerrainLattice.valid()) { m_RefTerrainLattice->Tessellate(); - m_RefTerrainLattice->Render(); + m_RefTerrainLattice->Render(); } } void DemeterLatticeDrawable::SetCameraPosition(float x, float y, float z) { m_RefTerrainLattice->SetCameraPosition(x, y, z); - } Modified: trunk/CSP/Demeter/Terrain.cpp =================================================================== --- trunk/CSP/Demeter/Terrain.cpp 2004-11-14 18:04:43 UTC (rev 1308) +++ trunk/CSP/Demeter/Terrain.cpp 2004-11-14 18:08:51 UTC (rev 1309) @@ -3497,8 +3497,12 @@ void TerrainLattice::Render() { m_LatticePolygonsRendered = 0; - for (int i = 0; i < 9; i++) - { + int old_mode = -1; + glGetIntegerv(GL_MATRIX_MODE, &old_mode); + glPushAttrib(GL_ALL_ATTRIB_BITS); + glPushClientAttrib(GL_CLIENT_ALL_ATTRIB_BITS); + for (int i = 0; i < 9; i++) + { if (m_CurrentTerrainIndex[i] != -1) { if (m_pTextureFactory) @@ -3519,6 +3523,9 @@ m_LatticePolygonsRendered += m_TerrainPolygonsRendered; } } + glPopClientAttrib(); + glPopAttrib(); + glMatrixMode(old_mode); } void TerrainLattice::AddTerrainLoadListener(TerrainLoadListener& listener) |