2024-04-10 12:53:55 +02:00
|
|
|
#pragma once
|
|
|
|
|
#include "Graphics/Descriptor.h"
|
2024-04-10 15:50:20 +02:00
|
|
|
#include "Graphics/Initializer.h"
|
|
|
|
|
#include "MinimalEngine.h"
|
2024-04-10 12:53:55 +02:00
|
|
|
|
|
|
|
|
namespace Seele {
|
|
|
|
|
namespace Metal {
|
|
|
|
|
DECLARE_REF(Graphics)
|
2024-04-10 15:50:20 +02:00
|
|
|
DECLARE_REF(DescriptorPool)
|
2024-04-10 12:53:55 +02:00
|
|
|
class DescriptorLayout : public Gfx::DescriptorLayout
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
DescriptorLayout(PGraphics graphics, const std::string& name);
|
|
|
|
|
virtual ~DescriptorLayout();
|
2024-04-10 15:50:20 +02:00
|
|
|
virtual void create() override;
|
2024-04-10 12:53:55 +02:00
|
|
|
private:
|
|
|
|
|
PGraphics graphics;
|
|
|
|
|
};
|
|
|
|
|
class PipelineLayout : public Gfx::PipelineLayout
|
|
|
|
|
{
|
|
|
|
|
public:
|
2024-04-10 15:50:20 +02:00
|
|
|
PipelineLayout(PGraphics graphics, Gfx::PPipelineLayout baseLayout)
|
|
|
|
|
: Gfx::PipelineLayout(baseLayout)
|
|
|
|
|
, graphics(graphics)
|
|
|
|
|
{}
|
2024-04-10 12:53:55 +02:00
|
|
|
private:
|
2024-04-10 15:50:20 +02:00
|
|
|
PGraphics graphics;
|
|
|
|
|
};
|
|
|
|
|
DEFINE_REF(PipelineLayout)
|
2024-04-10 12:53:55 +02:00
|
|
|
|
2024-04-10 15:50:20 +02:00
|
|
|
class DescriptorSet : public Gfx::DescriptorSet
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
DescriptorSet(PGraphics graphics, PDescriptorPool owner)
|
|
|
|
|
: graphics(graphics)
|
|
|
|
|
, owner(owner)
|
|
|
|
|
{}
|
|
|
|
|
virtual ~DescriptorSet();
|
|
|
|
|
private:
|
|
|
|
|
PGraphics graphics;
|
|
|
|
|
PDescriptorPool owner;
|
|
|
|
|
};
|
|
|
|
|
DEFINE_REF(DescriptorSet)
|
|
|
|
|
|
|
|
|
|
class DescriptorPool : public Gfx::DescriptorPool
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
DescriptorPool(PGraphics graphics);
|
|
|
|
|
private:
|
|
|
|
|
PGraphics graphics;
|
2024-04-10 12:53:55 +02:00
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
}
|