summaryrefslogtreecommitdiff
path: root/src/mbgl/gl/context.hpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2019-03-20 15:27:13 +0100
committerKonstantin Käfer <mail@kkaefer.com>2019-04-05 11:49:17 +0200
commitbe3b5917c169a6d5e6fcdc3cca15ca78e44dfd1d (patch)
treeaf780c3b78e5d2df7d8bee1f55a6f471a8047801 /src/mbgl/gl/context.hpp
parent839f4687aacb98440f85660120173c9b9895f46a (diff)
downloadqtlocation-mapboxgl-be3b5917c169a6d5e6fcdc3cca15ca78e44dfd1d.tar.gz
[core] add generic base class for renderbuffers
Diffstat (limited to 'src/mbgl/gl/context.hpp')
-rw-r--r--src/mbgl/gl/context.hpp23
1 files changed, 7 insertions, 16 deletions
diff --git a/src/mbgl/gl/context.hpp b/src/mbgl/gl/context.hpp
index b16a9994bf..a676c72f06 100644
--- a/src/mbgl/gl/context.hpp
+++ b/src/mbgl/gl/context.hpp
@@ -5,7 +5,6 @@
#include <mbgl/gl/object.hpp>
#include <mbgl/gl/state.hpp>
#include <mbgl/gl/value.hpp>
-#include <mbgl/gl/renderbuffer.hpp>
#include <mbgl/gl/framebuffer.hpp>
#include <mbgl/gl/vertex_array.hpp>
#include <mbgl/gl/types.hpp>
@@ -60,23 +59,14 @@ public:
#endif
optional<std::pair<BinaryProgramFormat, std::string>> getBinaryProgram(ProgramID) const;
- template <gfx::RenderbufferPixelType type>
- Renderbuffer<type> createRenderbuffer(const Size size) {
- static_assert(type == gfx::RenderbufferPixelType::RGBA ||
- type == gfx::RenderbufferPixelType::DepthStencil ||
- type == gfx::RenderbufferPixelType::Depth,
- "invalid renderbuffer type");
- return { size, createRenderbuffer(type, size) };
- }
-
- Framebuffer createFramebuffer(const Renderbuffer<gfx::RenderbufferPixelType::RGBA>&,
- const Renderbuffer<gfx::RenderbufferPixelType::DepthStencil>&);
- Framebuffer createFramebuffer(const Renderbuffer<gfx::RenderbufferPixelType::RGBA>&);
+ Framebuffer createFramebuffer(const gfx::Renderbuffer<gfx::RenderbufferPixelType::RGBA>&,
+ const gfx::Renderbuffer<gfx::RenderbufferPixelType::DepthStencil>&);
+ Framebuffer createFramebuffer(const gfx::Renderbuffer<gfx::RenderbufferPixelType::RGBA>&);
Framebuffer createFramebuffer(const gfx::Texture&,
- const Renderbuffer<gfx::RenderbufferPixelType::DepthStencil>&);
+ const gfx::Renderbuffer<gfx::RenderbufferPixelType::DepthStencil>&);
Framebuffer createFramebuffer(const gfx::Texture&);
Framebuffer createFramebuffer(const gfx::Texture&,
- const Renderbuffer<gfx::RenderbufferPixelType::Depth>&);
+ const gfx::Renderbuffer<gfx::RenderbufferPixelType::Depth>&);
template <typename Image,
gfx::TexturePixelType format = Image::channels == 4 ? gfx::TexturePixelType::RGBA
@@ -213,10 +203,11 @@ private:
void updateTextureResource(const gfx::TextureResource&, Size, const void* data, gfx::TexturePixelType, gfx::TextureChannelDataType) override;
void updateTextureResourceSub(const gfx::TextureResource&, const uint16_t xOffset, const uint16_t yOffset, Size, const void* data, gfx::TexturePixelType, gfx::TextureChannelDataType) override;
+ std::unique_ptr<gfx::RenderbufferResource> createRenderbufferResource(gfx::RenderbufferPixelType, Size size) override;
+
std::unique_ptr<gfx::DrawScopeResource> createDrawScopeResource() override;
UniqueFramebuffer createFramebuffer();
- UniqueRenderbuffer createRenderbuffer(gfx::RenderbufferPixelType, Size size);
std::unique_ptr<uint8_t[]> readFramebuffer(Size, gfx::TexturePixelType, bool flip);
#if not MBGL_USE_GLES2
void drawPixels(Size size, const void* data, gfx::TexturePixelType);