From 8faf5f4f35c5b642f00bfb9b238530362643489d Mon Sep 17 00:00:00 2001 From: Ioannis Tsakpinis Date: Fri, 22 Feb 2013 18:22:22 +0200 Subject: [PATCH] Reverted commit b333b029 that affected GLX extension detection. Fixes #16. We now only query glXQueryExtensionsString instead of the server & client GLX_EXTENSIONS strings. --- src/native/linux/opengl/extgl_glx.c | 31 ++++++++++++++--------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/native/linux/opengl/extgl_glx.c b/src/native/linux/opengl/extgl_glx.c index 42a436a4..2a22e012 100644 --- a/src/native/linux/opengl/extgl_glx.c +++ b/src/native/linux/opengl/extgl_glx.c @@ -100,8 +100,8 @@ static glXGetProcAddressARBPROC lwjgl_glXGetProcAddressARB; static GLXExtensions symbols_flags; /** returns true if the extention is available */ -static bool GLXQueryExtension(const GLubyte *serverExts, const GLubyte *clientExts, const char *name) { - return extgl_QueryExtension(clientExts, name) || extgl_QueryExtension(serverExts, name); +static inline bool GLXQueryExtension(const GLubyte *exts, const char *name) { + return extgl_QueryExtension(exts, name); } static void extgl_InitGLX13() { @@ -192,21 +192,20 @@ static void extgl_InitGLXNVVideoCapture() { } static void extgl_InitGLXSupportedExtensions(Display *disp, int screen, GLXExtensions *extension_flags) { - const GLubyte *serverExts = (const GLubyte *)lwjgl_glXQueryServerString(disp, screen, GLX_EXTENSIONS); - const GLubyte *clientExts = (const GLubyte *)lwjgl_glXGetClientString(disp, GLX_EXTENSIONS); + const GLubyte *exts = (const GLubyte *)lwjgl_glXQueryExtensionsString(disp, screen); -/* extension_flags.GLX_EXT_visual_info = GLXQueryExtension(serverExts, clientExts, "GLX_EXT_visual_info"); - extension_flags.GLX_EXT_visual_rating = GLXQueryExtension(serverExts, clientExts, "GLX_EXT_visual_rating");*/ - extension_flags->GLX_SGI_swap_control = symbols_flags.GLX_SGI_swap_control && GLXQueryExtension(serverExts, clientExts, "GLX_SGI_swap_control"); - extension_flags->GLX_EXT_swap_control = symbols_flags.GLX_EXT_swap_control && GLXQueryExtension(serverExts, clientExts, "GLX_EXT_swap_control"); - extension_flags->GLX_ARB_multisample = GLXQueryExtension(serverExts, clientExts, "GLX_ARB_multisample"); - extension_flags->GLX_ARB_fbconfig_float = GLXQueryExtension(serverExts, clientExts, "GLX_ARB_fbconfig_float"); - extension_flags->GLX_EXT_fbconfig_packed_float = GLXQueryExtension(serverExts, clientExts, "GLX_EXT_fbconfig_packed_float"); - extension_flags->GLX_ARB_framebuffer_sRGB = GLXQueryExtension(serverExts, clientExts, "GLX_ARB_framebuffer_sRGB") || GLXQueryExtension(serverExts, clientExts, "GLX_EXT_framebuffer_sRGB"); - extension_flags->GLX_ARB_create_context = GLXQueryExtension(serverExts, clientExts, "GLX_ARB_create_context"); - extension_flags->GLX_NV_multisample_coverage = GLXQueryExtension(serverExts, clientExts, "GLX_NV_multisample_coverage"); - extension_flags->GLX_NV_present_video = GLXQueryExtension(serverExts, clientExts, "GLX_NV_present_video"); - extension_flags->GLX_NV_video_capture = GLXQueryExtension(serverExts, clientExts, "GLX_NV_video_capture"); +/* extension_flags.GLX_EXT_visual_info = GLXQueryExtension(exts, "GLX_EXT_visual_info"); + extension_flags.GLX_EXT_visual_rating = GLXQueryExtension(exts, "GLX_EXT_visual_rating");*/ + extension_flags->GLX_SGI_swap_control = symbols_flags.GLX_SGI_swap_control && GLXQueryExtension(exts, "GLX_SGI_swap_control"); + extension_flags->GLX_EXT_swap_control = symbols_flags.GLX_EXT_swap_control && GLXQueryExtension(exts, "GLX_EXT_swap_control"); + extension_flags->GLX_ARB_multisample = GLXQueryExtension(exts, "GLX_ARB_multisample"); + extension_flags->GLX_ARB_fbconfig_float = GLXQueryExtension(exts, "GLX_ARB_fbconfig_float"); + extension_flags->GLX_EXT_fbconfig_packed_float = GLXQueryExtension(exts, "GLX_EXT_fbconfig_packed_float"); + extension_flags->GLX_ARB_framebuffer_sRGB = GLXQueryExtension(exts, "GLX_ARB_framebuffer_sRGB") || GLXQueryExtension(exts, "GLX_EXT_framebuffer_sRGB"); + extension_flags->GLX_ARB_create_context = GLXQueryExtension(exts, "GLX_ARB_create_context"); + extension_flags->GLX_NV_multisample_coverage = GLXQueryExtension(exts, "GLX_NV_multisample_coverage"); + extension_flags->GLX_NV_present_video = GLXQueryExtension(exts, "GLX_NV_present_video"); + extension_flags->GLX_NV_video_capture = GLXQueryExtension(exts, "GLX_NV_video_capture"); } bool extgl_Open(JNIEnv *env) {