#pragma once #include #include namespace mbgl { namespace gl { namespace extension { class VertexArray { public: template VertexArray(const Fn& loadExtension) : bindVertexArray( loadExtension({ { "GL_ARB_vertex_array_object", "glBindVertexArray" }, { "GL_OES_vertex_array_object", "glBindVertexArrayOES" }, { "GL_APPLE_vertex_array_object", "glBindVertexArrayAPPLE" } })), deleteVertexArrays( loadExtension({ { "GL_ARB_vertex_array_object", "glDeleteVertexArrays" }, { "GL_OES_vertex_array_object", "glDeleteVertexArraysOES" }, { "GL_APPLE_vertex_array_object", "glDeleteVertexArraysAPPLE" } })), genVertexArrays( loadExtension({ { "GL_ARB_vertex_array_object", "glGenVertexArrays" }, { "GL_OES_vertex_array_object", "glGenVertexArraysOES" }, { "GL_APPLE_vertex_array_object", "glGenVertexArraysAPPLE" } })) { } const ExtensionFunction bindVertexArray; const ExtensionFunction deleteVertexArrays; const ExtensionFunction genVertexArrays; }; } // namespace extension } // namespace gl } // namespace mbgl