From 4f38dcd97410d0a58be19cb5c6dfbee51a3b7561 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Thu, 11 Nov 2010 00:09:09 +0800 Subject: gallium: Add st_context_iface::share to st_api. It will be used to implement wglShareLists. Fill st_context_iface::copy for glXCopyContext as well. --- src/mesa/state_tracker/st_manager.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/mesa/state_tracker') diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c index 35b59de5a0..15e7b8921c 100644 --- a/src/mesa/state_tracker/st_manager.c +++ b/src/mesa/state_tracker/st_manager.c @@ -610,6 +610,26 @@ st_context_teximage(struct st_context_iface *stctxi, enum st_texture_type target return TRUE; } +static void +st_context_copy(struct st_context_iface *stctxi, + struct st_context_iface *stsrci, unsigned mask) +{ + struct st_context *st = (struct st_context *) stctxi; + struct st_context *src = (struct st_context *) stsrci; + + _mesa_copy_context(src->ctx, st->ctx, mask); +} + +static boolean +st_context_share(struct st_context_iface *stctxi, + struct st_context_iface *stsrci) +{ + struct st_context *st = (struct st_context *) stctxi; + struct st_context *src = (struct st_context *) stsrci; + + return _mesa_share_state(st->ctx, src->ctx); +} + static void st_context_destroy(struct st_context_iface *stctxi) { @@ -677,7 +697,8 @@ st_api_create_context(struct st_api *stapi, struct st_manager *smapi, st_context_notify_invalid_framebuffer; st->iface.flush = st_context_flush; st->iface.teximage = st_context_teximage; - st->iface.copy = NULL; + st->iface.copy = st_context_copy; + st->iface.share = st_context_share; st->iface.st_context_private = (void *) smapi; return &st->iface; -- cgit v1.2.3