mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-01-27 12:35:46 +00:00
Address feedback
This commit is contained in:
parent
27fa411f4f
commit
48db113149
@ -129,6 +129,7 @@
|
||||
Bug #7758: Water walking is not taken into account to compute path cost on the water
|
||||
Bug #7761: Rain and ambient loop sounds are mutually exclusive
|
||||
Bug #7770: Sword of the Perithia: Script execution failure
|
||||
Bug #7780: Non-ASCII texture paths in NIF files don't work
|
||||
Feature #2566: Handle NAM9 records for manual cell references
|
||||
Feature #3537: Shader-based water ripples
|
||||
Feature #5173: Support for NiFogProperty
|
||||
|
@ -174,7 +174,7 @@ namespace
|
||||
|
||||
constexpr double expiryDelay = 0;
|
||||
Resource::ImageManager imageManager(&vfs, expiryDelay);
|
||||
Resource::NifFileManager nifFileManager(&vfs, &encoder);
|
||||
Resource::NifFileManager nifFileManager(&vfs, &encoder.getStatelessEncoder());
|
||||
Resource::SceneManager sceneManager(&vfs, &imageManager, &nifFileManager, expiryDelay);
|
||||
Resource::BulletShapeManager bulletShapeManager(&vfs, &sceneManager, &nifFileManager, expiryDelay);
|
||||
|
||||
|
@ -221,7 +221,7 @@ namespace NavMeshTool
|
||||
constexpr double expiryDelay = 0;
|
||||
|
||||
Resource::ImageManager imageManager(&vfs, expiryDelay);
|
||||
Resource::NifFileManager nifFileManager(&vfs, &encoder);
|
||||
Resource::NifFileManager nifFileManager(&vfs, &encoder.getStatelessEncoder());
|
||||
Resource::SceneManager sceneManager(&vfs, &imageManager, &nifFileManager, expiryDelay);
|
||||
Resource::BulletShapeManager bulletShapeManager(&vfs, &sceneManager, &nifFileManager, expiryDelay);
|
||||
DetourNavigator::RecastGlobalAllocator::init();
|
||||
|
@ -149,7 +149,8 @@ CSMWorld::Data::Data(ToUTF8::FromType encoding, const Files::PathContainer& data
|
||||
mResourcesManager.setVFS(mVFS.get());
|
||||
|
||||
constexpr double expiryDelay = 0;
|
||||
mResourceSystem = std::make_unique<Resource::ResourceSystem>(mVFS.get(), expiryDelay, &mEncoder);
|
||||
mResourceSystem
|
||||
= std::make_unique<Resource::ResourceSystem>(mVFS.get(), expiryDelay, &mEncoder.getStatelessEncoder());
|
||||
|
||||
Shader::ShaderManager::DefineMap defines
|
||||
= mResourceSystem->getSceneManager()->getShaderManager().getGlobalDefines();
|
||||
|
@ -706,8 +706,8 @@ void OMW::Engine::prepareEngine()
|
||||
|
||||
VFS::registerArchives(mVFS.get(), mFileCollections, mArchives, true);
|
||||
|
||||
mResourceSystem
|
||||
= std::make_unique<Resource::ResourceSystem>(mVFS.get(), Settings::cells().mCacheExpiryDelay, mEncoder.get());
|
||||
mResourceSystem = std::make_unique<Resource::ResourceSystem>(
|
||||
mVFS.get(), Settings::cells().mCacheExpiryDelay, &mEncoder.get()->getStatelessEncoder());
|
||||
mResourceSystem->getSceneManager()->getShaderManager().setMaxTextureUnits(mGlMaxTextureImageUnits);
|
||||
mResourceSystem->getSceneManager()->setUnRefImageDataAfterApply(
|
||||
false); // keep to Off for now to allow better state sharing
|
||||
|
@ -24,7 +24,7 @@
|
||||
namespace Nif
|
||||
{
|
||||
|
||||
Reader::Reader(NIFFile& file, const ToUTF8::Utf8Encoder* encoder)
|
||||
Reader::Reader(NIFFile& file, const ToUTF8::StatelessUtf8Encoder* encoder)
|
||||
: mVersion(file.mVersion)
|
||||
, mUserVersion(file.mUserVersion)
|
||||
, mBethVersion(file.mBethVersion)
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
namespace ToUTF8
|
||||
{
|
||||
class Utf8Encoder;
|
||||
class StatelessUtf8Encoder;
|
||||
}
|
||||
|
||||
namespace Nif
|
||||
@ -117,7 +117,7 @@ namespace Nif
|
||||
std::vector<std::string> mStrings;
|
||||
|
||||
bool& mUseSkinning;
|
||||
const ToUTF8::Utf8Encoder* mEncoder;
|
||||
const ToUTF8::StatelessUtf8Encoder* mEncoder;
|
||||
|
||||
static std::atomic_bool sLoadUnsupportedFiles;
|
||||
static std::atomic_bool sWriteNifDebugLog;
|
||||
@ -128,7 +128,7 @@ namespace Nif
|
||||
|
||||
public:
|
||||
/// Open a NIF stream. The name is used for error messages.
|
||||
Reader(NIFFile& file, const ToUTF8::Utf8Encoder* encoder);
|
||||
explicit Reader(NIFFile& file, const ToUTF8::StatelessUtf8Encoder* encoder);
|
||||
|
||||
/// Parse the file
|
||||
void parse(Files::IStreamPtr&& stream);
|
||||
|
@ -61,7 +61,7 @@ namespace Nif
|
||||
if (end != std::string::npos)
|
||||
str.erase(end);
|
||||
if (mEncoder)
|
||||
str = mEncoder->getStatelessEncoder().getUtf8(str, ToUTF8::BufferAllocationPolicy::UseGrowFactor, mBuffer);
|
||||
str = mEncoder->getUtf8(str, ToUTF8::BufferAllocationPolicy::UseGrowFactor, mBuffer);
|
||||
return str;
|
||||
}
|
||||
|
||||
|
@ -25,7 +25,7 @@
|
||||
|
||||
namespace ToUTF8
|
||||
{
|
||||
class Utf8Encoder;
|
||||
class StatelessUtf8Encoder;
|
||||
}
|
||||
|
||||
namespace Nif
|
||||
@ -73,11 +73,12 @@ namespace Nif
|
||||
{
|
||||
const Reader& mReader;
|
||||
Files::IStreamPtr mStream;
|
||||
const ToUTF8::Utf8Encoder* mEncoder;
|
||||
const ToUTF8::StatelessUtf8Encoder* mEncoder;
|
||||
std::string mBuffer;
|
||||
|
||||
public:
|
||||
explicit NIFStream(const Reader& reader, Files::IStreamPtr&& stream, const ToUTF8::Utf8Encoder* encoder)
|
||||
explicit NIFStream(
|
||||
const Reader& reader, Files::IStreamPtr&& stream, const ToUTF8::StatelessUtf8Encoder* encoder)
|
||||
: mReader(reader)
|
||||
, mStream(std::move(stream))
|
||||
, mEncoder(encoder)
|
||||
|
@ -207,8 +207,8 @@ namespace Resource
|
||||
namespace Resource
|
||||
{
|
||||
|
||||
KeyframeManager::KeyframeManager(
|
||||
const VFS::Manager* vfs, SceneManager* sceneManager, double expiryDelay, const ToUTF8::Utf8Encoder* encoder)
|
||||
KeyframeManager::KeyframeManager(const VFS::Manager* vfs, SceneManager* sceneManager, double expiryDelay,
|
||||
const ToUTF8::StatelessUtf8Encoder* encoder)
|
||||
: ResourceManager(vfs, expiryDelay)
|
||||
, mSceneManager(sceneManager)
|
||||
, mEncoder(encoder)
|
||||
|
@ -11,7 +11,7 @@
|
||||
|
||||
namespace ToUTF8
|
||||
{
|
||||
class Utf8Encoder;
|
||||
class StatelessUtf8Encoder;
|
||||
}
|
||||
|
||||
namespace Resource
|
||||
@ -54,7 +54,7 @@ namespace Resource
|
||||
{
|
||||
public:
|
||||
explicit KeyframeManager(const VFS::Manager* vfs, SceneManager* sceneManager, double expiryDelay,
|
||||
const ToUTF8::Utf8Encoder* encoder);
|
||||
const ToUTF8::StatelessUtf8Encoder* encoder);
|
||||
~KeyframeManager() = default;
|
||||
|
||||
/// Retrieve a read-only keyframe resource by name (case-insensitive).
|
||||
@ -65,7 +65,7 @@ namespace Resource
|
||||
|
||||
private:
|
||||
SceneManager* mSceneManager;
|
||||
const ToUTF8::Utf8Encoder* mEncoder;
|
||||
const ToUTF8::StatelessUtf8Encoder* mEncoder;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -31,7 +31,7 @@ namespace Resource
|
||||
Nif::NIFFilePtr mNifFile;
|
||||
};
|
||||
|
||||
NifFileManager::NifFileManager(const VFS::Manager* vfs, const ToUTF8::Utf8Encoder* encoder)
|
||||
NifFileManager::NifFileManager(const VFS::Manager* vfs, const ToUTF8::StatelessUtf8Encoder* encoder)
|
||||
// NIF files aren't needed any more once the converted objects are cached in SceneManager / BulletShapeManager,
|
||||
// so no point in using an expiry delay.
|
||||
: ResourceManager(vfs, 0)
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
namespace ToUTF8
|
||||
{
|
||||
class Utf8Encoder;
|
||||
class StatelessUtf8Encoder;
|
||||
}
|
||||
|
||||
namespace Resource
|
||||
@ -17,10 +17,10 @@ namespace Resource
|
||||
/// @note May be used from any thread.
|
||||
class NifFileManager : public ResourceManager
|
||||
{
|
||||
const ToUTF8::Utf8Encoder* mEncoder;
|
||||
const ToUTF8::StatelessUtf8Encoder* mEncoder;
|
||||
|
||||
public:
|
||||
NifFileManager(const VFS::Manager* vfs, const ToUTF8::Utf8Encoder* encoder);
|
||||
NifFileManager(const VFS::Manager* vfs, const ToUTF8::StatelessUtf8Encoder* encoder);
|
||||
~NifFileManager();
|
||||
|
||||
/// Retrieve a NIF file from the cache, or load it from the VFS if not cached yet.
|
||||
|
@ -10,7 +10,8 @@
|
||||
namespace Resource
|
||||
{
|
||||
|
||||
ResourceSystem::ResourceSystem(const VFS::Manager* vfs, double expiryDelay, const ToUTF8::Utf8Encoder* encoder)
|
||||
ResourceSystem::ResourceSystem(
|
||||
const VFS::Manager* vfs, double expiryDelay, const ToUTF8::StatelessUtf8Encoder* encoder)
|
||||
: mVFS(vfs)
|
||||
{
|
||||
mNifFileManager = std::make_unique<NifFileManager>(vfs, encoder);
|
||||
|
@ -17,7 +17,7 @@ namespace osg
|
||||
|
||||
namespace ToUTF8
|
||||
{
|
||||
class Utf8Encoder;
|
||||
class StatelessUtf8Encoder;
|
||||
}
|
||||
|
||||
namespace Resource
|
||||
@ -35,7 +35,8 @@ namespace Resource
|
||||
class ResourceSystem
|
||||
{
|
||||
public:
|
||||
explicit ResourceSystem(const VFS::Manager* vfs, double expiryDelay, const ToUTF8::Utf8Encoder* encoder);
|
||||
explicit ResourceSystem(
|
||||
const VFS::Manager* vfs, double expiryDelay, const ToUTF8::StatelessUtf8Encoder* encoder);
|
||||
~ResourceSystem();
|
||||
|
||||
SceneManager* getSceneManager();
|
||||
|
@ -68,7 +68,7 @@ namespace ToUTF8
|
||||
/// ASCII-only string. Otherwise returns a view to the input.
|
||||
std::string_view getLegacyEnc(std::string_view input);
|
||||
|
||||
StatelessUtf8Encoder getStatelessEncoder() const { return mImpl; }
|
||||
const StatelessUtf8Encoder& getStatelessEncoder() const { return mImpl; }
|
||||
|
||||
private:
|
||||
std::string mBuffer;
|
||||
|
Loading…
x
Reference in New Issue
Block a user