summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2017-03-21 15:01:32 +0100
committerKonstantin Käfer <mail@kkaefer.com>2017-03-28 13:53:19 +0200
commit14bf47c296f7ef80c91366a30b8ec593898e1e9d (patch)
tree121502bac9556061cf0230af307022905c28f1e8
parent68e032e505e23811aec1f6079995709b3d2b9700 (diff)
downloadqtlocation-mapboxgl-14bf47c296f7ef80c91366a30b8ec593898e1e9d.tar.gz
[glfw] Remove GL state restoration
We're doing all of this in our own context anyway, so no need to restore the state
-rw-r--r--platform/glfw/glfw_view.cpp36
-rw-r--r--src/mbgl/gl/state.hpp29
-rw-r--r--test/gl/object.test.cpp14
3 files changed, 10 insertions, 69 deletions
diff --git a/platform/glfw/glfw_view.cpp b/platform/glfw/glfw_view.cpp
index 82f075fd6f..b8cf285bdd 100644
--- a/platform/glfw/glfw_view.cpp
+++ b/platform/glfw/glfw_view.cpp
@@ -12,9 +12,6 @@
#include <mbgl/map/backend_scope.hpp>
#include <mbgl/map/camera.hpp>
-#include <mbgl/gl/state.hpp>
-#include <mbgl/gl/value.hpp>
-
#include <cassert>
#include <cstdlib>
@@ -567,14 +564,9 @@ void showDebugImage(std::string name, const char *data, size_t width, size_t hei
glfwGetFramebufferSize(debugWindow, &fbWidth, &fbHeight);
float scale = static_cast<float>(fbWidth) / static_cast<float>(width);
- {
- gl::PreserveState<gl::value::PixelZoom> pixelZoom;
- gl::PreserveState<gl::value::RasterPos> rasterPos;
-
- MBGL_CHECK_ERROR(glPixelZoom(scale, -scale));
- MBGL_CHECK_ERROR(glRasterPos2f(-1.0f, 1.0f));
- MBGL_CHECK_ERROR(glDrawPixels(width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, data));
- }
+ MBGL_CHECK_ERROR(glPixelZoom(scale, -scale));
+ MBGL_CHECK_ERROR(glRasterPos2f(-1.0f, 1.0f));
+ MBGL_CHECK_ERROR(glDrawPixels(width, height, GL_LUMINANCE, GL_UNSIGNED_BYTE, data));
glfwSwapBuffers(debugWindow);
@@ -604,21 +596,13 @@ void showColorDebugImage(std::string name, const char *data, size_t logicalWidth
float xScale = static_cast<float>(fbWidth) / static_cast<float>(width);
float yScale = static_cast<float>(fbHeight) / static_cast<float>(height);
- {
- gl::PreserveState<gl::value::ClearColor> clearColor;
- gl::PreserveState<gl::value::Blend> blend;
- gl::PreserveState<gl::value::BlendFunc> blendFunc;
- gl::PreserveState<gl::value::PixelZoom> pixelZoom;
- gl::PreserveState<gl::value::RasterPos> rasterPos;
-
- MBGL_CHECK_ERROR(glClearColor(0.8, 0.8, 0.8, 1));
- MBGL_CHECK_ERROR(glClear(GL_COLOR_BUFFER_BIT));
- MBGL_CHECK_ERROR(glEnable(GL_BLEND));
- MBGL_CHECK_ERROR(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
- MBGL_CHECK_ERROR(glPixelZoom(xScale, -yScale));
- MBGL_CHECK_ERROR(glRasterPos2f(-1.0f, 1.0f));
- MBGL_CHECK_ERROR(glDrawPixels(width, height, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, data));
- }
+ MBGL_CHECK_ERROR(glClearColor(0.8, 0.8, 0.8, 1));
+ MBGL_CHECK_ERROR(glClear(GL_COLOR_BUFFER_BIT));
+ MBGL_CHECK_ERROR(glEnable(GL_BLEND));
+ MBGL_CHECK_ERROR(glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA));
+ MBGL_CHECK_ERROR(glPixelZoom(xScale, -yScale));
+ MBGL_CHECK_ERROR(glRasterPos2f(-1.0f, 1.0f));
+ MBGL_CHECK_ERROR(glDrawPixels(width, height, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, data));
glfwSwapBuffers(debugWindow);
diff --git a/src/mbgl/gl/state.hpp b/src/mbgl/gl/state.hpp
index f3268229d1..17503cc043 100644
--- a/src/mbgl/gl/state.hpp
+++ b/src/mbgl/gl/state.hpp
@@ -66,34 +66,5 @@ private:
const std::tuple<Args...> params;
};
-// Helper struct that stores the current state and restores it upon destruction. You should not use
-// this code normally, except for debugging purposes.
-template <typename T, typename... Args>
-class PreserveState {
-public:
- PreserveState(Args&&... args)
- : params(std::forward_as_tuple(std::forward<Args>(args)...)),
- value(get(std::index_sequence_for<Args...>{})) {
- }
- ~PreserveState() {
- set(std::index_sequence_for<Args...>{});
- }
-
-private:
- template <std::size_t... I>
- typename T::Type get(std::index_sequence<I...>) {
- return T::Get(std::get<I>(params)...);
- }
-
- template <std::size_t... I>
- void set(std::index_sequence<I...>) {
- T::Set(value, std::get<I>(params)...);
- }
-
-private:
- const std::tuple<Args...> params;
- const typename T::Type value;
-};
-
} // namespace gl
} // namespace mbgl
diff --git a/test/gl/object.test.cpp b/test/gl/object.test.cpp
index 5d2bf6735e..b5a055f4ca 100644
--- a/test/gl/object.test.cpp
+++ b/test/gl/object.test.cpp
@@ -26,20 +26,6 @@ struct MockGLObject {
const bool MockGLObject::Default = false;
-TEST(GLObject, PreserveState) {
- getFlag = false;
- setFlag = false;
-
- auto object = std::make_unique<gl::PreserveState<MockGLObject>>();
- EXPECT_TRUE(getFlag);
- EXPECT_FALSE(setFlag);
-
- getFlag = false;
- object.reset();
- EXPECT_FALSE(getFlag);
- EXPECT_TRUE(setFlag);
-}
-
TEST(GLObject, Value) {
setFlag = false;