Fixed GLX extension detection.

This commit is contained in:
Ioannis Tsakpinis 2011-08-18 17:13:05 +00:00
parent 67945fe317
commit b333b029bd
2 changed files with 16 additions and 16 deletions

View File

@ -41,8 +41,6 @@ package org.lwjgl.util.generator;
* $Id$ * $Id$
*/ */
import org.lwjgl.opencl.CLMem;
import com.sun.mirror.declaration.*; import com.sun.mirror.declaration.*;
import com.sun.mirror.type.*; import com.sun.mirror.type.*;

View File

@ -97,9 +97,8 @@ static glXGetProcAddressARBPROC lwjgl_glXGetProcAddressARB;
static GLXExtensions symbols_flags; static GLXExtensions symbols_flags;
/** returns true if the extention is available */ /** returns true if the extention is available */
static bool GLXQueryExtension(Display *disp, int screen, const char *name) { static bool GLXQueryExtension(const GLubyte *serverExts, const GLubyte *clientExts, const char *name) {
const GLubyte *exts = (const GLubyte *)lwjgl_glXQueryExtensionsString(disp, screen); return extgl_QueryExtension(clientExts, name) || extgl_QueryExtension(serverExts, name);
return extgl_QueryExtension(exts, name);
} }
static void extgl_InitGLX13() { static void extgl_InitGLX13() {
@ -184,17 +183,20 @@ static void extgl_InitGLXNVVideoCapture() {
} }
static void extgl_InitGLXSupportedExtensions(Display *disp, int screen, GLXExtensions *extension_flags) { static void extgl_InitGLXSupportedExtensions(Display *disp, int screen, GLXExtensions *extension_flags) {
/* extension_flags.GLX_EXT_visual_info = GLXQueryExtension(disp, screen, "GLX_EXT_visual_info"); const GLubyte *serverExts = (const GLubyte *)lwjgl_glXQueryServerString(disp, screen, GLX_EXTENSIONS);
extension_flags.GLX_EXT_visual_rating = GLXQueryExtension(disp, screen, "GLX_EXT_visual_rating");*/ const GLubyte *clientExts = (const GLubyte *)lwjgl_glXGetClientString(disp, GLX_EXTENSIONS);
extension_flags->GLX_SGI_swap_control = symbols_flags.GLX_SGI_swap_control && GLXQueryExtension(disp, screen, "GLX_SGI_swap_control");
extension_flags->GLX_ARB_multisample = GLXQueryExtension(disp, screen, "GLX_ARB_multisample"); /* extension_flags.GLX_EXT_visual_info = GLXQueryExtension(serverExts, clientExts, "GLX_EXT_visual_info");
extension_flags->GLX_ARB_fbconfig_float = GLXQueryExtension(disp, screen, "GLX_ARB_fbconfig_float"); extension_flags.GLX_EXT_visual_rating = GLXQueryExtension(serverExts, clientExts, "GLX_EXT_visual_rating");*/
extension_flags->GLX_EXT_fbconfig_packed_float = GLXQueryExtension(disp, screen, "GLX_EXT_fbconfig_packed_float"); extension_flags->GLX_SGI_swap_control = symbols_flags.GLX_SGI_swap_control && GLXQueryExtension(serverExts, clientExts, "GLX_SGI_swap_control");
extension_flags->GLX_ARB_framebuffer_sRGB = GLXQueryExtension(disp, screen, "GLX_ARB_framebuffer_sRGB") || GLXQueryExtension(disp, screen, "GLX_EXT_framebuffer_sRGB"); extension_flags->GLX_ARB_multisample = GLXQueryExtension(serverExts, clientExts, "GLX_ARB_multisample");
extension_flags->GLX_ARB_create_context = GLXQueryExtension(disp, screen, "GLX_ARB_create_context"); extension_flags->GLX_ARB_fbconfig_float = GLXQueryExtension(serverExts, clientExts, "GLX_ARB_fbconfig_float");
extension_flags->GLX_NV_multisample_coverage = GLXQueryExtension(disp, screen, "GLX_NV_multisample_coverage"); extension_flags->GLX_EXT_fbconfig_packed_float = GLXQueryExtension(serverExts, clientExts, "GLX_EXT_fbconfig_packed_float");
extension_flags->GLX_NV_present_video = GLXQueryExtension(disp, screen, "GLX_NV_present_video"); extension_flags->GLX_ARB_framebuffer_sRGB = GLXQueryExtension(serverExts, clientExts, "GLX_ARB_framebuffer_sRGB") || GLXQueryExtension(serverExts, clientExts, "GLX_EXT_framebuffer_sRGB");
extension_flags->GLX_NV_video_capture = GLXQueryExtension(disp, screen, "GLX_NV_video_capture"); 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");
} }
bool extgl_Open(JNIEnv *env) { bool extgl_Open(JNIEnv *env) {