attach an EGL rendering context to EGL surfaces
EGLBoolean eglMakeCurrent(
| EGLDisplay display, |
EGLSurface draw, | |
EGLSurface read, | |
EGLContext context) |
display
Specifies the EGL display connection.
draw
Specifies the EGL draw surface.
read
Specifies the EGL read surface.
context
Specifies the EGL rendering context to be attached to the surfaces.
eglMakeCurrent
binds context
to the current rendering thread and to the draw
and read
surfaces. draw
is used for all GL operations except for any pixel data read back
(glReadPixels,
glCopyTexImage2D, and
glCopyTexSubImage2D),
which is taken from the frame buffer values of
read
.
If the calling thread has already a current rendering context, that context is flushed and marked as no longer current.
The first time that context
is made current,
the viewport and scissor dimensions are set to the size of the
draw
surface. The viewport and
scissor are not modified when context
is
subsequently made current.
To release the current context without assigning a new one, call
eglMakeCurrent
with draw
and read
set to
EGL_NO_SURFACE
and context
set to EGL_NO_CONTEXT
.
Use eglGetCurrentContext, eglGetCurrentDisplay, and eglGetCurrentSurface to query the current rendering context and associated display connection and surfaces.
EGL_FALSE
is returned on failure,
EGL_TRUE
otherwise. If EGL_FALSE
is returned, the previously current rendering context and
surfaces (if any) remain unchanged.
EGL_BAD_DISPLAY
is generated if
display
is not an EGL display connection.
EGL_NOT_INITIALIZED
is generated if
display
has not been initialized.
EGL_BAD_SURFACE
is generated if
draw
or read
is not an
EGL surface.
EGL_BAD_CONTEXT
is generated if
context
is not an EGL rendering context.
EGL_BAD_MATCH
is generated if
draw
or
read
are not compatible with
context
, or if
context
is set to
EGL_NO_CONTEXT
and
draw
or
read
are not set to
EGL_NO_SURFACE
, or if
draw
or
read
are set to
EGL_NO_SURFACE
and
context
is not set to
EGL_NO_CONTEXT
.
EGL_BAD_ACCESS
is generated if
context
is current to some other thread.
EGL_BAD_NATIVE_PIXMAP
may be generated if
a native pixmap underlying either
draw
or
read
is no longer valid.
EGL_BAD_NATIVE_WINDOW
may be generated if
a native window underlying either
draw
or
read
is no longer valid.
EGL_BAD_CURRENT_SURFACE
is generated if
the previous context has unflushed commands and the previous surface
is no longer valid.
EGL_BAD_ALLOC
may be generated if
allocation of ancillary buffers for draw
or
read
were delayed until
eglMakeCurrent
is called, and there are not
enough resources to allocate them.
EGL_CONTEXT_LOST
is generated if a power management
event has occurred. The application must destroy all contexts and
reinitialise OpenGL ES state and objects to continue rendering.
glReadPixels, glCopyTexImage2D, glCopyTexSubImage2D, eglCreateContext, eglCreatePbufferSurface, eglCreatePixmapSurface, eglCreateWindowSurface, eglGetCurrentContext, eglGetCurrentDisplay, eglGetCurrentSurface, eglGetDisplay, eglInitialize