summaryrefslogtreecommitdiff
path: root/src/mbgl/gfx/texture.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/gfx/texture.hpp')
-rw-r--r--src/mbgl/gfx/texture.hpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/mbgl/gfx/texture.hpp b/src/mbgl/gfx/texture.hpp
index a957c4ebdf..00e94a8f6c 100644
--- a/src/mbgl/gfx/texture.hpp
+++ b/src/mbgl/gfx/texture.hpp
@@ -6,6 +6,7 @@
#include <mbgl/util/indexed_tuple.hpp>
#include <memory>
+#include <cassert>
#define MBGL_DEFINE_TEXTURE(name_) \
struct name_ { \
@@ -27,11 +28,19 @@ public:
class Texture {
public:
- Texture(Size size_, std::unique_ptr<TextureResource>&& resource_)
- : size(std::move(size_)), resource(std::move(resource_)) {
+ Texture(const Size size_, std::unique_ptr<TextureResource>&& resource_)
+ : size(size_), resource(std::move(resource_)) {
+ }
+
+ template <typename T = TextureResource>
+ T& getResource() const {
+ assert(resource);
+ return static_cast<T&>(*resource);
}
Size size;
+
+protected:
std::unique_ptr<TextureResource> resource;
};