glx: Compute the GLX extension string from __glXScreenInit
Now that the enable bits are in the screen base class we can compute this in one place, rather than making every backend do it. 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
e21de4bf3c
commit
2e8781ead3
|
@ -939,7 +939,6 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
|||
{
|
||||
const char *driverName, *deviceName;
|
||||
__GLXDRIscreen *screen;
|
||||
size_t buffer_size;
|
||||
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
|
||||
|
||||
screen = calloc(1, sizeof *screen);
|
||||
|
@ -988,17 +987,6 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
|||
|
||||
__glXScreenInit(&screen->base, pScreen);
|
||||
|
||||
/* The first call simply determines the length of the extension string.
|
||||
* This allows us to allocate some memory to hold the extension string,
|
||||
* but it requires that we call __glXGetExtensionString a second time.
|
||||
*/
|
||||
buffer_size = __glXGetExtensionString(screen->base.glx_enable_bits, NULL);
|
||||
if (buffer_size > 0) {
|
||||
screen->base.GLXextensions = xnfalloc(buffer_size);
|
||||
(void) __glXGetExtensionString(screen->base.glx_enable_bits,
|
||||
screen->base.GLXextensions);
|
||||
}
|
||||
|
||||
screen->enterVT = pScrn->EnterVT;
|
||||
pScrn->EnterVT = glxDRIEnterVT;
|
||||
screen->leaveVT = pScrn->LeaveVT;
|
||||
|
|
|
@ -448,7 +448,6 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
|||
{
|
||||
const char *driverName = "swrast";
|
||||
__GLXDRIscreen *screen;
|
||||
size_t buffer_size;
|
||||
|
||||
screen = calloc(1, sizeof *screen);
|
||||
if (screen == NULL)
|
||||
|
@ -490,17 +489,6 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
|||
|
||||
__glXScreenInit(&screen->base, pScreen);
|
||||
|
||||
/* The first call simply determines the length of the extension string.
|
||||
* This allows us to allocate some memory to hold the extension string,
|
||||
* but it requires that we call __glXGetExtensionString a second time.
|
||||
*/
|
||||
buffer_size = __glXGetExtensionString(screen->base.glx_enable_bits, NULL);
|
||||
if (buffer_size > 0) {
|
||||
screen->base.GLXextensions = xnfalloc(buffer_size);
|
||||
(void) __glXGetExtensionString(screen->base.glx_enable_bits,
|
||||
screen->base.GLXextensions);
|
||||
}
|
||||
|
||||
__glXsetGetProcAddress(glXGetProcAddressARB);
|
||||
|
||||
LogMessage(X_INFO, "AIGLX: Loaded and initialized %s\n", driverName);
|
||||
|
|
|
@ -383,6 +383,14 @@ __glXScreenInit(__GLXscreen * pGlxScreen, ScreenPtr pScreen)
|
|||
}
|
||||
|
||||
dixSetPrivate(&pScreen->devPrivates, glxScreenPrivateKey, pGlxScreen);
|
||||
|
||||
i = __glXGetExtensionString(pGlxScreen->glx_enable_bits, NULL);
|
||||
if (i > 0) {
|
||||
pGlxScreen->GLXextensions = xnfalloc(i);
|
||||
(void) __glXGetExtensionString(pGlxScreen->glx_enable_bits,
|
||||
pGlxScreen->GLXextensions);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
@ -542,20 +542,6 @@ __glXAquaScreenProbe(ScreenPtr pScreen)
|
|||
__glXInitExtensionEnableBits(screen->base.glx_enable_bits);
|
||||
__glXScreenInit(&screen->base, pScreen);
|
||||
|
||||
//__glXEnableExtension(screen->base.glx_enable_bits, "GLX_ARB_create_context");
|
||||
//__glXEnableExtension(screen->base.glx_enable_bits, "GLX_ARB_create_context_profile");
|
||||
|
||||
// Generate the GLX extensions string (overrides that set by __glXScreenInit())
|
||||
{
|
||||
unsigned int buffer_size =
|
||||
__glXGetExtensionString(screen->base.glx_enable_bits, NULL);
|
||||
if (buffer_size > 0) {
|
||||
screen->base.GLXextensions = xnfalloc(buffer_size);
|
||||
__glXGetExtensionString(screen->base.glx_enable_bits,
|
||||
screen->base.GLXextensions);
|
||||
}
|
||||
}
|
||||
|
||||
return &screen->base;
|
||||
}
|
||||
|
||||
|
|
|
@ -706,17 +706,6 @@ glxWinScreenProbe(ScreenPtr pScreen)
|
|||
screen->base.numVisuals = 0;
|
||||
|
||||
__glXScreenInit(&screen->base, pScreen);
|
||||
|
||||
// Generate the GLX extensions string (overrides that set by __glXScreenInit())
|
||||
{
|
||||
unsigned int buffer_size =
|
||||
__glXGetExtensionString(screen->base.glx_enable_bits, NULL);
|
||||
if (buffer_size > 0) {
|
||||
screen->base.GLXextensions = xnfalloc(buffer_size);
|
||||
__glXGetExtensionString(screen->base.glx_enable_bits,
|
||||
screen->base.GLXextensions);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
wglMakeCurrent(NULL, NULL);
|
||||
|
|
Loading…
Reference in New Issue
Block a user