示例#1
0
def unregister():
    if textures:
        tex_set = set()
        for tex, buf, sx, sy, _x, _y, _w, _h in textures.values():
            tex_set.add(tex)
        buf = bgl.Buffer(bgl.GL_INT, len(tex_set), list(tex_set))
        bgl.glDeleteTextures(len(buf), buf)
示例#2
0
    def refresh_font_texture(self):
        # save texture state
        buf = gl.Buffer(gl.GL_INT, 1)
        gl.glGetIntegerv(gl.GL_TEXTURE_BINDING_2D, buf)
        last_texture = buf[0]

        width, height, pixels = self.io.fonts.get_tex_data_as_rgba32()

        if self._font_texture is not None:
            gl.glDeleteTextures([self._font_texture])

        gl.glGenTextures(1, buf)
        self._font_texture = buf[0]

        gl.glBindTexture(gl.GL_TEXTURE_2D, self._font_texture)
        gl.glTexParameteri(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MIN_FILTER,
                           gl.GL_LINEAR)
        gl.glTexParameteri(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MAG_FILTER,
                           gl.GL_LINEAR)

        pixel_buffer = gl.Buffer(gl.GL_BYTE, [4 * width * height])
        pixel_buffer[:] = pixels
        gl.glTexImage2D(gl.GL_TEXTURE_2D, 0, gl.GL_RGBA, width, height, 0,
                        gl.GL_RGBA, gl.GL_UNSIGNED_BYTE, pixel_buffer)

        self.io.fonts.texture_id = self._font_texture
        gl.glBindTexture(gl.GL_TEXTURE_2D, last_texture)
        self.io.fonts.clear_tex_data()
示例#3
0
 def __del__(self):
     self.log.info('[%s] CustomDrawData.__del__() [%s]' %
                   (time.asctime(), self))
     bgl.glDeleteBuffers(2, self.vertex_buffer)
     bgl.glDeleteVertexArrays(1, self.vertex_array)
     bgl.glBindTexture(bgl.GL_TEXTURE_2D, 0)
     bgl.glDeleteTextures(1, self.texture)
示例#4
0
 def __del__(self):
     textures = bgl.Buffer(bgl.GL_INT, [
         1,
     ], [
         self.texture_id,
     ])
     bgl.glDeleteTextures(1, textures)
示例#5
0
 def __dell__(self):
     if self.id:
         texture = bgl.Buffer(bgl.GL_INT, 1)
         texture[0] = self.id
         bgl.glBindTexture(bgl.GL_TEXTURE_2D, self.id)
         bgl.glDeleteTextures(1, texture)
         self.id = None
示例#6
0
def unregister():
    if textures:
        tex_set = set()
        for tex, buf, sx, sy, _x, _y, _w, _h in textures.values():
            tex_set.add(tex)
        buf = bgl.Buffer(bgl.GL_INT, len(tex_set), list(tex_set))
        bgl.glDeleteTextures(len(buf), buf)
    def __del__(self):
        log('CustomDrawData.__del__()')

        bgl.glDeleteBuffers(2, self.vertex_buffer)
        bgl.glDeleteVertexArrays(1, self.vertex_array)
        bgl.glBindTexture(bgl.GL_TEXTURE_2D, 0)
        bgl.glDeleteTextures(1, self.texture)
示例#8
0
def clean_icon_texture():
    print('cleaning the texture')
    settings = context.user_prefernces.addons['piemenus'].preferences
    tex_name = settings.pieIconBindcode
    residencies = None
    bgl.glAreTexturesResident(1, tex_name, residencies)
    if residencies:
        bgl.glDeleteTextures(1, tex_name)
示例#9
0
def clean_icon_texture():
    print('cleaning the texture')
    scene = bpy.context.scene
    tex_name = scene.pieIconBindcode
    residencies = None
    bgl.glAreTexturesResident(1, tex_name, residencies)
    if residencies:
        bgl.glDeleteTextures(1, tex_name)
示例#10
0
    def close(self):
        if not self.initialized:
            return

        bgl.glDeleteBuffers(2, self.vertex_buffer)
        bgl.glDeleteVertexArrays(1, self.vertex_array)
        bgl.glBindTexture(bgl.GL_TEXTURE_2D, 0)
        bgl.glDeleteTextures(1, self.texture)
示例#11
0
 def delete(self):
     super().delete()
     textures = bgl.Buffer(bgl.GL_INT, [
         1,
     ], [
         self.texture_id,
     ])
     bgl.glDeleteTextures(1, textures)
示例#12
0
def clean_icon_texture():
    print("cleaning the texture")
    settings = context.user_prefernces.addons["piemenus"].preferences
    tex_name = settings.pieIconBindcode
    residencies = None
    bgl.glAreTexturesResident(1, tex_name, residencies)
    if residencies:
        bgl.glDeleteTextures(1, tex_name)
 def _delete(self):
     textures = bgl.Buffer(bgl.GL_INT, [
         1,
     ], [
         self.texture_id,
     ])
     bgl.glDeleteTextures(1, textures)
     self.texture_id = 0
     self.image = None
示例#14
0
 def unload(self):
     if self.scene != None:
         try:
             self.scene.filterManager.removeFilter(self.slot)
         except SystemError:
             pass
         Filter2D.uslot.remove(self.slot)
     for x in self.textures:
         if str(type(x)) == "<class 'bgl.Buffer'>":
             bgl.glDeleteTextures(1, x)
示例#15
0
    def __del__(self):
        if not self.freed:
            bgl.glDeleteFramebuffers(1, self.fbo)
            bgl.glDeleteRenderbuffers(1, self.buf_depth)
            bgl.glDeleteTextures(1, self.buf_color)
            del self.fbo
            del self.buf_color
            del self.buf_depth

            del self.cur_fbo
            del self.cur_viewport
示例#16
0
    def __del__(self):
        if not self.freed:
            bgl.glDeleteFramebuffers(1, self.fbo)
            bgl.glDeleteRenderbuffers(1, self.buf_depth)
            bgl.glDeleteTextures(1, self.buf_color)
            del self.fbo
            del self.buf_color
            del self.buf_depth

            del self.cur_fbo
            del self.cur_viewport
示例#17
0
    def dispose(self) -> None:
        if self._draw_handler:
            # noinspection PyArgumentList
            SpaceView3D.draw_handler_remove(self._draw_handler, "WINDOW")
        else:
            bge.logic.getCurrentScene().post_draw.remove(self.process)

        bgl.glDeleteTextures(1, self.texture)

        # noinspection PyTypeChecker
        bgl.glDeleteBuffers(1, self.texture)

        super().dispose()
示例#18
0
文件: zu.py 项目: vktec/zu
    def delfb(self):
        buf = bgl.Buffer(bgl.GL_INT, 1)

        if self.vtx_buf is not None:
            bgl.glDeleteBuffers(2, self.vtx_buf)
            self.vtx_buf = None
        if self.vao is not None:
            buf[0] = self.vao
            bgl.glDeleteVertexArrays(1, buf)
            self.vao = None

        if self.tex is not None:
            buf[0] = self.tex
            bgl.glDeleteTextures(1, buf)
            self.tex = None
        if self.depth is not None:
            buf[0] = self.depth
            bgl.glDeleteRenderbuffers(1, buf)
            self.depth = None
        if self.fb is not None:
            buf[0] = self.fb
            bgl.glDeleteFramebuffers(1, buf)
            self.fb = None
示例#19
0
 def delete_texture(self):
     if self.node_id in self.texture:
         bgl.glDeleteTextures(1, bgl.Buffer(bgl.GL_INT, 1, self.texture[self.node_id]["name"]))
示例#20
0
 def __del__(self):
     bgl.glDeleteBuffers(2, self.vertex_buffer)
     bgl.glDeleteVertexArrays(1, self.vertex_array)
     bgl.glBindTexture(bgl.GL_TEXTURE_2D, 0)
     bgl.glDeleteTextures(1, self.texture)
示例#21
0
 def delete_texture(self):
     n_id = node_id(self)
     if n_id in self.texture:
         names = bgl.Buffer(bgl.GL_INT, 1, [self.texture[n_id]])
         bgl.glDeleteTextures(1, names)
示例#22
0
 def free(self):
     bgl.glDeleteTextures(1, self.__buffer)
示例#23
0
 def delete_textures(self):
     if self.use_texture:
         buf = bgl.Buffer(bgl.GL_INT, 1, [self.texture_back])
         bgl.glDeleteTextures(1, buf)
示例#24
0
 def __del__(self):
     bgl.glDeleteBuffers(2, self.vertex_buffer)
     bgl.glDeleteVertexArrays(1, self.vertex_array)
     bgl.glBindTexture(bgl.GL_TEXTURE_2D, 0)
     bgl.glDeleteTextures(1, self.texture)
示例#25
0
def h_del_texture(tex):
    id = bgl.Buffer(bgl.GL_INT, 1, [tex])
    bgl.glDeleteTextures(1, id)
示例#26
0
 def delete_texture(self):
     n_id = node_id(self)
     if n_id in self.texture:
         names = bgl.Buffer(bgl.GL_INT, 1, [self.texture[n_id]])
         bgl.glDeleteTextures(1, names)
示例#27
0
 def _invalidate_device_objects(self):
     if self._font_texture > -1:
         gl.glDeleteTextures([self._font_texture])
     self.io.fonts.texture_id = 0
     self._font_texture = 0
示例#28
0
 def delete_textures(self):
     if self.use_texture:
         buf = bgl.Buffer(bgl.GL_INT, 1, [self.texture_back])
         bgl.glDeleteTextures(1, buf)