2020-02-25 00:44:40 +01:00
|
|
|
#pragma once
|
2020-03-05 11:43:38 +01:00
|
|
|
#include "MinimalEngine.h"
|
2020-02-25 00:44:40 +01:00
|
|
|
namespace Seele
|
|
|
|
|
{
|
|
|
|
|
struct GraphicsInitializer
|
|
|
|
|
{
|
|
|
|
|
const char* windowLayoutFile;
|
|
|
|
|
};
|
2020-03-02 19:07:49 +01:00
|
|
|
struct WindowCreateInfo
|
|
|
|
|
{
|
|
|
|
|
int32 width;
|
|
|
|
|
int32 height;
|
|
|
|
|
const char* title;
|
|
|
|
|
bool bFullscreen;
|
|
|
|
|
};
|
2020-03-06 11:32:01 +01:00
|
|
|
|
|
|
|
|
class RenderCommandBase
|
|
|
|
|
{
|
2020-03-02 19:07:49 +01:00
|
|
|
|
2020-03-06 11:32:01 +01:00
|
|
|
};
|
|
|
|
|
DECLARE_REF(RenderCommandBase);
|
|
|
|
|
|
|
|
|
|
class DescriptorBinding
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
DescriptorBinding()
|
|
|
|
|
: binding(0)
|
|
|
|
|
, descriptorType(VK_DESCRIPTOR_TYPE_MAX_ENUM)
|
|
|
|
|
, descriptorCount(-1)
|
|
|
|
|
, shaderStages(VK_SHADER_STAGE_ALL)
|
|
|
|
|
{}
|
|
|
|
|
DescriptorBinding(const DescriptorBinding& other)
|
|
|
|
|
: binding(other.binding)
|
|
|
|
|
, descriptorType(other.descriptorType)
|
|
|
|
|
, descriptorCount(other.descriptorCount)
|
|
|
|
|
, shaderStages(other.shaderStages)
|
|
|
|
|
{}
|
|
|
|
|
void operator=(const DescriptorBinding& other)
|
|
|
|
|
{
|
|
|
|
|
binding = other.binding;
|
|
|
|
|
descriptorType = other.descriptorType;
|
|
|
|
|
descriptorCount = other.descriptorCount;
|
|
|
|
|
shaderStages = other.shaderStages;
|
|
|
|
|
}
|
|
|
|
|
uint32_t binding;
|
|
|
|
|
//TODO make generic enum
|
|
|
|
|
VkDescriptorType descriptorType;
|
|
|
|
|
uint32_t descriptorCount;
|
|
|
|
|
VkShaderStageFlags shaderStages;
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(DescriptorBinding);
|
|
|
|
|
|
|
|
|
|
class DescriptorAllocator
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(DescriptorAllocator);
|
|
|
|
|
|
|
|
|
|
class DescriptorSet
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(DescriptorSet);
|
|
|
|
|
|
|
|
|
|
class DescriptorLayout
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(DescriptorLayout);
|
|
|
|
|
class PipelineLayout
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(PipelineLayout);
|
|
|
|
|
class VertexDeclaration
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(VertexDeclaration);
|
|
|
|
|
class GraphicsPipeline
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(GraphicsPipeline);
|
|
|
|
|
class UniformBuffer
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(UniformBuffer);
|
|
|
|
|
class Viewport
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(Viewport);
|
|
|
|
|
class VertexBuffer
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(VertexBuffer);
|
|
|
|
|
class IndexBuffer
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(IndexBuffer);
|
|
|
|
|
class StructuredBuffer
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(StructuredBuffer);
|
|
|
|
|
class Texture
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(Texture);
|
|
|
|
|
class Texture2D : public Texture
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(Texture2D);
|
|
|
|
|
class RenderPass
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
DECLARE_REF(RenderPass);
|
2020-02-25 00:44:40 +01:00
|
|
|
}
|