On 21/03/2016 20:29, Adam Jackson wrote:
This seems to be fairly universal these days, and if it doesn't exist
the only thing you break is separate drawable and readable, which is a
fairly rare feature to use. So pretend it's always there and just throw
an error on MakeCurrent if it doesn't.
As a result we can enable GLX 1.4 unconditionally.
Signed-off-by: Adam Jackson <a...@redhat.com>
---
hw/xwin/glx/indirect.c | 36 ++++++++++++++++--------------------
1 file changed, 16 insertions(+), 20 deletions(-)
diff --git a/hw/xwin/glx/indirect.c b/hw/xwin/glx/indirect.c
@@ -1408,6 +1396,7 @@ static int
glxWinContextMakeCurrent(__GLXcontext * base)
{
__GLXWinContext *gc = (__GLXWinContext *) base;
+ __GLXWinScreen *scr = (__GLXWinScreen *) base->pGlxScreen;
Doesn't compile because this type doesn't follow the naming pattern, so
I think this line should be:
glxWinScreen *scr = (glxWinScreen *) base->pGlxScreen
BOOL ret;
HDC drawDC;
HDC readDC = NULL;
@@ -1440,7 +1429,14 @@ glxWinContextMakeCurrent(__GLXcontext * base)
}
if ((gc->base.readPriv != NULL) && (gc->base.readPriv !=
gc->base.drawPriv)) {
- // XXX: should only occur with WGL_ARB_make_current_read
+ /*
+ * We enable this unconditionally, but the renderer _might_ not support
+ * it. It's fairly rare to use this feature so just error out if it
+ * can't work.
+ */
+ if (!scr->has_WGL_ARB_make_current_read)
+ return False;
+
/*
If there is a separate read drawable, create a separate read DC,
and
use the wglMakeContextCurrent extension to make the context
current drawing
_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel