runtime pipeline

This commit is contained in:
Jorijn van der Graaf 2026-02-22 00:46:38 +01:00
commit 415e523a45
20 changed files with 480 additions and 45 deletions

View file

@ -25,27 +25,24 @@ module;
export module Crafter.Graphics:Mesh;
import std;
import Crafter.Math;
import :VulkanBuffer;
export namespace Crafter {
struct __attribute__((packed)) Vertex {
float x;
float y;
float z;
};
#ifdef CRAFTER_GRAPHICS_VULKAN
class Mesh {
public:
VulkanBuffer<char, false, true, false> scratchBuffer;
VulkanBuffer<char, false, true, false> blasBuffer;
VulkanBuffer<Vertex, true, true, false> vertexBuffer;
VulkanBuffer<Vector<float, 3, 3>, true, true, false> vertexBuffer;
VulkanBuffer<std::uint32_t, true, true, false> indexBuffer;
VkAccelerationStructureGeometryTrianglesDataKHR blasData;
VkAccelerationStructureGeometryKHR blas;
VkAccelerationStructureKHR accelerationStructure;
VkDeviceAddress blasAddr;
bool opaque;
void Build(std::span<Vertex> verticies, std::span<std::uint32_t> indicies, VkCommandBuffer cmd);
void Build(std::span<Vector<float, 3, 3>> verticies, std::span<std::uint32_t> indicies, VkCommandBuffer cmd);
};
#endif
}