Spaces:
Runtime error
Runtime error
import pyglet | |
from pyglet.gl import GLuint, glGenVertexArrays, glDeleteVertexArrays, glBindVertexArray | |
__all__ = ['VertexArray'] | |
class VertexArray: | |
"""OpenGL Vertex Array Object""" | |
def __init__(self): | |
"""Create an instance of a Vertex Array object.""" | |
self._context = pyglet.gl.current_context | |
self._id = GLuint() | |
glGenVertexArrays(1, self._id) | |
def id(self): | |
return self._id.value | |
def bind(self): | |
glBindVertexArray(self._id) | |
def unbind(): | |
glBindVertexArray(0) | |
def delete(self): | |
try: | |
glDeleteVertexArrays(1, self._id) | |
except Exception: | |
pass | |
__enter__ = bind | |
def __exit__(self, *_): | |
glBindVertexArray(0) | |
def __del__(self): | |
try: | |
self._context.delete_vao(self.id) | |
# Python interpreter is shutting down: | |
except ImportError: | |
pass | |
def __repr__(self): | |
return "{}(id={})".format(self.__class__.__name__, self._id.value) | |