From b06264719db282aa6e980f86ba4ddc6e05dfd7bb Mon Sep 17 00:00:00 2001 From: Anselme Date: Mon, 21 Sep 2015 17:41:12 +0200 Subject: [PATCH] fixed some crappy rendering issues --- meshbuilder.cpp | 6 +++--- meshbuilder.h | 6 +++--- phongentity.cpp | 6 +----- phongentity.h | 1 - phongmaterial.cpp | 6 ++++++ 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/meshbuilder.cpp b/meshbuilder.cpp index 99416bf..ba8b53b 100644 --- a/meshbuilder.cpp +++ b/meshbuilder.cpp @@ -31,19 +31,19 @@ void MeshBuilder::addTexCoord(const glm::vec2 &texCoord) } -void MeshBuilder::addVertex(glm::vec3 &position, glm::vec3 &normal) +void MeshBuilder::addVertex(const glm::vec3 &position, const glm::vec3 &normal) { addPosition(position); addNormal(normal); } -void MeshBuilder::addVertex(glm::vec3 &position, glm::vec2 &texCoord) +void MeshBuilder::addVertex(const glm::vec3 &position, const glm::vec2 &texCoord) { addPosition(position); addTexCoord(texCoord); } -void MeshBuilder::addVertex(glm::vec3 &position, glm::vec3 &normal, glm::vec2 &texCoord) +void MeshBuilder::addVertex(const glm::vec3 &position, const glm::vec3 &normal, const glm::vec2 &texCoord) { addVertex(position, normal); addTexCoord(texCoord); diff --git a/meshbuilder.h b/meshbuilder.h index 5271e22..2eb092f 100644 --- a/meshbuilder.h +++ b/meshbuilder.h @@ -17,9 +17,9 @@ public: void addTexCoord(float u, float v); void addTexCoord(const glm::vec2 &texCoord); - void addVertex(glm::vec3 &position, glm::vec3 &normal); - void addVertex(glm::vec3 &position, glm::vec2 &texCoord); - void addVertex(glm::vec3 &position, glm::vec3 &normal, glm::vec2 &texCoord); + void addVertex(const glm::vec3 &position, const glm::vec3 &normal); + void addVertex(const glm::vec3 &position, const glm::vec2 &texCoord); + void addVertex(const glm::vec3 &position, const glm::vec3 &normal, const glm::vec2 &texCoord); void addGroup(Material* myMaterial); void setCurrentGroup(int groupId); diff --git a/phongentity.cpp b/phongentity.cpp index df50b12..837bbb1 100644 --- a/phongentity.cpp +++ b/phongentity.cpp @@ -10,11 +10,6 @@ PhongEntity::PhongEntity(Mesh* myMesh) : mesh(myMesh) {} -PhongEntity::~PhongEntity() -{ - delete[] vbo; -} - void PhongEntity::draw(const glm::mat4 viewMatrix, const glm::mat4 projectionMatrix, Lights::Light* dirLight, Lights* pointLights) { glm::mat4 modelViewMatrix = viewMatrix * modelMatrix; @@ -120,6 +115,7 @@ void PhongEntity::destroyGL() { glAssert(glDeleteVertexArrays(1, &vao)); glAssert(glDeleteBuffers(nb_buffers, vbo)); + delete[] vbo; } void PhongEntity::drawGroup(int groupId) diff --git a/phongentity.h b/phongentity.h index a6ca30c..782a8c3 100644 --- a/phongentity.h +++ b/phongentity.h @@ -33,7 +33,6 @@ public: glm::mat4 modelMatrix; PhongEntity(Mesh* myMesh); - ~PhongEntity(); void draw(const glm::mat4 viewMatrix, const glm::mat4 projectionMatrix, Lights::Light* dirLight, Lights* pointLights); void crappyDraw(const glm::mat4 viewMatrix, const glm::mat4 projectionMatrix, Lights::Light* dirLight, Lights* pointLights); diff --git a/phongmaterial.cpp b/phongmaterial.cpp index 7b3d8a4..3226aea 100644 --- a/phongmaterial.cpp +++ b/phongmaterial.cpp @@ -32,6 +32,12 @@ void PhongMaterial::crappyBindAttributes() glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess); if(diffuse_texture != NULL) diffuse_texture->bind(TEX_ID); + else + { + GLenum texSlot = GL_TEXTURE0+TEX_ID; + glActiveTexture(texSlot); + glBindTexture(GL_TEXTURE_2D, 0); + } } void PhongMaterial::setTexture(Texture* myTexture)