Skip to content
Snippets Groups Projects
Commit f6819fe2 authored by mano-wii's avatar mano-wii
Browse files

mesh_snap_utilities_line: fix ram and vram leakage

parent cbf69932
No related branches found
No related tags found
No related merge requests found
......@@ -22,7 +22,7 @@
bl_info = {
"name": "Snap_Utilities_Line",
"author": "Germano Cavalcante",
"version": (5, 8, 29),
"version": (5, 8, 30),
"blender": (2, 80, 0),
"location": "View3D > TOOLS > Make Line",
"description": "Extends Blender Snap controls",
......
......@@ -288,6 +288,8 @@ class SnapContext():
self._offscreen.free()
# Some objects may still be being referenced
for snap_obj in self.snap_objects:
if len(snap_obj.data) == 2:
snap_obj.data[1].free()
del snap_obj.data
del snap_obj.mat
del snap_obj
......@@ -306,6 +308,7 @@ class SnapContext():
def tag_update_drawn_snap_object(self, snap_obj):
if len(snap_obj.data) > 1:
snap_obj.data[1].free()
del snap_obj.data[1:]
#self.update_all()
# Update on next snap_get call #
......@@ -319,6 +322,7 @@ class SnapContext():
snap_vert = self._snap_mode & VERT != 0
snap_edge = self._snap_mode & EDGE != 0
snap_face = self._snap_mode & FACE != 0
snap_obj.data[1].free()
snap_obj.data[1] = GPU_Indices_Mesh(snap_obj.data[0], snap_face, snap_edge, snap_vert)
_Internal.gpu_Indices_restore_state()
......
......@@ -386,12 +386,18 @@ class GPU_Indices_Mesh():
def get_loosevert_index(self, index):
return self.looseverts[index]
def __del__(self):
def free(self):
if len(self.users) == 1:
GPU_Indices_Mesh._Hash.pop(obj.data)
GPU_Indices_Mesh._Hash.pop(self.obj.data)
del self.batch_tris
del self.batch_edges
del self.batch_lverts
del self.verts_co
del self.tri_verts
del self.edge_verts
del self.looseverts
self.user.remove(self)
self.users.remove(self)
#print('mesh_del', self.obj.name)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment