From: Jacek Caban jacek@codeweavers.com
--- dlls/opengl32/unix_wgl.c | 50 +++++++++++++++------------------------- 1 file changed, 19 insertions(+), 31 deletions(-)
diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 75355a610d8..343863d0c72 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -906,41 +906,29 @@ static BOOL get_integer( TEB *teb, GLenum pname, GLint *data ) return TRUE; }
- if (is_win64 && is_wow64()) - { - /* 4.4 depends on ARB_buffer_storage, which we don't support on wow64. */ - if (pname == GL_MAJOR_VERSION) - { - funcs->p_glGetIntegerv( pname, data ); - if (*data > 4) *data = 4; - return TRUE; - } - if (pname == GL_MINOR_VERSION) - { - GLint major; - funcs->p_glGetIntegerv( GL_MAJOR_VERSION, &major ); - funcs->p_glGetIntegerv( pname, data ); - if (major == 4 && *data > 3) *data = 3; - return TRUE; - } - } + if (!(ctx = get_current_context( teb, &draw, &read ))) return FALSE;
- if ((ctx = get_current_context( teb, &draw, &read ))) + switch (pname) { - if (pname == GL_DRAW_FRAMEBUFFER_BINDING && draw->draw_fbo) - { - *data = ctx->draw_fbo; - return TRUE; - } - if (pname == GL_READ_FRAMEBUFFER_BINDING && read->read_fbo) - { - *data = ctx->read_fbo; - return TRUE; - } - if (get_default_fbo_integer( ctx, draw, read, pname, data )) return TRUE; + case GL_MAJOR_VERSION: + sync_context_version( teb, ctx ); + *data = ctx->major_version; + return TRUE; + case GL_MINOR_VERSION: + sync_context_version( teb, ctx ); + *data = ctx->minor_version; + return TRUE; + case GL_DRAW_FRAMEBUFFER_BINDING: + if (!draw->draw_fbo) break; + *data = ctx->draw_fbo; + return TRUE; + case GL_READ_FRAMEBUFFER_BINDING: + if (!read->read_fbo) break; + *data = ctx->read_fbo; + return TRUE; }
- return FALSE; + return get_default_fbo_integer( ctx, draw, read, pname, data ); }
const GLubyte *wrap_glGetString( TEB *teb, GLenum name )