New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 747185 link

Starred by 3 users

Issue metadata

Status: Assigned
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Task



Sign in to add a comment

Move generic animation code from cc/animation to gfx

Project Member Reported by vollick@chromium.org, Jul 21 2017

Issue description

cc/animation houses a number of useful animation utilities that are not cc-specific. Keyframes, curves, timing functions, transform operations, etc. These would be useful in gfx for general use.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ba1f85920bb6379f636eebc4793cce3e45dc6526

commit ba1f85920bb6379f636eebc4793cce3e45dc6526
Author: Ian Vollick <vollick@chromium.org>
Date: Fri Jul 21 18:10:03 2017

Decouple animation system from cc::TargetProperty

The animation machinery in cc/animation currently makes unfortunate
assumptions about the meaning of the animations it processes. For
example, if you're animating an SkColor, it must be the background
color. You couldn't also animate your foreground color. This coupling
also prevents the system from being extended for use with things like
custom properties.

With this change, the animation machinery only treats interpolated
types (eg, SkColor, FilterOperations, etc) distictly, and lets the
target property be a generic annotation that is the business of
client of the animation system.

Bug: 747185
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Idb3baf159c3da8531d75c7c8ba0a159fac197d48
Reviewed-on: https://chromium-review.googlesource.com/580608
Commit-Queue: Ian Vollick <vollick@chromium.org>
Reviewed-by: Ali Juma <ajuma@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488708}
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/BUILD.gn
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/animation.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/animation.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/animation_curve.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/animation_delegate.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/animation_events.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/animation_events.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/animation_player.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/animation_target.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/animation_unittest.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/element_animations.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/element_animations.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/element_animations_unittest.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/scroll_offset_animations_impl.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/animation/scroll_offset_animations_impl.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/test/animation_timelines_test_common.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/test/animation_timelines_test_common.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/test/test_hooks.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/trees/layer_tree_host_unittest_animation.cc
[delete] https://crrev.com/93e7d07e70af9f9b9c943674d5d57ecc29698141/cc/trees/target_property.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/cc/trees/target_property.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/BUILD.gn
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/DEPS
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/animation_player.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/animation_player.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/animation_player_unittest.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/elements/transient_url_bar.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/elements/ui_element.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/elements/ui_element.h
[add] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/target_property.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/test/animation_utils.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/test/ui_scene_manager_test.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/test/ui_scene_manager_test.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/transition.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/ui_scene_manager.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/chrome/browser/vr/ui_scene_manager_unittest.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/third_party/WebKit/Source/platform/animation/CompositorAnimation.cpp
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayer.cpp
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/third_party/WebKit/Source/platform/animation/CompositorAnimationPlayer.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/ui/compositor/layer_animation_element.h
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/ui/compositor/layer_animator.cc
[modify] https://crrev.com/ba1f85920bb6379f636eebc4793cce3e45dc6526/ui/compositor/layer_animator.h

Cc: yigu@chromium.org majidvp@chromium.org
Project Member

Comment 3 by bugdroid1@chromium.org, Oct 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a35501faaac641c8f5683f1015a68c4ca35cc28a

commit a35501faaac641c8f5683f1015a68c4ca35cc28a
Author: Ian Vollick <vollick@chromium.org>
Date: Mon Oct 16 19:32:21 2017

[animation] Increase the capacity of TargetProperties

This list of target properties in cc (defined in
cc/trees/target_property.h), is cc-specific and unrelated to the
generic animation system currently housed in cc/animation. As such,
other clients of this system may define their own list of target
properties, and the number of target properties used by these other
clients may well exceed the number of properties used by cc.

Unfortunately, the capacity of the TargetProperties type is tied to
cc's list of target properties. With this change, the maximum
capacity has been switched to an arbitrary constant. Corresponding
static_asserts have been added to ensure that this limit is not
exceeded.

Depressingly, this is still housed in cc/trees; it's not yet
possible to move TargetProperties cc/animation because it's used by
code in cc/trees which is not allowed to depend on cc/animation.
Once cc/animation no longer depends on cc we can break the
circularity and move this elsewhere.

Bug: 747185
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I89c8df0b08fe4729389295b6271c6e1f2b23074e
Reviewed-on: https://chromium-review.googlesource.com/720066
Commit-Queue: Ian Vollick <vollick@chromium.org>
Reviewed-by: Robert Flack <flackr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509139}
[modify] https://crrev.com/a35501faaac641c8f5683f1015a68c4ca35cc28a/cc/BUILD.gn
[add] https://crrev.com/a35501faaac641c8f5683f1015a68c4ca35cc28a/cc/trees/target_property.cc
[modify] https://crrev.com/a35501faaac641c8f5683f1015a68c4ca35cc28a/cc/trees/target_property.h
[modify] https://crrev.com/a35501faaac641c8f5683f1015a68c4ca35cc28a/chrome/browser/vr/BUILD.gn
[modify] https://crrev.com/a35501faaac641c8f5683f1015a68c4ca35cc28a/chrome/browser/vr/DEPS
[add] https://crrev.com/a35501faaac641c8f5683f1015a68c4ca35cc28a/chrome/browser/vr/target_property.cc
[modify] https://crrev.com/a35501faaac641c8f5683f1015a68c4ca35cc28a/chrome/browser/vr/target_property.h

Labels: -Type-Bug Type-Feature
Labels: -Type-Feature Type-Task

Sign in to add a comment