diff options
Diffstat (limited to 'Source/Core/VideoBackends/Vulkan/VertexFormat.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/Vulkan/VertexFormat.cpp | 13 |
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; |
