2003-2014
The Khronos Group Inc.
eglMakeCurrent
3G
eglMakeCurrent
attach an EGL rendering context to EGL surfaces
C Specification
EGLBoolean eglMakeCurrent
EGLDisplay display
EGLSurface draw
EGLSurface read
EGLContext context
Parameters
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.
Description
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.
Errors
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.
See Also
glReadPixels,
glCopyTexImage2D,
glCopyTexSubImage2D,
eglCreateContext,
eglCreatePbufferSurface,
eglCreatePixmapSurface,
eglCreateWindowSurface,
eglGetCurrentContext,
eglGetCurrentDisplay,
eglGetCurrentSurface,
eglGetDisplay,
eglInitialize