def set_current(self): if not self.canvas: raise RuntimeError('Canvas has not been attached') # XXX not per-thread gl.current_context = self # XXX gl_info.set_active_context() if not self._info: self._info = gl_info.GLInfo() self._info.set_active_context() # Release Textures, Buffers, and VAOs on this context scheduled for # deletion. Note that the garbage collector may introduce a race # condition, so operate on a copy, and clear the list afterwards. if self.object_space.doomed_textures: textures = self.object_space.doomed_textures[:] textures = (gl.GLuint * len(textures))(*textures) gl.glDeleteTextures(len(textures), textures) self.object_space.doomed_textures.clear() if self.object_space.doomed_buffers: buffers = self.object_space.doomed_buffers[:] buffers = (gl.GLuint * len(buffers))(*buffers) gl.glDeleteBuffers(len(buffers), buffers) self.object_space.doomed_buffers.clear() if self.object_space.doomed_vaos: vaos = self.object_space.doomed_vaos[:] vaos = (gl.GLuint * len(vaos))(*vaos) gl.glDeleteVertexArrays(len(vaos), vaos) self.object_space.doomed_vaos.clear()
def release(vao): # If we have no context, then we are shutting down, so skip this if gl.current_context is None: return if vao.value != 0: gl.glDeleteVertexArrays(1, byref(vao)) vao.value = 0
def deleteVAO(vao): """Delete a Vertex Array Object (VAO). This does not delete array buffers bound to the VAO. Returns ------- :obj:`None' """ GL.glDeleteVertexArrays(1, vao.id)
def release(ctx: "Context", glo: gl.GLuint): """ Delete this object. This is automatically called when this object is garbage collected. """ # If we have no context, then we are shutting down, so skip this if gl.current_context is None: return if glo.value != 0: gl.glDeleteVertexArrays(1, byref(glo)) glo.value = 0 ctx.stats.decr("vertex_array")
def _invalidate_device_objects(self): if self._vao_handle.value > -1: gl.glDeleteVertexArrays(1, byref(self._vao_handle)) if self._vbo_handle.value > -1: gl.glDeleteBuffers(1, byref(self._vbo_handle)) if self._elements_handle.value > -1: gl.glDeleteBuffers(1, byref(self._elements_handle)) self._vao_handle = self._vbo_handle = self._elements_handle = 0 gl.glDeleteProgram(self._shader_handle) self._shader_handle = 0 if self._font_texture.value > -1: gl.glDeleteTextures(1, byref(self._font_texture)) self.io.fonts.texture_id = 0 self._font_texture = 0
def delete_vao(self, vao_id): """Safely delete a Vertex Array Object belonging to this context. This method behaves similarly to `delete_texture`, though for ``glDeleteVertexArrays`` instead of ``glDeleteTextures``. :Parameters: `vao_id` : int The OpenGL name of the Vertex Array to delete. .. versionadded:: 2.0 """ if gl.current_context and self.object_space is gl.current_context.object_space and False: v_id = gl.GLuint(vao_id) gl.glDeleteVertexArrays(1, v_id) else: self.object_space.doomed_vaos.append(vao_id)
def __del__(self): try: glDeleteVertexArrays(1, self._id) # Python interpreter is shutting down: except ImportError: pass
def delete(self): glDeleteVertexArrays(1, self._id)
def delete(self): try: glDeleteVertexArrays(1, self._id) except Exception: pass
def delete(self): gl.glDeleteVertexArrays(1, (c_uint * 1)(self.name))
def __del__(self): gl.glDeleteQueries(1, self.occlusion_query) gl.glDeleteBuffers(1, self.vbo) gl.glDeleteVertexArrays(1, self.vao)
def on_key_press(self, sym, mod): if sym == key.ESCAPE: del self.shader del self.suzanne glDeleteVertexArrays(1, self.vao) self.close()
def __del__(self): if self.__value is not None: buf = ct.c_uint() buf.value = self.__value gl.glDeleteVertexArrays(1, ct.byref(buf))