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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user