summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/Vulkan/VertexFormat.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/VertexFormat.cpp')
-rw-r--r--Source/Core/VideoBackends/Vulkan/VertexFormat.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/Vulkan/VertexFormat.cpp b/Source/Core/VideoBackends/Vulkan/VertexFormat.cpp
index 27c1d06199..ba67472394 100644
--- a/Source/Core/VideoBackends/Vulkan/VertexFormat.cpp
+++ b/Source/Core/VideoBackends/Vulkan/VertexFormat.cpp
@@ -53,6 +53,19 @@ VertexFormat::VertexFormat(const PortableVertexDeclaration& in_vtx_decl)
SetupInputState();
}
+VertexFormat* VertexFormat::GetOrCreateMatchingFormat(const PortableVertexDeclaration& decl)
+{
+ auto vertex_format_map = VertexLoaderManager::GetNativeVertexFormatMap();
+ auto iter = vertex_format_map->find(decl);
+ if (iter == vertex_format_map->end())
+ {
+ auto ipair = vertex_format_map->emplace(decl, std::make_unique<VertexFormat>(decl));
+ iter = ipair.first;
+ }
+
+ return static_cast<VertexFormat*>(iter->second.get());
+}
+
void VertexFormat::MapAttributes()
{
m_num_attributes = 0;