3#include "../Interface/ShaderProgram.hpp"
5#include <initializer_list>
7#include <vulkan/vulkan.h>
67 void AddMaterial(
unsigned int textures);
68 void AddPushConstants(
unsigned int pushConstantCount, ShaderSource::ReflectionInfo::PushConstant* pushConstants,
bool isComputeShader);
75 bool usesPushConstants = false;
76 VkPushConstantRange pushConstantRange;
A shader program.
Definition: ShaderProgram.hpp:11
BindingType
A type of bound resource.
Definition: ShaderProgram.hpp:14
@ BINDING_TYPES
Total number of binding types.
Definition: ShaderProgram.hpp:19
Low-level renderer implementing Vulkan.
Definition: VulkanRenderer.hpp:24
Vulkan implementation of Shader.
Definition: VulkanShader.hpp:11
Vulkan implementation of ShaderProgram.
Definition: VulkanShaderProgram.hpp:16
~VulkanShaderProgram() final
Destructor.
Definition: VulkanShaderProgram.cpp:71
const VkPushConstantRange * GetPushConstantRange() const
Get the push constant range.
Definition: VulkanShaderProgram.cpp:83
const StorageBufferInfo & GetStorageBufferInfo(uint32_t binding) const
Get reflection info about a storage buffer used in the shader.
Definition: VulkanShaderProgram.cpp:87
const VkDescriptorSetLayout * GetDescriptorSetLayouts() const
Get the descriptor set layouts.
Definition: VulkanShaderProgram.cpp:79
const std::vector< const VulkanShader * > & GetShaders() const
Get the shaders in the shader program.
Definition: VulkanShaderProgram.cpp:75
VulkanShaderProgram(VulkanRenderer *vulkanRenderer, std::initializer_list< const Shader * > shaders)
Create new Vulkan shader program.
Definition: VulkanShaderProgram.cpp:10
Definition: Editor.hpp:18
Informationa bout a storage buffer used in the shader program.
Definition: VulkanShaderProgram.hpp:19
bool readWrite
Whether the buffer is written to.
Definition: VulkanShaderProgram.hpp:24
VkPipelineStageFlags pipelineStages
Which pipeline stages the buffer is used in.
Definition: VulkanShaderProgram.hpp:21