[prev in list] [next in list] [prev in thread] [next in thread]
List: wine-devel
Subject: Re: [PATCH] winex11: support GLX_MESA_swap_control for WGL_EXT_swap_control This patch allows disabl
From: Chris Wulff <crwulff () rochester ! rr ! com>
Date: 2013-10-30 5:03:45
Message-ID: 24AD7275-FBBD-4320-A0CC-E72848540506 () rochester ! rr ! com
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
On Sep 17, 2013, at 12:55 PM, Roderick Colenbrander <thunderbird2k@gmail.com> wrote:
> ---
> dlls/winex11.drv/opengl.c | 14 +++++++++++++-
> 1 file changed, 13 insertions(+), 1 deletion(-)
>
> diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c
> index 5ec33c8..e28302e 100644
> --- a/dlls/winex11.drv/opengl.c
> +++ b/dlls/winex11.drv/opengl.c
> @@ -258,7 +258,8 @@ enum glx_swap_control_method
> {
> GLX_SWAP_CONTROL_NONE,
> GLX_SWAP_CONTROL_EXT,
> - GLX_SWAP_CONTROL_SGI
> + GLX_SWAP_CONTROL_SGI,
> + GLX_SWAP_CONTROL_MESA
> };
>
> /* X context to associate a struct gl_drawable to an hwnd */
> @@ -404,6 +405,7 @@ static void (*pglXFreeMemoryNV)(GLvoid *pointer);
>
> /* MESA GLX Extensions */
> static void (*pglXCopySubBufferMESA)(Display *dpy, GLXDrawable drawable, int x, int \
> y, int width, int height); +static int (*pglXSwapIntervalMESA)(unsigned int \
> interval);
> /* Standard OpenGL */
> static void (*pglFinish)(void);
> @@ -650,6 +652,8 @@ static BOOL has_opengl(void)
> LOAD_FUNCPTR(glXCreateContextAttribsARB);
> /* EXT GLX Extension */
> LOAD_FUNCPTR(glXSwapIntervalEXT);
> + /* MESA GLX Extension */
> + LOAD_FUNCPTR(glXSwapIntervalMESA);
> /* SGI GLX Extension */
> LOAD_FUNCPTR(glXSwapIntervalSGI);
> /* NV GLX Extension */
> @@ -2963,6 +2967,10 @@ static BOOL X11DRV_wglSwapIntervalEXT(int interval)
> ret = !X11DRV_check_error();
> break;
>
> + case GLX_SWAP_CONTROL_MESA:
> + ret = !pglXSwapIntervalMESA(interval);
> + break;
> +
> case GLX_SWAP_CONTROL_SGI:
> /* wglSwapIntervalEXT considers an interval value of zero to mean that
> * vsync should be disabled, but glXSwapIntervalSGI considers such a
> @@ -3146,6 +3154,10 @@ static void X11DRV_WineGL_LoadExtensions(void)
> has_swap_control_tear = TRUE;
> }
> }
> + else if (has_extension( WineGLInfo.glxExtensions, "GLX_MESA_swap_control"))
> + {
> + swap_control_method = GLX_SWAP_CONTROL_MESA;
> + }
> else if (has_extension( WineGLInfo.glxExtensions, "GLX_SGI_swap_control"))
> {
> swap_control_method = GLX_SWAP_CONTROL_SGI;
> --
> 1.8.3.1
>
>
>
[Attachment #5 (text/html)]
<html><head><meta http-equiv="content-type" content="text/html; \
charset=utf-8"></head><body dir="auto"><div><br><br><div><br></div></div><div><br>On \
Sep 17, 2013, at 12:55 PM, Roderick Colenbrander <<a \
href="mailto:thunderbird2k@gmail.com">thunderbird2k@gmail.com</a>> \
wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">---<br><div \
class="gmail_quote"> dlls/winex11.drv/opengl.c | 14 +++++++++++++-<br> 1 \
file changed, 13 insertions(+), 1 deletion(-)<br> <br>
diff --git a/dlls/winex11.drv/opengl.c b/dlls/winex11.drv/opengl.c<br>
index 5ec33c8..e28302e 100644<br>
--- a/dlls/winex11.drv/opengl.c<br>
+++ b/dlls/winex11.drv/opengl.c<br>
@@ -258,7 +258,8 @@ enum glx_swap_control_method<br>
{<br>
GLX_SWAP_CONTROL_NONE,<br>
GLX_SWAP_CONTROL_EXT,<br>
- GLX_SWAP_CONTROL_SGI<br>
+ GLX_SWAP_CONTROL_SGI,<br>
+ GLX_SWAP_CONTROL_MESA<br>
};<br>
<br>
/* X context to associate a struct gl_drawable to an hwnd */<br>
@@ -404,6 +405,7 @@ static void (*pglXFreeMemoryNV)(GLvoid *pointer);<br>
<br>
/* MESA GLX Extensions */<br>
static void (*pglXCopySubBufferMESA)(Display *dpy, GLXDrawable drawable, int x, \
int y, int width, int height);<br> +static int (*pglXSwapIntervalMESA)(unsigned int \
interval);<br> <br>
/* Standard OpenGL */<br>
static void (*pglFinish)(void);<br>
@@ -650,6 +652,8 @@ static BOOL has_opengl(void)<br>
LOAD_FUNCPTR(glXCreateContextAttribsARB);<br>
/* EXT GLX Extension */<br>
LOAD_FUNCPTR(glXSwapIntervalEXT);<br>
+ /* MESA GLX Extension */<br>
+ LOAD_FUNCPTR(glXSwapIntervalMESA);<br>
/* SGI GLX Extension */<br>
LOAD_FUNCPTR(glXSwapIntervalSGI);<br>
/* NV GLX Extension */<br>
@@ -2963,6 +2967,10 @@ static BOOL X11DRV_wglSwapIntervalEXT(int interval)<br>
ret = !X11DRV_check_error();<br>
break;<br>
<br>
+ case GLX_SWAP_CONTROL_MESA:<br>
+ ret = !pglXSwapIntervalMESA(interval);<br>
+ break;<br>
+<br>
case GLX_SWAP_CONTROL_SGI:<br>
/* wglSwapIntervalEXT considers an interval value \
of zero to mean that<br> * vsync should be \
disabled, but glXSwapIntervalSGI considers such a<br> @@ -3146,6 +3154,10 @@ static \
void X11DRV_WineGL_LoadExtensions(void)<br> \
has_swap_control_tear = TRUE;<br> }<br>
}<br>
+ else if (has_extension( WineGLInfo.glxExtensions, \
"GLX_MESA_swap_control"))<br> + {<br>
+ swap_control_method = GLX_SWAP_CONTROL_MESA;<br>
+ }<br>
else if (has_extension( WineGLInfo.glxExtensions, \
"GLX_SGI_swap_control"))<br> {<br>
swap_control_method = GLX_SWAP_CONTROL_SGI;<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.8.3.1<br>
<br>
</font></span></div><br></div>
</div></blockquote><blockquote \
type="cite"><div><span></span><br></div></blockquote></body></html>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic