Work on data management. Add some tests

This commit is contained in:
Emil Axelsson
2017-10-13 16:56:53 +02:00
parent f60b78fb44
commit 18c50afeb5
17 changed files with 359 additions and 83 deletions
+3 -2
View File
@@ -75,7 +75,8 @@ class OpenSpaceEngine {
public:
static void create(int argc, char** argv,
std::unique_ptr<WindowWrapper> windowWrapper,
std::vector<std::string>& sgctArguments, bool& requestClose);
std::vector<std::string>& sgctArguments,
bool& requestClose, bool consoleLog = true);
static void destroy();
static OpenSpaceEngine& ref();
static bool isCreated();
@@ -180,7 +181,7 @@ private:
void loadSingleAsset(const std::string& assetPath);
void gatherCommandlineArguments();
void loadFonts();
void configureLogging();
void configureLogging(bool consoleLog);
// Components
std::unique_ptr<ConfigurationManager> _configurationManager;
+10 -4
View File
@@ -46,15 +46,15 @@ class Asset;
namespace assetloader {
int onInitialize(lua_State* state);
int onDeinitialize(lua_State* state);
int onInitializeDependency(lua_State* state);
int onDeinitializeDependency(lua_State* state);
int addSynchronization(lua_State* state);
int importRequiredDependency(lua_State* state);
int importOptionalDependency(lua_State* state);
int resolveLocalResource(lua_State* state);
int resolveSyncedResource(lua_State* state);
int onFinishSynchronization(lua_State* state);
int noOperation(lua_State* state);
int exportAsset(lua_State* state);
} // namespace assetloader
class AssetLoader {
@@ -150,11 +150,13 @@ private:
void pushAsset(Asset* asset);
void popAsset();
void updateLuaGlobals();
void addLuaDependencyTable(const Asset* dependant, const Asset* dependency);
void addLuaDependencyTable(Asset* dependant, Asset* dependency);
// Lua functions
int onInitializeLua(Asset* asset);
int onDeinitializeLua(Asset* asset);
int onInitializeDependencyLua(Asset* dependant, Asset* dependency);
int onDeinitializeDependencyLua(Asset* dependant, Asset* dependency);
int addSynchronizationLua(Asset* asset);
int importRequiredDependencyLua(Asset* asset);
int importOptionalDependencyLua(Asset* asset);
@@ -166,12 +168,13 @@ private:
// Friend c closures (callable from lua, and maps to lua functions above)
friend int assetloader::onInitialize(lua_State* state);
friend int assetloader::onDeinitialize(lua_State* state);
friend int assetloader::onInitializeDependency(lua_State* state);
friend int assetloader::onDeinitializeDependency(lua_State* state);
friend int assetloader::addSynchronization(lua_State* state);
friend int assetloader::importRequiredDependency(lua_State* state);
friend int assetloader::importOptionalDependency(lua_State* state);
friend int assetloader::resolveLocalResource(lua_State* state);
friend int assetloader::resolveSyncedResource(lua_State* state);
friend int assetloader::onFinishSynchronization(lua_State* state);
friend int assetloader::exportAsset(lua_State* state);
std::unique_ptr<Asset> _rootAsset;
@@ -186,6 +189,9 @@ private:
// References to lua values
std::map<Asset*, std::vector<int>> _onInitializationFunctionRefs;
std::map<Asset*, std::vector<int>> _onDeinitializationFunctionRefs;
std::map<Asset*, std::map<Asset*, std::vector<int>>> _onDependencyInitializationFunctionRefs;
std::map<Asset*, std::map<Asset*, std::vector<int>>> _onDependencyDeinitializationFunctionRefs;
int _assetsTableRef;
};