Add initial support for compute pipelines

This commit is contained in:
SirLynix
2022-12-24 11:54:55 +01:00
committed by Jérôme Leclercq
parent e4064997d8
commit 9578ba3ef5
57 changed files with 915 additions and 182 deletions

View File

@@ -9,6 +9,7 @@
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Renderer/Config.hpp>
#include <Nazara/Renderer/Enums.hpp>
#include <memory>
#include <string_view>
#include <variant>
@@ -43,6 +44,18 @@ namespace Nz
ShaderBinding& operator=(const ShaderBinding&) = delete;
ShaderBinding& operator=(ShaderBinding&&) = delete;
struct SampledTextureBinding
{
const Texture* texture;
const TextureSampler* sampler;
};
struct SampledTextureBindings
{
UInt32 arraySize;
const SampledTextureBinding* textureBindings;
};
struct StorageBufferBinding
{
RenderBuffer* buffer;
@@ -53,13 +66,7 @@ namespace Nz
struct TextureBinding
{
const Texture* texture;
const TextureSampler* sampler;
};
struct TextureBindings
{
UInt32 arraySize;
const TextureBinding* textureBindings;
TextureAccess access;
};
struct UniformBufferBinding
@@ -72,7 +79,7 @@ namespace Nz
struct Binding
{
UInt32 bindingIndex;
std::variant<StorageBufferBinding, TextureBinding, TextureBindings, UniformBufferBinding> content;
std::variant<SampledTextureBinding, SampledTextureBindings, StorageBufferBinding, TextureBinding, UniformBufferBinding> content;
};
protected: