17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-11-01 01:09:04 +01:00

feat(vulkan): gfxrenderer picks the opengl 4.6 or the vulkan 1.4 renderer (B1-B3)

This commit is contained in:
2026-10-24 03:06:33 +02:00
parent 6bcdb7dd05
commit 68fa5dc2da
25 changed files with 3056 additions and 83 deletions

View File

@@ -15,15 +15,29 @@ std::unique_ptr<gfx_renderer> GfxRenderer;
bool gfx_renderer_factory::register_backend(const std::string &backend, gfx_renderer_factory::create_method func)
{
backends[backend] = func;
gfx_backend_desc desc;
desc.name = backend;
desc.create = func;
return register_backend(backend, desc);
}
bool gfx_renderer_factory::register_backend(const std::string &backend, gfx_backend_desc const &desc)
{
backends[backend] = desc;
return true;
}
gfx_backend_desc const *gfx_renderer_factory::backend(const std::string &name) const
{
auto it = backends.find(name);
return (it != backends.end() ? &it->second : nullptr);
}
std::unique_ptr<gfx_renderer> gfx_renderer_factory::create(const std::string &backend)
{
auto it = backends.find(backend);
if (it != backends.end())
return it->second();
if ((it != backends.end()) && (it->second.create != nullptr))
return it->second.create();
ErrorLog("renderer \"" + backend + "\" not found!");
return nullptr;