CAdvWater::~CAdvWater() { glDeleteTextures(1, &reflectTexture); glDeleteTextures(1, &bumpTexture); glDeleteTextures(4, rawBumpTexture); glSafeDeleteProgram(waterFP); }
bool ProgramStringIsNative(GLenum target, const char* filename) { // clear any current GL errors so that the following check is valid glClearErrors(); const GLuint tempProg = LoadProgram(target, filename, (target == GL_VERTEX_PROGRAM_ARB? "vertex": "fragment")); if (tempProg == 0) { return false; } glSafeDeleteProgram(tempProg); return true; }
CSm3GroundDrawer::~CSm3GroundDrawer() { glSafeDeleteProgram( groundShadowVP ); configHandler.SetInt("SM3TerrainDetail", int(tr->config.detailMod * 100)); }
CDynWater::~CDynWater(void) { glDeleteTextures (1, &reflectTexture); glDeleteTextures (1, &refractTexture); glDeleteTextures (3, rawBumpTexture); glDeleteTextures (1, &detailNormalTex); glDeleteTextures (1, &waveTex1); glDeleteTextures (1, &waveTex2); glDeleteTextures (1, &waveTex3); glDeleteTextures (1, &waveHeight32); glDeleteTextures (1, &splashTex); glDeleteTextures (1, &foamTex); glDeleteTextures (1, &boatShape); glDeleteTextures (1, &hoverShape); glDeleteTextures (1, &zeroTex); glDeleteTextures (1, &fixedUpTex); glSafeDeleteProgram( waterFP ); glSafeDeleteProgram( waterVP ); glSafeDeleteProgram( waveFP ); glSafeDeleteProgram( waveVP ); glSafeDeleteProgram( waveFP2 ); glSafeDeleteProgram( waveVP2 ); glSafeDeleteProgram( waveNormalFP ); glSafeDeleteProgram( waveNormalVP ); glSafeDeleteProgram( waveCopyHeightFP ); glSafeDeleteProgram( waveCopyHeightVP ); glSafeDeleteProgram( dwGroundReflectIVP ); glSafeDeleteProgram( dwGroundRefractVP ); glSafeDeleteProgram( dwDetailNormalVP ); glSafeDeleteProgram( dwDetailNormalFP ); glSafeDeleteProgram( dwAddSplashVP ); glSafeDeleteProgram( dwAddSplashFP ); glDeleteFramebuffersEXT(1,&frameBuffer); }