Panda3DS/src/renderer.cpp
Wunkolo 528ed510c2 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.
2023-07-17 18:02:01 -07:00

24 lines
No EOL
701 B
C++

#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() {}