From 3103c81baa99e0a22ee83f7844abea0b4fc43dab Mon Sep 17 00:00:00 2001 From: w1z7ard Date: Wed, 19 Sep 2007 21:32:26 +0000 Subject: [PATCH] more bug fixes- in particular, presetOutputs now has a destructor git-svn-id: https://projectm.svn.sourceforge.net/svnroot/projectm/trunk@444 6778bc44-b910-0410-a7a0-be141de4315d --- src/projectM-engine/PresetFrameIO.cpp | 40 ++++++++++++++++++++++++++- src/projectM-engine/PresetFrameIO.hpp | 4 ++- src/projectM-engine/Renderer.cpp | 9 ++---- 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/src/projectM-engine/PresetFrameIO.cpp b/src/projectM-engine/PresetFrameIO.cpp index 3428bf8d0..495d7afa8 100644 --- a/src/projectM-engine/PresetFrameIO.cpp +++ b/src/projectM-engine/PresetFrameIO.cpp @@ -12,7 +12,7 @@ void PresetInputs::Initialize ( int gx, int gy ) int x, y; this->gx =gx; - this->gy=gy; + this->gy= gy; this->x_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) ); for ( x = 0; x < gx; x++ ) @@ -74,9 +74,47 @@ void PresetInputs::Initialize ( int gx, int gy ) PresetOutputs::PresetOutputs() {} +PresetOutputs::~PresetOutputs() +{ + for ( int x = 0; x < this->gx; x++ ) + { + + + free(this->x_mesh[x]); + free(this->y_mesh[x]); + free(this->sx_mesh[x]); + free(this->sy_mesh[x]); + free(this->dy_mesh[x]); + free(this->dx_mesh[x]); + free(this->cy_mesh[x]); + free(this->cx_mesh[x]); + + free(this->warp_mesh[x]); + free(this->zoom_mesh[x]); + free(this->zoomexp_mesh[x]); + free(this->rot_mesh[x]); + + } + + free(this->x_mesh); + free(this->y_mesh); + free(this->sx_mesh); + free(this->sy_mesh); + free(this->dy_mesh); + free(this->dx_mesh); + free(this->cy_mesh); + free(this->cx_mesh); + free(this->warp_mesh); + free(this->zoom_mesh); + free(this->zoomexp_mesh); + free(this->rot_mesh); +} + void PresetOutputs::Initialize ( int gx, int gy ) { + this->gx = gx; + int x; this->x_mesh= ( float ** ) wipemalloc ( gx * sizeof ( float * ) ); for ( x = 0; x < gx; x++ ) diff --git a/src/projectM-engine/PresetFrameIO.hpp b/src/projectM-engine/PresetFrameIO.hpp index 724dc4c0c..156ad6f38 100644 --- a/src/projectM-engine/PresetFrameIO.hpp +++ b/src/projectM-engine/PresetFrameIO.hpp @@ -18,6 +18,7 @@ public: void Initialize(int gx, int gy); PresetOutputs(); + ~PresetOutputs(); /* PER FRAME VARIABLES BEGIN */ float zoom; float zoomexp; @@ -136,7 +137,8 @@ public: bool two_waves; double wave_rot; double wave_scale; - + private: + int gy,gx; }; /// Container for all *read only* engine variables a preset requires to diff --git a/src/projectM-engine/Renderer.cpp b/src/projectM-engine/Renderer.cpp index cbdd7aed0..218a2ff82 100644 --- a/src/projectM-engine/Renderer.cpp +++ b/src/projectM-engine/Renderer.cpp @@ -279,7 +279,7 @@ Renderer::~Renderer() { std::cerr << "freeing grid elements" << std::endl; assert(gx > 0); for(x = 0; x < this->gx; x++) - { + { free(this->gridx[x]); free(this->gridy[x]); free(this->origx2[x]); @@ -299,7 +299,7 @@ std::cerr << "grid assign begin " << std::endl; this->origy2 = NULL; this->gridx = NULL; this->gridy = NULL; - + std::cerr << "grid assign end" << std::endl; #endif @@ -399,11 +399,6 @@ void Renderer::reset(int w, int h) this -> vw = w; this -> vh = h; -//FIXME maybe needs called elsewhere - //if (!this->renderTarget->usePbuffers) { - // renderTarge->createPBuffers(w,h,this->renderTarget); - // } - /* Our shading model--Gouraud (smooth). */ glShadeModel( GL_SMOOTH); /* Culling. */