Nameless Engine
Loading...
Searching...
No Matches
GlslVertexFormatDescription.h
1#pragma once
2
3// Standard.
4#include <vector>
5#include <string>
6
7// Custom.
8#include "shader/general/formats/VertexFormat.h"
9
10// External.
11#include "vulkan/vulkan.h"
12
13namespace ne {
16 public:
18 virtual ~GlslVertexFormatDescription() override = default;
19
27 static std::unique_ptr<GlslVertexFormatDescription> createDescription(VertexFormat type);
28
34 virtual std::vector<std::string> getVertexLayoutBindingIndexMacros() = 0;
35
41 virtual VkVertexInputBindingDescription getVertexBindingDescription() = 0;
42
48 virtual std::vector<VkVertexInputAttributeDescription> getVertexAttributeDescriptions() = 0;
49
50 protected:
56 static constexpr uint32_t getVertexBindingIndex() { return iVertexBindingIndex; }
57
58 private:
60 static constexpr uint32_t iVertexBindingIndex = 0;
61 };
62}
Definition: GlslVertexFormatDescription.h:15
static constexpr uint32_t iVertexBindingIndex
Definition: GlslVertexFormatDescription.h:60
static std::unique_ptr< GlslVertexFormatDescription > createDescription(VertexFormat type)
Definition: GlslVertexFormatDescription.cpp:13
static constexpr uint32_t getVertexBindingIndex()
Definition: GlslVertexFormatDescription.h:56
virtual std::vector< std::string > getVertexLayoutBindingIndexMacros()=0
virtual VkVertexInputBindingDescription getVertexBindingDescription()=0
virtual std::vector< VkVertexInputAttributeDescription > getVertexAttributeDescriptions()=0
Definition: VertexFormat.h:15