glx: Use __glXInitExtensionEnableBits in all backends (v2)
On xquartz this enables SGI_make_current_read, which is a mostly harmless lie as CGL doesn't implement it, as well as SGIX_pbuffer, which is fine because no pbuffer-enabled configs are created. On xwin this enables SGIX_pbuffer and ARB_multisample in all cases. Again this is harmless if the backend doesn't support the features, since no fbconfigs will be created to expose them. It also adds SGIX_visual_select_group to both xquartz and xwin. Amusingly, both were filling in the appropriate field in the fbconfig already. v2: Warn about missing WGL extensions (Emil) Reviewed-by: Eric Anholt <eric@anholt.net> Reviewed-by: Emil Velikov <emil.velikov@collabora.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
15af78fc56
commit
77bdaa1313
|
@ -545,22 +545,12 @@ __glXAquaScreenProbe(ScreenPtr pScreen)
|
|||
screen->base.fbconfigs = __glXAquaCreateVisualConfigs(
|
||||
&screen->base.numFBConfigs, pScreen->myNum);
|
||||
|
||||
__glXInitExtensionEnableBits(screen->glx_enable_bits);
|
||||
__glXScreenInit(&screen->base, pScreen);
|
||||
|
||||
screen->base.GLXmajor = 1;
|
||||
screen->base.GLXminor = 4;
|
||||
|
||||
memset(screen->glx_enable_bits, 0, __GLX_EXT_BYTES);
|
||||
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_visual_info");
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_visual_rating");
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_import_context");
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_OML_swap_method");
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_SGIX_fbconfig");
|
||||
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_SGIS_multisample");
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_ARB_multisample");
|
||||
|
||||
//__glXEnableExtension(screen->glx_enable_bits, "GLX_ARB_create_context");
|
||||
//__glXEnableExtension(screen->glx_enable_bits, "GLX_ARB_create_context_profile");
|
||||
|
||||
|
|
|
@ -642,17 +642,12 @@ glxWinScreenProbe(ScreenPtr pScreen)
|
|||
// Based on the WGL extensions available, enable various GLX extensions
|
||||
// XXX: make this table-driven ?
|
||||
//
|
||||
memset(screen->glx_enable_bits, 0, __GLX_EXT_BYTES);
|
||||
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_visual_info");
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_visual_rating");
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_EXT_import_context");
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_OML_swap_method");
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_SGIX_fbconfig");
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_SGI_make_current_read");
|
||||
__glXInitExtensionEnableBits(screen->glx_enable_bits);
|
||||
|
||||
if (strstr(wgl_extensions, "WGL_ARB_make_current_read"))
|
||||
screen->has_WGL_ARB_make_current_read = TRUE;
|
||||
else
|
||||
LogMessage(X_WARNING, "AIGLX: missing WGL_ARB_make_current_read\n")
|
||||
|
||||
if (strstr(gl_extensions, "GL_WIN_swap_hint")) {
|
||||
__glXEnableExtension(screen->glx_enable_bits,
|
||||
|
@ -674,21 +669,15 @@ glxWinScreenProbe(ScreenPtr pScreen)
|
|||
/* screen->has_WGL_ARB_render_texture = TRUE; */
|
||||
/* } */
|
||||
|
||||
if (strstr(wgl_extensions, "WGL_ARB_pbuffer")) {
|
||||
__glXEnableExtension(screen->glx_enable_bits, "GLX_SGIX_pbuffer");
|
||||
LogMessage(X_INFO, "AIGLX: enabled GLX_SGIX_pbuffer\n");
|
||||
if (strstr(wgl_extensions, "WGL_ARB_pbuffer"))
|
||||
screen->has_WGL_ARB_pbuffer = TRUE;
|
||||
}
|
||||
else
|
||||
LogMessage(X_WARNING, "AIGLX: missing WGL_ARB_pbuffer\n")
|
||||
|
||||
if (strstr(wgl_extensions, "WGL_ARB_multisample")) {
|
||||
__glXEnableExtension(screen->glx_enable_bits,
|
||||
"GLX_ARB_multisample");
|
||||
__glXEnableExtension(screen->glx_enable_bits,
|
||||
"GLX_SGIS_multisample");
|
||||
LogMessage(X_INFO,
|
||||
"AIGLX: enabled GLX_ARB_multisample and GLX_SGIS_multisample\n");
|
||||
if (strstr(wgl_extensions, "WGL_ARB_multisample"))
|
||||
screen->has_WGL_ARB_multisample = TRUE;
|
||||
}
|
||||
else
|
||||
LogMessage(X_WARNING, "AIGLX: missing WGL_ARB_multisample\n")
|
||||
|
||||
screen->base.destroy = glxWinScreenDestroy;
|
||||
screen->base.createContext = glxWinCreateContext;
|
||||
|
|
Loading…
Reference in New Issue
Block a user