Change notification mechanisms for assets

This commit is contained in:
Emil Axelsson
2017-12-08 17:36:45 +01:00
parent f3dfade201
commit 0396832ae5
7 changed files with 150 additions and 89 deletions
+10
View File
@@ -120,6 +120,16 @@ public:
std::string resolveLocalResource(std::string resourceName);
private:
void requiredAssetChangedState(std::shared_ptr<Asset> a);
void requestedAssetChangedState(std::shared_ptr<Asset> a);
void addRequestingAsset(std::shared_ptr<Asset> a);
void removeRequestingAsset(std::shared_ptr<Asset> a);
void addRequiringAsset(std::shared_ptr<Asset> a);
void removeRequiringAsset(std::shared_ptr<Asset> a);
bool isSyncResolveReady();
std::atomic<State> _state;
AssetLoader* _loader;
std::vector<std::shared_ptr<ResourceSynchronization>> _synchronizations;
+1 -11
View File
@@ -58,10 +58,7 @@ int exportAsset(lua_State* state);
} // namespace assetloader
class AssetLoader {
public:
using CallbackHandle = size_t;
using AssetLoadCallback = std::function<void(std::shared_ptr<Asset>)>;
public:
/**
* Constructor
*/
@@ -131,9 +128,6 @@ public:
std::string generateAssetPath(const std::string& baseDirectory,
const std::string& path) const;
CallbackHandle addAssetLoadCallback(AssetLoadCallback);
void removeAssetLoadCallback(CallbackHandle cbh);
private:
std::shared_ptr<Asset> require(const std::string& identifier);
std::shared_ptr<Asset> request(const std::string& path);
@@ -186,10 +180,6 @@ private:
_onDependencyDeinitializationFunctionRefs;
int _assetsTableRef;
std::unordered_map<CallbackHandle, AssetLoadCallback> _assetLoadCallbacks;
CallbackHandle _nextCallbackId;
};
-1
View File
@@ -76,7 +76,6 @@ private:
std::vector<std::shared_ptr<Asset>> _pendingInitializations;
std::unique_ptr<AssetLoader> _assetLoader;
AssetLoader::CallbackHandle _addAssetCallbackHandle;
};
} // namespace openspace