feat: add 2D rendering pipeline

This commit is contained in:
2026-09-03 00:58:46 +02:00
parent d515a36403
commit c9fb6e991a
11 changed files with 557 additions and 3 deletions
+11
View File
@@ -1,9 +1,11 @@
#include "Lightkeeper.h"
#include <array>
#include <cmath>
#include <destrum/FS/AssetFS.h>
#include <destrum/Assets/AssetManager.h>
#include <destrum/Graphics/Managers/LineRenderingManager.h>
#include <destrum/Graphics/Managers/QuadRenderingManager.h>
#include "glm/gtx/transform.hpp"
#include "spdlog/spdlog.h"
#include <destrum/Components/Physics/Rigidbody.h>
@@ -444,6 +446,8 @@ void LightKeeper::customInit()
triggerObj->AddComponent<TriggerLoggerComponent>();
triggerObj->GetTransform().SetWorldPosition({0.0f, 0.0f, 0.0f});
const auto texPath = AssetFS::GetInstance().GetFullPath("engine://textures/kobe.png");
texID = resources.loadImageFromFile(gfxDevice, texPath);
}
@@ -487,6 +491,7 @@ void LightKeeper::customUpdate(float dt)
}
ImGui::End();
}
}
void LightKeeper::drawDebugMenuBar()
@@ -526,6 +531,8 @@ void LightKeeper::drawDebugMenuBar()
if (ImGui::BeginMenu("Render")) {
ImGui::MenuItem("Box Colliders", nullptr, &renderBoxColliders);
ImGui::MenuItem("2D Quads", nullptr, &renderQuads);
ImGui::MenuItem("Debug Lines", nullptr, &renderDebugLines);
ImGui::EndMenu();
}
@@ -660,6 +667,10 @@ void LightKeeper::customDraw()
renderer.beginDrawing(gfxDevice);
submitBoxColliderDebugLines();
QuadRenderingManager::GetInstance().SubmitQuad(
glm::vec2{100.0f, 100.0f}, glm::vec2{200.0f, 200.0f}, 0.0f,
glm::vec4{1.0f}, texID);
const RenderContext ctx{
.renderer = renderer,
.camera = camera,