1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2025-04-01 12:36:40 +00:00

Use settings values for Cells settings

This commit is contained in:
elsid 2023-05-22 14:23:06 +02:00
parent 45c84a2426
commit bb1d040ac8
No known key found for this signature in database
GPG key ID: 4DE04C198CBA7625
4 changed files with 20 additions and 24 deletions

View file

@ -47,6 +47,7 @@
#include <components/sceneutil/util.hpp> #include <components/sceneutil/util.hpp>
#include <components/settings/shadermanager.hpp> #include <components/settings/shadermanager.hpp>
#include <components/settings/values.hpp>
#include "mwinput/inputmanagerimp.hpp" #include "mwinput/inputmanagerimp.hpp"
@ -670,10 +671,7 @@ void OMW::Engine::prepareEngine()
Settings::Manager::getString("texture mipmap", "General"), Settings::Manager::getInt("anisotropy", "General")); Settings::Manager::getString("texture mipmap", "General"), Settings::Manager::getInt("anisotropy", "General"));
mEnvironment.setResourceSystem(*mResourceSystem); mEnvironment.setResourceSystem(*mResourceSystem);
int numThreads = Settings::Manager::getInt("preload num threads", "Cells"); mWorkQueue = new SceneUtil::WorkQueue(Settings::cells().mPreloadNumThreads);
if (numThreads <= 0)
throw std::runtime_error("Invalid setting: 'preload num threads' must be >0");
mWorkQueue = new SceneUtil::WorkQueue(numThreads);
mUnrefQueue = std::make_unique<SceneUtil::UnrefQueue>(); mUnrefQueue = std::make_unique<SceneUtil::UnrefQueue>();
mScreenCaptureOperation = new SceneUtil::AsyncScreenCaptureOperation(mWorkQueue, mScreenCaptureOperation = new SceneUtil::AsyncScreenCaptureOperation(mWorkQueue,

View file

@ -440,8 +440,7 @@ namespace MWRender
if (getenv("OPENMW_DONT_PRECOMPILE") == nullptr) if (getenv("OPENMW_DONT_PRECOMPILE") == nullptr)
{ {
mViewer->setIncrementalCompileOperation(new osgUtil::IncrementalCompileOperation); mViewer->setIncrementalCompileOperation(new osgUtil::IncrementalCompileOperation);
mViewer->getIncrementalCompileOperation()->setTargetFrameRate( mViewer->getIncrementalCompileOperation()->setTargetFrameRate(Settings::cells().mTargetFramerate);
Settings::Manager::getFloat("target framerate", "Cells"));
} }
mDebugDraw mDebugDraw
@ -486,7 +485,7 @@ namespace MWRender
mTerrain = std::make_unique<Terrain::TerrainGrid>(sceneRoot, mRootNode, mResourceSystem, mTerrain = std::make_unique<Terrain::TerrainGrid>(sceneRoot, mRootNode, mResourceSystem,
mTerrainStorage.get(), Mask_Terrain, Mask_PreCompile, Mask_Debug); mTerrainStorage.get(), Mask_Terrain, Mask_PreCompile, Mask_Debug);
mTerrain->setTargetFrameRate(Settings::Manager::getFloat("target framerate", "Cells")); mTerrain->setTargetFrameRate(Settings::cells().mTargetFramerate);
if (groundcover) if (groundcover)
{ {

View file

@ -20,7 +20,7 @@
#include <components/resource/resourcesystem.hpp> #include <components/resource/resourcesystem.hpp>
#include <components/resource/scenemanager.hpp> #include <components/resource/scenemanager.hpp>
#include <components/sceneutil/positionattitudetransform.hpp> #include <components/sceneutil/positionattitudetransform.hpp>
#include <components/settings/settings.hpp> #include <components/settings/values.hpp>
#include "../mwbase/environment.hpp" #include "../mwbase/environment.hpp"
#include "../mwbase/luamanager.hpp" #include "../mwbase/luamanager.hpp"
@ -718,7 +718,7 @@ namespace MWWorld
mRendering.getResourceSystem()->getSceneManager()->setIncrementalCompileOperation( mRendering.getResourceSystem()->getSceneManager()->setIncrementalCompileOperation(
mRendering.getIncrementalCompileOperation()); mRendering.getIncrementalCompileOperation());
mRendering.getResourceSystem()->setExpiryDelay(Settings::Manager::getFloat("cache expiry delay", "Cells")); mRendering.getResourceSystem()->setExpiryDelay(Settings::cells().mCacheExpiryDelay);
} }
void Scene::testInteriorCells() void Scene::testInteriorCells()
@ -776,7 +776,7 @@ namespace MWWorld
mRendering.getResourceSystem()->getSceneManager()->setIncrementalCompileOperation( mRendering.getResourceSystem()->getSceneManager()->setIncrementalCompileOperation(
mRendering.getIncrementalCompileOperation()); mRendering.getIncrementalCompileOperation());
mRendering.getResourceSystem()->setExpiryDelay(Settings::Manager::getFloat("cache expiry delay", "Cells")); mRendering.getResourceSystem()->setExpiryDelay(Settings::cells().mCacheExpiryDelay);
} }
void Scene::changePlayerCell(CellStore& cell, const ESM::Position& pos, bool adjustPlayerPos) void Scene::changePlayerCell(CellStore& cell, const ESM::Position& pos, bool adjustPlayerPos)
@ -824,23 +824,23 @@ namespace MWWorld
, mRendering(rendering) , mRendering(rendering)
, mNavigator(navigator) , mNavigator(navigator)
, mCellLoadingThreshold(1024.f) , mCellLoadingThreshold(1024.f)
, mPreloadDistance(Settings::Manager::getInt("preload distance", "Cells")) , mPreloadDistance(Settings::cells().mPreloadDistance)
, mPreloadEnabled(Settings::Manager::getBool("preload enabled", "Cells")) , mPreloadEnabled(Settings::cells().mPreloadEnabled)
, mPreloadExteriorGrid(Settings::Manager::getBool("preload exterior grid", "Cells")) , mPreloadExteriorGrid(Settings::cells().mPreloadExteriorGrid)
, mPreloadDoors(Settings::Manager::getBool("preload doors", "Cells")) , mPreloadDoors(Settings::cells().mPreloadDoors)
, mPreloadFastTravel(Settings::Manager::getBool("preload fast travel", "Cells")) , mPreloadFastTravel(Settings::cells().mPreloadFastTravel)
, mPredictionTime(Settings::Manager::getFloat("prediction time", "Cells")) , mPredictionTime(Settings::cells().mPredictionTime)
{ {
mPreloader = std::make_unique<CellPreloader>(rendering.getResourceSystem(), physics->getShapeManager(), mPreloader = std::make_unique<CellPreloader>(rendering.getResourceSystem(), physics->getShapeManager(),
rendering.getTerrain(), rendering.getLandManager()); rendering.getTerrain(), rendering.getLandManager());
mPreloader->setWorkQueue(mRendering.getWorkQueue()); mPreloader->setWorkQueue(mRendering.getWorkQueue());
rendering.getResourceSystem()->setExpiryDelay(Settings::Manager::getFloat("cache expiry delay", "Cells")); rendering.getResourceSystem()->setExpiryDelay(Settings::cells().mCacheExpiryDelay);
mPreloader->setExpiryDelay(Settings::Manager::getFloat("preload cell expiry delay", "Cells")); mPreloader->setExpiryDelay(Settings::cells().mPreloadCellExpiryDelay);
mPreloader->setMinCacheSize(Settings::Manager::getInt("preload cell cache min", "Cells")); mPreloader->setMinCacheSize(Settings::cells().mPreloadCellCacheMin);
mPreloader->setMaxCacheSize(Settings::Manager::getInt("preload cell cache max", "Cells")); mPreloader->setMaxCacheSize(Settings::cells().mPreloadCellCacheMax);
mPreloader->setPreloadInstances(Settings::Manager::getBool("preload instances", "Cells")); mPreloader->setPreloadInstances(Settings::cells().mPreloadInstances);
} }
Scene::~Scene() Scene::~Scene()

View file

@ -10,7 +10,7 @@
#include <components/esm3/loadregn.hpp> #include <components/esm3/loadregn.hpp>
#include <components/esm4/loadwrld.hpp> #include <components/esm4/loadwrld.hpp>
#include <components/loadinglistener/loadinglistener.hpp> #include <components/loadinglistener/loadinglistener.hpp>
#include <components/settings/settings.hpp> #include <components/settings/values.hpp>
#include "../mwbase/environment.hpp" #include "../mwbase/environment.hpp"
#include "../mwbase/world.hpp" #include "../mwbase/world.hpp"
@ -155,8 +155,7 @@ void MWWorld::WorldModel::writeCell(ESM::ESMWriter& writer, CellStore& cell) con
MWWorld::WorldModel::WorldModel(const MWWorld::ESMStore& store, ESM::ReadersCache& readers) MWWorld::WorldModel::WorldModel(const MWWorld::ESMStore& store, ESM::ReadersCache& readers)
: mStore(store) : mStore(store)
, mReaders(readers) , mReaders(readers)
, mIdCache( , mIdCache(Settings::cells().mPointersCacheSize, { ESM::RefId(), nullptr })
std::clamp(Settings::Manager::getInt("pointers cache size", "Cells"), 40, 1000), { ESM::RefId(), nullptr })
{ {
} }