summaryrefslogtreecommitdiff
path: root/include/mbgl/renderer/prerendered_texture.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/mbgl/renderer/prerendered_texture.hpp')
-rw-r--r--include/mbgl/renderer/prerendered_texture.hpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/mbgl/renderer/prerendered_texture.hpp b/include/mbgl/renderer/prerendered_texture.hpp
new file mode 100644
index 0000000000..9c72e14b88
--- /dev/null
+++ b/include/mbgl/renderer/prerendered_texture.hpp
@@ -0,0 +1,36 @@
+#ifndef MBGL_RENDERER_PRERENDERED_TEXTURE
+#define MBGL_RENDERER_PRERENDERED_TEXTURE
+
+#include <mbgl/util/noncopyable.hpp>
+#include <mbgl/platform/gl.hpp>
+#include <mbgl/style/rasterize_properties.hpp>
+
+namespace mbgl {
+
+class Painter;
+
+class PrerenderedTexture : private util::noncopyable {
+public:
+ PrerenderedTexture(const RasterizedProperties &properties);
+ ~PrerenderedTexture();
+
+ void bindTexture();
+ void bindFramebuffer();
+ void unbindFramebuffer();
+
+ inline GLuint getTexture() const { return texture; }
+
+ void blur(Painter& painter, uint16_t passes);
+
+public:
+ const RasterizedProperties properties;
+
+private:
+ GLint previous_fbo = 0;
+ GLuint fbo = 0;
+ GLuint texture = 0;
+};
+
+}
+
+#endif