43 lines
1.2 KiB
C++
43 lines
1.2 KiB
C++
#include "copium/pipeline/PipelineCreator.h"
|
|
|
|
#include "copium/util/Common.h"
|
|
|
|
namespace Copium
|
|
{
|
|
PipelineCreator::PipelineCreator(VkRenderPass renderPass, const std::string& vertexShader, const std::string& fragmentShader)
|
|
: vertexShader{vertexShader},
|
|
fragmentShader{fragmentShader},
|
|
renderPass{renderPass}
|
|
{}
|
|
|
|
void PipelineCreator::SetVertexDescriptor(const VertexDescriptor& descriptor)
|
|
{
|
|
vertexDescriptor = descriptor;
|
|
}
|
|
|
|
void PipelineCreator::AddDescriptorSetLayoutBinding(uint32_t set, uint32_t binding, VkDescriptorType type, uint32_t count, VkShaderStageFlags stageFlags)
|
|
{
|
|
CP_ASSERT(set <= descriptorSetLayouts.size(), "AddDescriptorSetLayoutBinding : Cannot add descriptor set with set number greater than the current set count");
|
|
descriptorSetLayouts[set].emplace_back(DescriptorSetBinding{binding, type, count, stageFlags});
|
|
}
|
|
|
|
void PipelineCreator::SetPrimitiveTopology(VkPrimitiveTopology primitiveTopology)
|
|
{
|
|
topology = primitiveTopology;
|
|
}
|
|
|
|
void PipelineCreator::SetCullMode(VkCullModeFlags flags)
|
|
{
|
|
cullMode = flags;
|
|
}
|
|
|
|
void PipelineCreator::SetCullFrontFace(VkFrontFace cullFrontFace)
|
|
{
|
|
frontFace = cullFrontFace;
|
|
}
|
|
|
|
void PipelineCreator::SetDepthTest(bool depthTest)
|
|
{
|
|
this->depthTest = depthTest;
|
|
}
|
|
} |