From 73f4502dd3f3991a2f7b8d19b27a89d1d2b479da Mon Sep 17 00:00:00 2001 From: maelstrom Date: Fri, 27 Sep 2024 20:26:14 +0200 Subject: [PATCH] cube mesh --- src/defaultmeshes.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++ src/defaultmeshes.h | 6 ++++++ src/renderer.cpp | 17 +++++----------- 3 files changed, 58 insertions(+), 12 deletions(-) create mode 100644 src/defaultmeshes.cpp create mode 100644 src/defaultmeshes.h diff --git a/src/defaultmeshes.cpp b/src/defaultmeshes.cpp new file mode 100644 index 0000000..9b85a78 --- /dev/null +++ b/src/defaultmeshes.cpp @@ -0,0 +1,47 @@ +#include "defaultmeshes.h" + +Mesh* CUBE_MESH; + +void initMeshes() { + static float vertices[] = { + // positions // normals // texture coords + -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + 0.5f, -0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, + 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + 0.5f, 0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + -0.5f, 0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, + -0.5f, -0.5f, -0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + 0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, + 0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + 0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 1.0f, 1.0f, + -0.5f, 0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 1.0f, + -0.5f, -0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, + -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + -0.5f, 0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 1.0f, + -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + -0.5f, -0.5f, -0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + -0.5f, -0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + -0.5f, 0.5f, 0.5f, -1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + 0.5f, 0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f, + 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 0.5f, -0.5f, -0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, + 0.5f, -0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, + 0.5f, 0.5f, 0.5f, 1.0f, 0.0f, 0.0f, 1.0f, 0.0f, + -0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, + 0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 1.0f, + 0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, + 0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 1.0f, 0.0f, + -0.5f, -0.5f, 0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, + -0.5f, -0.5f, -0.5f, 0.0f, -1.0f, 0.0f, 0.0f, 1.0f, + -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, + 0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 1.0f, + 0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, + 0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, + -0.5f, 0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, + -0.5f, 0.5f, -0.5f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, + }; + + CUBE_MESH = new Mesh(36, vertices); +} \ No newline at end of file diff --git a/src/defaultmeshes.h b/src/defaultmeshes.h new file mode 100644 index 0000000..afce7e3 --- /dev/null +++ b/src/defaultmeshes.h @@ -0,0 +1,6 @@ +#pragma once +#include "mesh.h" + +extern Mesh* CUBE_MESH; + +void initMeshes(); \ No newline at end of file diff --git a/src/renderer.cpp b/src/renderer.cpp index be5fd73..b4585bc 100644 --- a/src/renderer.cpp +++ b/src/renderer.cpp @@ -3,26 +3,19 @@ #include #include "shader.h" #include "mesh.h" +#include "defaultmeshes.h" #include "renderer.h" -float verts[] { - // position // normals // tex coords - 0.5f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, - 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, - 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -}; - Shader *shader = NULL; -Mesh *triangleMesh = NULL; void renderInit(GLFWwindow* window) { glViewport(0, 0, 500, 500); + initMeshes(); + // Compile shader shader = new Shader("assets/shaders/orange.vs", "assets/shaders/orange.fs"); - - triangleMesh = new Mesh(3, verts); } void render(GLFWwindow* window) { @@ -32,6 +25,6 @@ void render(GLFWwindow* window) { // Use shader shader->use(); - triangleMesh->bind(); - glDrawArrays(GL_TRIANGLES, 0, 3); + CUBE_MESH->bind(); + glDrawArrays(GL_TRIANGLES, 0, 36); } \ No newline at end of file