clean: push timer
feat: purge stagging on pre--redo/undo
This commit is contained in:
@ -54,7 +54,7 @@ from .timers import registry
|
|||||||
|
|
||||||
background_execution_queue = Queue()
|
background_execution_queue = Queue()
|
||||||
stagging = list()
|
stagging = list()
|
||||||
|
locking = False
|
||||||
deleyables = []
|
deleyables = []
|
||||||
stop_modal_executor = False
|
stop_modal_executor = False
|
||||||
|
|
||||||
@ -269,7 +269,10 @@ class SessionStartOperator(bpy.types.Operator):
|
|||||||
# Background client updates service
|
# Background client updates service
|
||||||
deleyables.append(timers.ClientUpdate())
|
deleyables.append(timers.ClientUpdate())
|
||||||
deleyables.append(timers.DynamicRightSelectTimer())
|
deleyables.append(timers.DynamicRightSelectTimer())
|
||||||
deleyables.append(timers.PushTimer(queue=stagging))
|
deleyables.append(timers.PushTimer(
|
||||||
|
queue=stagging,
|
||||||
|
timeout=settings.depsgraph_update_rate
|
||||||
|
))
|
||||||
session_update = timers.SessionStatusUpdate()
|
session_update = timers.SessionStatusUpdate()
|
||||||
session_user_sync = timers.SessionUserSync()
|
session_user_sync = timers.SessionUserSync()
|
||||||
session_background_executor = timers.MainThreadExecutor(
|
session_background_executor = timers.MainThreadExecutor(
|
||||||
@ -982,6 +985,8 @@ def depsgraph_evaluation(scene):
|
|||||||
# # New items !
|
# # New items !
|
||||||
# logger.error("UPDATE: ADD")
|
# logger.error("UPDATE: ADD")
|
||||||
|
|
||||||
|
def clear_staging(dummy):
|
||||||
|
stagging.clear()
|
||||||
|
|
||||||
def register():
|
def register():
|
||||||
from bpy.utils import register_class
|
from bpy.utils import register_class
|
||||||
@ -989,6 +994,9 @@ def register():
|
|||||||
for cls in classes:
|
for cls in classes:
|
||||||
register_class(cls)
|
register_class(cls)
|
||||||
|
|
||||||
|
bpy.app.handlers.undo_pre.append(clear_staging)
|
||||||
|
bpy.app.handlers.redo_pre.append(clear_staging)
|
||||||
|
|
||||||
bpy.app.handlers.undo_post.append(sanitize_deps_graph)
|
bpy.app.handlers.undo_post.append(sanitize_deps_graph)
|
||||||
bpy.app.handlers.redo_post.append(sanitize_deps_graph)
|
bpy.app.handlers.redo_post.append(sanitize_deps_graph)
|
||||||
|
|
||||||
@ -1004,6 +1012,9 @@ def unregister():
|
|||||||
for cls in reversed(classes):
|
for cls in reversed(classes):
|
||||||
unregister_class(cls)
|
unregister_class(cls)
|
||||||
|
|
||||||
|
bpy.app.handlers.undo_pre.remove(clear_staging)
|
||||||
|
bpy.app.handlers.redo_pre.remove(clear_staging)
|
||||||
|
|
||||||
bpy.app.handlers.undo_post.remove(sanitize_deps_graph)
|
bpy.app.handlers.undo_post.remove(sanitize_deps_graph)
|
||||||
bpy.app.handlers.redo_post.remove(sanitize_deps_graph)
|
bpy.app.handlers.redo_post.remove(sanitize_deps_graph)
|
||||||
|
|
||||||
|
@ -200,10 +200,10 @@ class SessionPrefs(bpy.types.AddonPreferences):
|
|||||||
default=1000
|
default=1000
|
||||||
)
|
)
|
||||||
# Replication update settings
|
# Replication update settings
|
||||||
depsgraph_update_rate: bpy.props.IntProperty(
|
depsgraph_update_rate: bpy.props.FloatProperty(
|
||||||
name='depsgraph update rate',
|
name='depsgraph update rate (s)',
|
||||||
description='Dependency graph uppdate rate (milliseconds)',
|
description='Dependency graph uppdate rate (s)',
|
||||||
default=1000
|
default=1
|
||||||
)
|
)
|
||||||
clear_memory_filecache: bpy.props.BoolProperty(
|
clear_memory_filecache: bpy.props.BoolProperty(
|
||||||
name="Clear memory filecache",
|
name="Clear memory filecache",
|
||||||
|
@ -139,7 +139,6 @@ class PushTimer(Timer):
|
|||||||
def execute(self):
|
def execute(self):
|
||||||
while self.q_push:
|
while self.q_push:
|
||||||
node = session.get(uuid= self.q_push.pop())
|
node = session.get(uuid= self.q_push.pop())
|
||||||
start = utils.current_milli_time()
|
|
||||||
|
|
||||||
if node.has_changed():
|
if node.has_changed():
|
||||||
try:
|
try:
|
||||||
@ -154,7 +153,7 @@ class PushTimer(Timer):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.error(e)
|
logging.error(e)
|
||||||
else:
|
else:
|
||||||
logging.info("Skipping updatem no changes")
|
logging.debug("Skipping update no changes")
|
||||||
|
|
||||||
class DynamicRightSelectTimer(Timer):
|
class DynamicRightSelectTimer(Timer):
|
||||||
def __init__(self, timeout=.1):
|
def __init__(self, timeout=.1):
|
||||||
|
@ -281,6 +281,7 @@ class SESSION_PT_advanced_settings(bpy.types.Panel):
|
|||||||
warning = replication_section_row.box()
|
warning = replication_section_row.box()
|
||||||
warning.label(text="Don't use this with heavy meshes !", icon='ERROR')
|
warning.label(text="Don't use this with heavy meshes !", icon='ERROR')
|
||||||
replication_section_row = replication_section.row()
|
replication_section_row = replication_section.row()
|
||||||
|
replication_section_row.prop(settings, "depsgraph_update_rate")
|
||||||
|
|
||||||
|
|
||||||
cache_section = layout.row().box()
|
cache_section = layout.row().box()
|
||||||
|
Reference in New Issue
Block a user