mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-04-23 20:50:59 -05:00
Change notification mechanisms for assets
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -76,7 +76,6 @@ private:
|
||||
std::vector<std::shared_ptr<Asset>> _pendingInitializations;
|
||||
|
||||
std::unique_ptr<AssetLoader> _assetLoader;
|
||||
AssetLoader::CallbackHandle _addAssetCallbackHandle;
|
||||
};
|
||||
|
||||
} // namespace openspace
|
||||
|
||||
Reference in New Issue
Block a user