diff options
author | marha <marha@users.sourceforge.net> | 2009-12-22 18:18:58 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-12-22 18:18:58 +0000 |
commit | 3b79162ea5c5be078326f2e0ea85b0f84c02f166 (patch) | |
tree | 6826d1ef026f16ec12d35ee6bd4a892d0a05b7e0 /mesalib/src/mesa/main/texstate.c | |
parent | 4284aeba874b9168f2228c59639bec8346a56796 (diff) | |
parent | b729d9e1cc1c60e415da24143cabcbaccb525ed7 (diff) | |
download | vcxsrv-3b79162ea5c5be078326f2e0ea85b0f84c02f166.tar.gz vcxsrv-3b79162ea5c5be078326f2e0ea85b0f84c02f166.tar.bz2 vcxsrv-3b79162ea5c5be078326f2e0ea85b0f84c02f166.zip |
svn merge ^/branches/released
Diffstat (limited to 'mesalib/src/mesa/main/texstate.c')
-rw-r--r-- | mesalib/src/mesa/main/texstate.c | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/mesalib/src/mesa/main/texstate.c b/mesalib/src/mesa/main/texstate.c index 861c5f37c..8292d43eb 100644 --- a/mesalib/src/mesa/main/texstate.c +++ b/mesalib/src/mesa/main/texstate.c @@ -99,16 +99,22 @@ _mesa_copy_texture_state( const GLcontext *src, GLcontext *dst ) dst->Texture.Unit[u].BumpTarget = src->Texture.Unit[u].BumpTarget; COPY_4V(dst->Texture.Unit[u].RotMatrix, src->Texture.Unit[u].RotMatrix); + /* + * XXX strictly speaking, we should compare texture names/ids and + * bind textures in the dest context according to id. For now, only + * copy bindings if the contexts share the same pool of textures to + * avoid refcounting bugs. + */ + if (dst->Shared == src->Shared) { + /* copy texture object bindings, not contents of texture objects */ + _mesa_lock_context_textures(dst); - /* copy texture object bindings, not contents of texture objects */ - _mesa_lock_context_textures(dst); - - for (tex = 0; tex < NUM_TEXTURE_TARGETS; tex++) { - _mesa_reference_texobj(&dst->Texture.Unit[u].CurrentTex[tex], - src->Texture.Unit[u].CurrentTex[tex]); + for (tex = 0; tex < NUM_TEXTURE_TARGETS; tex++) { + _mesa_reference_texobj(&dst->Texture.Unit[u].CurrentTex[tex], + src->Texture.Unit[u].CurrentTex[tex]); + } + _mesa_unlock_context_textures(dst); } - - _mesa_unlock_context_textures(dst); } } |