diff --git a/headers/camera.hpp b/headers/camera.hpp index e21f414..01d78e0 100644 --- a/headers/camera.hpp +++ b/headers/camera.hpp @@ -10,7 +10,6 @@ public: void setRotate(float yaw, float pitch); glm::mat4 getView(); glm::mat4 getProjection(); - float aspect; private: void update(); @@ -21,5 +20,6 @@ private: float yaw; float pitch; float fov; + float aspect; }; #endif diff --git a/src/camera.cpp b/src/camera.cpp index c5863de..5f7f89d 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -3,8 +3,8 @@ #include Camera::Camera(glm::vec3 pos, float yaw, float pitch, float fov, float aspect) - : aspect(aspect), up(glm::vec3(0, 1, 0)), pos(pos), yaw(yaw), pitch(pitch), - fov(fov) { + : up(glm::vec3(0, 1, 0)), pos(pos), yaw(yaw), pitch(pitch), fov(fov), + aspect(aspect) { update(); } diff --git a/src/main.cpp b/src/main.cpp index 650f07d..65f806c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2,8 +2,9 @@ #include "camera.hpp" #include #include -#include #include +#include +#include #include #include #include @@ -61,25 +62,26 @@ int main(void) { Camera *cam = new Camera(glm::vec3(0.0, 0.0, 5.0), -90.0f, 0.0f, 45.0, 800.0 / 600); - glfwSetWindowUserPointer(window, cam); - glEnable(GL_DEPTH_TEST); while (!glfwWindowShouldClose(window)) { glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); shaderProgram->use(); + shaderProgram->setInt("Tex0", 0); shaderProgram->setMat4("view", cam->getView()); shaderProgram->setMat4("projection", cam->getProjection()); glBindVertexArray(VAO); + glEnable(GL_DEPTH_TEST); - texture->bind(GL_TEXTURE0); - texture2->bind(GL_TEXTURE1); - glActiveTexture(GL_TEXTURE0); for (unsigned int i = 0; i < 10; i++) { - shaderProgram->setInt("tex0", i%2); + if (i % 2 == 0) { + texture->bind(GL_TEXTURE0); + } else { + texture2->bind(GL_TEXTURE0); + } glm::mat4 model = glm::mat4(1.0f); model = glm::translate(model, cubePositions[i]); @@ -111,7 +113,4 @@ void processInput(GLFWwindow *window) { void framebuffer_size_callback(GLFWwindow *window, int width, int height) { UNUSED(window); glViewport(0, 0, width, height); - Camera *cam = (Camera *)glfwGetWindowUserPointer(window); - if (cam) - cam->aspect = (float)width/height; } diff --git a/src/texture.cpp b/src/texture.cpp index 85e0c00..df777db 100644 --- a/src/texture.cpp +++ b/src/texture.cpp @@ -25,7 +25,7 @@ Texture::Texture(GLenum type, const char *path) : type(type) { stbi_image_free(data); }; -Texture::~Texture() {glDeleteTextures(1, &ID);} +Texture::~Texture() {} void Texture::bind(GLenum texture) { glActiveTexture(texture);