aboutsummaryrefslogtreecommitdiffstats
path: root/yage/base/texturecache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'yage/base/texturecache.cpp')
-rw-r--r--yage/base/texturecache.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/yage/base/texturecache.cpp b/yage/base/texturecache.cpp
new file mode 100644
index 00000000..5d2950a3
--- /dev/null
+++ b/yage/base/texturecache.cpp
@@ -0,0 +1,30 @@
+/* ----------------------------------------------------------------------------
+ * texturecache.cpp
+ *
+ * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License
+ * See file LICENSE for more details
+ * ----------------------------------------------------------------------------
+ */
+
+#include <yage/base/texturecache.h>
+#include <yage/base/imageloader.h>
+
+namespace yage
+{
+
+TextureCache::TextureCache() = default;
+
+Texture TextureCache::getTexture(const std::string &texture_path)
+{
+ auto itr = texture_map_.find(texture_path);
+
+ if (itr == texture_map_.end()) {
+ Texture new_texture = ImageLoader::loadPng(texture_path);
+ texture_map_.insert(make_pair(texture_path, new_texture));
+ return new_texture;
+ }
+
+ return itr->second;
+}
+
+} // namespace yage