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:
parent
45c84a2426
commit
bb1d040ac8
4 changed files with 20 additions and 24 deletions
apps/openmw
|
@ -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,
|
||||||
|
|
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -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()
|
||||||
|
|
|
@ -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 })
|
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue