Add vertex buffer step mode config
This commit is contained in:
@@ -12,6 +12,8 @@
|
|||||||
|
|
||||||
namespace OpenVulkano
|
namespace OpenVulkano
|
||||||
{
|
{
|
||||||
|
enum class VertexStepMode : uint32_t { VERTEX = 0, INSTANCE };
|
||||||
|
|
||||||
struct VertexInputParameter
|
struct VertexInputParameter
|
||||||
{
|
{
|
||||||
uint32_t location;
|
uint32_t location;
|
||||||
@@ -32,13 +34,16 @@ namespace OpenVulkano
|
|||||||
{
|
{
|
||||||
uint32_t bindingId;
|
uint32_t bindingId;
|
||||||
uint32_t vertexSize;
|
uint32_t vertexSize;
|
||||||
|
VertexStepMode stepMode = VertexStepMode::VERTEX;
|
||||||
std::vector<VertexInputParameter> inputParameters;
|
std::vector<VertexInputParameter> inputParameters;
|
||||||
|
|
||||||
VertexInputDescription(uint32_t bindingId, uint32_t vertexSize) : bindingId(bindingId), vertexSize(vertexSize)
|
VertexInputDescription(uint32_t bindingId, uint32_t vertexSize) : bindingId(bindingId), vertexSize(vertexSize)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
VertexInputDescription(uint32_t bindingId, const VertexInputDescription& vertexDescription)
|
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)
|
for (auto& param : inputParameters)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ namespace OpenVulkano::Vulkan
|
|||||||
|
|
||||||
for(const auto& description : shader->vertexInputDescriptions)
|
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)
|
if (shader->vertexInputDescriptions.size() > 1)
|
||||||
{
|
{
|
||||||
for(const auto& param : description.inputParameters)
|
for(const auto& param : description.inputParameters)
|
||||||
|
|||||||
Reference in New Issue
Block a user