From 9298d88260751f80e436b392f072483415d76199 Mon Sep 17 00:00:00 2001 From: Anakin Date: Sat, 12 Nov 2016 12:17:46 +0100 Subject: [PATCH] cleaning up before loading new stuff, next step: calculate best first view position --- MshViewer/Header/OpenGLController.h | 1 + MshViewer/Source/OpenGlController.cpp | 44 ++++++++++++++++----------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/MshViewer/Header/OpenGLController.h b/MshViewer/Header/OpenGLController.h index 25121fd..2d7f1d5 100644 --- a/MshViewer/Header/OpenGLController.h +++ b/MshViewer/Header/OpenGLController.h @@ -94,6 +94,7 @@ private: // private functions private: void processInit(); + void deleteVectors(); void startGLFW(); void createWindow(); diff --git a/MshViewer/Source/OpenGlController.cpp b/MshViewer/Source/OpenGlController.cpp index cb49950..418a87d 100644 --- a/MshViewer/Source/OpenGlController.cpp +++ b/MshViewer/Source/OpenGlController.cpp @@ -28,24 +28,7 @@ OpenGLController::~OpenGLController() glDeleteTextures(1, &gluiSamplerID); glfwTerminate(); - while (!vModels.empty()) - { - Modl* cursor = vModels.back(); - vModels.pop_back(); - - delete cursor->uv; - delete cursor->mesh; - delete cursor->vertex; - delete cursor; - } - - while (!vTextures.empty()) - { - textureData* cursor = vTextures.back(); - vTextures.pop_back(); - delete cursor->data; - delete cursor; - } + deleteVectors(); } @@ -124,6 +107,28 @@ void OpenGLController::processInit() glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); } +void OpenGLController::deleteVectors() +{ + while (!vModels.empty()) + { + Modl* cursor = vModels.back(); + vModels.pop_back(); + + delete cursor->uv; + delete cursor->mesh; + delete cursor->vertex; + delete cursor; + } + + while (!vTextures.empty()) + { + textureData* cursor = vTextures.back(); + vTextures.pop_back(); + delete cursor->data; + delete cursor; + } +} + void OpenGLController::startGLFW() { if (!glfwInit()) @@ -310,6 +315,9 @@ void OpenGLController::updateScene() void OpenGLController::loadMsh(const char * path) { + // clean up old stuff first + deleteVectors(); + // get all models try {