Render resource handling for camera

This commit is contained in:
Georg Hagen
2024-08-21 15:09:49 +02:00
parent 2d08b3ab91
commit 6f19758beb
4 changed files with 24 additions and 33 deletions

View File

@@ -13,10 +13,9 @@
namespace OpenVulkano::Scene
{
class Camera : public Node
class Camera : public RenderResourceHolder<Camera>, public Node
{
public:
ICloseable* renderCamera = nullptr;
static constexpr inline size_t SIZE = sizeof(Math::Matrix4f) * 3 + sizeof(Math::Vector4f) + sizeof(float) * 12;
static constexpr inline DescriptorSetLayoutBinding DESCRIPTOR_SET_LAYOUT_BINDING = { 0, DescriptorSetLayoutBinding::Type::TYPE_UNIFORM_BUFFER_DYNAMIC, 1, ShaderProgramType::ALL_GRAPHICS };
@@ -36,10 +35,7 @@ namespace OpenVulkano::Scene
{
}
~Camera() override
{
//if (renderCamera) renderCamera->Close();
}
~Camera() override = default;
void Init(float width, float height, float nearPlane, float farPlane)
{
@@ -152,6 +148,10 @@ namespace OpenVulkano::Scene
float GetWidth() const { return m_width; }
float GetHeight() const { return m_height; }
Math::Vector2f GetSize() const { return { m_width, m_height }; }
using RenderResourceHolder<Camera>::GetRenderResource;
using RenderResourceHolder<Camera>::HasRenderResource;
using RenderResourceHolder<Camera>::operator RenderResourcePtr&;
};
class PerspectiveCamera : public Camera