GraphicsTest/main.cpp

86 lines
2.3 KiB
C++

#define STB_IMAGE_IMPLEMENTATION
#include <GLLoad.h>
#include <chrono>
#include <funcs.h>
#include <shader.h>
//#include <stb_image.h>
#include <thread>
#include <chrono>
#include <Window.h>
#include "Buffers.h"
#include "Draw.h"
#include "Camera.h"
NB::Camera* 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::Shader myShader("../shaders/vert.vs", "../shaders/frag.fs");
myShader.use();
NB::DrawBuffer myCube(myShader, {{3, GL_FLOAT}, {3, GL_FLOAT}}, GL_TRIANGLES);
std::vector<float> 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<unsigned int> 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, -2.0f));
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;
}