diff --git a/Source/Engine/Content/Assets/Model.cpp b/Source/Engine/Content/Assets/Model.cpp index 1830f40de..829eaeb11 100644 --- a/Source/Engine/Content/Assets/Model.cpp +++ b/Source/Engine/Content/Assets/Model.cpp @@ -33,12 +33,14 @@ class StreamModelSDFTask : public GPUUploadTextureMipTask { private: WeakAssetReference _asset; + FlaxStorageReference _dataRef; FlaxStorage::LockData _dataLock; public: StreamModelSDFTask(Model* model, GPUTexture* texture, const Span& data, int32 mipIndex, int32 rowPitch, int32 slicePitch) : GPUUploadTextureMipTask(texture, mipIndex, data, rowPitch, slicePitch, false) , _asset(model) + , _dataRef(model->Storage) , _dataLock(model->Storage->Lock()) { } @@ -59,6 +61,7 @@ public: void OnEnd() override { _dataLock.Release(); + _dataRef = FlaxStorageReference(); // Base GPUUploadTextureMipTask::OnEnd(); diff --git a/Source/Engine/Content/Storage/FlaxStorageReference.h b/Source/Engine/Content/Storage/FlaxStorageReference.h index 94929baa4..402e312d8 100644 --- a/Source/Engine/Content/Storage/FlaxStorageReference.h +++ b/Source/Engine/Content/Storage/FlaxStorageReference.h @@ -13,6 +13,11 @@ private: FlaxStorage* _storage; public: + FlaxStorageReference() + : _storage(nullptr) + { + } + FlaxStorageReference(FlaxStorage* storage) : _storage(storage) {