wgl: Implement ShareLists.

This commit is contained in:
José Fonseca 2009-05-01 18:49:22 +01:00 committed by Keith Whitwell
parent d56b0e6847
commit 4d28fcfeaa
4 changed files with 28 additions and 7 deletions

View file

@ -562,7 +562,7 @@ DrvShareLists(
if (DBG)
debug_printf( "%s\n", __FUNCTION__ );
return FALSE;
return stw_share_lists(dhglrc1, dhglrc2);
}
BOOL APIENTRY

View file

@ -74,6 +74,30 @@ stw_copy_context(
return ret;
}
BOOL
stw_share_lists(
UINT_PTR hglrc1,
UINT_PTR hglrc2 )
{
struct stw_context *ctx1;
struct stw_context *ctx2;
BOOL ret = FALSE;
pipe_mutex_lock( stw_dev->mutex );
ctx1 = stw_lookup_context_locked( hglrc1 );
ctx2 = stw_lookup_context_locked( hglrc2 );
if (ctx1 && ctx2 &&
ctx1->pfi == ctx2->pfi) {
ret = _mesa_share_state(ctx2->st->ctx, ctx1->st->ctx);
}
pipe_mutex_unlock( stw_dev->mutex );
return ret;
}
UINT_PTR
stw_create_layer_context(
HDC hdc,

View file

@ -37,6 +37,8 @@ BOOL stw_copy_context( UINT_PTR hglrcSrc,
UINT_PTR stw_create_layer_context( HDC hdc,
int iLayerPlane );
BOOL stw_share_lists( UINT_PTR hglrc1, UINT_PTR hglrc2 );
BOOL stw_delete_context( UINT_PTR hglrc );
BOOL

View file

@ -186,12 +186,7 @@ wglShareLists(
HGLRC hglrc1,
HGLRC hglrc2 )
{
(void) hglrc1;
(void) hglrc2;
assert( 0 );
return FALSE;
return stw_share_lists( (UINT_PTR)hglrc1, (UINT_PTR)hglrc2);;
}
WINGDIAPI BOOL APIENTRY