glx/dri: only report DRI2 extensions when DRI2 is enabled.

Fixes bug 15477
This commit is contained in:
Dave Airlie 2008-07-13 19:00:46 +10:00
parent e81ba58bf4
commit 4fab47b13c
5 changed files with 6 additions and 6 deletions

View File

@ -308,7 +308,7 @@ static __GLXDRIscreen *dri2CreateScreen(__GLXscreenConfigs *psc, int screen,
return NULL;
}
driBindExtensions(psc);
driBindExtensions(psc, 1);
psc->configs = driConvertConfigs(psc->core, psc->configs, driver_configs);
psc->visuals = driConvertConfigs(psc->core, psc->visuals, driver_configs);

View File

@ -329,7 +329,7 @@ driConvertConfigs(const __DRIcoreExtension *core,
}
_X_HIDDEN void
driBindExtensions(__GLXscreenConfigs *psc)
driBindExtensions(__GLXscreenConfigs *psc, int dri2)
{
const __DRIextension **extensions;
int i;
@ -386,7 +386,7 @@ driBindExtensions(__GLXscreenConfigs *psc)
#endif
#ifdef __DRI_TEX_BUFFER
if (strcmp(extensions[i]->name, __DRI_TEX_BUFFER) == 0) {
if ((strcmp(extensions[i]->name, __DRI_TEX_BUFFER) == 0) && dri2) {
psc->texBuffer = (__DRItexBufferExtension *) extensions[i];
__glXEnableDirectExtension(psc, "GLX_EXT_texture_from_pixmap");
}

View File

@ -55,6 +55,6 @@ extern void ErrorMessageF(const char *f, ...);
extern void *driOpenDriver(const char *driverName);
extern void driBindExtensions(__GLXscreenConfigs *psc);
extern void driBindExtensions(__GLXscreenConfigs *psc, int dri2);
#endif /* _DRI_COMMON_H */

View File

@ -635,7 +635,7 @@ static __GLXDRIscreen *driCreateScreen(__GLXscreenConfigs *psc, int screen,
return NULL;
}
driBindExtensions(psc);
driBindExtensions(psc, 0);
psp->destroyScreen = driDestroyScreen;
psp->createContext = driCreateContext;

View File

@ -390,7 +390,7 @@ static __GLXDRIscreen *driCreateScreen(__GLXscreenConfigs *psc, int screen,
goto handle_error;
}
driBindExtensions(psc);
driBindExtensions(psc, 0);
psc->configs = driConvertConfigs(psc->core, psc->configs, driver_configs);
psc->visuals = driConvertConfigs(psc->core, psc->visuals, driver_configs);