mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-07 12:54:00 +00:00
96eb8d7be9
Perform all request to db in a single thread to avoid blocking navmesh generator threads due to slow write operations. Write to db navmesh for all changes except update as it done for memory cache. Batch multiple db operations into a single transaction to speed up writing by not executing fsync after each insert/update query. All reads are performed in the same transaction so they see uncommited data.
64 lines
1.8 KiB
C++
64 lines
1.8 KiB
C++
#ifndef OPENMW_COMPONENTS_DETOURNAVIGATOR_SETTINGS_H
|
|
#define OPENMW_COMPONENTS_DETOURNAVIGATOR_SETTINGS_H
|
|
|
|
#include <chrono>
|
|
#include <string>
|
|
|
|
namespace DetourNavigator
|
|
{
|
|
struct RecastSettings
|
|
{
|
|
float mCellHeight = 0;
|
|
float mCellSize = 0;
|
|
float mDetailSampleDist = 0;
|
|
float mDetailSampleMaxError = 0;
|
|
float mMaxClimb = 0;
|
|
float mMaxSimplificationError = 0;
|
|
float mMaxSlope = 0;
|
|
float mRecastScaleFactor = 0;
|
|
float mSwimHeightScale = 0;
|
|
int mBorderSize = 0;
|
|
int mMaxEdgeLen = 0;
|
|
int mMaxVertsPerPoly = 0;
|
|
int mRegionMergeArea = 0;
|
|
int mRegionMinArea = 0;
|
|
int mTileSize = 0;
|
|
};
|
|
|
|
struct DetourSettings
|
|
{
|
|
int mMaxPolys = 0;
|
|
int mMaxNavMeshQueryNodes = 0;
|
|
std::size_t mMaxPolygonPathSize = 0;
|
|
std::size_t mMaxSmoothPathSize = 0;
|
|
};
|
|
|
|
struct Settings
|
|
{
|
|
bool mEnableWriteRecastMeshToFile = false;
|
|
bool mEnableWriteNavMeshToFile = false;
|
|
bool mEnableRecastMeshFileNameRevision = false;
|
|
bool mEnableNavMeshFileNameRevision = false;
|
|
bool mEnableNavMeshDiskCache = false;
|
|
bool mWriteToNavMeshDb = false;
|
|
RecastSettings mRecast;
|
|
DetourSettings mDetour;
|
|
int mWaitUntilMinDistanceToPlayer = 0;
|
|
int mMaxTilesNumber = 0;
|
|
std::size_t mAsyncNavMeshUpdaterThreads = 0;
|
|
std::size_t mMaxNavMeshTilesCacheSize = 0;
|
|
std::string mRecastMeshPathPrefix;
|
|
std::string mNavMeshPathPrefix;
|
|
std::chrono::milliseconds mMinUpdateInterval;
|
|
std::int64_t mNavMeshVersion = 0;
|
|
};
|
|
|
|
RecastSettings makeRecastSettingsFromSettingsManager();
|
|
|
|
DetourSettings makeDetourSettingsFromSettingsManager();
|
|
|
|
Settings makeSettingsFromSettingsManager();
|
|
}
|
|
|
|
#endif
|