eglMakeCurrent — 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
Copyright © 2003-2010 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.