AnimatableProperty Set/Bake now resets properly. 76/287876/6
authorDavid Steele <david.steele@samsung.com>
Wed, 8 Feb 2023 14:46:36 +0000 (14:46 +0000)
committerDavid Steele <david.steele@samsung.com>
Wed, 15 Feb 2023 12:15:21 +0000 (12:15 +0000)
commite7304225078a7a0052ffd21c6029870ab7d6421c
tree7bd0b3527a5c220d30183910e1117b6b37bea8f7
parent82192b0137797a753fa9c3437dbd4df373f2ba06
AnimatableProperty Set/Bake now resets properly.

If animatable properties are Set/Baked from event side, then the
dirty flag is never cleared. This is due to not having any
PropertyResetter or NodeResetter working.

It's not an issue for TransformProperties, as they have their own
reset system.

Added a BakerResetter to run the ResetToBaseValue() method for 1 or 2
frames, then will auto-age and die.

Changed all the messaging for baking/setting animatable properties to
also create and send the BakerResetter.

Currently, update doesn't run again even if there are new property
resetters outstanding. (Fine for constraint resetters, maybe not so
fine for new BakerResetters?)

To avoid cyclic dependencies, have also split the messages out into
their own headers (which should also help reduce compile time)

Added a test case to exercise Object internals for coverage - there
are some lowkey bugs in here. [Normally, we use derived methods to
link event side properties to scene-graph properties, here, we're
using untested code to access component scene-graph properties. If we
don't first generate the "parent" property, then the wrong type is
used to generate the component properties]. We could potentially
delete some of this code!!!

Signed-off-by: David Steele <david.steele@samsung.com>
Change-Id: I2c860a8416e71666fceb8d0b0d072c5c735655ad
24 files changed:
automated-tests/src/dali-internal/utc-Dali-Internal-Handles.cpp
automated-tests/src/dali/utc-Dali-Actor.cpp
automated-tests/src/dali/utc-Dali-RenderTask.cpp
dali/internal/event/actors/camera-actor-impl.cpp
dali/internal/event/common/object-impl.cpp
dali/internal/event/render-tasks/render-task-impl.cpp
dali/internal/event/rendering/decorated-visual-renderer-impl.cpp
dali/internal/event/rendering/renderer-impl.cpp
dali/internal/event/rendering/visual-renderer-impl.cpp
dali/internal/update/animation/scene-graph-animator.h
dali/internal/update/common/animatable-property-messages.h [new file with mode: 0644]
dali/internal/update/common/animatable-property.h
dali/internal/update/common/double-buffered.h
dali/internal/update/common/property-resetter.h
dali/internal/update/manager/transform-manager-property.h
dali/internal/update/nodes/node-messages.h
dali/internal/update/nodes/partial-rendering-data.h
dali/internal/update/render-tasks/scene-graph-camera-messages.h [new file with mode: 0644]
dali/internal/update/render-tasks/scene-graph-camera.h
dali/internal/update/render-tasks/scene-graph-render-task-messages.h [new file with mode: 0644]
dali/internal/update/render-tasks/scene-graph-render-task.cpp
dali/internal/update/render-tasks/scene-graph-render-task.h
dali/internal/update/rendering/scene-graph-renderer-messages.h [new file with mode: 0644]
dali/internal/update/rendering/scene-graph-renderer.h