I wrote an OpenGL program on Windows that I am trying to port to a Raspberry Pi 3 running Raspian OS. When I try to compile, I get the following errors:include/object.h|44|error: glGenVertexArrays was not declared in this scope  include/object.h|45|error: glBindVertexArray was not declared in this scope  include/object.h|68|error: glDeleteVertexArrays was not declared in this scopeI think this is because I am using GLES2. However, I can't seem to find an SDK for GLES3 for the Pi. (I am neither an expert in GL programming nor Linux). What are the alternatives to these functions in GLES2?According to glxinfo:OpenGL ES profile version string: OpenGL ES 3.0 Mesa 13.0.0OpenGL ES  profile shading language version string: OpenGL ES GLSL ES 3.00FWIW, here is some code where I try to use the functions:// Object class ctorobject::object(std::initializer_list<Vertex> const &data, std::initializer_list<int> const &elements) :        tex(0xFFFFFFFF)    {        for (auto v : data) {            vertices.push_back(v);        }        glGenVertexArrays(1, &vertexArrayID);        glBindVertexArray(vertexArrayID);        // Generate 1 buffer, put the resulting identifier in vertexbuffer        glGenBuffers(1, &vertexBufferObject);        // The following commands will talk about our 'vertexbuffer' buffer        glBindBuffer(GL_ARRAY_BUFFER, vertexBufferObject);        // Give our vertices to OpenGL.        glBufferData(GL_ARRAY_BUFFER, vertices.size() * sizeof(Vertex), vertices.data(), GL_STATIC_DRAW);        // Create an element array        glGenBuffers(1, &elementBufferObject);        std::vector<GLuint> elems;        for (auto e : elements) {            elems.push_back(e);        }        glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, elementBufferObject);        glBufferData(GL_ELEMENT_ARRAY_BUFFER, elems.size() * sizeof(int), elems.data(), GL_STATIC_DRAW);    }
'glGenVertexArrays was not declared in this scope
vertex buffer object;opengl es