mirror of
https://github.com/OpenMW/openmw.git
synced 2025-01-29 08:15:35 +00:00
Move declaration private static member variables of LightManager to .cpp
There is no need to expose them to other translation units.
This commit is contained in:
parent
4211cf1c24
commit
9ac3bb753e
2 changed files with 20 additions and 18 deletions
|
@ -24,6 +24,10 @@
|
||||||
|
|
||||||
namespace
|
namespace
|
||||||
{
|
{
|
||||||
|
constexpr int maxLightsLowerLimit = 2;
|
||||||
|
constexpr int maxLightsUpperLimit = 64;
|
||||||
|
constexpr int ffpMaxLights = 8;
|
||||||
|
|
||||||
bool sortLights(const SceneUtil::LightManager::LightSourceViewBound* left, const SceneUtil::LightManager::LightSourceViewBound* right)
|
bool sortLights(const SceneUtil::LightManager::LightSourceViewBound* left, const SceneUtil::LightManager::LightSourceViewBound* right)
|
||||||
{
|
{
|
||||||
static auto constexpr illuminationBias = 81.f;
|
static auto constexpr illuminationBias = 81.f;
|
||||||
|
@ -70,6 +74,15 @@ namespace
|
||||||
|
|
||||||
namespace SceneUtil
|
namespace SceneUtil
|
||||||
{
|
{
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
const std::unordered_map<std::string, LightingMethod> lightingMethodSettingMap = {
|
||||||
|
{"legacy", LightingMethod::FFP},
|
||||||
|
{"shaders compatibility", LightingMethod::PerObjectUniform},
|
||||||
|
{"shaders", LightingMethod::SingleUBO},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
static int sLightId = 0;
|
static int sLightId = 0;
|
||||||
|
|
||||||
// Handles a GLSL shared layout by using configured offsets and strides to fill a continuous buffer, making the data upload to GPU simpler.
|
// Handles a GLSL shared layout by using configured offsets and strides to fill a continuous buffer, making the data upload to GPU simpler.
|
||||||
|
@ -756,16 +769,10 @@ namespace SceneUtil
|
||||||
mTemplate->configureLayout(offsets[0], offsets[1], offsets[2], totalBlockSize, stride);
|
mTemplate->configureLayout(offsets[0], offsets[1], offsets[2], totalBlockSize, stride);
|
||||||
}
|
}
|
||||||
|
|
||||||
const std::unordered_map<std::string, LightingMethod> LightManager::sLightingMethodSettingMap = {
|
|
||||||
{"legacy", LightingMethod::FFP},
|
|
||||||
{"shaders compatibility", LightingMethod::PerObjectUniform},
|
|
||||||
{"shaders", LightingMethod::SingleUBO},
|
|
||||||
};
|
|
||||||
|
|
||||||
LightingMethod LightManager::getLightingMethodFromString(const std::string& value)
|
LightingMethod LightManager::getLightingMethodFromString(const std::string& value)
|
||||||
{
|
{
|
||||||
auto it = LightManager::sLightingMethodSettingMap.find(value);
|
auto it = lightingMethodSettingMap.find(value);
|
||||||
if (it != LightManager::sLightingMethodSettingMap.end())
|
if (it != lightingMethodSettingMap.end())
|
||||||
return it->second;
|
return it->second;
|
||||||
|
|
||||||
constexpr const char* fallback = "shaders compatibility";
|
constexpr const char* fallback = "shaders compatibility";
|
||||||
|
@ -775,7 +782,7 @@ namespace SceneUtil
|
||||||
|
|
||||||
std::string LightManager::getLightingMethodString(LightingMethod method)
|
std::string LightManager::getLightingMethodString(LightingMethod method)
|
||||||
{
|
{
|
||||||
for (const auto& p : LightManager::sLightingMethodSettingMap)
|
for (const auto& p : lightingMethodSettingMap)
|
||||||
if (p.second == method)
|
if (p.second == method)
|
||||||
return p.first;
|
return p.first;
|
||||||
return "";
|
return "";
|
||||||
|
@ -801,7 +808,7 @@ namespace SceneUtil
|
||||||
|
|
||||||
if (ffp)
|
if (ffp)
|
||||||
{
|
{
|
||||||
initFFP(sFFPMaxLights);
|
initFFP(ffpMaxLights);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -819,7 +826,8 @@ namespace SceneUtil
|
||||||
hasLoggedWarnings = true;
|
hasLoggedWarnings = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int targetLights = std::clamp(Settings::Manager::getInt("max lights", "Shaders"), sMaxLightsLowerLimit, sMaxLightsUpperLimit);
|
const int targetLights = std::clamp(Settings::Manager::getInt("max lights", "Shaders"),
|
||||||
|
maxLightsLowerLimit, maxLightsUpperLimit);
|
||||||
|
|
||||||
if (!supportsUBO || !supportsGPU4 || lightingMethod == LightingMethod::PerObjectUniform)
|
if (!supportsUBO || !supportsGPU4 || lightingMethod == LightingMethod::PerObjectUniform)
|
||||||
initPerObjectUniform(targetLights);
|
initPerObjectUniform(targetLights);
|
||||||
|
@ -902,7 +910,7 @@ namespace SceneUtil
|
||||||
if (usingFFP())
|
if (usingFFP())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
setMaxLights(std::clamp(Settings::Manager::getInt("max lights", "Shaders"), sMaxLightsLowerLimit, sMaxLightsUpperLimit));
|
setMaxLights(std::clamp(Settings::Manager::getInt("max lights", "Shaders"), maxLightsLowerLimit, maxLightsUpperLimit));
|
||||||
|
|
||||||
if (getLightingMethod() == LightingMethod::PerObjectUniform)
|
if (getLightingMethod() == LightingMethod::PerObjectUniform)
|
||||||
{
|
{
|
||||||
|
|
|
@ -360,12 +360,6 @@ namespace SceneUtil
|
||||||
|
|
||||||
SupportedMethods mSupported;
|
SupportedMethods mSupported;
|
||||||
|
|
||||||
static constexpr auto sMaxLightsLowerLimit = 2;
|
|
||||||
static constexpr auto sMaxLightsUpperLimit = 64;
|
|
||||||
static constexpr auto sFFPMaxLights = 8;
|
|
||||||
|
|
||||||
static const std::unordered_map<std::string, LightingMethod> sLightingMethodSettingMap;
|
|
||||||
|
|
||||||
std::shared_ptr<PPLightBuffer> mPPLightBuffer;
|
std::shared_ptr<PPLightBuffer> mPPLightBuffer;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue