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;
|
const char *driverName, *deviceName;
|
||||||
__GLXDRIscreen *screen;
|
__GLXDRIscreen *screen;
|
||||||
size_t buffer_size;
|
|
||||||
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
|
ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
|
||||||
|
|
||||||
screen = calloc(1, sizeof *screen);
|
screen = calloc(1, sizeof *screen);
|
||||||
|
@ -988,17 +987,6 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
||||||
|
|
||||||
__glXScreenInit(&screen->base, 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;
|
screen->enterVT = pScrn->EnterVT;
|
||||||
pScrn->EnterVT = glxDRIEnterVT;
|
pScrn->EnterVT = glxDRIEnterVT;
|
||||||
screen->leaveVT = pScrn->LeaveVT;
|
screen->leaveVT = pScrn->LeaveVT;
|
||||||
|
|
|
@ -448,7 +448,6 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
||||||
{
|
{
|
||||||
const char *driverName = "swrast";
|
const char *driverName = "swrast";
|
||||||
__GLXDRIscreen *screen;
|
__GLXDRIscreen *screen;
|
||||||
size_t buffer_size;
|
|
||||||
|
|
||||||
screen = calloc(1, sizeof *screen);
|
screen = calloc(1, sizeof *screen);
|
||||||
if (screen == NULL)
|
if (screen == NULL)
|
||||||
|
@ -490,17 +489,6 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
|
||||||
|
|
||||||
__glXScreenInit(&screen->base, 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);
|
__glXsetGetProcAddress(glXGetProcAddressARB);
|
||||||
|
|
||||||
LogMessage(X_INFO, "AIGLX: Loaded and initialized %s\n", driverName);
|
LogMessage(X_INFO, "AIGLX: Loaded and initialized %s\n", driverName);
|
||||||
|
|
|
@ -383,6 +383,14 @@ __glXScreenInit(__GLXscreen * pGlxScreen, ScreenPtr pScreen)
|
||||||
}
|
}
|
||||||
|
|
||||||
dixSetPrivate(&pScreen->devPrivates, glxScreenPrivateKey, pGlxScreen);
|
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
|
void
|
||||||
|
|
|
@ -542,20 +542,6 @@ __glXAquaScreenProbe(ScreenPtr pScreen)
|
||||||
__glXInitExtensionEnableBits(screen->base.glx_enable_bits);
|
__glXInitExtensionEnableBits(screen->base.glx_enable_bits);
|
||||||
__glXScreenInit(&screen->base, pScreen);
|
__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;
|
return &screen->base;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -706,17 +706,6 @@ glxWinScreenProbe(ScreenPtr pScreen)
|
||||||
screen->base.numVisuals = 0;
|
screen->base.numVisuals = 0;
|
||||||
|
|
||||||
__glXScreenInit(&screen->base, pScreen);
|
__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);
|
wglMakeCurrent(NULL, NULL);
|
||||||
|
|
Loading…
Reference in New Issue