Lightningbeam/GUI/Generic/GLShareGroups.py

30 lines
816 B
Python

#
# PyGUI - OpenGL Context Sharing - Generic
#
from weakref import WeakKeyDictionary
class ShareGroup(object):
"""Object representing a shared texture and display list
namespace for OpenGL contexts."""
def __init__(self):
self.contexts = WeakKeyDictionary()
def __contains__(self, context):
"Test whether a GLView or GLPixmap is a member of this share group."
return context in self.contexts
def __iter__(self):
"Return an iterator over the members of this share group."
return iter(self.contexts)
def _add(self, context):
self.contexts[context] = 1
def _some_member(self, exclude = None):
for member in self.contexts:
if member is not exclude:
return member
return None