SleakEngine 1.0.0
C++23 multi-backend game engine
Loading...
Searching...
No Matches
RendererFactory.hpp
Go to the documentation of this file.
1#ifndef RENDERERFACTORY_HPP
2#define RENDERERFACTORY_HPP
3
4#include "Renderer.hpp"
9#include <Core/Window.hpp>
10#include <memory>
11
12#include <Core/OSDef.hpp>
13
14namespace Sleak {
15 namespace RenderEngine {
16
17/// Constructs the concrete Renderer for a requested backend.
18class ENGINE_API RendererFactory {
19public:
20 /// Instantiates and returns the Renderer for the given backend, bound to a window.
21 static Renderer* CreateRenderer(RendererType type, Window* window);
22 /// Resolves a CLI backend name (e.g. "-vulkan") to a Renderer instance.
23 static Renderer* ParseArg(std::string arg, Window* window);
24 inline static RendererType GetRendererType() {return Renderertype;}
25
26private:
27 static RendererType Renderertype;
28};
29
30}
31}
32
33#endif // RENDERERFACTORY_HPP
Constructs the concrete Renderer for a requested backend.
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.
Definition Renderer.hpp:37
Backend-facing rendering layer shared by the four graphics backends.
RendererType
Selects which graphics API a Renderer instance targets.
Definition Renderer.hpp:13
Root namespace for everything the engine exposes.
Definition Camera.hpp:10