| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The transform tree's to_screen_is_animated is currently set during
tree building but is never updated. This CL updates this value as
transform animations change, and makes
VerifyPropertyTreeValuesForLayer verify that this matches CDP's
screen_space_transform_is_animating.
BUG=509673
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1227863009
Cr-Commit-Position: refs/heads/master@{#341728}
|
|
|
|
|
|
|
|
|
|
|
| |
This function is used only for testing.
BUG=509482
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1255883006
Cr-Commit-Position: refs/heads/master@{#341253}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The compositor should not need to worry about servicing animations.
Instead, it should be able to request property updates as needed from external
mutators.
- We setup CC representations for blink::AnimationPlayer and blink::AnimationTimeline.
- We want to move all the animation-related code from LayerTreeHost to AnimationHost.
- We move LayerAnimatedController ownership to cc::AnimationPlayer.
- We move AnimationRegistrar ownership to cc::AnimationHost.
- We add/remove animations to cc::AnimationPlayer from now.
- LayerAnimatedController to be merged into cc::AnimaitonPlayer.
- AnimationRegistrar to be merged into cc::AnimationHost/cc::AnimationTimeline.
A chromium part. Blink part: https://codereview.chromium.org/946323002
Next episode:
https://codereview.chromium.org/1010663002/
BUG=394777
R=dstockwell@chromium.org
R=shane@chromium.org
R=ajuma@chromium.org
R=vollick@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/947033002
Cr-Commit-Position: refs/heads/master@{#337266}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In zoom-in scenarios the start animation should be taken in to account to
calculate raster scale else the first animation frame is rastered at a
low raster scale which leads to blurred content.
Added starting_animation_contents_scale to cc::DrawProperties
BUG=422341
Review URL: https://codereview.chromium.org/1076313006
Cr-Commit-Position: refs/heads/master@{#328258}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a scroll offset animation is removed, the corresponding LayerImpl's
scroll delta needs to be cleared at activation. This CL moves the state
tracking whether such clearing is needed from LayerImpl to
LayerAnimationController, since this behavior is intended to be specific
to this use case rather than providing a general way to clear scroll
deltas.
BUG=243871
Review URL: https://codereview.chromium.org/864003002
Cr-Commit-Position: refs/heads/master@{#312609}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a scroll offset animation is removed by the main thread and
a new scroll position is set, this new position should propagate
to the pending tree on commit, and then to the active tree on
activation. However, the removed animation continues running on
the compositor thread until activation, producing a scroll delta.
Currently, this scroll delta gets added to the new scroll
position (on both threads).
This CL prevents the scroll delta produced by a removed animation
from being added to the new post-animation scroll position.
BUG=243871
Review URL: https://codereview.chromium.org/845543007
Cr-Commit-Position: refs/heads/master@{#311895}
|
|
|
|
|
|
|
|
| |
BUG=386788
Review URL: https://codereview.chromium.org/465853004
Cr-Commit-Position: refs/heads/master@{#309428}
|
|
|
|
|
|
|
|
| |
BUG=178171
Review URL: https://codereview.chromium.org/719453007
Cr-Commit-Position: refs/heads/master@{#304612}
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
cc::AnimationCurve::Duration use TimeTicks/TimeDelta to represent time.
This patch adds a new file time_util.h which adds new class TimeUtil.
This TimeUtil class holds helper functions to operate on TimeDelta
in double because base::TimeDelta class doesnot allow
multiply/divide operations in double.
Review URL: https://codereview.chromium.org/693883004
Cr-Commit-Position: refs/heads/master@{#303790}
|
|
|
|
|
|
|
|
|
| |
BUG=417463
TBR=enne@chromium.org
Review URL: https://codereview.chromium.org/645853008
Cr-Commit-Position: refs/heads/master@{#300439}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Two changes here:
1. When finding the max scale of an animation, only consider the scales
at each of the animations keyframes excluding the animations origin.
This is done because the origin is not an interesting scale to use, we
are animating away from it. And in the case of a layer at a high scale,
we are unable to raster all of its content at that scale. It would be
better to use the scale at the end of the transform since that is what
we will want to raster eventually.
2. When PictureLayerImpl chooses to use the animation scale:
a) Always allow using it if the scale is less than the current raster
scale choice. It can only put us in a better position memory-wise.
b) Don't use the max() with the current raster scale choice, that means
we will never use the animation scale if it is zooming out, which is
not what we want. This would also mean we choose a new raster scale on
every frame, which is bad. Just use the scale of the animation straight
up, and if it's not known, use a source scale of 1.
R=ajuma, vmpstr
BUG=421812
Review URL: https://codereview.chromium.org/642983003
Cr-Commit-Position: refs/heads/master@{#299162}
|
|
|
|
|
|
|
|
| |
BUG=417463
Review URL: https://codereview.chromium.org/628443002
Cr-Commit-Position: refs/heads/master@{#298271}
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is for preparing converting blink side scroll offset to be double
type. Assuming blink side starts to use double scroll offset, it can
be passed back from main/blink to compositor without converting to int
type.
BUG=414283
Review URL: https://codereview.chromium.org/584503005
Cr-Commit-Position: refs/heads/master@{#297692}
|
|
|
|
|
|
|
|
|
|
|
|
| |
This re-rasterizes CPU-rasterized layers animating scale at the
maximum scale that will be applied during the animation, if this
maximum scale can be computed.
BUG=224913
Review URL: https://codereview.chromium.org/226283004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@262737 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This adds MaximumScale and HasOnlyTranslationTransforms
methods to LayerAnimationController.
BUG=224913
Review URL: https://codereview.chromium.org/214003004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@261583 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a HasAnimationThatAffectsScale method to
LayerAnimationController.
BUG=224913
Review URL: https://codereview.chromium.org/213493004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260559 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This walks up the layer tree transforming a layer's bounds as a box
through the different layer transforms and uses the
LayerAnimationController::AnimationBoundsForBox to transform the box at
layers which are animated.
Expansion of the box is included for filters which change the bounds,
however, the LayerAnimationController implementation is currently stubbed.
+ Added computation of animation bounds of layers in the screen space.
- Removed invalid assertion in LayerAnimationControllerTest.AnimatedBounds.
~ Renamed methods to use the uniform naming AnimationBounds.
~ Extracted LTHC::ApplySublayerTransformAboutAnchor from
LTHC::CalculateDrawPropertiesInternal.
~ Fixed LayerImpl::AsValueInto to correctly calculate bounds.
! Did not substitute implementation of ApplySublayerTransformAboutAnchor
inside CalculateDrawPropertiesInternal due to performance regression.
BUG=280375
Review URL: https://codereview.chromium.org/109193002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246767 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid unneccessary copy of structures gfx::Vector2dF
by passing them by const ref rather than value.
Any struct of size > 4 bytes should be passed by const ref.
Passing by ref for these structs is faster than passing
by value, especially when invoking function has multiple parameters.
Pass gfx structs by const ref (gfx::Vector2dF)
BUG=159273
Review URL: https://codereview.chromium.org/130443005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246563 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This makes cc::LayerAnimationController support animating scroll offset.
This is needed for implementing the CSSOM View smooth scroll API.
BUG=243871
Review URL: https://codereview.chromium.org/95763002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238271 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes the need to PushProperties every commit during an animation.
Instead, a single PushProperties is needed whenever there are animations
waiting for deletion.
This also removes LayerAnimationController::set_force_sync, which no
longer had any non-test callers and wasn't actually needed by its test
callers.
BUG=259088
Review URL: https://codereview.chromium.org/60083018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235845 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds a new Animation::TargetProperty for filters, and
updates LayerAnimationController to support this new
target.
BUG=181613
Review URL: https://codereview.chromium.org/25311003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@226766 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds support for computing the bounds of a box when
transformed by the animations currently running on layer.
This CL handles Scale and Translate animations, leaving
other TransformOperations for future CLs.
BUG=252472
Review URL: https://chromiumcodereview.appspot.com/21604002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@217845 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, when a LayerAnimationController only has an observer in the
pending tree, we early-out from Animate and UpdateState in order to prevent
animating a layer before it's drawn.
However, this means that the position of a layer can change immediately
after tree activation (even before a draw), if an animation is started on
that layer. This means that tile priorities calculated by UpdateTilePriorites
before tree activation can immediately become stale.
This CL allows animations with only inactive observers to reach the Starting
state and get ticked at their starting point, but progress no further. This
means we still won't have running animations on layers before they're drawn.
However, this change means that if we ensure that animation always happens
before tree activation in each frame (in a follow-up CL), then the tile
priorities calculated during tree activation will still be valid when the
frame is drawn.
BUG=242966
Review URL: https://chromiumcodereview.appspot.com/15732013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@202473 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes lint errors in everything except for the few stragglers (occlusion unit test, etc) that haven't been chromified.
BUG=144577
Review URL: https://chromiumcodereview.appspot.com/12965007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@190767 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
NOTRY=true
Review URL: https://chromiumcodereview.appspot.com/12854010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@189681 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Continuation of https://src.chromium.org/viewvc/chrome?view=rev&revision=188681
BUG=190824
TBR=enne@chromium.org, vollick@chromium.org
Review URL: https://codereview.chromium.org/12822004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188688 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Style-only change. Make the Animation, AnimationEvent, AnimationCurve,
KeyframedAnimationCurve, and LayerAnimationController classes use
chromium style.
R=jamesr,enne
TBR=piman
Review URL: https://codereview.chromium.org/12517003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@187463 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
| |
BUG=166640
Review URL: https://chromiumcodereview.appspot.com/12035029
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178931 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ActiveAnimation has a bad name. It used to be the case that 'active' animations were a subset of all animations, but now every animation in cc/ is 'active' and I think that's confusing.
R=enne@chromium.org
BUG=None
NOTRY=true
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=174267
Review URL: https://chromiumcodereview.appspot.com/11636051
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175344 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this change, we will only tick animation controllers once one of their corresponding layers is active.
R=enne@chromium.org
NOTRY=true
BUG=None
Review URL: https://chromiumcodereview.appspot.com/11633044
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175338 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
TBR=vollick
BUG=none
Review URL: https://codereview.chromium.org/11642055
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174296 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
ActiveAnimation has a bad name. It used to be the case that 'active' animations were a subset of all animations, but now every animation in cc/ is 'active' and I think that's confusing.
R=enne@chromium.org
BUG=None
Review URL: https://chromiumcodereview.appspot.com/11636051
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174267 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this patch we accomplish the following:
1. layer animation controllers are ref counted (so they can be shared by the two impl trees)
2. the layer tree hosts now own a list of active animation controllers. This allows for a couple of nice things
__a. Ticking the animation controllers no longer requires a tree walk
__b. We will be able to support ticking of animation controllers for layers that are not yet added to the layer tree. (Support coming in a future patch).
3. animation controllers register and unregister themselves from their respective layer tree host's list when they have an animation to tick.
R=nduca@chromium.org,enne@chromium.org
BUG=162111
Review URL: https://chromiumcodereview.appspot.com/11598005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174043 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> With this patch we accomplish the following:
> 1. layer animation controllers are ref counted (so they can be shared by the two impl trees)
> 2. the layer tree hosts now own a list of active animation controllers. This allows for a couple of nice things
> __a. Ticking the animation controllers no longer requires a tree walk
> __b. We will be able to support ticking of animation controllers for layers that are not yet added to the layer tree. (Support coming in a future patch).
> 3. animation controllers register and unregister themselves from their respective layer tree host's list when they have an animation to tick.
>
> BUG=162111
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=171714
TBR=vollick@chromium.org
BUG=
Review URL: https://codereview.chromium.org/11491003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171981 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This moves:
- WebKit::WebCompositorOutputSurface to cc::OutputSurface
- WebKit::WebCompositorOutputSurfaceClient to cc::OutputSurfaceClient
- Webkit::WebCompositorSoftwareOutputDevice to cc::SoftwareOutputDevice
They become new files in cc/ so they are chromified style. This affects
the various call-sites. This allows us to pass cc::CompositorFrame
directly, without any need for WebCompositorFrame.
BUG=146080
Depends on: https://bugs.webkit.org/show_bug.cgi?id=103967
Review URL: https://codereview.chromium.org/11348371
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171847 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. layer animation controllers are ref counted (so they can be shared by the two impl trees)
2. the layer tree hosts now own a list of active animation controllers. This allows for a couple of nice things
__a. Ticking the animation controllers no longer requires a tree walk
__b. We will be able to support ticking of animation controllers for layers that are not yet added to the layer tree. (Support coming in a future patch).
3. animation controllers register and unregister themselves from their respective layer tree host's list when they have an animation to tick.
BUG=162111
Review URL: https://chromiumcodereview.appspot.com/11348256
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@171714 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=159972
Review URL: https://codereview.chromium.org/11308153
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@169609 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
transforms.
Currently we save the rasterScale for a layer the first time we see it. However,
if the layer is animating, the value we save isn't very accurate. Instead, avoid
saving the value until the animation is complete.
Tests:
cc_unittests:LayerTreeHostCommonTest.verifyContentsScaleForAnimatingLayer
R=enne
BUG=159937
Review URL: https://chromiumcodereview.appspot.com/11362151
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166660 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed with a hacky python script :/
BUG=144576,144577
TEST=$ cpplint.py cc/*.h 2>&1 | grep header_guard. And verified it doesn't complain.
R=enne@chromium.org,jamesr@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11368063
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165895 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The remaining sizes should all be becoming vectors. Some or all of the
remaining points should as well.
The only Int/Float Point/Size types left are in the scrolling and page scaling
code, or in the LayerTilingData.
R=enne
BUG=147395
Review URL: https://codereview.chromium.org/11358050
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@165569 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=155413
TEST=cc_unittests
R=enne@chromium.org,jamesr@chromium.org
TBR=jamesr@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11228059
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163749 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=155413
TEST=cc_unittests
R=enne@chromium.org,jamesr@chromium.org
TBR=jamesr@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11225040
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163479 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
| |
Fixed reland of https://chromiumcodereview.appspot.com/11189043/
TBR=jam@chromium.org,jamesr@chromium.org
BUG=155413
Review URL: https://codereview.chromium.org/11231054
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163429 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
| |
This reverts commit 184fac5add06d5f4670fa6be4a4d3b39232d51bb.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163059 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=155413
Review URL: https://codereview.chromium.org/11189043
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@163052 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
|
|
| |
BUG=155413
TEST=cc_unittests
R=enne@chromium.org,jamesr@chromium.org
Review URL: https://codereview.chromium.org/11145033
TBR=tfarina@chromium.org
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162286 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
|
|
| |
BUG=155413
TEST=cc_unittests
R=enne@chromium.org,jamesr@chromium.org
Review URL: https://codereview.chromium.org/11145033
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@162284 0039d316-1c4b-4281-b951-d872f2087c98
|
|
|
|
|
|
|
|
| |
BUG=155413
Review URL: https://codereview.chromium.org/11108020
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161642 0039d316-1c4b-4281-b951-d872f2087c98
|
|
Landing empty headers first will prevent gyp conflicts later.
BUG=155413
Review URL: https://chromiumcodereview.appspot.com/11116002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@161526 0039d316-1c4b-4281-b951-d872f2087c98
|