2024-06-09 10:44:24 +02:00
|
|
|
#pragma once
|
|
|
|
|
#include "Graphics.h"
|
2024-06-09 12:20:04 +02:00
|
|
|
#include "Graphics/Initializer.h"
|
2024-06-09 10:44:24 +02:00
|
|
|
#include "Graphics/RayTracing.h"
|
|
|
|
|
#include <vulkan/vulkan_core.h>
|
|
|
|
|
|
2024-06-09 12:20:04 +02:00
|
|
|
|
|
|
|
|
namespace Seele {
|
|
|
|
|
namespace Vulkan {
|
|
|
|
|
class BottomLevelAS : public Gfx::BottomLevelAS {
|
|
|
|
|
public:
|
2024-06-09 10:44:24 +02:00
|
|
|
BottomLevelAS(PGraphics graphics, const Gfx::BottomLevelASCreateInfo& createInfo);
|
|
|
|
|
~BottomLevelAS();
|
2024-06-09 12:20:04 +02:00
|
|
|
|
|
|
|
|
private:
|
2024-06-09 10:44:24 +02:00
|
|
|
PGraphics graphics;
|
|
|
|
|
VkAccelerationStructureKHR handle;
|
|
|
|
|
};
|
|
|
|
|
DEFINE_REF(BottomLevelAS)
|
2024-06-09 12:20:04 +02:00
|
|
|
class TopLevelAS : public Gfx::TopLevelAS {
|
|
|
|
|
public:
|
2024-06-09 10:44:24 +02:00
|
|
|
TopLevelAS(PGraphics graphics, const Gfx::TopLevelASCreateInfo& createInfo);
|
|
|
|
|
~TopLevelAS();
|
2024-06-09 12:20:04 +02:00
|
|
|
|
|
|
|
|
private:
|
2024-06-09 10:44:24 +02:00
|
|
|
PGraphics graphics;
|
|
|
|
|
VkAccelerationStructureKHR handle;
|
|
|
|
|
};
|
|
|
|
|
DEFINE_REF(TopLevelAS)
|
2024-06-09 12:20:04 +02:00
|
|
|
} // namespace Vulkan
|
|
|
|
|
} // namespace Seele
|