17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-18 09:09:19 +02:00
Files
maszyna/betterRenderer/eu07_source/register.cpp
maj00r 06f6c6035b let betterRenderer import the modules
The module file set moves to its own eu07_modules library: a target can
only consume C++20 modules by linking the target that owns them, and
betterRenderer is a separate add_library. Its project includes become
imports.

CXX_EXTENSIONS must match across the two - a BMI built with -std=c++20
is refused by a unit compiled with -std=gnu++20.
2026-09-09 23:30:34 +02:00

31 lines
1.1 KiB
C++

import eu07.utilities.logs;
#include "nvrenderer/nvrenderer.h"
namespace {
std::unique_ptr<gfx_renderer> create_nvrenderer_for_d3d12() {
return std::make_unique<NvRenderer>(NvRenderer::Api::D3D12);
}
std::unique_ptr<gfx_renderer> create_nvrenderer_for_vulkan() {
return std::make_unique<NvRenderer>(NvRenderer::Api::Vulkan);
}
std::unique_ptr<gfx_renderer> create_nvrenderer_default() {
#if LIBMANUL_WITH_D3D12
return std::make_unique<NvRenderer>(NvRenderer::Api::D3D12);
#elif LIBMANUL_WITH_VULKAN
return std::make_unique<NvRenderer>(NvRenderer::Api::Vulkan);
#endif
ErrorLog("Failed to initialize any NVRHI Renderer");
return nullptr;
}
} // namespace
bool register_manul_d3d12 =
LIBMANUL_WITH_D3D12 &&
gfx_renderer_factory::get_instance()->register_backend(
"experimental_d3d12", &create_nvrenderer_for_d3d12);
bool register_manul_vulkan =
LIBMANUL_WITH_VULKAN &&
gfx_renderer_factory::get_instance()->register_backend(
"experimental_vk", &create_nvrenderer_for_vulkan);
bool register_manul = gfx_renderer_factory::get_instance()->register_backend(
"experimental", &create_nvrenderer_default);