fix: alot of stuff changed. Mostly bugfixxes / architechture changes

This commit is contained in:
2026-08-09 02:24:17 +02:00
parent 4b6f773c0c
commit 05384debbf
98 changed files with 5461 additions and 1751 deletions
@@ -10,6 +10,7 @@
#include <destrum/Graphics/Caches/MeshCache.h>
#include <destrum/Graphics/Frustum.h>
#include "volk.h"
#include "spdlog/spdlog.h"
MeshPipeline::MeshPipeline() = default;
@@ -22,6 +23,7 @@ void MeshPipeline::init(
VkFormat drawImageFormat,
VkFormat depthImageFormat)
{
try {
const auto vertexShader =
AssetFS::GetInstance().GetCookedPathForFile("engine://shaders/mesh.vert");
@@ -49,7 +51,7 @@ void MeshPipeline::init(
pipelineLayoutInfo.pPushConstantRanges = pushConstantRanges.data();
if (vkCreatePipelineLayout(
gfxDevice.getDevice().device,
gfxDevice.getDevice(),
&pipelineLayoutInfo,
nullptr,
&m_pipelineLayout) != VK_SUCCESS)
@@ -69,12 +71,16 @@ void MeshPipeline::init(
pipelineConfig.colorAttachments = {drawImageFormat};
pipelineConfig.depthAttachment = depthImageFormat;
m_pipeline = std::make_unique<Pipeline>(
m_pipeline = std::make_unique<Pipeline>(
gfxDevice,
vertexShader.string(),
fragShader.string(),
pipelineConfig
);
);
} catch (...) {
cleanup(gfxDevice.getDevice());
throw;
}
}
void MeshPipeline::draw(
@@ -188,8 +194,8 @@ void MeshPipeline::cleanup(VkDevice device)
{
m_pipeline.reset();
if (m_pipelineLayout != VK_NULL_HANDLE) {
if (m_pipelineLayout != VK_NULL_HANDLE && device != VK_NULL_HANDLE) {
vkDestroyPipelineLayout(device, m_pipelineLayout, nullptr);
m_pipelineLayout = VK_NULL_HANDLE;
}
}
m_pipelineLayout = VK_NULL_HANDLE;
}