xlib: Ensure one screen instance.

This commit is contained in:
José Fonseca 2009-08-09 22:59:12 +01:00
parent 0318f3e53e
commit 62c91998ef

View file

@ -742,7 +742,7 @@ PUBLIC
XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
{
static GLboolean firstTime = GL_TRUE;
struct pipe_screen *screen;
static struct pipe_screen *screen = NULL;
struct pipe_context *pipe;
XMesaContext c;
GLcontext *mesaCtx;
@ -750,6 +750,7 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
if (firstTime) {
pipe_mutex_init(_xmesa_lock);
screen = driver.create_pipe_screen();
firstTime = GL_FALSE;
}
@ -765,9 +766,6 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
c->xm_buffer = NULL; /* set later by XMesaMakeCurrent */
c->xm_read_buffer = NULL;
/* XXX: create once per Xlib Display.
*/
screen = driver.create_pipe_screen();
if (screen == NULL)
goto fail;
@ -801,9 +799,6 @@ XMesaContext XMesaCreateContext( XMesaVisual v, XMesaContext share_list )
else if (pipe)
pipe->destroy(pipe);
if (screen)
screen->destroy( screen );
FREE(c);
return NULL;
}