Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(260)

Side by Side Diff: third_party/WebKit/Source/platform/graphics/GraphicsLayerTest.cpp

Issue 1616653002: CC Animation: Move files from cc_blink to Source/platform/animation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Fix copyrights and years. Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN Y 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN Y
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN Y 16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN Y
17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O N 19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O N
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 */ 23 */
24 24
25 #include "platform/graphics/GraphicsLayer.h" 25 #include "platform/graphics/GraphicsLayer.h"
26 26
27 #include "platform/RuntimeEnabledFeatures.h" 27 #include "platform/RuntimeEnabledFeatures.h"
28 #include "platform/animation/CompositorAnimationPlayer.h"
29 #include "platform/animation/CompositorAnimationPlayerClient.h"
30 #include "platform/animation/CompositorAnimationTimeline.h"
31 #include "platform/animation/CompositorFloatAnimationCurve.h"
32 #include "platform/graphics/CompositorFactory.h"
28 #include "platform/scroll/ScrollableArea.h" 33 #include "platform/scroll/ScrollableArea.h"
29 #include "platform/transforms/Matrix3DTransformOperation.h" 34 #include "platform/transforms/Matrix3DTransformOperation.h"
30 #include "platform/transforms/RotateTransformOperation.h" 35 #include "platform/transforms/RotateTransformOperation.h"
31 #include "platform/transforms/TranslateTransformOperation.h" 36 #include "platform/transforms/TranslateTransformOperation.h"
32 #include "public/platform/Platform.h" 37 #include "public/platform/Platform.h"
33 #include "public/platform/WebCompositorAnimationPlayer.h"
34 #include "public/platform/WebCompositorAnimationPlayerClient.h"
35 #include "public/platform/WebCompositorAnimationTimeline.h"
36 #include "public/platform/WebCompositorSupport.h" 38 #include "public/platform/WebCompositorSupport.h"
37 #include "public/platform/WebFloatAnimationCurve.h"
38 #include "public/platform/WebGraphicsContext3D.h" 39 #include "public/platform/WebGraphicsContext3D.h"
39 #include "public/platform/WebLayer.h" 40 #include "public/platform/WebLayer.h"
40 #include "public/platform/WebLayerTreeView.h" 41 #include "public/platform/WebLayerTreeView.h"
41 #include "public/platform/WebUnitTestSupport.h" 42 #include "public/platform/WebUnitTestSupport.h"
42 #include "testing/gtest/include/gtest/gtest.h" 43 #include "testing/gtest/include/gtest/gtest.h"
43 #include "wtf/PassOwnPtr.h" 44 #include "wtf/PassOwnPtr.h"
44 45
45 namespace blink { 46 namespace blink {
46 47
47 namespace { 48 namespace {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 WebLayer* m_platformLayer; 94 WebLayer* m_platformLayer;
94 OwnPtr<GraphicsLayerForTesting> m_graphicsLayer; 95 OwnPtr<GraphicsLayerForTesting> m_graphicsLayer;
95 OwnPtr<GraphicsLayerForTesting> m_scrollElasticityLayer; 96 OwnPtr<GraphicsLayerForTesting> m_scrollElasticityLayer;
96 OwnPtr<GraphicsLayerForTesting> m_clipLayer; 97 OwnPtr<GraphicsLayerForTesting> m_clipLayer;
97 98
98 private: 99 private:
99 OwnPtr<WebLayerTreeView> m_layerTreeView; 100 OwnPtr<WebLayerTreeView> m_layerTreeView;
100 MockGraphicsLayerClient m_client; 101 MockGraphicsLayerClient m_client;
101 }; 102 };
102 103
103 class AnimationPlayerForTesting : public WebCompositorAnimationPlayerClient { 104 class AnimationPlayerForTesting : public CompositorAnimationPlayerClient {
104 public: 105 public:
105 AnimationPlayerForTesting() 106 AnimationPlayerForTesting()
106 { 107 {
107 m_compositorPlayer = adoptPtr(Platform::current()->compositorSupport()-> createAnimationPlayer()); 108 m_compositorPlayer = adoptPtr(CompositorFactory::current().createAnimati onPlayer());
108 } 109 }
109 110
110 WebCompositorAnimationPlayer* compositorPlayer() const override 111 CompositorAnimationPlayer* compositorPlayer() const override
111 { 112 {
112 return m_compositorPlayer.get(); 113 return m_compositorPlayer.get();
113 } 114 }
114 115
115 OwnPtr<WebCompositorAnimationPlayer> m_compositorPlayer; 116 OwnPtr<CompositorAnimationPlayer> m_compositorPlayer;
116 }; 117 };
117 118
118 TEST_F(GraphicsLayerTest, updateLayerShouldFlattenTransformWithAnimations) 119 TEST_F(GraphicsLayerTest, updateLayerShouldFlattenTransformWithAnimations)
119 { 120 {
120 ASSERT_FALSE(m_platformLayer->hasActiveAnimation()); 121 ASSERT_FALSE(m_platformLayer->hasActiveAnimation());
121 122
122 OwnPtr<WebFloatAnimationCurve> curve = adoptPtr(Platform::current()->composi torSupport()->createFloatAnimationCurve()); 123 OwnPtr<CompositorFloatAnimationCurve> curve = adoptPtr(CompositorFactory::cu rrent().createFloatAnimationCurve());
123 curve->add(WebFloatKeyframe(0.0, 0.0)); 124 curve->add(CompositorFloatKeyframe(0.0, 0.0));
124 OwnPtr<WebCompositorAnimation> floatAnimation(adoptPtr(Platform::current()-> compositorSupport()->createAnimation(*curve, WebCompositorAnimation::TargetPrope rtyOpacity))); 125 OwnPtr<CompositorAnimation> floatAnimation(adoptPtr(CompositorFactory::curre nt().createAnimation(*curve, CompositorAnimation::TargetPropertyOpacity)));
125 int animationId = floatAnimation->id(); 126 int animationId = floatAnimation->id();
126 127
127 if (RuntimeEnabledFeatures::compositorAnimationTimelinesEnabled()) { 128 if (RuntimeEnabledFeatures::compositorAnimationTimelinesEnabled()) {
128 OwnPtr<WebCompositorAnimationTimeline> compositorTimeline = adoptPtr(Pla tform::current()->compositorSupport()->createAnimationTimeline()); 129 OwnPtr<CompositorAnimationTimeline> compositorTimeline = adoptPtr(Compos itorFactory::current().createAnimationTimeline());
129 AnimationPlayerForTesting player; 130 AnimationPlayerForTesting player;
130 131
131 layerTreeView()->attachCompositorAnimationTimeline(compositorTimeline.ge t()); 132 layerTreeView()->attachCompositorAnimationTimeline(compositorTimeline->a nimationTimeline());
132 compositorTimeline->playerAttached(player); 133 compositorTimeline->playerAttached(player);
133 134
134 player.compositorPlayer()->attachLayer(m_platformLayer); 135 player.compositorPlayer()->attachLayer(m_platformLayer);
135 ASSERT_TRUE(player.compositorPlayer()->isLayerAttached()); 136 ASSERT_TRUE(player.compositorPlayer()->isLayerAttached());
136 137
137 player.compositorPlayer()->addAnimation(floatAnimation.leakPtr()); 138 player.compositorPlayer()->addAnimation(floatAnimation.leakPtr());
138 139
139 ASSERT_TRUE(m_platformLayer->hasActiveAnimation()); 140 ASSERT_TRUE(m_platformLayer->hasActiveAnimation());
140 141
141 m_graphicsLayer->setShouldFlattenTransform(false); 142 m_graphicsLayer->setShouldFlattenTransform(false);
142 143
143 m_platformLayer = m_graphicsLayer->platformLayer(); 144 m_platformLayer = m_graphicsLayer->platformLayer();
144 ASSERT_TRUE(m_platformLayer); 145 ASSERT_TRUE(m_platformLayer);
145 146
146 ASSERT_TRUE(m_platformLayer->hasActiveAnimation()); 147 ASSERT_TRUE(m_platformLayer->hasActiveAnimation());
147 player.compositorPlayer()->removeAnimation(animationId); 148 player.compositorPlayer()->removeAnimation(animationId);
148 ASSERT_FALSE(m_platformLayer->hasActiveAnimation()); 149 ASSERT_FALSE(m_platformLayer->hasActiveAnimation());
149 150
150 m_graphicsLayer->setShouldFlattenTransform(true); 151 m_graphicsLayer->setShouldFlattenTransform(true);
151 152
152 m_platformLayer = m_graphicsLayer->platformLayer(); 153 m_platformLayer = m_graphicsLayer->platformLayer();
153 ASSERT_TRUE(m_platformLayer); 154 ASSERT_TRUE(m_platformLayer);
154 155
155 ASSERT_FALSE(m_platformLayer->hasActiveAnimation()); 156 ASSERT_FALSE(m_platformLayer->hasActiveAnimation());
156 157
157 player.compositorPlayer()->detachLayer(); 158 player.compositorPlayer()->detachLayer();
158 ASSERT_FALSE(player.compositorPlayer()->isLayerAttached()); 159 ASSERT_FALSE(player.compositorPlayer()->isLayerAttached());
159 160
160 compositorTimeline->playerDestroyed(player); 161 compositorTimeline->playerDestroyed(player);
161 layerTreeView()->detachCompositorAnimationTimeline(compositorTimeline.ge t()); 162 layerTreeView()->detachCompositorAnimationTimeline(compositorTimeline->a nimationTimeline());
162 } else { 163 } else {
163 ASSERT_TRUE(m_platformLayer->addAnimation(floatAnimation.leakPtr())); 164 ASSERT_TRUE(m_platformLayer->addAnimation(floatAnimation->releaseCCAnima tion()));
164 165
165 ASSERT_TRUE(m_platformLayer->hasActiveAnimation()); 166 ASSERT_TRUE(m_platformLayer->hasActiveAnimation());
166 167
167 m_graphicsLayer->setShouldFlattenTransform(false); 168 m_graphicsLayer->setShouldFlattenTransform(false);
168 169
169 m_platformLayer = m_graphicsLayer->platformLayer(); 170 m_platformLayer = m_graphicsLayer->platformLayer();
170 ASSERT_TRUE(m_platformLayer); 171 ASSERT_TRUE(m_platformLayer);
171 172
172 ASSERT_TRUE(m_platformLayer->hasActiveAnimation()); 173 ASSERT_TRUE(m_platformLayer->hasActiveAnimation());
173 m_platformLayer->removeAnimation(animationId); 174 m_platformLayer->removeAnimation(animationId);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 231
231 WebDoublePoint scrollPosition(7, 9); 232 WebDoublePoint scrollPosition(7, 9);
232 m_platformLayer->setScrollPositionDouble(scrollPosition); 233 m_platformLayer->setScrollPositionDouble(scrollPosition);
233 m_graphicsLayer->didScroll(); 234 m_graphicsLayer->didScroll();
234 235
235 EXPECT_FLOAT_EQ(scrollPosition.x, scrollableArea->scrollPositionDouble().x() ); 236 EXPECT_FLOAT_EQ(scrollPosition.x, scrollableArea->scrollPositionDouble().x() );
236 EXPECT_FLOAT_EQ(scrollPosition.y, scrollableArea->scrollPositionDouble().y() ); 237 EXPECT_FLOAT_EQ(scrollPosition.y, scrollableArea->scrollPositionDouble().y() );
237 } 238 }
238 239
239 } // namespace blink 240 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698