summaryrefslogtreecommitdiff
path: root/src/mbgl/gfx/index_buffer.hpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2019-04-02 22:47:24 +0200
committerKonstantin Käfer <mail@kkaefer.com>2019-04-05 11:49:17 +0200
commitebd850803278a6ffbca0bc8a5b96d415b239aeb8 (patch)
tree3ff807a5fa1bde413120997e00fcab68044544f6 /src/mbgl/gfx/index_buffer.hpp
parentc02010ab6c8958f6897921c82cf47411de759269 (diff)
downloadqtlocation-mapboxgl-ebd850803278a6ffbca0bc8a5b96d415b239aeb8.tar.gz
[core] add getResource template to gfx::*Resource classes
Diffstat (limited to 'src/mbgl/gfx/index_buffer.hpp')
-rw-r--r--src/mbgl/gfx/index_buffer.hpp15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/mbgl/gfx/index_buffer.hpp b/src/mbgl/gfx/index_buffer.hpp
index ede949764f..60f361b497 100644
--- a/src/mbgl/gfx/index_buffer.hpp
+++ b/src/mbgl/gfx/index_buffer.hpp
@@ -1,6 +1,7 @@
#pragma once
#include <memory>
+#include <cassert>
namespace mbgl {
namespace gfx {
@@ -14,8 +15,20 @@ public:
class IndexBuffer {
public:
+ IndexBuffer(const std::size_t elements_, std::unique_ptr<IndexBufferResource>&& resource_)
+ : elements(elements_), resource(std::move(resource_)) {
+ }
+
std::size_t elements;
- std::unique_ptr<const IndexBufferResource> resource;
+
+ template <typename T = IndexBufferResource>
+ T& getResource() const {
+ assert(resource);
+ return static_cast<T&>(*resource);
+ }
+
+protected:
+ std::unique_ptr<IndexBufferResource> resource;
};
} // namespace gfx