Add string-based renderer backend configuration
Rather than using integer-indices, just use plaintext case-insensitive names and leave the actual enum indexes as an implementation detail.
This commit is contained in:
@@ -1,4 +1,24 @@
|
||||
#include "renderer.hpp"
|
||||
|
||||
std::optional<RendererType> fromString(std::string inString) {
|
||||
// case-insensitive
|
||||
std::transform(inString.begin(), inString.end(), inString.begin(), [](unsigned char c) { return std::tolower(c); });
|
||||
|
||||
if (inString == "null")
|
||||
return RendererType::Null;
|
||||
else if (inString == "opengl")
|
||||
return RendererType::OpenGL;
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
const char* toString(RendererType rendererType) {
|
||||
switch (rendererType) {
|
||||
case RendererType::Null: return "null";
|
||||
case RendererType::OpenGL: return "opengl";
|
||||
default: return "Invalid";
|
||||
}
|
||||
}
|
||||
|
||||
Renderer::Renderer(GPU& gpu, const std::array<u32, regNum>& internalRegs) : gpu(gpu), regs(internalRegs) {}
|
||||
Renderer::~Renderer() {}
|
||||
Reference in New Issue
Block a user