Matthew Olsson
8039fe78cd
LibWeb: Implement Animation::set_playback_rate
2023-11-11 22:45:16 +01:00
Matthew Olsson
749462f3df
LibWeb: Implement Animation::set_current_time
2023-11-11 22:45:16 +01:00
Matthew Olsson
f898b49c8e
LibWeb: Implement Animation::current_time
2023-11-11 22:45:16 +01:00
Matthew Olsson
9802995de8
LibWeb: Track an Animation's play/pause task state
...
This only tracks whether the relevant steps should be executed at some
future (but very soon) time. This time will eventually be whenever the
"update animations and send events" procedure is invoked.
2023-11-11 22:45:16 +01:00
Matthew Olsson
422f43f4fc
LibWeb: Implement Animation::set_start_time
2023-11-11 22:45:16 +01:00
Matthew Olsson
4889f53880
LibWeb: Implement Animation::set_timeline
2023-11-11 22:45:16 +01:00
Matthew Olsson
4efbb10a36
LibWeb: Keep track of associated Animations in AnimationTimeline
...
This allows the timeline to propagate changes in time to any relevant
animation objects.
2023-11-11 08:58:08 +01:00
Matthew Olsson
0d3c8a1cd9
LibWeb: Implement AnimationEffect's transformed_progress helper
2023-11-11 08:58:08 +01:00
Matthew Olsson
611faf3645
LibWeb: Add a timing function to AnimationEffect
2023-11-11 08:58:08 +01:00
Matthew Olsson
66bd75f2b9
LibWeb: Add a TimingFunction struct implementing the Web Easing spec
...
This is mostly a copy-paste of the algorithms already in StyleComputer
with spec links and comments. The only thing that really changed is the
handling of values outside of the range [0, 1] in the cubic bezier
function.
The implementation in StyleComputer will be removed in a later commit.
2023-11-11 08:58:08 +01:00
Matthew Olsson
1a94241f58
IDL: Add missing #imports
2023-11-11 08:51:51 +01:00
Matthew Olsson
1915e603c9
LibWeb: Implement AnimationEffect progress helper functions
...
This excludes transformed_progress (which is the progress value used to
interpolate CSS values) as it requires a timing function
2023-11-09 16:08:50 +01:00
Matthew Olsson
7f303729f3
LibWeb: Implement AnimationEffect::active_time()
...
This is split into two functions since there are other places in the
specification that invoke this algorithm with a particular FillMode
(i.e. not the one that the object has in m_fill_mode).
2023-11-09 16:08:50 +01:00
Matthew Olsson
02c4973681
LibWeb: Implement AnimationEffect's phase helpers
2023-11-09 16:08:50 +01:00
Matthew Olsson
6a9c03482f
LibWeb: Implement AnimationEffect's active_boundary time getters
2023-11-09 16:08:50 +01:00
Matthew Olsson
baf5220212
LibWeb: Implement some AnimationEffect timing-related helpers
...
end_time, local_time, and active_duration
2023-11-09 16:08:50 +01:00
Matthew Olsson
d6fb1c24f6
LibWeb: Implement AnimationEffect::animation_direction()
2023-11-09 16:08:50 +01:00
Matthew Olsson
2358f64d00
LibWeb: Implement Animation::set_effect()
2023-11-09 16:08:50 +01:00
Matthew Olsson
1ca46afa2f
LibWeb: Add the Animation IDL object
2023-11-08 09:58:18 +01:00
Matthew Olsson
0df06ce273
LibWeb: Add the AnimationEffect IDL object
2023-11-08 09:58:18 +01:00
Matthew Olsson
13ae2a4dab
LibWeb: Store all timelines associated with a document on the document
...
This will be required for propagating the current animation time to all
relevant timelines, which each propagate that time to all of their
relevant animations.
2023-11-07 15:17:09 +01:00
Matthew Olsson
734076946b
LibWeb: Add DocumentTimeline IDL object
2023-11-07 15:17:09 +01:00
Matthew Olsson
521f8bd5f2
LibWeb: Add AnimationTimeline IDL object
2023-11-07 15:17:09 +01:00