feat(rcf): Test new Timers for observers.

It allow to adjust refresh rate in realtime.
This commit is contained in:
Swann
2019-02-15 10:59:22 +01:00
parent 1d77d72814
commit e2cc2f8b31

View File

@ -70,8 +70,10 @@ def resolve_bpy_path(path):
return obj, attribute return obj, attribute
def observer(scene): def observer():
global client global client
try:
for key,values in client.property_map.items(): for key,values in client.property_map.items():
# if values.id == client.id: # if values.id == client.id:
obj, attr = resolve_bpy_path(key) obj, attr = resolve_bpy_path(key)
@ -79,7 +81,10 @@ def observer(scene):
if attr != to_bpy(client.property_map[key]): if attr != to_bpy(client.property_map[key]):
value_type, value = from_bpy(attr) value_type, value = from_bpy(attr)
client.push_update(key,value_type,value) client.push_update(key,value_type,value)
except:
pass
return 0.16
# CLIENT-SERVER # CLIENT-SERVER
@ -135,6 +140,7 @@ class session_join(bpy.types.Operator):
time.sleep(1) time.sleep(1)
bpy.ops.asyncio.loop() bpy.ops.asyncio.loop()
bpy.app.timers.register(observer)
return {"FINISHED"} return {"FINISHED"}
@ -184,10 +190,10 @@ class session_create(bpy.types.Operator):
server = net_components.Server() server = net_components.Server()
client = net_components.Client(id=username,recv_callback=callbacks) client = net_components.Client(id=username,recv_callback=callbacks)
time.sleep(1) # time.sleep(0.1)
bpy.ops.asyncio.loop() bpy.ops.asyncio.loop()
bpy.app.timers.register(observer)
return {"FINISHED"} return {"FINISHED"}
@ -242,7 +248,7 @@ def register():
register_class(cls) register_class(cls)
bpy.types.Scene.session_settings = bpy.props.PointerProperty(type=session_settings) bpy.types.Scene.session_settings = bpy.props.PointerProperty(type=session_settings)
bpy.app.handlers.depsgraph_update_post.append(observer) # bpy.app.handlers.depsgraph_update_post.append(observer)
def unregister(): def unregister():
from bpy.utils import unregister_class from bpy.utils import unregister_class