From 2088dde6caeff4874b5a6c09977021b3ca34c3f3 Mon Sep 17 00:00:00 2001 From: sebastian Date: Wed, 29 Jul 2026 14:44:07 +0200 Subject: [PATCH] ADD: Render first triangle --- .../shaders/{basic.vert.glsl => basic.vert} | 0 engine/src/core/Window.cpp | 1 + .../utils/openglWrapper/openglObjects/Vao.cpp | 3 +++ game/src/ColorRaceApp.cpp | 25 ++++++++++++++++++- game/src/ColorRaceApp.h | 18 ++++++++++++- 5 files changed, 45 insertions(+), 2 deletions(-) rename assets/shaders/{basic.vert.glsl => basic.vert} (100%) diff --git a/assets/shaders/basic.vert.glsl b/assets/shaders/basic.vert similarity index 100% rename from assets/shaders/basic.vert.glsl rename to assets/shaders/basic.vert diff --git a/engine/src/core/Window.cpp b/engine/src/core/Window.cpp index 1ebdc42..a02c0af 100644 --- a/engine/src/core/Window.cpp +++ b/engine/src/core/Window.cpp @@ -48,6 +48,7 @@ namespace engine { GLStateCache::init(); if (config.debugContext) { + std::cout << "Debug Context should be enabled" << std::endl; glEnable(GL_DEBUG_OUTPUT); glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS); glDebugMessageCallback(DebugCallback, nullptr); diff --git a/engine/src/utils/openglWrapper/openglObjects/Vao.cpp b/engine/src/utils/openglWrapper/openglObjects/Vao.cpp index 52cf342..537ebe6 100644 --- a/engine/src/utils/openglWrapper/openglObjects/Vao.cpp +++ b/engine/src/utils/openglWrapper/openglObjects/Vao.cpp @@ -5,6 +5,9 @@ #include "Vao.h" #include "Vao.h" +#include +#include + namespace engine { Vao::Vao(unsigned int id) : m_id(id) { diff --git a/game/src/ColorRaceApp.cpp b/game/src/ColorRaceApp.cpp index 10f14f2..61213f5 100644 --- a/game/src/ColorRaceApp.cpp +++ b/game/src/ColorRaceApp.cpp @@ -3,10 +3,33 @@ // #include "ColorRaceApp.h" + +#include +#include + +void ColorRaceApp::initTriangle() { + float vertices[] = { + -0.5f, -0.5f, 0.0f, + 0.5f, -0.5f, 0.0f, + 0.0f, 0.5f, 0.0f, + }; + + m_triangleVao = engine::Vao::create(); + + std::vector> attributes; + attributes.push_back(std::make_unique(0)); + m_triangleVao->initDataFeed(vertices, sizeof(vertices), GL_STATIC_DRAW, std::move(attributes)); + m_triangleVao->unbind(); +} + void ColorRaceApp::onUpdate(float deltaTime) { } void ColorRaceApp::onRender() { - + m_renderState.apply(); + m_triangleVao->bind(); + m_shader->start(); + glDrawArrays(GL_TRIANGLES, 0, 3); + m_shader->stop(); } \ No newline at end of file diff --git a/game/src/ColorRaceApp.h b/game/src/ColorRaceApp.h index 4806efb..52e51be 100644 --- a/game/src/ColorRaceApp.h +++ b/game/src/ColorRaceApp.h @@ -5,6 +5,9 @@ #ifndef COLORRACE_COLORRACEAPP_H #define COLORRACE_COLORRACEAPP_H #include "core/Application.h" +#include "utils/openglWrapper/GLRenderState.h" +#include "utils/openglWrapper/openglObjects/Vao.h" +#include "utils/openglWrapper/shader/ShaderProgram.h" class ColorRaceApp : public engine::Application { @@ -17,9 +20,22 @@ public: config.windowTitle = "ColorRace"; config.clearColor = glm::vec4(0.1f, 0.1f, 0.15f, 1.0f); config.vsync = true; + config.debugContext = true; return config; } - ColorRaceApp() : Application(makeConfig()) {} + ColorRaceApp() : Application(makeConfig()) { + m_renderState.depthTesting = false; + m_renderState.backfaceCulling = false; + + m_shader = std::make_unique("assets/shaders/basic.vert", "assets/shaders/basic.frag"); + initTriangle(); + } +private: + engine::GLRenderState m_renderState; + std::unique_ptr m_shader; + std::unique_ptr m_triangleVao; + + void initTriangle(); protected: void onUpdate(float deltaTime) override; void onRender() override;