diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2019-04-02 22:47:24 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2019-04-05 11:49:17 +0200 |
commit | ebd850803278a6ffbca0bc8a5b96d415b239aeb8 (patch) | |
tree | 3ff807a5fa1bde413120997e00fcab68044544f6 /src/mbgl/gfx/index_buffer.hpp | |
parent | c02010ab6c8958f6897921c82cf47411de759269 (diff) | |
download | qtlocation-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.hpp | 15 |
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 |