summaryrefslogtreecommitdiff
path: root/engine/xe_pipeline.cpp
diff options
context:
space:
mode:
authortylermurphy534 <tylermurphy534@gmail.com>2022-09-25 12:07:49 -0400
committertylermurphy534 <tylermurphy534@gmail.com>2022-09-25 12:07:49 -0400
commit7c1dfec94391ec283e41b6b942d08dbc6bb69a3a (patch)
treec97c50778aabe4ec40a0e543bf464278e434a939 /engine/xe_pipeline.cpp
parentremove Xe From engine class names (diff)
downloadminecraftvulkan-7c1dfec94391ec283e41b6b942d08dbc6bb69a3a.tar.gz
minecraftvulkan-7c1dfec94391ec283e41b6b942d08dbc6bb69a3a.tar.bz2
minecraftvulkan-7c1dfec94391ec283e41b6b942d08dbc6bb69a3a.zip
vertex data no longer hard coded
Diffstat (limited to 'engine/xe_pipeline.cpp')
-rwxr-xr-xengine/xe_pipeline.cpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/engine/xe_pipeline.cpp b/engine/xe_pipeline.cpp
index 3f407ec..633548f 100755
--- a/engine/xe_pipeline.cpp
+++ b/engine/xe_pipeline.cpp
@@ -16,9 +16,11 @@ namespace xe {
Device &device,
const std::string& vertFilepath,
const std::string& fragFilepath,
- const PipelineConfigInfo& configInfo)
- : xeDevice{device} {
- createGraphicsPipeline(vertFilepath, fragFilepath, configInfo);
+ const PipelineConfigInfo& configInfo,
+ std::vector<VkVertexInputAttributeDescription> &attributeDescptions,
+ uint32_t vertexSize
+ ) : xeDevice{device} {
+ createGraphicsPipeline(vertFilepath, fragFilepath, configInfo, attributeDescptions, vertexSize);
}
Pipeline::~Pipeline() {
@@ -48,7 +50,10 @@ namespace xe {
void Pipeline::createGraphicsPipeline(
const std::string& vertFilePath,
const std::string& fragFilepath,
- const PipelineConfigInfo& configInfo) {
+ const PipelineConfigInfo& configInfo,
+ std::vector<VkVertexInputAttributeDescription> &attributeDescptions,
+ uint32_t vertexSize
+ ) {
assert(
configInfo.pipelineLayout != VK_NULL_HANDLE &&
@@ -78,8 +83,13 @@ namespace xe {
shaderStages[1].pNext = nullptr;
shaderStages[1].pSpecializationInfo = nullptr;
- auto bindingDescriptions = Model::Vertex::getBindingDescriptions();
- auto attributeDescptions = Model::Vertex::getAttributeDescriptions();
+ VkVertexInputBindingDescription bindingDescription;
+ bindingDescription.binding = 0;
+ bindingDescription.stride = vertexSize;
+ bindingDescription.inputRate = VK_VERTEX_INPUT_RATE_VERTEX;
+
+ std::vector<VkVertexInputBindingDescription> bindingDescriptions{bindingDescription};
+
VkPipelineVertexInputStateCreateInfo vertexInputInfo{};
vertexInputInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO;
vertexInputInfo.vertexAttributeDescriptionCount = static_cast<uint32_t>(attributeDescptions.size());