36 ~VulkanShaderResource()
override;
38 void DestroyShaderModules();
41 VkPipelineLayout pipelineLayout;
43 vc::Vector<VkVertexInputBindingDescription> bindingDescriptions;
44 vc::Vector<VkVertexInputAttributeDescription> attributeDescriptions;
46 VkPipelineMultisampleStateCreateInfo multisamplingCreateInfo;
47 VkPipelineRasterizationStateCreateInfo rasterizerCreateInfo;
48 VkPipelineDepthStencilStateCreateInfo depthStencilCreateInfo;
50 vc::Vector<VkPipelineShaderStageCreateInfo> shaderStages;
53 PipelineType pipelineType;
59 VulkanShaderPipeline();
60 ~VulkanShaderPipeline()
override;
61 VulkanShaderPipeline(
const VulkanShaderPipeline&) =
delete;
62 VulkanShaderPipeline& operator=(
const VulkanShaderPipeline&) =
delete;
63 VulkanShaderPipeline(VulkanShaderPipeline&& other)
noexcept;
64 VulkanShaderPipeline& operator=(VulkanShaderPipeline&& other)
noexcept;
67 vc::Error _LoadShader(
const vc::String & path)
override;
68 void _SetMultiSamplingCount(
const int samples)
override;
69 void _SetLineWidth(
const float width)
override;
70 void _SetDepthTest(
const bool enable)
override;
71 void _SetDepthWrite(
const bool enable)
override;
72 vc::Error _OpenShaders()
override;
73 vc::Error _ReloadShader()
override;
75 void _AddVertexBufferToLayout(
const uint32_t vertexSize,
const uint32_t binding,
const uint32_t location,
const uint32_t offset,
const vc::ShaderVertexFormat format)
override;
76 vc::Error LoadShaders();
77 VkPipeline GetPipeline()
const;
78 VkPipelineLayout GetPipelineLayout()
const;
79 const VkDescriptorSetLayout & GetDescriptorSetLayout()
const;
81 vc::Error LoadShader(
const vc::String& shaderPath, VkPipelineShaderStageCreateInfo * pipelineCreateInfo);
void _ResetResource() override
Resets the resource, should be implemented by the final class, i.e. VulkanTextureResource.
Definition ShaderPipeline.cc:120