30 lines
816 B
Python
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
|