#define STB_IMAGE_IMPLEMENTATION #include #include #include #include //#include #include #include #include #include "Draw.h" #include "Buffers.h" NB::Camera* cam; int main() { NB::Window myWindow(800, 600, "Howdy Naif!"); myWindow.setWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); myWindow.setWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); myWindow.init(); auto window = myWindow.getWindow(); glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); NB::Shader myShader("../shaders/vert.vs", "../shaders/frag.fs"); myShader.use(); NB::DrawBuffer myCube(myShader, {{3, GL_FLOAT}, {3, GL_FLOAT}}, GL_TRIANGLES); std::vector vert_data = { -.5, -.5, -.5, 0, 0, 0, 0.5, -.5, -.5, 1, 0, 0, -.5, 0.5, -.5, 0, 1, 0, 0.5, 0.5, -.5, 1, 1, 0, -.5, -.5, 0.5, 0, 0, 1, 0.5, -.5, 0.5, 1, 0, 1, -.5, 0.5, 0.5, 0, 1, 1, 0.5, 0.5, 0.5, 1, 1, 1, }; std::vector elmt_data = { 0, 2, 3, 0, 3, 1, 4, 7, 6, 4, 5, 7, 4, 6, 2, 4, 2, 0, 1, 3, 7, 1, 7, 5, 4, 0, 1, 4, 1, 5, 2, 6, 7, 2, 7, 3 }; myCube.generateVBO(NB::vectorToRaw(vert_data)); myCube.generateEBO(elmt_data); NB::Camera myCam(glm::vec3(0.0f, 0.0f, 1.0f)); cam = &myCam; glm::mat4 lookMat; // Window loop GLenum err; while(!glfwWindowShouldClose(window)) { NB_GL_DEBUG_THROW("nothing", "during"); // Input checking processInput(window); // Rendering Loop myShader.use(); lookMat = myCam.getLookMatrix(); myShader.setMat4("look", lookMat); glClearColor(0.2f, 0.4f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); myCube.draw(); // Events and buffer swap // myDrawing.draw(); glfwPollEvents(); glfwSwapBuffers(window); } glfwTerminate(); return 0; }