1 #ifndef MSP_GL_VERTEXSETUP_BACKEND_H_
2 #define MSP_GL_VERTEXSETUP_BACKEND_H_
6 #include <msp/core/noncopyable.h>
15 class VulkanVertexSetup: public NonCopyable
17 friend class VulkanPipelineState;
20 mutable std::vector<char> creation_info;
21 mutable std::uint32_t n_bindings = 0;
22 mutable VkBuffer buffers[2] = { };
23 mutable std::uint64_t offsets[2] = { };
25 VulkanVertexSetup() = default;
26 VulkanVertexSetup(VulkanVertexSetup &&);
27 ~VulkanVertexSetup() = default;
29 static void require_format(const VertexFormat &, bool) { }
30 void update(unsigned) const;
31 void *update_attributes(const VertexFormat &, unsigned, void *) const;
32 std::uint64_t compute_hash() const;
36 void set_debug_name(const std::string &) { }
39 using VertexSetupBackend = VulkanVertexSetup;