fix rendering crashes
1) introduce can_regenerate so we only regenerate when necessary 2) no notifications of missing glyphs when rendering 3) use frame_change_pre instead of post
This commit is contained in:
parent
2422d0cf09
commit
7ebe913e49
2 changed files with 18 additions and 17 deletions
14
__init__.py
14
__init__.py
|
@ -180,7 +180,7 @@ class ABC3D_text_properties(bpy.types.PropertyGroup):
|
|||
|
||||
def glyphs_update_callback(self, context):
|
||||
butils.prepare_text(self.font_name, self.face_name, self.text)
|
||||
butils.set_text_on_curve(self)
|
||||
butils.set_text_on_curve(self, can_regenerate=True)
|
||||
|
||||
def update_callback(self, context):
|
||||
butils.set_text_on_curve(self)
|
||||
|
@ -1321,8 +1321,8 @@ class ABC3D_OT_PlaceText(bpy.types.Operator):
|
|||
# t['font'] = self.font # enums want to be set as attribute
|
||||
t["font_name"] = self.font_name
|
||||
t["face_name"] = self.face_name
|
||||
t.text_object = selected
|
||||
t["text"] = self.text
|
||||
t["text_object"] = selected
|
||||
t.text = self.text
|
||||
t["letter_spacing"] = self.letter_spacing
|
||||
t["font_size"] = self.font_size
|
||||
t["offset"] = self.offset
|
||||
|
@ -1911,8 +1911,8 @@ def register():
|
|||
# and autostart if we reload script
|
||||
load_handler(None, None)
|
||||
|
||||
if on_frame_changed not in bpy.app.handlers.frame_change_post:
|
||||
bpy.app.handlers.frame_change_post.append(on_frame_changed)
|
||||
if on_frame_changed not in bpy.app.handlers.frame_change_pre:
|
||||
bpy.app.handlers.frame_change_pre.append(on_frame_changed)
|
||||
|
||||
if on_depsgraph_update not in bpy.app.handlers.depsgraph_update_post:
|
||||
bpy.app.handlers.depsgraph_update_post.append(on_depsgraph_update)
|
||||
|
@ -1938,8 +1938,8 @@ def unregister():
|
|||
# and when reload script
|
||||
load_handler_unload()
|
||||
|
||||
if on_frame_changed in bpy.app.handlers.frame_change_post:
|
||||
bpy.app.handlers.frame_change_post.remove(on_frame_changed)
|
||||
if on_frame_changed in bpy.app.handlers.frame_change_pre:
|
||||
bpy.app.handlers.frame_change_pre.remove(on_frame_changed)
|
||||
|
||||
if on_depsgraph_update in bpy.app.handlers.depsgraph_update_post:
|
||||
bpy.app.handlers.depsgraph_update_post.remove(on_depsgraph_update)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue