diff options
author | Keith Whitwell <keithw@vmware.com> | 2010-03-10 09:22:02 +0000 |
---|---|---|
committer | Keith Whitwell <keithw@vmware.com> | 2010-03-10 09:22:02 +0000 |
commit | 3e38dbe3d3371f0a37dd35582301ae2b1507e5d2 (patch) | |
tree | c9831aab18433e71c60c6cc0c71b03e862b99a4c /src/gallium/state_trackers/egl/common/egl_g3d.c | |
parent | 155fbcb0ed85c6452cbedd2317f201100fe698ab (diff) |
gallium: plumb winsys-drawable-handle through to state tracker
The state trackers need this value so that they can supply it
as the "void *" argument to flush_frontbuffer.
Fixes single-buffer rendering.
Diffstat (limited to 'src/gallium/state_trackers/egl/common/egl_g3d.c')
-rw-r--r-- | src/gallium/state_trackers/egl/common/egl_g3d.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.c b/src/gallium/state_trackers/egl/common/egl_g3d.c index f54c51a668..e4972d493d 100644 --- a/src/gallium/state_trackers/egl/common/egl_g3d.c +++ b/src/gallium/state_trackers/egl/common/egl_g3d.c @@ -892,8 +892,13 @@ egl_g3d_make_current(_EGLDriver *drv, _EGLDisplay *dpy, if (gctx) { ok = egl_g3d_realloc_context(dpy, &gctx->base); if (ok) { + /* XXX: need to pass the winsys argument for + * flush_frontbuffer in the fourth parameter here: + */ ok = gctx->stapi->st_make_current(gctx->st_ctx, - gctx->draw.st_fb, gctx->read.st_fb); + gctx->draw.st_fb, + gctx->read.st_fb, + NULL); if (ok) { egl_g3d_validate_context(dpy, &gctx->base); if (gdraw->base.Type == EGL_WINDOW_BIT) { @@ -905,7 +910,7 @@ egl_g3d_make_current(_EGLDriver *drv, _EGLDisplay *dpy, } } else if (old_gctx) { - ok = old_gctx->stapi->st_make_current(NULL, NULL, NULL); + ok = old_gctx->stapi->st_make_current(NULL, NULL, NULL, NULL); old_gctx->base.WindowRenderBuffer = EGL_NONE; } |