mirror of
https://github.com/wheremyfoodat/Panda3DS.git
synced 2025-05-03 18:54:48 +12:00
Add shaderMode option and remove useUbershader option
This commit is contained in:
parent
91ebff1b5f
commit
1b779cafa1
8 changed files with 68 additions and 19 deletions
|
@ -1,6 +1,7 @@
|
|||
#include "renderer.hpp"
|
||||
|
||||
#include <algorithm>
|
||||
#include <optional>
|
||||
#include <unordered_map>
|
||||
|
||||
Renderer::Renderer(GPU& gpu, const std::array<u32, regNum>& internalRegs, const std::array<u32, extRegNum>& externalRegs)
|
||||
|
@ -36,4 +37,30 @@ const char* Renderer::typeToString(RendererType rendererType) {
|
|||
case RendererType::Software: return "software";
|
||||
default: return "Invalid";
|
||||
}
|
||||
}
|
||||
|
||||
std::optional<ShaderMode> Renderer::shaderModeFromString(std::string inString) {
|
||||
// Transform to lower-case to make the setting case-insensitive
|
||||
std::transform(inString.begin(), inString.end(), inString.begin(), [](unsigned char c) { return std::tolower(c); });
|
||||
|
||||
static const std::unordered_map<std::string, ShaderMode> map = {
|
||||
{"specialized", ShaderMode::Specialized}, {"special", ShaderMode::Specialized},
|
||||
{"ubershader", ShaderMode::Ubershader}, {"uber", ShaderMode::Ubershader},
|
||||
{"hybrid", ShaderMode::Hybrid}, {"threaded", ShaderMode::Hybrid}, {"i hate opengl context creation", ShaderMode::Hybrid},
|
||||
};
|
||||
|
||||
if (auto search = map.find(inString); search != map.end()) {
|
||||
return search->second;
|
||||
}
|
||||
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
const char* Renderer::shaderModeToString(ShaderMode shaderMode) {
|
||||
switch (shaderMode) {
|
||||
case ShaderMode::Specialized: return "specialized";
|
||||
case ShaderMode::Ubershader: return "ubershader";
|
||||
case ShaderMode::Hybrid: return "hybrid";
|
||||
default: return "Invalid";
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue