struct xdri_egl_surface *xdri_surf = lookup_surface(draw);
/* swapBuffers does not flush commands */
- if (draw->Binding && xdri_driver->FlushCurrentContext)
+ if (draw->CurrentContext && xdri_driver->FlushCurrentContext)
xdri_driver->FlushCurrentContext();
xdri_dpy->psc->driScreen->swapBuffers(xdri_surf->driDrawable, 0, 0, 0);
{
_EGLSurface *newDraw = *draw, *newRead = *read;
- if (newDraw->Binding)
- newDraw->Binding->DrawSurface = NULL;
- newDraw->Binding = ctx;
+ if (newDraw->CurrentContext)
+ newDraw->CurrentContext->DrawSurface = NULL;
+ newDraw->CurrentContext = ctx;
- if (newRead->Binding)
- newRead->Binding->ReadSurface = NULL;
- newRead->Binding = ctx;
+ if (newRead->CurrentContext)
+ newRead->CurrentContext->ReadSurface = NULL;
+ newRead->CurrentContext = ctx;
if (ctx) {
*draw = ctx->DrawSurface;
*
* The latter is more restrictive so we can check only the latter case.
*/
- if ((draw->Binding && draw->Binding != ctx) ||
- (read->Binding && read->Binding != ctx))
+ if ((draw->CurrentContext && draw->CurrentContext != ctx) ||
+ (read->CurrentContext && read->CurrentContext != ctx))
return _eglError(EGL_BAD_ACCESS, "eglMakeCurrent");
/* simply require the configs to be equal */
/* A surface is a display resource */
_EGLResource Resource;
- /* The bound status of the surface */
- _EGLContext *Binding;
- EGLBoolean BoundToTexture;
+ /* The context that is currently bound to the surface */
+ _EGLContext *CurrentContext;
_EGLConfig *Config;
EGLint MipmapTexture, MipmapLevel;
EGLint SwapInterval;
+ /* True if the surface is bound to an OpenGL ES texture */
+ EGLBoolean BoundToTexture;
+
/* If type == EGL_SCREEN_BIT: */
EGLint VisibleRefCount; /* number of screens I'm displayed on */
/**
- * Return true if the surface is bound to a thread.
- * A surface bound to a texutre is not considered bound by
- * this function.
+ * Return true if there is a context bound to the surface.
*/
static INLINE EGLBoolean
_eglIsSurfaceBound(_EGLSurface *surf)
{
- return (surf->Binding != NULL);
+ return (surf->CurrentContext != NULL);
}
}
/* flush properly if the surface is bound */
- if (gsurf->base.Binding) {
- gctx = egl_g3d_context(gsurf->base.Binding);
+ if (gsurf->base.CurrentContext) {
+ gctx = egl_g3d_context(gsurf->base.CurrentContext);
gctx->stapi->st_flush(gctx->st_ctx,
PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_FRAME, NULL);
}