diff options
author | Keith Whitwell <[email protected]> | 2008-11-15 16:53:24 +0000 |
---|---|---|
committer | Keith Whitwell <[email protected]> | 2008-11-15 16:53:24 +0000 |
commit | 7468765b18be202a64d58b83f6267b6973ea4897 (patch) | |
tree | 6e9fa6dd4a2ff79787bcae247377d07c00a036cf /src/glx/x11 | |
parent | 5e1454a036be6da2c48e2e20bf6f8047ee1a94d3 (diff) | |
parent | 80d6379722a1249ce13db79a898d340644936f67 (diff) |
Merge commit 'origin/master' into gallium-0.2
Conflicts:
src/mesa/shader/prog_print.c
Diffstat (limited to 'src/glx/x11')
-rw-r--r-- | src/glx/x11/dri2_glx.c | 7 | ||||
-rw-r--r-- | src/glx/x11/dri_common.c | 2 | ||||
-rw-r--r-- | src/glx/x11/glxcmds.c | 1 | ||||
-rw-r--r-- | src/glx/x11/single2.c | 5 |
4 files changed, 13 insertions, 2 deletions
diff --git a/src/glx/x11/dri2_glx.c b/src/glx/x11/dri2_glx.c index c16df6b7c2f..2bee67780bd 100644 --- a/src/glx/x11/dri2_glx.c +++ b/src/glx/x11/dri2_glx.c @@ -186,11 +186,12 @@ static __GLXDRIdrawable *dri2CreateDrawable(__GLXscreenConfigs *psc, static void dri2CopySubBuffer(__GLXDRIdrawable *pdraw, int x, int y, int width, int height) { + __GLXDRIdrawablePrivate *priv = (__GLXDRIdrawablePrivate *) pdraw; XRectangle xrect; XserverRegion region; xrect.x = x; - xrect.y = y; + xrect.y = priv->height - y - height; xrect.width = width; xrect.height = height; @@ -331,7 +332,11 @@ static __GLXDRIscreen *dri2CreateScreen(__GLXscreenConfigs *psc, int screen, psp->createContext = dri2CreateContext; psp->createDrawable = dri2CreateDrawable; psp->swapBuffers = dri2SwapBuffers; + + /* DRI2 suports SubBuffer through DRI2CopyRegion, so it's always + * available.*/ psp->copySubBuffer = dri2CopySubBuffer; + __glXEnableDirectExtension(psc, "GLX_MESA_copy_sub_buffer"); Xfree(driverName); Xfree(deviceName); diff --git a/src/glx/x11/dri_common.c b/src/glx/x11/dri_common.c index fcb579f3bf8..4fda649e59a 100644 --- a/src/glx/x11/dri_common.c +++ b/src/glx/x11/dri_common.c @@ -340,7 +340,7 @@ driBindExtensions(__GLXscreenConfigs *psc, int dri2) #ifdef __DRI_COPY_SUB_BUFFER if (strcmp(extensions[i]->name, __DRI_COPY_SUB_BUFFER) == 0) { psc->driCopySubBuffer = (__DRIcopySubBufferExtension *) extensions[i]; - __glXEnableDirectExtension(psc, "GLX_MESA_copy_sub_buffer_bit"); + __glXEnableDirectExtension(psc, "GLX_MESA_copy_sub_buffer"); } #endif diff --git a/src/glx/x11/glxcmds.c b/src/glx/x11/glxcmds.c index 4e2641bd696..391e0be05e7 100644 --- a/src/glx/x11/glxcmds.c +++ b/src/glx/x11/glxcmds.c @@ -2500,6 +2500,7 @@ static void __glXCopySubBufferMESA(Display *dpy, GLXDrawable drawable, if ( pdraw != NULL ) { __GLXscreenConfigs * const psc = GetGLXScreenConfigs(dpy, screen); if (psc->driScreen->copySubBuffer != NULL) { + glFlush(); (*psc->driScreen->copySubBuffer)(pdraw, x, y, width, height); } diff --git a/src/glx/x11/single2.c b/src/glx/x11/single2.c index fc9c63a4649..b008c6996c1 100644 --- a/src/glx/x11/single2.c +++ b/src/glx/x11/single2.c @@ -37,6 +37,11 @@ #include "indirect_vertex_array.h" #include "dispatch.h" #include "glapi.h" +#ifdef USE_XCB +#include <xcb/xcb.h> +#include <xcb/glx.h> +#endif /* USE_XCB */ + /* Used for GL_ARB_transpose_matrix */ static void |