added _mesa_share_state()

This commit is contained in:
Brian Paul 2005-04-15 17:25:07 +00:00
parent 509710cfd7
commit 635ee2df37
2 changed files with 28 additions and 0 deletions

View File

@ -2000,6 +2000,32 @@ _mesa_make_current2( GLcontext *newCtx, GLframebuffer *drawBuffer,
}
}
/**
* Make context 'ctx' share the display lists, textures and programs
* that are associated with 'ctxToShare'.
* Any display lists, textures or programs associated with 'ctx' will
* be deleted if nobody else is sharing them.
*/
GLboolean
_mesa_share_state(GLcontext *ctx, GLcontext *ctxToShare)
{
if (ctx && ctxToShare && ctx->Shared && ctxToShare->Shared) {
ctx->Shared->RefCount--;
if (ctx->Shared->RefCount == 0) {
free_shared_state(ctx, ctx->Shared);
}
ctx->Shared = ctxToShare->Shared;
ctx->Shared->RefCount++;
return GL_TRUE;
}
else {
return GL_FALSE;
}
}
/**
* Get current context for the calling thread.
*

View File

@ -162,6 +162,8 @@ extern void
_mesa_make_current2( GLcontext *ctx, GLframebuffer *drawBuffer,
GLframebuffer *readBuffer );
extern GLboolean
_mesa_share_state(GLcontext *ctx, GLcontext *ctxToShare);
extern GLcontext *
_mesa_get_current_context(void);