From 63ea3d4befe7f2a8958cf3496d31d2a71561801b Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Mon, 18 May 2015 16:33:54 -0700 Subject: [PATCH] Don't crash if VAO extensions are not available Fixes #1585 --- src/mbgl/geometry/vao.cpp | 5 +++-- src/mbgl/geometry/vao.hpp | 2 +- src/mbgl/renderer/painter.cpp | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mbgl/geometry/vao.cpp b/src/mbgl/geometry/vao.cpp index 4f6e89332..440e48c57 100644 --- a/src/mbgl/geometry/vao.cpp +++ b/src/mbgl/geometry/vao.cpp @@ -31,8 +31,9 @@ static gl::ExtensionFunction< {"GL_APPLE_vertex_array_object", "glGenVertexArraysAPPLE"} }); -void VertexArrayObject::Bind(GLuint array) { - MBGL_CHECK_ERROR(BindVertexArray(array)); +void VertexArrayObject::Unbind() { + if (!BindVertexArray) return; + MBGL_CHECK_ERROR(BindVertexArray(0)); } void VertexArrayObject::Delete(GLsizei n, const GLuint* arrays) { diff --git a/src/mbgl/geometry/vao.hpp b/src/mbgl/geometry/vao.hpp index e35fcc9bf..e512a3e48 100644 --- a/src/mbgl/geometry/vao.hpp +++ b/src/mbgl/geometry/vao.hpp @@ -11,7 +11,7 @@ namespace mbgl { class VertexArrayObject : public util::noncopyable { public: - static void Bind(GLuint array); + static void Unbind(); static void Delete(GLsizei n, const GLuint* arrays); VertexArrayObject(); diff --git a/src/mbgl/renderer/painter.cpp b/src/mbgl/renderer/painter.cpp index 653bae0d6..bcbb75e69 100644 --- a/src/mbgl/renderer/painter.cpp +++ b/src/mbgl/renderer/painter.cpp @@ -263,7 +263,7 @@ void Painter::render(const Style& style, TransformState state_, TimePoint time) const gl::debugging::group _("cleanup"); MBGL_CHECK_ERROR(glBindTexture(GL_TEXTURE_2D, 0)); - MBGL_CHECK_ERROR(VertexArrayObject::Bind(0)); + MBGL_CHECK_ERROR(VertexArrayObject::Unbind()); } }