29 return new DirectX11Renderer(window);
31 if(DirectX12Renderer::IsSupport()) {
32 SLEAK_INFO(
"DirectX 12 is supported in this device");
34 return new DirectX12Renderer(window);
37 SLEAK_WARN(
"The GPU does not support DirectX 12, using DirectX 11 instead");
41 throw std::runtime_error(
"DirectX is supported on windows!");
44 throw std::runtime_error(
"Unsupported renderer type");
49 SLEAK_INFO(
"Passed renderer argument: {0}",arg)
51 if(arg ==
"v" || arg ==
"vulkan")
53 else if(arg ==
"o" || arg ==
"opengl")
55 else if(arg ==
"d11" || arg ==
"d3d11" || arg ==
"directx11")
57 else if(arg ==
"d12" || arg ==
"d3d12" || arg ==
"directx12")
60 throw std::runtime_error(
"Unsupported API has been requested!");
OpenGL 3.3+ backend: deferred GBuffer pipeline, SSAO, shadow mapping, and baked IBL.
static Renderer * ParseArg(std::string arg, Window *window)
Resolves a CLI backend name (e.g. "-vulkan") to a Renderer instance.
static Renderer * CreateRenderer(RendererType type, Window *window)
Instantiates and returns the Renderer for the given backend, bound to a window.
Abstract render backend: swapchain, frame lifecycle, and post-effect toggles.
Backend-facing rendering layer shared by the four graphics backends.
RendererType
Selects which graphics API a Renderer instance targets.
Root namespace for everything the engine exposes.