Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Zolotarev <deathbaba@gmail.com>2010-12-05 19:24:16 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-22 22:33:57 +0300
commitd6e12b7ce4bcbf0ccd1c07eb25de143422913c34 (patch)
treea7e910c330ce4da9b4f2d8be76067adece2561c4 /iphone/Maps/Classes/RenderBuffer.mm
One Month In Minsk. Made in Belarus.
Diffstat (limited to 'iphone/Maps/Classes/RenderBuffer.mm')
-rw-r--r--iphone/Maps/Classes/RenderBuffer.mm66
1 files changed, 66 insertions, 0 deletions
diff --git a/iphone/Maps/Classes/RenderBuffer.mm b/iphone/Maps/Classes/RenderBuffer.mm
new file mode 100644
index 0000000000..d9ded57e8f
--- /dev/null
+++ b/iphone/Maps/Classes/RenderBuffer.mm
@@ -0,0 +1,66 @@
+/*
+ * RenderBuffer.mm
+ * Maps
+ *
+ * Created by Siarhei Rachytski on 8/15/10.
+ * Copyright 2010 OMIM. All rights reserved.
+ *
+ */
+
+#import "RenderBuffer.hpp"
+#import "../../../yg/internal/opengl.hpp"
+#include "../../../yg/utils.hpp"
+
+namespace iphone
+{
+ RenderBuffer::RenderBuffer(shared_ptr<RenderContext> renderContext, CAEAGLLayer * layer) : m_renderContext(renderContext)
+ {
+ OGLCHECK(glGenRenderbuffersOES(1, &m_id));
+ makeCurrent();
+
+ [m_renderContext->getEAGLContext() renderbufferStorage:GL_RENDERBUFFER_OES fromDrawable:layer];
+
+ OGLCHECK(glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &m_width));
+ OGLCHECK(glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &m_height));
+ }
+
+ void RenderBuffer::makeCurrent()
+ {
+ OGLCHECK(glBindRenderbufferOES(GL_RENDERBUFFER_OES, m_id));
+ }
+
+ RenderBuffer::~RenderBuffer()
+ {
+ OGLCHECK(glDeleteRenderbuffersOES(1, &m_id));
+ }
+
+ unsigned int RenderBuffer::id()
+ {
+ return m_id;
+ }
+
+ void RenderBuffer::present()
+ {
+ makeCurrent();
+ [m_renderContext->getEAGLContext() presentRenderbuffer:GL_RENDERBUFFER_OES];
+ }
+
+ unsigned RenderBuffer::width() const
+ {
+ return m_width;
+ }
+
+ unsigned RenderBuffer::height() const
+ {
+ return m_height;
+ }
+
+ void RenderBuffer::attachToFrameBuffer()
+ {
+ OGLCHECK(glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES,
+ GL_COLOR_ATTACHMENT0_OES,
+ GL_RENDERBUFFER_OES,
+ m_id));
+ yg::gl::utils::setupCoordinates(width(), height(), true);
+ }
+} \ No newline at end of file