[go: nahoru, domu]

Skip to content

Commit

Permalink
Fix: frame update breaks link to texture
Browse files Browse the repository at this point in the history
Fix a bug that got introduced in v1.0.1 that can break the connection to a selected texture in the panel settings and mess up the rendering.
  • Loading branch information
markelekdotcom committed Dec 7, 2022
1 parent 64f0b0f commit d1062d9
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 47 deletions.
7 changes: 7 additions & 0 deletions docs/changelog.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@
Changelog
#####################################

1.0.2
------

December 07, 2022

* Fix: frame update breaks the link to the selected texture in panel settings

1.0.1
------

Expand Down
4 changes: 2 additions & 2 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
author = 'Mark Elek, David Elek'

# The full version, including alpha/beta/rc tags
version = '1.0.1'
release = '1.0.1'
version = '1.0.2'
release = '1.0.2'

# -- General configuration ---------------------------------------------------

Expand Down
59 changes: 14 additions & 45 deletions project_panel.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import contextlib
from bpy.props import EnumProperty, BoolProperty, FloatProperty, FloatVectorProperty
from bpy.types import Panel
from bpy.app.handlers import persistent


BASIC_INSTANCE_KW = "_BI"
EXTRA_INSTANCE_KW = "_EI"
Expand Down Expand Up @@ -255,7 +255,8 @@ def draw(self, context):
row = box.row()
row.prop(scene, 'detail_height', text="Base Height", slider=True)
row = box.row()
row.prop(scene, 'detail_height_multiplier', text="Base Height Multiplier", slider=True)
row.prop(scene, 'detail_height_multiplier',
text="Base Height Multiplier", slider=True)
row = box.row()
row.prop(scene, 'negative_size_x',
text="Subtract Scale X", slider=True)
Expand Down Expand Up @@ -1433,6 +1434,11 @@ def frame_color_set(self, context):
plane.update_tag()


def set_to_initial_frame(self, context):
scene = bpy.context.scene
scene.frame_set(scene.frame_current)


classes = (VIEW3D_PT_viewport_optimization_settings, VIEW3D_PT_quick_settings,
VIEW3D_PT_grid_settings, VIEW3D_PT_instance_objects,
VIEW3D_PT_base_scale, VIEW3D_PT_base_rotation, VIEW3D_PT_base_shading,
Expand All @@ -1459,7 +1465,7 @@ def register():
description="Change Sampling Mode (All Channels, Red, Green, Blue)",
update=sampling_mode_enum_set
)

bpy.app.handlers.frame_change_pre.append(sampling_mode_enum_set)

shading_mode_items = (('VERTEX', 'Vertex Color', ''),
Expand All @@ -1472,19 +1478,15 @@ def register():
default='VERTEX',
description="Change Shading Mode (Vertex, Textured)",
update=shading_mode_enum_set,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(shading_mode_enum_set)

bpy.types.Scene.extra_shading_mode = bpy.props.EnumProperty(
name="extra_shading_mode",
items=shading_mode_items,
default='VERTEX',
description="Change Extra Shading Mode (Vertex, Textured)",
update=extra_shading_mode_enum_set,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(extra_shading_mode_enum_set)

bpy.types.Scene.use_extra_glass = bpy.props.BoolProperty(
name="use_extra_glass",
Expand Down Expand Up @@ -1571,7 +1573,8 @@ def register():
update=detail_height_multiplier_float_set,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(detail_height_multiplier_float_set)
bpy.app.handlers.frame_change_pre.append(
detail_height_multiplier_float_set)

bpy.types.Scene.extra_glass_width = bpy.props.FloatProperty(
name="extra_glass_width",
Expand Down Expand Up @@ -1685,18 +1688,14 @@ def register():
"(messes up vertex colors, useful while blocking in shapes)"
),
update=use_frustum_culling_set,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(use_frustum_culling_set)

bpy.types.Scene.culling_camera = bpy.props.PointerProperty(
name="culling_camera",
description="Camera to use for frustum culling",
type=bpy.types.Camera,
update=culling_camera_set,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(culling_camera_set)

bpy.types.Scene.use_instances_only = bpy.props.BoolProperty(
name="use_instances_only",
Expand Down Expand Up @@ -1766,19 +1765,15 @@ def register():
type=bpy.types.Material,
update=base_material_set,
poll=base_material_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(base_material_set)

bpy.types.Scene.extra_material = bpy.props.PointerProperty(
name="extra_material",
description="Extra Material",
type=bpy.types.Material,
update=extra_material_set,
poll=extra_material_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(extra_material_set)

bpy.types.Scene.bevel_size = bpy.props.FloatProperty(
name="bevel_size",
Expand Down Expand Up @@ -1812,17 +1807,14 @@ def register():
description="Realize instances when rendering",
update=realize_on_render_set
)
bpy.app.handlers.frame_change_pre.append(realize_on_render_set)

bpy.types.Scene.active_frame_object = bpy.props.PointerProperty(
name="active_frame_object",
description="Currently active frame object",
type=bpy.types.Object,
update=active_frame_object_set,
poll=active_frame_object_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(active_frame_object_set)

bpy.types.Scene.frame_scale_offset = bpy.props.FloatProperty(
name="frame_scale_offset",
Expand All @@ -1843,39 +1835,31 @@ def register():
type=bpy.types.Material,
update=frame_material_set,
poll=frame_material_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(frame_material_set)

bpy.types.Scene.floor_material = bpy.props.PointerProperty(
name="floor_material",
description="Floor Material",
type=bpy.types.Material,
update=floor_material_set,
poll=floor_material_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(floor_material_set)

bpy.types.Scene.extra_glass_material = bpy.props.PointerProperty(
name="extra_glass_material",
description="Extra Glass Material",
type=bpy.types.Material,
update=extra_glass_material_set,
poll=extra_glass_material_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(extra_glass_material_set)

bpy.types.Scene.extra_plane_material = bpy.props.PointerProperty(
name="extra_plane_material",
description="Extra Plane Material",
type=bpy.types.Material,
update=extra_plane_material_set,
poll=extra_plane_material_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(extra_plane_material_set)

bpy.types.Scene.use_random_rotation = bpy.props.BoolProperty(
name="use_random_rotation",
Expand Down Expand Up @@ -1977,29 +1961,23 @@ def register():
type=bpy.types.Object,
update=active_base_object_set,
poll=active_base_object_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(active_base_object_set)

bpy.types.Scene.active_extra_object = bpy.props.PointerProperty(
name="active_extra_object",
description="Currently active extra instance object",
type=bpy.types.Object,
update=active_extra_object_set,
poll=active_extra_object_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(active_extra_object_set)

bpy.types.Scene.active_boolean_object = bpy.props.PointerProperty(
name="active_boolean_object",
description="Currently active boolean object",
type=bpy.types.Object,
update=active_boolean_object_set,
poll=active_boolean_object_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(active_boolean_object_set)

bpy.types.Scene.extra_glass_color = bpy.props.FloatVectorProperty(
name="extra_glass_color",
Expand All @@ -2020,37 +1998,29 @@ def register():
type=bpy.types.Object,
update=base_proxy_object_set,
poll=proxy_object_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(base_proxy_object_set)

bpy.types.Scene.extra_proxy_object = bpy.props.PointerProperty(
name="extra_proxy_object",
description="Proxy object for extra instance",
type=bpy.types.Object,
update=extra_proxy_object_set,
poll=proxy_object_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(extra_proxy_object_set)

bpy.types.Scene.use_base_proxy_object = bpy.props.BoolProperty(
name="use_base_proxy_object",
default=False,
description="Use base proxy object",
update=use_base_proxy_object_set,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(use_base_proxy_object_set)

bpy.types.Scene.use_extra_proxy_object = bpy.props.BoolProperty(
name="use_extra_proxy_object",
default=False,
description="Use extra proxy object",
update=use_extra_proxy_object_set,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(use_extra_proxy_object_set)

bpy.types.Scene.use_look_at_rotation = bpy.props.BoolProperty(
name="use_look_at_rotation",
Expand All @@ -2067,9 +2037,7 @@ def register():
type=bpy.types.Object,
update=look_at_object_set,
# poll=look_at_object_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(look_at_object_set)

bpy.types.Scene.use_extra_look_at_rotation = bpy.props.BoolProperty(
name="use_extra_look_at_rotation",
Expand All @@ -2086,9 +2054,7 @@ def register():
type=bpy.types.Object,
update=extra_look_at_object_set,
# poll=look_at_object_poll,
options={'ANIMATABLE'}
)
bpy.app.handlers.frame_change_pre.append(extra_look_at_object_set)

bpy.types.Scene.extra_location_offset_z = bpy.props.FloatProperty(
name="extra_location_offset_z",
Expand Down Expand Up @@ -2177,6 +2143,9 @@ def register():
)
bpy.app.handlers.frame_change_pre.append(frame_color_set)

bpy.app.handlers.render_cancel.append(set_to_initial_frame)
bpy.app.handlers.render_complete.append(set_to_initial_frame)


def unregister():
for cls in classes:
Expand Down

0 comments on commit d1062d9

Please sign in to comment.