aboutsummaryrefslogtreecommitdiff
path: root/src/crepe/ResourceManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/crepe/ResourceManager.cpp')
-rw-r--r--src/crepe/ResourceManager.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/src/crepe/ResourceManager.cpp b/src/crepe/ResourceManager.cpp
new file mode 100644
index 0000000..111b9e0
--- /dev/null
+++ b/src/crepe/ResourceManager.cpp
@@ -0,0 +1,36 @@
+#include <stdexcept>
+
+#include "util/Log.h"
+
+#include "ResourceManager.h"
+
+using namespace crepe;
+using namespace std;
+
+ResourceManager::~ResourceManager() { dbg_trace(); }
+ResourceManager::ResourceManager() { dbg_trace(); }
+
+void ResourceManager::clear() {
+ this->resources.clear();
+}
+
+// template <typename T>
+// T & ResourceManager::cache(const Asset & asset) {
+// dbg_trace();
+// static_assert(is_base_of<Resource, T>::value, "cache must recieve a derivative class of Resource");
+//
+// if (!this->resources.contains(asset))
+// this->resources[asset] = make_unique<T>(asset);
+//
+// Resource * resource = this->resources.at(asset).get();
+// T * concrete_resource = dynamic_cast<T *>(resource);
+//
+// if (concrete_resource == nullptr)
+// throw runtime_error(format("ResourceManager: mismatch between requested type and actual type of resource ({})", asset.get_path()));
+//
+// return *concrete_resource;
+// }
+//
+// #include "facade/Sound.h"
+// template Sound & ResourceManager::cache(const Asset &);
+