#define STB_IMAGE_IMPLEMENTATION #include #include #include #include //#include #include #include #include #include "Buffers.h" #include "Draw.h" #include "Camera.h" NB::PerspectiveCamera* cam; float deltaTime = 0.0f; float lastFrame = 0.0f; 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::ShaderPreprocessor myPre; myPre.Directories.push_back("../shaders/"); std::stringstream myCode = myPre.loadFromDirectory("vert.vs"); NB::ShaderUnit myShad = myPre.process(myCode); std::cout << "-----------------------------\n"; std::cout << myShad.preprocSource.rdbuf() << "\n"; std::cout << "-----------------------------\n"; /* NB::Shader myShader(myPre.load("vert.vs"), myPre.load("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::PerspectiveCamera myCam(glm::vec3(0.0f, 0.0f, -2.0f), glm::vec3(0.0), glm::vec3(0.0, 1.0, 0.0), 45, 4.0/3.0, 0.01, 100); cam = &myCam; // myCam.setProjection(glm::perspective(glm::radians(45.0f), 800.0f/600.0f, 0.1f, 100.0f)); glm::mat4 lookMat; // Window loop GLenum err; glEnable(GL_CULL_FACE); while(!glfwWindowShouldClose(window)) { deltaTime = glfwGetTime() - lastFrame; lastFrame = glfwGetTime(); NB_GL_DEBUG_THROW("nothing", "during"); // Input checking processInput(window); // Rendering Loop myShader.use(); lookMat = myCam.getFlattenedMatrices(); 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 glfwPollEvents(); glfwSwapBuffers(window); } */ glfwTerminate(); return 0; }