Adding descriptor skeleton

This commit is contained in:
Dynamitos
2024-04-10 12:53:55 +02:00
parent b830fd378c
commit e9e483d9d1
7 changed files with 93 additions and 0 deletions
+4
View File
@@ -2,10 +2,14 @@ target_sources(Engine
PRIVATE
Command.h
Command.mm
Descriptor.h
Descriptor.mm
Enums.h
Enums.mm
Graphics.h
Graphics.mm
Pipeline.h
Pipeline.mm
PrivateImpl.mm
RenderPass.h
RenderPass.mm
+23
View File
@@ -0,0 +1,23 @@
#pragma once
#include "Graphics/Descriptor.h"
namespace Seele {
namespace Metal {
DECLARE_REF(Graphics)
class DescriptorLayout : public Gfx::DescriptorLayout
{
public:
DescriptorLayout(PGraphics graphics, const std::string& name);
virtual ~DescriptorLayout();
virtual void create();
private:
PGraphics graphics;
};
class PipelineLayout : public Gfx::PipelineLayout
{
public:
private:
};
}
}
+38
View File
@@ -0,0 +1,38 @@
#pragma once
#include "Graphics/Initializer.h"
#include "Graphics/Pipeline.h"
#include "Metal/MTLComputePipeline.hpp"
#include "Metal/MTLRenderPipeline.hpp"
#include "MinimalEngine.h"
namespace Seele {
namespace Metal {
class VertexInput : public Gfx::VertexInput
{
public:
VertexInput(VertexInputStateCreateInfo createInfo);
virtual ~VertexInput();
};
DECLARE_REF(PipelineLayout)
DECLARE_REF(Graphics)
class GraphicsPipeline : public Gfx::GraphicsPipeline
{
public:
GraphicsPipeline(PGraphics graphics, Gfx::LegacyPipelineCreateInfo createInfo);
GraphicsPipeline(PGraphics graphics, Gfx::MeshPipelineCreateInfo createInfo);
virtual ~GraphicsPipeline();
private:
MTL::RenderPipelineState* state;
};
DEFINE_REF(GraphicsPipeline)
class ComputePipeline : public Gfx::ComputePipeline
{
public:
ComputePipeline(PGraphics graphics, Gfx::ComputePipelineCreateInfo createInfo);
virtual ~ComputePipeline();
private:
MTL::ComputePipelineState* state;
};
DEFINE_REF(ComputePipeline)
}
}
+17
View File
@@ -0,0 +1,17 @@
#include "Pipeline.h"
#include "Graphics/Initializer.h"
#include "Graphics/Metal/Graphics.h"
#include "Graphics/Resources.h"
#include "Metal/MTLRenderPipeline.hpp"
using namespace Seele;
using namespace Seele::Metal;
VertexInput::VertexInput(VertexInputStateCreateInfo createInfo)
: Gfx::VertexInput(createInfo)
{
}
VertexInput::~VertexInput()
{
}
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "Graphics/Pipeline.h"
namespace Seele {
namespace Metal {
class PipelineCache
{
};
}
}