GraphicsTest/main.cpp
2024-10-20 03:33:32 -05:00

59 lines
1.5 KiB
C++

#define STB_IMAGE_IMPLEMENTATION
#include <glad/glad.h>
#include <GLFW/glfw3.h>
#include <stb_image.h>
#include <funcs.h>
#include <shader.h>
#include <NBEngine/Window.h>
#include "Draw.h"
int main() {
NB::NBWindow myWindow(800, 600, "Howdy Naif!");
auto window = myWindow.getWindow();
myWindow.init();
glfwSetFramebufferSizeCallback(window, framebuffer_size_callback);
NB::Shader myShader("../shaders/vert.vs", "../shaders/frag.fs");
myShader.use();
std::vector<NB::VertexAttribute> attrs = {
{2, GL_FLOAT, false},
{3, GL_FLOAT, false}
};
NB::DrawBuffer myBuffer(attrs, myShader);
myBuffer.generateElementBuffer({0, 1, 2}, GL_TRIANGLES);
std::vector<float> data_float = {
-0.5, -0.5, 1.0, 0.0, 0.0,
0.5, -0.5, 0.0, 1.0, 0.0,
0.0, 0.5, 0.0, 0.0, 1.0
};
myBuffer.generateVertexBuffer(NB::rawDataVector(data_float));
//glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
//glProvokingVertex(GL_FIRST_VERTEX_CONVENTION);
// Window loop
GLenum err;
while(!glfwWindowShouldClose(window)) {
while(err=glGetError()) {
std::cout << "[GL ERROR] " << err << "\n";
}
// Input checking
processInput(window);
// Rendering Loop
myShader.use();
glClearColor(0.2f, 0.4f, 0.3f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
myBuffer.draw();
// Events and buffer swap
glfwPollEvents();
glfwSwapBuffers(window);
}
glfwTerminate();
return 0;
}