Address feedback

ini_importer_tests
Evil Eye 12 months ago
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 #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 #7761: Rain and ambient loop sounds are mutually exclusive
Bug #7770: Sword of the Perithia: Script execution failure 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 #2566: Handle NAM9 records for manual cell references
Feature #3537: Shader-based water ripples Feature #3537: Shader-based water ripples
Feature #5173: Support for NiFogProperty Feature #5173: Support for NiFogProperty

@ -174,7 +174,7 @@ namespace
constexpr double expiryDelay = 0; constexpr double expiryDelay = 0;
Resource::ImageManager imageManager(&vfs, expiryDelay); Resource::ImageManager imageManager(&vfs, expiryDelay);
Resource::NifFileManager nifFileManager(&vfs, &encoder); Resource::NifFileManager nifFileManager(&vfs, &encoder.getStatelessEncoder());
Resource::SceneManager sceneManager(&vfs, &imageManager, &nifFileManager, expiryDelay); Resource::SceneManager sceneManager(&vfs, &imageManager, &nifFileManager, expiryDelay);
Resource::BulletShapeManager bulletShapeManager(&vfs, &sceneManager, &nifFileManager, expiryDelay); Resource::BulletShapeManager bulletShapeManager(&vfs, &sceneManager, &nifFileManager, expiryDelay);

@ -221,7 +221,7 @@ namespace NavMeshTool
constexpr double expiryDelay = 0; constexpr double expiryDelay = 0;
Resource::ImageManager imageManager(&vfs, expiryDelay); Resource::ImageManager imageManager(&vfs, expiryDelay);
Resource::NifFileManager nifFileManager(&vfs, &encoder); Resource::NifFileManager nifFileManager(&vfs, &encoder.getStatelessEncoder());
Resource::SceneManager sceneManager(&vfs, &imageManager, &nifFileManager, expiryDelay); Resource::SceneManager sceneManager(&vfs, &imageManager, &nifFileManager, expiryDelay);
Resource::BulletShapeManager bulletShapeManager(&vfs, &sceneManager, &nifFileManager, expiryDelay); Resource::BulletShapeManager bulletShapeManager(&vfs, &sceneManager, &nifFileManager, expiryDelay);
DetourNavigator::RecastGlobalAllocator::init(); DetourNavigator::RecastGlobalAllocator::init();

@ -149,7 +149,8 @@ CSMWorld::Data::Data(ToUTF8::FromType encoding, const Files::PathContainer& data
mResourcesManager.setVFS(mVFS.get()); mResourcesManager.setVFS(mVFS.get());
constexpr double expiryDelay = 0; 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 Shader::ShaderManager::DefineMap defines
= mResourceSystem->getSceneManager()->getShaderManager().getGlobalDefines(); = mResourceSystem->getSceneManager()->getShaderManager().getGlobalDefines();

@ -706,8 +706,8 @@ void OMW::Engine::prepareEngine()
VFS::registerArchives(mVFS.get(), mFileCollections, mArchives, true); VFS::registerArchives(mVFS.get(), mFileCollections, mArchives, true);
mResourceSystem mResourceSystem = std::make_unique<Resource::ResourceSystem>(
= std::make_unique<Resource::ResourceSystem>(mVFS.get(), Settings::cells().mCacheExpiryDelay, mEncoder.get()); mVFS.get(), Settings::cells().mCacheExpiryDelay, &mEncoder.get()->getStatelessEncoder());
mResourceSystem->getSceneManager()->getShaderManager().setMaxTextureUnits(mGlMaxTextureImageUnits); mResourceSystem->getSceneManager()->getShaderManager().setMaxTextureUnits(mGlMaxTextureImageUnits);
mResourceSystem->getSceneManager()->setUnRefImageDataAfterApply( mResourceSystem->getSceneManager()->setUnRefImageDataAfterApply(
false); // keep to Off for now to allow better state sharing false); // keep to Off for now to allow better state sharing

@ -24,7 +24,7 @@
namespace Nif namespace Nif
{ {
Reader::Reader(NIFFile& file, const ToUTF8::Utf8Encoder* encoder) Reader::Reader(NIFFile& file, const ToUTF8::StatelessUtf8Encoder* encoder)
: mVersion(file.mVersion) : mVersion(file.mVersion)
, mUserVersion(file.mUserVersion) , mUserVersion(file.mUserVersion)
, mBethVersion(file.mBethVersion) , mBethVersion(file.mBethVersion)

@ -13,7 +13,7 @@
namespace ToUTF8 namespace ToUTF8
{ {
class Utf8Encoder; class StatelessUtf8Encoder;
} }
namespace Nif namespace Nif
@ -117,7 +117,7 @@ namespace Nif
std::vector<std::string> mStrings; std::vector<std::string> mStrings;
bool& mUseSkinning; bool& mUseSkinning;
const ToUTF8::Utf8Encoder* mEncoder; const ToUTF8::StatelessUtf8Encoder* mEncoder;
static std::atomic_bool sLoadUnsupportedFiles; static std::atomic_bool sLoadUnsupportedFiles;
static std::atomic_bool sWriteNifDebugLog; static std::atomic_bool sWriteNifDebugLog;
@ -128,7 +128,7 @@ namespace Nif
public: public:
/// Open a NIF stream. The name is used for error messages. /// 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 /// Parse the file
void parse(Files::IStreamPtr&& stream); void parse(Files::IStreamPtr&& stream);

@ -61,7 +61,7 @@ namespace Nif
if (end != std::string::npos) if (end != std::string::npos)
str.erase(end); str.erase(end);
if (mEncoder) if (mEncoder)
str = mEncoder->getStatelessEncoder().getUtf8(str, ToUTF8::BufferAllocationPolicy::UseGrowFactor, mBuffer); str = mEncoder->getUtf8(str, ToUTF8::BufferAllocationPolicy::UseGrowFactor, mBuffer);
return str; return str;
} }

@ -25,7 +25,7 @@
namespace ToUTF8 namespace ToUTF8
{ {
class Utf8Encoder; class StatelessUtf8Encoder;
} }
namespace Nif namespace Nif
@ -73,11 +73,12 @@ namespace Nif
{ {
const Reader& mReader; const Reader& mReader;
Files::IStreamPtr mStream; Files::IStreamPtr mStream;
const ToUTF8::Utf8Encoder* mEncoder; const ToUTF8::StatelessUtf8Encoder* mEncoder;
std::string mBuffer; std::string mBuffer;
public: 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) : mReader(reader)
, mStream(std::move(stream)) , mStream(std::move(stream))
, mEncoder(encoder) , mEncoder(encoder)

@ -207,8 +207,8 @@ namespace Resource
namespace Resource namespace Resource
{ {
KeyframeManager::KeyframeManager( KeyframeManager::KeyframeManager(const VFS::Manager* vfs, SceneManager* sceneManager, double expiryDelay,
const VFS::Manager* vfs, SceneManager* sceneManager, double expiryDelay, const ToUTF8::Utf8Encoder* encoder) const ToUTF8::StatelessUtf8Encoder* encoder)
: ResourceManager(vfs, expiryDelay) : ResourceManager(vfs, expiryDelay)
, mSceneManager(sceneManager) , mSceneManager(sceneManager)
, mEncoder(encoder) , mEncoder(encoder)

@ -11,7 +11,7 @@
namespace ToUTF8 namespace ToUTF8
{ {
class Utf8Encoder; class StatelessUtf8Encoder;
} }
namespace Resource namespace Resource
@ -54,7 +54,7 @@ namespace Resource
{ {
public: public:
explicit KeyframeManager(const VFS::Manager* vfs, SceneManager* sceneManager, double expiryDelay, explicit KeyframeManager(const VFS::Manager* vfs, SceneManager* sceneManager, double expiryDelay,
const ToUTF8::Utf8Encoder* encoder); const ToUTF8::StatelessUtf8Encoder* encoder);
~KeyframeManager() = default; ~KeyframeManager() = default;
/// Retrieve a read-only keyframe resource by name (case-insensitive). /// Retrieve a read-only keyframe resource by name (case-insensitive).
@ -65,7 +65,7 @@ namespace Resource
private: private:
SceneManager* mSceneManager; SceneManager* mSceneManager;
const ToUTF8::Utf8Encoder* mEncoder; const ToUTF8::StatelessUtf8Encoder* mEncoder;
}; };
} }

@ -31,7 +31,7 @@ namespace Resource
Nif::NIFFilePtr mNifFile; 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, // NIF files aren't needed any more once the converted objects are cached in SceneManager / BulletShapeManager,
// so no point in using an expiry delay. // so no point in using an expiry delay.
: ResourceManager(vfs, 0) : ResourceManager(vfs, 0)

@ -7,7 +7,7 @@
namespace ToUTF8 namespace ToUTF8
{ {
class Utf8Encoder; class StatelessUtf8Encoder;
} }
namespace Resource namespace Resource
@ -17,10 +17,10 @@ namespace Resource
/// @note May be used from any thread. /// @note May be used from any thread.
class NifFileManager : public ResourceManager class NifFileManager : public ResourceManager
{ {
const ToUTF8::Utf8Encoder* mEncoder; const ToUTF8::StatelessUtf8Encoder* mEncoder;
public: public:
NifFileManager(const VFS::Manager* vfs, const ToUTF8::Utf8Encoder* encoder); NifFileManager(const VFS::Manager* vfs, const ToUTF8::StatelessUtf8Encoder* encoder);
~NifFileManager(); ~NifFileManager();
/// Retrieve a NIF file from the cache, or load it from the VFS if not cached yet. /// Retrieve a NIF file from the cache, or load it from the VFS if not cached yet.

@ -10,7 +10,8 @@
namespace Resource 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) : mVFS(vfs)
{ {
mNifFileManager = std::make_unique<NifFileManager>(vfs, encoder); mNifFileManager = std::make_unique<NifFileManager>(vfs, encoder);

@ -17,7 +17,7 @@ namespace osg
namespace ToUTF8 namespace ToUTF8
{ {
class Utf8Encoder; class StatelessUtf8Encoder;
} }
namespace Resource namespace Resource
@ -35,7 +35,8 @@ namespace Resource
class ResourceSystem class ResourceSystem
{ {
public: 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(); ~ResourceSystem();
SceneManager* getSceneManager(); SceneManager* getSceneManager();

@ -68,7 +68,7 @@ namespace ToUTF8
/// ASCII-only string. Otherwise returns a view to the input. /// ASCII-only string. Otherwise returns a view to the input.
std::string_view getLegacyEnc(std::string_view input); std::string_view getLegacyEnc(std::string_view input);
StatelessUtf8Encoder getStatelessEncoder() const { return mImpl; } const StatelessUtf8Encoder& getStatelessEncoder() const { return mImpl; }
private: private:
std::string mBuffer; std::string mBuffer;

Loading…
Cancel
Save