[core] store viewport and FBO binding

This commit is contained in:
Konstantin Käfer
2016-07-05 11:09:59 +02:00
parent 0f5b194617
commit ffa8a7668b
7 changed files with 89 additions and 4 deletions

View File

@@ -21,6 +21,7 @@
#elif TARGET_OS_MAC
#include <OpenGL/OpenGL.h>
#include <OpenGL/gl.h>
#include <OpenGL/glext.h>
#else
#error Unsupported Apple platform
#endif

View File

@@ -271,6 +271,31 @@ struct ActiveTexture {
}
};
struct BindFramebuffer {
using Type = GLint;
static void Set(const Type& value) {
MBGL_CHECK_ERROR(glBindFramebuffer(GL_FRAMEBUFFER, value));
}
static Type Get() {
Type activeFBO;
MBGL_CHECK_ERROR(glGetIntegerv(GL_FRAMEBUFFER_BINDING, &activeFBO));
return activeFBO;
}
};
struct Viewport {
using Type = std::array<GLint, 4>;
static void Set(const Type& value) {
MBGL_CHECK_ERROR(glViewport(value[0], value[1], value[2], value[3]));
}
static Type Get() {
Type pos;
MBGL_CHECK_ERROR(glGetIntegerv(GL_VIEWPORT, pos.data()));
return pos;
}
};
#ifndef GL_ES_VERSION_2_0
struct PixelZoom {