Add vertex buffer step mode config

This commit is contained in:
Georg Hagen
2025-01-04 20:58:49 +01:00
parent 6ccef62ad3
commit c0e85d4fba
2 changed files with 7 additions and 2 deletions

View File

@@ -12,6 +12,8 @@
namespace OpenVulkano
{
enum class VertexStepMode : uint32_t { VERTEX = 0, INSTANCE };
struct VertexInputParameter
{
uint32_t location;
@@ -32,13 +34,16 @@ namespace OpenVulkano
{
uint32_t bindingId;
uint32_t vertexSize;
VertexStepMode stepMode = VertexStepMode::VERTEX;
std::vector<VertexInputParameter> inputParameters;
VertexInputDescription(uint32_t bindingId, uint32_t vertexSize) : bindingId(bindingId), vertexSize(vertexSize)
{}
VertexInputDescription(uint32_t bindingId, const VertexInputDescription& vertexDescription)
: bindingId(bindingId), vertexSize(vertexDescription.vertexSize), inputParameters(vertexDescription.inputParameters)
: bindingId(bindingId), vertexSize(vertexDescription.vertexSize)
, stepMode(vertexDescription.stepMode)
, inputParameters(vertexDescription.inputParameters)
{
for (auto& param : inputParameters)
{

View File

@@ -54,7 +54,7 @@ namespace OpenVulkano::Vulkan
for(const auto& description : shader->vertexInputDescriptions)
{
vertexBindDesc.emplace_back(description.bindingId, description.vertexSize, vk::VertexInputRate::eVertex);
vertexBindDesc.emplace_back(description.bindingId, description.vertexSize, static_cast<vk::VertexInputRate>(description.stepMode));
if (shader->vertexInputDescriptions.size() > 1)
{
for(const auto& param : description.inputParameters)