OpenGL APIs require two things to work. They need a place to manage the state of the OpenGL like a working memory. This is the rendering context. Then they also need a surface to draw on. The buffers are attached to the surface. Example buffers are color buffer, stencil buffer, and depth buffer.

Setting up and managing these two aspects is the realm of the underlying OS. In OpenGL ES there is a standard called EGL that deals with these integration APIs

Here is the home page for EGL:http://www.khronos.org/egl

EGL? is an interface between Khronos rendering APIs such as OpenGL ES or OpenVG and the underlying native platform window system. It handles graphics context management, surface/buffer binding, and rendering synchronization and enables high-performance, accelerated, mixed-mode 2D and 3D rendering using other Khronos APIs. EGL also provides interop capability between Khronos to enable efficient transfer of data between APIs ? for example between a video subsystem running OpenMAX AL and a GPU running OpenGL ES.

Mechanisms for creating rendering surfaces (windows, pbuffers, pixmaps) onto which client APIs can draw and share

Methods to create and manage graphics contexts for client APIs

Ways to synchronize drawing by client APIs as well as native platform rendering APIs.