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

Side by Side Diff: cc/trees/layer_tree_host_impl_unittest.cc

Issue 295193002: Get rid of graphics layer anchor points, and replace with transform origin. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixed. Created 6 years, 6 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 &proxy_, 175 &proxy_,
176 &stats_instrumentation_, 176 &stats_instrumentation_,
177 shared_bitmap_manager_.get(), 177 shared_bitmap_manager_.get(),
178 0); 178 0);
179 bool init = host_impl_->InitializeRenderer(output_surface.Pass()); 179 bool init = host_impl_->InitializeRenderer(output_surface.Pass());
180 host_impl_->SetViewportSize(gfx::Size(10, 10)); 180 host_impl_->SetViewportSize(gfx::Size(10, 10));
181 return init; 181 return init;
182 } 182 }
183 183
184 void SetupRootLayerImpl(scoped_ptr<LayerImpl> root) { 184 void SetupRootLayerImpl(scoped_ptr<LayerImpl> root) {
185 root->SetAnchorPoint(gfx::PointF()); 185 root->SetTransformOrigin(gfx::Point3F());
186 root->SetPosition(gfx::PointF()); 186 root->SetPosition(gfx::PointF());
187 root->SetBounds(gfx::Size(10, 10)); 187 root->SetBounds(gfx::Size(10, 10));
188 root->SetContentBounds(gfx::Size(10, 10)); 188 root->SetContentBounds(gfx::Size(10, 10));
189 root->SetDrawsContent(true); 189 root->SetDrawsContent(true);
190 root->draw_properties().visible_content_rect = gfx::Rect(0, 0, 10, 10); 190 root->draw_properties().visible_content_rect = gfx::Rect(0, 0, 10, 10);
191 host_impl_->active_tree()->SetRootLayer(root.Pass()); 191 host_impl_->active_tree()->SetRootLayer(root.Pass());
192 } 192 }
193 193
194 static void ExpectClearedScrollDeltasRecursive(LayerImpl* layer) { 194 static void ExpectClearedScrollDeltasRecursive(LayerImpl* layer) {
195 ASSERT_EQ(layer->ScrollDelta(), gfx::Vector2d()); 195 ASSERT_EQ(layer->ScrollDelta(), gfx::Vector2d());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
227 LayerImpl* CreateScrollAndContentsLayers(LayerTreeImpl* layer_tree_impl, 227 LayerImpl* CreateScrollAndContentsLayers(LayerTreeImpl* layer_tree_impl,
228 const gfx::Size& content_size) { 228 const gfx::Size& content_size) {
229 const int kInnerViewportScrollLayerId = 2; 229 const int kInnerViewportScrollLayerId = 2;
230 const int kInnerViewportClipLayerId = 4; 230 const int kInnerViewportClipLayerId = 4;
231 const int kPageScaleLayerId = 5; 231 const int kPageScaleLayerId = 5;
232 scoped_ptr<LayerImpl> root = 232 scoped_ptr<LayerImpl> root =
233 LayerImpl::Create(layer_tree_impl, 1); 233 LayerImpl::Create(layer_tree_impl, 1);
234 root->SetBounds(content_size); 234 root->SetBounds(content_size);
235 root->SetContentBounds(content_size); 235 root->SetContentBounds(content_size);
236 root->SetPosition(gfx::PointF()); 236 root->SetPosition(gfx::PointF());
237 root->SetAnchorPoint(gfx::PointF()); 237 root->SetTransformOrigin(gfx::Point3F());
238 238
239 scoped_ptr<LayerImpl> scroll = 239 scoped_ptr<LayerImpl> scroll =
240 LayerImpl::Create(layer_tree_impl, kInnerViewportScrollLayerId); 240 LayerImpl::Create(layer_tree_impl, kInnerViewportScrollLayerId);
241 LayerImpl* scroll_layer = scroll.get(); 241 LayerImpl* scroll_layer = scroll.get();
242 scroll->SetIsContainerForFixedPositionLayers(true); 242 scroll->SetIsContainerForFixedPositionLayers(true);
243 scroll->SetScrollOffset(gfx::Vector2d()); 243 scroll->SetScrollOffset(gfx::Vector2d());
244 244
245 scoped_ptr<LayerImpl> clip = 245 scoped_ptr<LayerImpl> clip =
246 LayerImpl::Create(layer_tree_impl, kInnerViewportClipLayerId); 246 LayerImpl::Create(layer_tree_impl, kInnerViewportClipLayerId);
247 clip->SetBounds( 247 clip->SetBounds(
248 gfx::Size(content_size.width() / 2, content_size.height() / 2)); 248 gfx::Size(content_size.width() / 2, content_size.height() / 2));
249 249
250 scoped_ptr<LayerImpl> page_scale = 250 scoped_ptr<LayerImpl> page_scale =
251 LayerImpl::Create(layer_tree_impl, kPageScaleLayerId); 251 LayerImpl::Create(layer_tree_impl, kPageScaleLayerId);
252 252
253 scroll->SetScrollClipLayer(clip->id()); 253 scroll->SetScrollClipLayer(clip->id());
254 scroll->SetBounds(content_size); 254 scroll->SetBounds(content_size);
255 scroll->SetContentBounds(content_size); 255 scroll->SetContentBounds(content_size);
256 scroll->SetPosition(gfx::PointF()); 256 scroll->SetPosition(gfx::PointF());
257 scroll->SetAnchorPoint(gfx::PointF()); 257 scroll->SetTransformOrigin(gfx::Point3F());
258 scroll->SetIsContainerForFixedPositionLayers(true); 258 scroll->SetIsContainerForFixedPositionLayers(true);
259 259
260 scoped_ptr<LayerImpl> contents = 260 scoped_ptr<LayerImpl> contents =
261 LayerImpl::Create(layer_tree_impl, 3); 261 LayerImpl::Create(layer_tree_impl, 3);
262 contents->SetDrawsContent(true); 262 contents->SetDrawsContent(true);
263 contents->SetBounds(content_size); 263 contents->SetBounds(content_size);
264 contents->SetContentBounds(content_size); 264 contents->SetContentBounds(content_size);
265 contents->SetPosition(gfx::PointF()); 265 contents->SetPosition(gfx::PointF());
266 contents->SetAnchorPoint(gfx::PointF()); 266 contents->SetTransformOrigin(gfx::Point3F());
267 267
268 scroll->AddChild(contents.Pass()); 268 scroll->AddChild(contents.Pass());
269 page_scale->AddChild(scroll.Pass()); 269 page_scale->AddChild(scroll.Pass());
270 clip->AddChild(page_scale.Pass()); 270 clip->AddChild(page_scale.Pass());
271 root->AddChild(clip.Pass()); 271 root->AddChild(clip.Pass());
272 272
273 layer_tree_impl->SetRootLayer(root.Pass()); 273 layer_tree_impl->SetRootLayer(root.Pass());
274 layer_tree_impl->SetViewportLayersFromIds( 274 layer_tree_impl->SetViewportLayersFromIds(
275 kPageScaleLayerId, kInnerViewportScrollLayerId, Layer::INVALID_ID); 275 kPageScaleLayerId, kInnerViewportScrollLayerId, Layer::INVALID_ID);
276 276
(...skipping 561 matching lines...) Expand 10 before | Expand all | Expand 10 after
838 host_impl_->SetViewportSize(gfx::Size(100, 100)); 838 host_impl_->SetViewportSize(gfx::Size(100, 100));
839 839
840 gfx::Size overflow_size(400, 400); 840 gfx::Size overflow_size(400, 400);
841 ASSERT_EQ(1u, scroll_layer->children().size()); 841 ASSERT_EQ(1u, scroll_layer->children().size());
842 LayerImpl* overflow = scroll_layer->children()[0]; 842 LayerImpl* overflow = scroll_layer->children()[0];
843 overflow->SetBounds(overflow_size); 843 overflow->SetBounds(overflow_size);
844 overflow->SetContentBounds(overflow_size); 844 overflow->SetContentBounds(overflow_size);
845 overflow->SetScrollClipLayer(scroll_layer->parent()->id()); 845 overflow->SetScrollClipLayer(scroll_layer->parent()->id());
846 overflow->SetScrollOffset(gfx::Vector2d()); 846 overflow->SetScrollOffset(gfx::Vector2d());
847 overflow->SetPosition(gfx::PointF()); 847 overflow->SetPosition(gfx::PointF());
848 overflow->SetAnchorPoint(gfx::PointF()); 848 overflow->SetTransformOrigin(gfx::Point3F());
849 849
850 DrawFrame(); 850 DrawFrame();
851 gfx::Point scroll_position(10, 10); 851 gfx::Point scroll_position(10, 10);
852 852
853 EXPECT_EQ(InputHandler::ScrollStarted, 853 EXPECT_EQ(InputHandler::ScrollStarted,
854 host_impl_->ScrollBegin(scroll_position, InputHandler::Wheel)); 854 host_impl_->ScrollBegin(scroll_position, InputHandler::Wheel));
855 EXPECT_VECTOR_EQ(gfx::Vector2dF(), scroll_layer->TotalScrollOffset()); 855 EXPECT_VECTOR_EQ(gfx::Vector2dF(), scroll_layer->TotalScrollOffset());
856 EXPECT_VECTOR_EQ(gfx::Vector2dF(), overflow->TotalScrollOffset()); 856 EXPECT_VECTOR_EQ(gfx::Vector2dF(), overflow->TotalScrollOffset());
857 857
858 gfx::Vector2dF scroll_delta(10, 10); 858 gfx::Vector2dF scroll_delta(10, 10);
(...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after
1684 did_draw_called_ = false; 1684 did_draw_called_ = false;
1685 } 1685 }
1686 1686
1687 protected: 1687 protected:
1688 DidDrawCheckLayer(LayerTreeImpl* tree_impl, int id) 1688 DidDrawCheckLayer(LayerTreeImpl* tree_impl, int id)
1689 : TiledLayerImpl(tree_impl, id), 1689 : TiledLayerImpl(tree_impl, id),
1690 will_draw_returns_false_(false), 1690 will_draw_returns_false_(false),
1691 will_draw_called_(false), 1691 will_draw_called_(false),
1692 append_quads_called_(false), 1692 append_quads_called_(false),
1693 did_draw_called_(false) { 1693 did_draw_called_(false) {
1694 SetAnchorPoint(gfx::PointF()); 1694 SetTransformOrigin(gfx::Point3F());
1695 SetBounds(gfx::Size(10, 10)); 1695 SetBounds(gfx::Size(10, 10));
1696 SetContentBounds(gfx::Size(10, 10)); 1696 SetContentBounds(gfx::Size(10, 10));
1697 SetDrawsContent(true); 1697 SetDrawsContent(true);
1698 set_skips_draw(false); 1698 set_skips_draw(false);
1699 draw_properties().visible_content_rect = gfx::Rect(0, 0, 10, 10); 1699 draw_properties().visible_content_rect = gfx::Rect(0, 0, 10, 10);
1700 1700
1701 scoped_ptr<LayerTilingData> tiler = 1701 scoped_ptr<LayerTilingData> tiler =
1702 LayerTilingData::Create(gfx::Size(100, 100), 1702 LayerTilingData::Create(gfx::Size(100, 100),
1703 LayerTilingData::HAS_BORDER_TEXELS); 1703 LayerTilingData::HAS_BORDER_TEXELS);
1704 tiler->SetTilingRect(gfx::Rect(content_bounds())); 1704 tiler->SetTilingRect(gfx::Rect(content_bounds()));
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
2128 2128
2129 scoped_ptr<LayerImpl> root = 2129 scoped_ptr<LayerImpl> root =
2130 LayerImpl::Create(host_impl_->active_tree(), 1); 2130 LayerImpl::Create(host_impl_->active_tree(), 1);
2131 scoped_ptr<LayerImpl> root_clip = 2131 scoped_ptr<LayerImpl> root_clip =
2132 LayerImpl::Create(host_impl_->active_tree(), 2); 2132 LayerImpl::Create(host_impl_->active_tree(), 2);
2133 root_clip->SetBounds(clip_size_); 2133 root_clip->SetBounds(clip_size_);
2134 root->SetScrollClipLayer(root_clip->id()); 2134 root->SetScrollClipLayer(root_clip->id());
2135 root->SetBounds(layer_size_); 2135 root->SetBounds(layer_size_);
2136 root->SetContentBounds(layer_size_); 2136 root->SetContentBounds(layer_size_);
2137 root->SetPosition(gfx::PointF()); 2137 root->SetPosition(gfx::PointF());
2138 root->SetAnchorPoint(gfx::PointF()); 2138 root->SetTransformOrigin(gfx::Point3F());
2139 root->SetDrawsContent(false); 2139 root->SetDrawsContent(false);
2140 root->SetIsContainerForFixedPositionLayers(true); 2140 root->SetIsContainerForFixedPositionLayers(true);
2141 int inner_viewport_scroll_layer_id = root->id(); 2141 int inner_viewport_scroll_layer_id = root->id();
2142 int page_scale_layer_id = root_clip->id(); 2142 int page_scale_layer_id = root_clip->id();
2143 root_clip->AddChild(root.Pass()); 2143 root_clip->AddChild(root.Pass());
2144 host_impl_->active_tree()->SetRootLayer(root_clip.Pass()); 2144 host_impl_->active_tree()->SetRootLayer(root_clip.Pass());
2145 host_impl_->active_tree()->SetViewportLayersFromIds( 2145 host_impl_->active_tree()->SetViewportLayersFromIds(
2146 page_scale_layer_id, inner_viewport_scroll_layer_id, Layer::INVALID_ID); 2146 page_scale_layer_id, inner_viewport_scroll_layer_id, Layer::INVALID_ID);
2147 // Set a viewport size that is large enough to contain both the top controls 2147 // Set a viewport size that is large enough to contain both the top controls
2148 // and some content. 2148 // and some content.
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
2267 TEST_F(LayerTreeHostImplTest, ScrollNonCompositedRoot) { 2267 TEST_F(LayerTreeHostImplTest, ScrollNonCompositedRoot) {
2268 // Test the configuration where a non-composited root layer is embedded in a 2268 // Test the configuration where a non-composited root layer is embedded in a
2269 // scrollable outer layer. 2269 // scrollable outer layer.
2270 gfx::Size surface_size(10, 10); 2270 gfx::Size surface_size(10, 10);
2271 gfx::Size contents_size(20, 20); 2271 gfx::Size contents_size(20, 20);
2272 2272
2273 scoped_ptr<LayerImpl> content_layer = 2273 scoped_ptr<LayerImpl> content_layer =
2274 LayerImpl::Create(host_impl_->active_tree(), 1); 2274 LayerImpl::Create(host_impl_->active_tree(), 1);
2275 content_layer->SetDrawsContent(true); 2275 content_layer->SetDrawsContent(true);
2276 content_layer->SetPosition(gfx::PointF()); 2276 content_layer->SetPosition(gfx::PointF());
2277 content_layer->SetAnchorPoint(gfx::PointF()); 2277 content_layer->SetTransformOrigin(gfx::Point3F());
2278 content_layer->SetBounds(contents_size); 2278 content_layer->SetBounds(contents_size);
2279 content_layer->SetContentBounds(contents_size); 2279 content_layer->SetContentBounds(contents_size);
2280 content_layer->SetContentsScale(2.f, 2.f); 2280 content_layer->SetContentsScale(2.f, 2.f);
2281 2281
2282 scoped_ptr<LayerImpl> scroll_clip_layer = 2282 scoped_ptr<LayerImpl> scroll_clip_layer =
2283 LayerImpl::Create(host_impl_->active_tree(), 3); 2283 LayerImpl::Create(host_impl_->active_tree(), 3);
2284 scroll_clip_layer->SetBounds(surface_size); 2284 scroll_clip_layer->SetBounds(surface_size);
2285 2285
2286 scoped_ptr<LayerImpl> scroll_layer = 2286 scoped_ptr<LayerImpl> scroll_layer =
2287 LayerImpl::Create(host_impl_->active_tree(), 2); 2287 LayerImpl::Create(host_impl_->active_tree(), 2);
2288 scroll_layer->SetScrollClipLayer(3); 2288 scroll_layer->SetScrollClipLayer(3);
2289 scroll_layer->SetBounds(contents_size); 2289 scroll_layer->SetBounds(contents_size);
2290 scroll_layer->SetContentBounds(contents_size); 2290 scroll_layer->SetContentBounds(contents_size);
2291 scroll_layer->SetPosition(gfx::PointF()); 2291 scroll_layer->SetPosition(gfx::PointF());
2292 scroll_layer->SetAnchorPoint(gfx::PointF()); 2292 scroll_layer->SetTransformOrigin(gfx::Point3F());
2293 scroll_layer->AddChild(content_layer.Pass()); 2293 scroll_layer->AddChild(content_layer.Pass());
2294 scroll_clip_layer->AddChild(scroll_layer.Pass()); 2294 scroll_clip_layer->AddChild(scroll_layer.Pass());
2295 2295
2296 host_impl_->active_tree()->SetRootLayer(scroll_clip_layer.Pass()); 2296 host_impl_->active_tree()->SetRootLayer(scroll_clip_layer.Pass());
2297 host_impl_->SetViewportSize(surface_size); 2297 host_impl_->SetViewportSize(surface_size);
2298 DrawFrame(); 2298 DrawFrame();
2299 2299
2300 EXPECT_EQ(InputHandler::ScrollStarted, 2300 EXPECT_EQ(InputHandler::ScrollStarted,
2301 host_impl_->ScrollBegin(gfx::Point(5, 5), 2301 host_impl_->ScrollBegin(gfx::Point(5, 5),
2302 InputHandler::Wheel)); 2302 InputHandler::Wheel));
(...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after
2893 child_layer_id, scroll_layer->content_bounds(), clip_layer.get()); 2893 child_layer_id, scroll_layer->content_bounds(), clip_layer.get());
2894 gfx::Transform rotate_transform; 2894 gfx::Transform rotate_transform;
2895 rotate_transform.Translate(-50.0, -50.0); 2895 rotate_transform.Translate(-50.0, -50.0);
2896 rotate_transform.Rotate(child_layer_angle); 2896 rotate_transform.Rotate(child_layer_angle);
2897 rotate_transform.Translate(50.0, 50.0); 2897 rotate_transform.Translate(50.0, 50.0);
2898 clip_layer->SetTransform(rotate_transform); 2898 clip_layer->SetTransform(rotate_transform);
2899 2899
2900 // Only allow vertical scrolling. 2900 // Only allow vertical scrolling.
2901 clip_layer->SetBounds( 2901 clip_layer->SetBounds(
2902 gfx::Size(child->bounds().width(), child->bounds().height() / 2)); 2902 gfx::Size(child->bounds().width(), child->bounds().height() / 2));
2903 // The rotation depends on the layer's anchor point, and the child layer is a 2903 // The rotation depends on the layer's transform origin, and the child layer
2904 // different size than the clip, so make sure the clip layer's anchor lines 2904 // is a different size than the clip, so make sure the clip layer's origin
2905 // up over the child. 2905 // lines up over the child.
2906 clip_layer->SetAnchorPoint(gfx::PointF(0.5, 1.0)); 2906 clip_layer->SetTransformOrigin(gfx::Point3F(
2907 clip_layer->bounds().width() * 0.5f, clip_layer->bounds().height(), 0.f));
2907 LayerImpl* child_ptr = child.get(); 2908 LayerImpl* child_ptr = child.get();
2908 clip_layer->AddChild(child.Pass()); 2909 clip_layer->AddChild(child.Pass());
2909 scroll_layer->AddChild(clip_layer.Pass()); 2910 scroll_layer->AddChild(clip_layer.Pass());
2910 2911
2911 gfx::Size surface_size(50, 50); 2912 gfx::Size surface_size(50, 50);
2912 host_impl_->SetViewportSize(surface_size); 2913 host_impl_->SetViewportSize(surface_size);
2913 DrawFrame(); 2914 DrawFrame();
2914 { 2915 {
2915 // Scroll down in screen coordinates with a gesture. 2916 // Scroll down in screen coordinates with a gesture.
2916 gfx::Vector2d gesture_scroll_delta(0, 10); 2917 gfx::Vector2d gesture_scroll_delta(0, 10);
(...skipping 571 matching lines...) Expand 10 before | Expand all | Expand 10 after
3488 has_render_surface_(false), 3489 has_render_surface_(false),
3489 quads_appended_(false), 3490 quads_appended_(false),
3490 quad_rect_(5, 5, 5, 5), 3491 quad_rect_(5, 5, 5, 5),
3491 quad_visible_rect_(5, 5, 5, 5), 3492 quad_visible_rect_(5, 5, 5, 5),
3492 resource_id_(resource_provider->CreateResource( 3493 resource_id_(resource_provider->CreateResource(
3493 gfx::Size(1, 1), 3494 gfx::Size(1, 1),
3494 GL_CLAMP_TO_EDGE, 3495 GL_CLAMP_TO_EDGE,
3495 ResourceProvider::TextureUsageAny, 3496 ResourceProvider::TextureUsageAny,
3496 RGBA_8888)) { 3497 RGBA_8888)) {
3497 resource_provider->AllocateForTesting(resource_id_); 3498 resource_provider->AllocateForTesting(resource_id_);
3498 SetAnchorPoint(gfx::PointF()); 3499 SetTransformOrigin(gfx::Point3F());
3499 SetBounds(gfx::Size(10, 10)); 3500 SetBounds(gfx::Size(10, 10));
3500 SetContentBounds(gfx::Size(10, 10)); 3501 SetContentBounds(gfx::Size(10, 10));
3501 SetDrawsContent(true); 3502 SetDrawsContent(true);
3502 } 3503 }
3503 3504
3504 bool blend_; 3505 bool blend_;
3505 bool has_render_surface_; 3506 bool has_render_surface_;
3506 bool quads_appended_; 3507 bool quads_appended_;
3507 gfx::Rect quad_rect_; 3508 gfx::Rect quad_rect_;
3508 gfx::Rect opaque_content_rect_; 3509 gfx::Rect opaque_content_rect_;
3509 gfx::Rect quad_visible_rect_; 3510 gfx::Rect quad_visible_rect_;
3510 ResourceProvider::ResourceId resource_id_; 3511 ResourceProvider::ResourceId resource_id_;
3511 }; 3512 };
3512 3513
3513 TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) { 3514 TEST_F(LayerTreeHostImplTest, BlendingOffWhenDrawingOpaqueLayers) {
3514 { 3515 {
3515 scoped_ptr<LayerImpl> root = 3516 scoped_ptr<LayerImpl> root =
3516 LayerImpl::Create(host_impl_->active_tree(), 1); 3517 LayerImpl::Create(host_impl_->active_tree(), 1);
3517 root->SetAnchorPoint(gfx::PointF()); 3518 root->SetTransformOrigin(gfx::Point3F());
3518 root->SetBounds(gfx::Size(10, 10)); 3519 root->SetBounds(gfx::Size(10, 10));
3519 root->SetContentBounds(root->bounds()); 3520 root->SetContentBounds(root->bounds());
3520 root->SetDrawsContent(false); 3521 root->SetDrawsContent(false);
3521 host_impl_->active_tree()->SetRootLayer(root.Pass()); 3522 host_impl_->active_tree()->SetRootLayer(root.Pass());
3522 } 3523 }
3523 LayerImpl* root = host_impl_->active_tree()->root_layer(); 3524 LayerImpl* root = host_impl_->active_tree()->root_layer();
3524 3525
3525 root->AddChild( 3526 root->AddChild(
3526 BlendStateCheckLayer::Create(host_impl_->active_tree(), 3527 BlendStateCheckLayer::Create(host_impl_->active_tree(),
3527 2, 3528 2,
(...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after
4034 // can leave the window at the wrong size if we never draw and the proper 4035 // can leave the window at the wrong size if we never draw and the proper
4035 // viewport size is never set. 4036 // viewport size is never set.
4036 TEST_F(LayerTreeHostImplTest, ReshapeNotCalledUntilDraw) { 4037 TEST_F(LayerTreeHostImplTest, ReshapeNotCalledUntilDraw) {
4037 scoped_refptr<TestContextProvider> provider(TestContextProvider::Create()); 4038 scoped_refptr<TestContextProvider> provider(TestContextProvider::Create());
4038 scoped_ptr<OutputSurface> output_surface( 4039 scoped_ptr<OutputSurface> output_surface(
4039 FakeOutputSurface::Create3d(provider)); 4040 FakeOutputSurface::Create3d(provider));
4040 CreateHostImpl(DefaultSettings(), output_surface.Pass()); 4041 CreateHostImpl(DefaultSettings(), output_surface.Pass());
4041 4042
4042 scoped_ptr<LayerImpl> root = 4043 scoped_ptr<LayerImpl> root =
4043 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1); 4044 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1);
4044 root->SetAnchorPoint(gfx::PointF()); 4045 root->SetTransformOrigin(gfx::Point3F());
4045 root->SetBounds(gfx::Size(10, 10)); 4046 root->SetBounds(gfx::Size(10, 10));
4046 root->SetContentBounds(gfx::Size(10, 10)); 4047 root->SetContentBounds(gfx::Size(10, 10));
4047 root->SetDrawsContent(true); 4048 root->SetDrawsContent(true);
4048 host_impl_->active_tree()->SetRootLayer(root.Pass()); 4049 host_impl_->active_tree()->SetRootLayer(root.Pass());
4049 EXPECT_FALSE(provider->TestContext3d()->reshape_called()); 4050 EXPECT_FALSE(provider->TestContext3d()->reshape_called());
4050 provider->TestContext3d()->clear_reshape_called(); 4051 provider->TestContext3d()->clear_reshape_called();
4051 4052
4052 LayerTreeHostImpl::FrameData frame; 4053 LayerTreeHostImpl::FrameData frame;
4053 host_impl_->SetViewportSize(gfx::Size(10, 10)); 4054 host_impl_->SetViewportSize(gfx::Size(10, 10));
4054 host_impl_->SetDeviceScaleFactor(1.f); 4055 host_impl_->SetDeviceScaleFactor(1.f);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
4107 shared_bitmap_manager.get(), 4108 shared_bitmap_manager.get(),
4108 0); 4109 0);
4109 layer_tree_host_impl->InitializeRenderer(output_surface.Pass()); 4110 layer_tree_host_impl->InitializeRenderer(output_surface.Pass());
4110 layer_tree_host_impl->SetViewportSize(gfx::Size(500, 500)); 4111 layer_tree_host_impl->SetViewportSize(gfx::Size(500, 500));
4111 4112
4112 scoped_ptr<LayerImpl> root = 4113 scoped_ptr<LayerImpl> root =
4113 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 1); 4114 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 1);
4114 scoped_ptr<LayerImpl> child = 4115 scoped_ptr<LayerImpl> child =
4115 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 2); 4116 FakeDrawableLayerImpl::Create(layer_tree_host_impl->active_tree(), 2);
4116 child->SetPosition(gfx::PointF(12.f, 13.f)); 4117 child->SetPosition(gfx::PointF(12.f, 13.f));
4117 child->SetAnchorPoint(gfx::PointF()); 4118 child->SetTransformOrigin(gfx::Point3F());
4118 child->SetBounds(gfx::Size(14, 15)); 4119 child->SetBounds(gfx::Size(14, 15));
4119 child->SetContentBounds(gfx::Size(14, 15)); 4120 child->SetContentBounds(gfx::Size(14, 15));
4120 child->SetDrawsContent(true); 4121 child->SetDrawsContent(true);
4121 root->SetAnchorPoint(gfx::PointF()); 4122 root->SetTransformOrigin(gfx::Point3F());
4122 root->SetBounds(gfx::Size(500, 500)); 4123 root->SetBounds(gfx::Size(500, 500));
4123 root->SetContentBounds(gfx::Size(500, 500)); 4124 root->SetContentBounds(gfx::Size(500, 500));
4124 root->SetDrawsContent(true); 4125 root->SetDrawsContent(true);
4125 root->AddChild(child.Pass()); 4126 root->AddChild(child.Pass());
4126 layer_tree_host_impl->active_tree()->SetRootLayer(root.Pass()); 4127 layer_tree_host_impl->active_tree()->SetRootLayer(root.Pass());
4127 4128
4128 LayerTreeHostImpl::FrameData frame; 4129 LayerTreeHostImpl::FrameData frame;
4129 4130
4130 // First frame, the entire screen should get swapped. 4131 // First frame, the entire screen should get swapped.
4131 EXPECT_EQ(DRAW_SUCCESS, layer_tree_host_impl->PrepareToDraw(&frame)); 4132 EXPECT_EQ(DRAW_SUCCESS, layer_tree_host_impl->PrepareToDraw(&frame));
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
4167 4168
4168 EXPECT_EQ(TestContextSupport::SWAP, 4169 EXPECT_EQ(TestContextSupport::SWAP,
4169 context_provider->support()->last_swap_type()); 4170 context_provider->support()->last_swap_type());
4170 } 4171 }
4171 4172
4172 TEST_F(LayerTreeHostImplTest, RootLayerDoesntCreateExtraSurface) { 4173 TEST_F(LayerTreeHostImplTest, RootLayerDoesntCreateExtraSurface) {
4173 scoped_ptr<LayerImpl> root = 4174 scoped_ptr<LayerImpl> root =
4174 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1); 4175 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1);
4175 scoped_ptr<LayerImpl> child = 4176 scoped_ptr<LayerImpl> child =
4176 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 2); 4177 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 2);
4177 child->SetAnchorPoint(gfx::PointF()); 4178 child->SetTransformOrigin(gfx::Point3F());
4178 child->SetBounds(gfx::Size(10, 10)); 4179 child->SetBounds(gfx::Size(10, 10));
4179 child->SetContentBounds(gfx::Size(10, 10)); 4180 child->SetContentBounds(gfx::Size(10, 10));
4180 child->SetDrawsContent(true); 4181 child->SetDrawsContent(true);
4181 root->SetAnchorPoint(gfx::PointF()); 4182 root->SetTransformOrigin(gfx::Point3F());
4182 root->SetBounds(gfx::Size(10, 10)); 4183 root->SetBounds(gfx::Size(10, 10));
4183 root->SetContentBounds(gfx::Size(10, 10)); 4184 root->SetContentBounds(gfx::Size(10, 10));
4184 root->SetDrawsContent(true); 4185 root->SetDrawsContent(true);
4185 root->SetForceRenderSurface(true); 4186 root->SetForceRenderSurface(true);
4186 root->AddChild(child.Pass()); 4187 root->AddChild(child.Pass());
4187 4188
4188 host_impl_->active_tree()->SetRootLayer(root.Pass()); 4189 host_impl_->active_tree()->SetRootLayer(root.Pass());
4189 4190
4190 LayerTreeHostImpl::FrameData frame; 4191 LayerTreeHostImpl::FrameData frame;
4191 4192
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
4427 scoped_ptr<LayerImpl> child = 4428 scoped_ptr<LayerImpl> child =
4428 LayerImpl::Create(my_host_impl->active_tree(), 2); 4429 LayerImpl::Create(my_host_impl->active_tree(), 2);
4429 scoped_ptr<LayerImpl> grand_child = 4430 scoped_ptr<LayerImpl> grand_child =
4430 FakeLayerWithQuads::Create(my_host_impl->active_tree(), 3); 4431 FakeLayerWithQuads::Create(my_host_impl->active_tree(), 3);
4431 4432
4432 gfx::Rect root_rect(0, 0, 100, 100); 4433 gfx::Rect root_rect(0, 0, 100, 100);
4433 gfx::Rect child_rect(10, 10, 50, 50); 4434 gfx::Rect child_rect(10, 10, 50, 50);
4434 gfx::Rect grand_child_rect(5, 5, 150, 150); 4435 gfx::Rect grand_child_rect(5, 5, 150, 150);
4435 4436
4436 root->CreateRenderSurface(); 4437 root->CreateRenderSurface();
4437 root->SetAnchorPoint(gfx::PointF()); 4438 root->SetTransformOrigin(gfx::Point3F());
4438 root->SetPosition(root_rect.origin()); 4439 root->SetPosition(root_rect.origin());
4439 root->SetBounds(root_rect.size()); 4440 root->SetBounds(root_rect.size());
4440 root->SetContentBounds(root->bounds()); 4441 root->SetContentBounds(root->bounds());
4441 root->draw_properties().visible_content_rect = root_rect; 4442 root->draw_properties().visible_content_rect = root_rect;
4442 root->SetDrawsContent(false); 4443 root->SetDrawsContent(false);
4443 root->render_surface()->SetContentRect(gfx::Rect(root_rect.size())); 4444 root->render_surface()->SetContentRect(gfx::Rect(root_rect.size()));
4444 4445
4445 child->SetAnchorPoint(gfx::PointF()); 4446 child->SetTransformOrigin(gfx::Point3F());
4446 child->SetPosition(gfx::PointF(child_rect.x(), child_rect.y())); 4447 child->SetPosition(gfx::PointF(child_rect.x(), child_rect.y()));
4447 child->SetOpacity(0.5f); 4448 child->SetOpacity(0.5f);
4448 child->SetBounds(gfx::Size(child_rect.width(), child_rect.height())); 4449 child->SetBounds(gfx::Size(child_rect.width(), child_rect.height()));
4449 child->SetContentBounds(child->bounds()); 4450 child->SetContentBounds(child->bounds());
4450 child->draw_properties().visible_content_rect = child_rect; 4451 child->draw_properties().visible_content_rect = child_rect;
4451 child->SetDrawsContent(false); 4452 child->SetDrawsContent(false);
4452 child->SetForceRenderSurface(true); 4453 child->SetForceRenderSurface(true);
4453 4454
4454 grand_child->SetAnchorPoint(gfx::PointF()); 4455 grand_child->SetTransformOrigin(gfx::Point3F());
4455 grand_child->SetPosition(grand_child_rect.origin()); 4456 grand_child->SetPosition(grand_child_rect.origin());
4456 grand_child->SetBounds(grand_child_rect.size()); 4457 grand_child->SetBounds(grand_child_rect.size());
4457 grand_child->SetContentBounds(grand_child->bounds()); 4458 grand_child->SetContentBounds(grand_child->bounds());
4458 grand_child->draw_properties().visible_content_rect = grand_child_rect; 4459 grand_child->draw_properties().visible_content_rect = grand_child_rect;
4459 grand_child->SetDrawsContent(true); 4460 grand_child->SetDrawsContent(true);
4460 4461
4461 child->AddChild(grand_child.Pass()); 4462 child->AddChild(grand_child.Pass());
4462 root->AddChild(child.Pass()); 4463 root->AddChild(child.Pass());
4463 4464
4464 my_host_impl->active_tree()->SetRootLayer(root.Pass()); 4465 my_host_impl->active_tree()->SetRootLayer(root.Pass());
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
4523 scoped_ptr<TestWebGraphicsContext3D> context = 4524 scoped_ptr<TestWebGraphicsContext3D> context =
4524 TestWebGraphicsContext3D::Create(); 4525 TestWebGraphicsContext3D::Create();
4525 TestWebGraphicsContext3D* context3d = context.get(); 4526 TestWebGraphicsContext3D* context3d = context.get();
4526 scoped_ptr<OutputSurface> output_surface( 4527 scoped_ptr<OutputSurface> output_surface(
4527 FakeOutputSurface::Create3d(context.Pass())); 4528 FakeOutputSurface::Create3d(context.Pass()));
4528 CreateHostImpl(DefaultSettings(), output_surface.Pass()); 4529 CreateHostImpl(DefaultSettings(), output_surface.Pass());
4529 4530
4530 scoped_ptr<LayerImpl> root_layer = 4531 scoped_ptr<LayerImpl> root_layer =
4531 LayerImpl::Create(host_impl_->active_tree(), 1); 4532 LayerImpl::Create(host_impl_->active_tree(), 1);
4532 root_layer->SetBounds(gfx::Size(10, 10)); 4533 root_layer->SetBounds(gfx::Size(10, 10));
4533 root_layer->SetAnchorPoint(gfx::PointF()); 4534 root_layer->SetTransformOrigin(gfx::Point3F());
4534 4535
4535 scoped_refptr<VideoFrame> softwareFrame = 4536 scoped_refptr<VideoFrame> softwareFrame =
4536 media::VideoFrame::CreateColorFrame( 4537 media::VideoFrame::CreateColorFrame(
4537 gfx::Size(4, 4), 0x80, 0x80, 0x80, base::TimeDelta()); 4538 gfx::Size(4, 4), 0x80, 0x80, 0x80, base::TimeDelta());
4538 FakeVideoFrameProvider provider; 4539 FakeVideoFrameProvider provider;
4539 provider.set_frame(softwareFrame); 4540 provider.set_frame(softwareFrame);
4540 scoped_ptr<VideoLayerImpl> video_layer = 4541 scoped_ptr<VideoLayerImpl> video_layer =
4541 VideoLayerImpl::Create(host_impl_->active_tree(), 4, &provider); 4542 VideoLayerImpl::Create(host_impl_->active_tree(), 4, &provider);
4542 video_layer->SetBounds(gfx::Size(10, 10)); 4543 video_layer->SetBounds(gfx::Size(10, 10));
4543 video_layer->SetAnchorPoint(gfx::PointF()); 4544 video_layer->SetTransformOrigin(gfx::Point3F());
4544 video_layer->SetContentBounds(gfx::Size(10, 10)); 4545 video_layer->SetContentBounds(gfx::Size(10, 10));
4545 video_layer->SetDrawsContent(true); 4546 video_layer->SetDrawsContent(true);
4546 root_layer->AddChild(video_layer.PassAs<LayerImpl>()); 4547 root_layer->AddChild(video_layer.PassAs<LayerImpl>());
4547 4548
4548 scoped_ptr<IOSurfaceLayerImpl> io_surface_layer = 4549 scoped_ptr<IOSurfaceLayerImpl> io_surface_layer =
4549 IOSurfaceLayerImpl::Create(host_impl_->active_tree(), 5); 4550 IOSurfaceLayerImpl::Create(host_impl_->active_tree(), 5);
4550 io_surface_layer->SetBounds(gfx::Size(10, 10)); 4551 io_surface_layer->SetBounds(gfx::Size(10, 10));
4551 io_surface_layer->SetAnchorPoint(gfx::PointF()); 4552 io_surface_layer->SetTransformOrigin(gfx::Point3F());
4552 io_surface_layer->SetContentBounds(gfx::Size(10, 10)); 4553 io_surface_layer->SetContentBounds(gfx::Size(10, 10));
4553 io_surface_layer->SetDrawsContent(true); 4554 io_surface_layer->SetDrawsContent(true);
4554 io_surface_layer->SetIOSurfaceProperties(1, gfx::Size(10, 10)); 4555 io_surface_layer->SetIOSurfaceProperties(1, gfx::Size(10, 10));
4555 root_layer->AddChild(io_surface_layer.PassAs<LayerImpl>()); 4556 root_layer->AddChild(io_surface_layer.PassAs<LayerImpl>());
4556 4557
4557 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); 4558 host_impl_->active_tree()->SetRootLayer(root_layer.Pass());
4558 4559
4559 EXPECT_EQ(0u, context3d->NumTextures()); 4560 EXPECT_EQ(0u, context3d->NumTextures());
4560 4561
4561 LayerTreeHostImpl::FrameData frame; 4562 LayerTreeHostImpl::FrameData frame;
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
4698 4699
4699 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); 4700 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now());
4700 host_impl_->DidDrawAllLayers(frame); 4701 host_impl_->DidDrawAllLayers(frame);
4701 EXPECT_EQ(expect_to_draw, host_impl_->SwapBuffers(frame)); 4702 EXPECT_EQ(expect_to_draw, host_impl_->SwapBuffers(frame));
4702 } 4703 }
4703 }; 4704 };
4704 4705
4705 TEST_F(LayerTreeHostImplTestWithDelegatingRenderer, FrameIncludesDamageRect) { 4706 TEST_F(LayerTreeHostImplTestWithDelegatingRenderer, FrameIncludesDamageRect) {
4706 scoped_ptr<SolidColorLayerImpl> root = 4707 scoped_ptr<SolidColorLayerImpl> root =
4707 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); 4708 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1);
4708 root->SetAnchorPoint(gfx::PointF()); 4709 root->SetTransformOrigin(gfx::Point3F());
4709 root->SetPosition(gfx::PointF()); 4710 root->SetPosition(gfx::PointF());
4710 root->SetBounds(gfx::Size(10, 10)); 4711 root->SetBounds(gfx::Size(10, 10));
4711 root->SetContentBounds(gfx::Size(10, 10)); 4712 root->SetContentBounds(gfx::Size(10, 10));
4712 root->SetDrawsContent(true); 4713 root->SetDrawsContent(true);
4713 4714
4714 // Child layer is in the bottom right corner. 4715 // Child layer is in the bottom right corner.
4715 scoped_ptr<SolidColorLayerImpl> child = 4716 scoped_ptr<SolidColorLayerImpl> child =
4716 SolidColorLayerImpl::Create(host_impl_->active_tree(), 2); 4717 SolidColorLayerImpl::Create(host_impl_->active_tree(), 2);
4717 child->SetAnchorPoint(gfx::PointF(0.f, 0.f)); 4718 child->SetTransformOrigin(gfx::Point3F(0.f, 0.f, 0.f));
4718 child->SetPosition(gfx::PointF(9.f, 9.f)); 4719 child->SetPosition(gfx::PointF(9.f, 9.f));
4719 child->SetBounds(gfx::Size(1, 1)); 4720 child->SetBounds(gfx::Size(1, 1));
4720 child->SetContentBounds(gfx::Size(1, 1)); 4721 child->SetContentBounds(gfx::Size(1, 1));
4721 child->SetDrawsContent(true); 4722 child->SetDrawsContent(true);
4722 root->AddChild(child.PassAs<LayerImpl>()); 4723 root->AddChild(child.PassAs<LayerImpl>());
4723 4724
4724 host_impl_->active_tree()->SetRootLayer(root.PassAs<LayerImpl>()); 4725 host_impl_->active_tree()->SetRootLayer(root.PassAs<LayerImpl>());
4725 4726
4726 // Draw a frame. In the first frame, the entire viewport should be damaged. 4727 // Draw a frame. In the first frame, the entire viewport should be damaged.
4727 gfx::Rect full_frame_damage(host_impl_->DrawViewportSize()); 4728 gfx::Rect full_frame_damage(host_impl_->DrawViewportSize());
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
4790 4791
4791 scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer = 4792 scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer =
4792 FakeMaskLayerImpl::Create(host_impl_->active_tree(), 4); 4793 FakeMaskLayerImpl::Create(host_impl_->active_tree(), 4);
4793 FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get(); 4794 FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get();
4794 content_layer->SetMaskLayer(scoped_mask_layer.PassAs<LayerImpl>()); 4795 content_layer->SetMaskLayer(scoped_mask_layer.PassAs<LayerImpl>());
4795 4796
4796 gfx::Size root_size(100, 100); 4797 gfx::Size root_size(100, 100);
4797 root->SetBounds(root_size); 4798 root->SetBounds(root_size);
4798 root->SetContentBounds(root_size); 4799 root->SetContentBounds(root_size);
4799 root->SetPosition(gfx::PointF()); 4800 root->SetPosition(gfx::PointF());
4800 root->SetAnchorPoint(gfx::PointF()); 4801 root->SetTransformOrigin(gfx::Point3F());
4801 4802
4802 gfx::Size scaling_layer_size(50, 50); 4803 gfx::Size scaling_layer_size(50, 50);
4803 scaling_layer->SetBounds(scaling_layer_size); 4804 scaling_layer->SetBounds(scaling_layer_size);
4804 scaling_layer->SetContentBounds(scaling_layer_size); 4805 scaling_layer->SetContentBounds(scaling_layer_size);
4805 scaling_layer->SetPosition(gfx::PointF()); 4806 scaling_layer->SetPosition(gfx::PointF());
4806 scaling_layer->SetAnchorPoint(gfx::PointF()); 4807 scaling_layer->SetTransformOrigin(gfx::Point3F());
4807 gfx::Transform scale; 4808 gfx::Transform scale;
4808 scale.Scale(2.f, 2.f); 4809 scale.Scale(2.f, 2.f);
4809 scaling_layer->SetTransform(scale); 4810 scaling_layer->SetTransform(scale);
4810 4811
4811 content_layer->SetBounds(scaling_layer_size); 4812 content_layer->SetBounds(scaling_layer_size);
4812 content_layer->SetContentBounds(scaling_layer_size); 4813 content_layer->SetContentBounds(scaling_layer_size);
4813 content_layer->SetPosition(gfx::PointF()); 4814 content_layer->SetPosition(gfx::PointF());
4814 content_layer->SetAnchorPoint(gfx::PointF()); 4815 content_layer->SetTransformOrigin(gfx::Point3F());
4815 content_layer->SetDrawsContent(true); 4816 content_layer->SetDrawsContent(true);
4816 4817
4817 mask_layer->SetBounds(scaling_layer_size); 4818 mask_layer->SetBounds(scaling_layer_size);
4818 mask_layer->SetContentBounds(scaling_layer_size); 4819 mask_layer->SetContentBounds(scaling_layer_size);
4819 mask_layer->SetPosition(gfx::PointF()); 4820 mask_layer->SetPosition(gfx::PointF());
4820 mask_layer->SetAnchorPoint(gfx::PointF()); 4821 mask_layer->SetTransformOrigin(gfx::Point3F());
4821 mask_layer->SetDrawsContent(true); 4822 mask_layer->SetDrawsContent(true);
4822 4823
4823 4824
4824 // Check that the tree scaling is correctly taken into account for the mask, 4825 // Check that the tree scaling is correctly taken into account for the mask,
4825 // that should fully map onto the quad. 4826 // that should fully map onto the quad.
4826 float device_scale_factor = 1.f; 4827 float device_scale_factor = 1.f;
4827 host_impl_->SetViewportSize(root_size); 4828 host_impl_->SetViewportSize(root_size);
4828 host_impl_->SetDeviceScaleFactor(device_scale_factor); 4829 host_impl_->SetDeviceScaleFactor(device_scale_factor);
4829 { 4830 {
4830 LayerTreeHostImpl::FrameData frame; 4831 LayerTreeHostImpl::FrameData frame;
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
4920 4921
4921 scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer = 4922 scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer =
4922 FakeMaskLayerImpl::Create(host_impl_->active_tree(), 4); 4923 FakeMaskLayerImpl::Create(host_impl_->active_tree(), 4);
4923 FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get(); 4924 FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get();
4924 content_layer->SetMaskLayer(scoped_mask_layer.PassAs<LayerImpl>()); 4925 content_layer->SetMaskLayer(scoped_mask_layer.PassAs<LayerImpl>());
4925 4926
4926 gfx::Size root_size(100, 100); 4927 gfx::Size root_size(100, 100);
4927 root->SetBounds(root_size); 4928 root->SetBounds(root_size);
4928 root->SetContentBounds(root_size); 4929 root->SetContentBounds(root_size);
4929 root->SetPosition(gfx::PointF()); 4930 root->SetPosition(gfx::PointF());
4930 root->SetAnchorPoint(gfx::PointF()); 4931 root->SetTransformOrigin(gfx::Point3F());
4931 4932
4932 gfx::Size layer_size(50, 50); 4933 gfx::Size layer_size(50, 50);
4933 content_layer->SetBounds(layer_size); 4934 content_layer->SetBounds(layer_size);
4934 content_layer->SetContentBounds(layer_size); 4935 content_layer->SetContentBounds(layer_size);
4935 content_layer->SetPosition(gfx::PointF()); 4936 content_layer->SetPosition(gfx::PointF());
4936 content_layer->SetAnchorPoint(gfx::PointF()); 4937 content_layer->SetTransformOrigin(gfx::Point3F());
4937 content_layer->SetDrawsContent(true); 4938 content_layer->SetDrawsContent(true);
4938 4939
4939 gfx::Size mask_size(100, 100); 4940 gfx::Size mask_size(100, 100);
4940 mask_layer->SetBounds(mask_size); 4941 mask_layer->SetBounds(mask_size);
4941 mask_layer->SetContentBounds(mask_size); 4942 mask_layer->SetContentBounds(mask_size);
4942 mask_layer->SetPosition(gfx::PointF()); 4943 mask_layer->SetPosition(gfx::PointF());
4943 mask_layer->SetAnchorPoint(gfx::PointF()); 4944 mask_layer->SetTransformOrigin(gfx::Point3F());
4944 mask_layer->SetDrawsContent(true); 4945 mask_layer->SetDrawsContent(true);
4945 4946
4946 // Check that the mask fills the surface. 4947 // Check that the mask fills the surface.
4947 float device_scale_factor = 1.f; 4948 float device_scale_factor = 1.f;
4948 host_impl_->SetViewportSize(root_size); 4949 host_impl_->SetViewportSize(root_size);
4949 host_impl_->SetDeviceScaleFactor(device_scale_factor); 4950 host_impl_->SetDeviceScaleFactor(device_scale_factor);
4950 { 4951 {
4951 LayerTreeHostImpl::FrameData frame; 4952 LayerTreeHostImpl::FrameData frame;
4952 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 4953 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
4953 4954
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
5070 5071
5071 scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer = 5072 scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer =
5072 FakeMaskLayerImpl::Create(host_impl_->active_tree(), 4); 5073 FakeMaskLayerImpl::Create(host_impl_->active_tree(), 4);
5073 FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get(); 5074 FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get();
5074 replica_layer->SetMaskLayer(scoped_mask_layer.PassAs<LayerImpl>()); 5075 replica_layer->SetMaskLayer(scoped_mask_layer.PassAs<LayerImpl>());
5075 5076
5076 gfx::Size root_size(100, 100); 5077 gfx::Size root_size(100, 100);
5077 root->SetBounds(root_size); 5078 root->SetBounds(root_size);
5078 root->SetContentBounds(root_size); 5079 root->SetContentBounds(root_size);
5079 root->SetPosition(gfx::PointF()); 5080 root->SetPosition(gfx::PointF());
5080 root->SetAnchorPoint(gfx::PointF()); 5081 root->SetTransformOrigin(gfx::Point3F());
5081 5082
5082 gfx::Size layer_size(50, 50); 5083 gfx::Size layer_size(50, 50);
5083 content_layer->SetBounds(layer_size); 5084 content_layer->SetBounds(layer_size);
5084 content_layer->SetContentBounds(layer_size); 5085 content_layer->SetContentBounds(layer_size);
5085 content_layer->SetPosition(gfx::PointF()); 5086 content_layer->SetPosition(gfx::PointF());
5086 content_layer->SetAnchorPoint(gfx::PointF()); 5087 content_layer->SetTransformOrigin(gfx::Point3F());
5087 content_layer->SetDrawsContent(true); 5088 content_layer->SetDrawsContent(true);
5088 5089
5089 gfx::Size mask_size(100, 100); 5090 gfx::Size mask_size(100, 100);
5090 mask_layer->SetBounds(mask_size); 5091 mask_layer->SetBounds(mask_size);
5091 mask_layer->SetContentBounds(mask_size); 5092 mask_layer->SetContentBounds(mask_size);
5092 mask_layer->SetPosition(gfx::PointF()); 5093 mask_layer->SetPosition(gfx::PointF());
5093 mask_layer->SetAnchorPoint(gfx::PointF()); 5094 mask_layer->SetTransformOrigin(gfx::Point3F());
5094 mask_layer->SetDrawsContent(true); 5095 mask_layer->SetDrawsContent(true);
5095 5096
5096 // Check that the mask fills the surface. 5097 // Check that the mask fills the surface.
5097 float device_scale_factor = 1.f; 5098 float device_scale_factor = 1.f;
5098 host_impl_->SetViewportSize(root_size); 5099 host_impl_->SetViewportSize(root_size);
5099 host_impl_->SetDeviceScaleFactor(device_scale_factor); 5100 host_impl_->SetDeviceScaleFactor(device_scale_factor);
5100 { 5101 {
5101 LayerTreeHostImpl::FrameData frame; 5102 LayerTreeHostImpl::FrameData frame;
5102 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 5103 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
5103 5104
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
5229 5230
5230 scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer = 5231 scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer =
5231 FakeMaskLayerImpl::Create(host_impl_->active_tree(), 5); 5232 FakeMaskLayerImpl::Create(host_impl_->active_tree(), 5);
5232 FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get(); 5233 FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get();
5233 replica_layer->SetMaskLayer(scoped_mask_layer.PassAs<LayerImpl>()); 5234 replica_layer->SetMaskLayer(scoped_mask_layer.PassAs<LayerImpl>());
5234 5235
5235 gfx::Size root_size(100, 100); 5236 gfx::Size root_size(100, 100);
5236 root->SetBounds(root_size); 5237 root->SetBounds(root_size);
5237 root->SetContentBounds(root_size); 5238 root->SetContentBounds(root_size);
5238 root->SetPosition(gfx::PointF()); 5239 root->SetPosition(gfx::PointF());
5239 root->SetAnchorPoint(gfx::PointF()); 5240 root->SetTransformOrigin(gfx::Point3F());
5240 5241
5241 gfx::Size layer_size(50, 50); 5242 gfx::Size layer_size(50, 50);
5242 content_layer->SetBounds(layer_size); 5243 content_layer->SetBounds(layer_size);
5243 content_layer->SetContentBounds(layer_size); 5244 content_layer->SetContentBounds(layer_size);
5244 content_layer->SetPosition(gfx::PointF()); 5245 content_layer->SetPosition(gfx::PointF());
5245 content_layer->SetAnchorPoint(gfx::PointF()); 5246 content_layer->SetTransformOrigin(gfx::Point3F());
5246 content_layer->SetDrawsContent(true); 5247 content_layer->SetDrawsContent(true);
5247 5248
5248 gfx::Size child_size(50, 50); 5249 gfx::Size child_size(50, 50);
5249 content_child_layer->SetBounds(child_size); 5250 content_child_layer->SetBounds(child_size);
5250 content_child_layer->SetContentBounds(child_size); 5251 content_child_layer->SetContentBounds(child_size);
5251 content_child_layer->SetPosition(gfx::Point(50, 0)); 5252 content_child_layer->SetPosition(gfx::Point(50, 0));
5252 content_child_layer->SetAnchorPoint(gfx::PointF()); 5253 content_child_layer->SetTransformOrigin(gfx::Point3F());
5253 content_child_layer->SetDrawsContent(true); 5254 content_child_layer->SetDrawsContent(true);
5254 5255
5255 gfx::Size mask_size(50, 50); 5256 gfx::Size mask_size(50, 50);
5256 mask_layer->SetBounds(mask_size); 5257 mask_layer->SetBounds(mask_size);
5257 mask_layer->SetContentBounds(mask_size); 5258 mask_layer->SetContentBounds(mask_size);
5258 mask_layer->SetPosition(gfx::PointF()); 5259 mask_layer->SetPosition(gfx::PointF());
5259 mask_layer->SetAnchorPoint(gfx::PointF()); 5260 mask_layer->SetTransformOrigin(gfx::Point3F());
5260 mask_layer->SetDrawsContent(true); 5261 mask_layer->SetDrawsContent(true);
5261 5262
5262 float device_scale_factor = 1.f; 5263 float device_scale_factor = 1.f;
5263 host_impl_->SetViewportSize(root_size); 5264 host_impl_->SetViewportSize(root_size);
5264 host_impl_->SetDeviceScaleFactor(device_scale_factor); 5265 host_impl_->SetDeviceScaleFactor(device_scale_factor);
5265 { 5266 {
5266 LayerTreeHostImpl::FrameData frame; 5267 LayerTreeHostImpl::FrameData frame;
5267 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 5268 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
5268 5269
5269 ASSERT_EQ(1u, frame.render_passes.size()); 5270 ASSERT_EQ(1u, frame.render_passes.size());
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
5355 5356
5356 scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer = 5357 scoped_ptr<FakeMaskLayerImpl> scoped_mask_layer =
5357 FakeMaskLayerImpl::Create(host_impl_->active_tree(), 6); 5358 FakeMaskLayerImpl::Create(host_impl_->active_tree(), 6);
5358 FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get(); 5359 FakeMaskLayerImpl* mask_layer = scoped_mask_layer.get();
5359 content_layer->SetMaskLayer(scoped_mask_layer.PassAs<LayerImpl>()); 5360 content_layer->SetMaskLayer(scoped_mask_layer.PassAs<LayerImpl>());
5360 5361
5361 gfx::Size root_size(100, 100); 5362 gfx::Size root_size(100, 100);
5362 root->SetBounds(root_size); 5363 root->SetBounds(root_size);
5363 root->SetContentBounds(root_size); 5364 root->SetContentBounds(root_size);
5364 root->SetPosition(gfx::PointF()); 5365 root->SetPosition(gfx::PointF());
5365 root->SetAnchorPoint(gfx::PointF()); 5366 root->SetTransformOrigin(gfx::Point3F());
5366 5367
5367 gfx::Rect clipping_rect(20, 10, 10, 20); 5368 gfx::Rect clipping_rect(20, 10, 10, 20);
5368 clipping_layer->SetBounds(clipping_rect.size()); 5369 clipping_layer->SetBounds(clipping_rect.size());
5369 clipping_layer->SetContentBounds(clipping_rect.size()); 5370 clipping_layer->SetContentBounds(clipping_rect.size());
5370 clipping_layer->SetPosition(clipping_rect.origin()); 5371 clipping_layer->SetPosition(clipping_rect.origin());
5371 clipping_layer->SetAnchorPoint(gfx::PointF()); 5372 clipping_layer->SetTransformOrigin(gfx::Point3F());
5372 clipping_layer->SetMasksToBounds(true); 5373 clipping_layer->SetMasksToBounds(true);
5373 5374
5374 gfx::Size layer_size(50, 50); 5375 gfx::Size layer_size(50, 50);
5375 content_layer->SetBounds(layer_size); 5376 content_layer->SetBounds(layer_size);
5376 content_layer->SetContentBounds(layer_size); 5377 content_layer->SetContentBounds(layer_size);
5377 content_layer->SetPosition(gfx::Point() - clipping_rect.OffsetFromOrigin()); 5378 content_layer->SetPosition(gfx::Point() - clipping_rect.OffsetFromOrigin());
5378 content_layer->SetAnchorPoint(gfx::PointF()); 5379 content_layer->SetTransformOrigin(gfx::Point3F());
5379 content_layer->SetDrawsContent(true); 5380 content_layer->SetDrawsContent(true);
5380 5381
5381 gfx::Size child_size(50, 50); 5382 gfx::Size child_size(50, 50);
5382 content_child_layer->SetBounds(child_size); 5383 content_child_layer->SetBounds(child_size);
5383 content_child_layer->SetContentBounds(child_size); 5384 content_child_layer->SetContentBounds(child_size);
5384 content_child_layer->SetPosition(gfx::Point(50, 0)); 5385 content_child_layer->SetPosition(gfx::Point(50, 0));
5385 content_child_layer->SetAnchorPoint(gfx::PointF()); 5386 content_child_layer->SetTransformOrigin(gfx::Point3F());
5386 content_child_layer->SetDrawsContent(true); 5387 content_child_layer->SetDrawsContent(true);
5387 5388
5388 gfx::Size mask_size(100, 100); 5389 gfx::Size mask_size(100, 100);
5389 mask_layer->SetBounds(mask_size); 5390 mask_layer->SetBounds(mask_size);
5390 mask_layer->SetContentBounds(mask_size); 5391 mask_layer->SetContentBounds(mask_size);
5391 mask_layer->SetPosition(gfx::PointF()); 5392 mask_layer->SetPosition(gfx::PointF());
5392 mask_layer->SetAnchorPoint(gfx::PointF()); 5393 mask_layer->SetTransformOrigin(gfx::Point3F());
5393 mask_layer->SetDrawsContent(true); 5394 mask_layer->SetDrawsContent(true);
5394 5395
5395 float device_scale_factor = 1.f; 5396 float device_scale_factor = 1.f;
5396 host_impl_->SetViewportSize(root_size); 5397 host_impl_->SetViewportSize(root_size);
5397 host_impl_->SetDeviceScaleFactor(device_scale_factor); 5398 host_impl_->SetDeviceScaleFactor(device_scale_factor);
5398 { 5399 {
5399 LayerTreeHostImpl::FrameData frame; 5400 LayerTreeHostImpl::FrameData frame;
5400 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); 5401 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame));
5401 5402
5402 ASSERT_EQ(1u, frame.render_passes.size()); 5403 ASSERT_EQ(1u, frame.render_passes.size());
(...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after
6091 LayerImpl* page_scale_layer = 6092 LayerImpl* page_scale_layer =
6092 host_impl_->active_tree()->LayerById(page_scale_layer_id); 6093 host_impl_->active_tree()->LayerById(page_scale_layer_id);
6093 6094
6094 int occluder_layer_id = 6; 6095 int occluder_layer_id = 6;
6095 scoped_ptr<LayerImpl> occluder_layer = 6096 scoped_ptr<LayerImpl> occluder_layer =
6096 LayerImpl::Create(host_impl_->active_tree(), occluder_layer_id); 6097 LayerImpl::Create(host_impl_->active_tree(), occluder_layer_id);
6097 occluder_layer->SetDrawsContent(true); 6098 occluder_layer->SetDrawsContent(true);
6098 occluder_layer->SetBounds(content_size); 6099 occluder_layer->SetBounds(content_size);
6099 occluder_layer->SetContentBounds(content_size); 6100 occluder_layer->SetContentBounds(content_size);
6100 occluder_layer->SetPosition(gfx::PointF()); 6101 occluder_layer->SetPosition(gfx::PointF());
6101 occluder_layer->SetAnchorPoint(gfx::PointF()); 6102 occluder_layer->SetTransformOrigin(gfx::Point3F());
6102 6103
6103 // The parent of the occluder is *above* the scroller. 6104 // The parent of the occluder is *above* the scroller.
6104 page_scale_layer->AddChild(occluder_layer.Pass()); 6105 page_scale_layer->AddChild(occluder_layer.Pass());
6105 6106
6106 DrawFrame(); 6107 DrawFrame();
6107 6108
6108 EXPECT_EQ(InputHandler::ScrollUnknown, 6109 EXPECT_EQ(InputHandler::ScrollUnknown,
6109 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel)); 6110 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel));
6110 } 6111 }
6111 6112
6112 TEST_F(LayerTreeHostImplTest, ScrollUnknownScrollAncestorMismatch) { 6113 TEST_F(LayerTreeHostImplTest, ScrollUnknownScrollAncestorMismatch) {
6113 // If we ray cast a scroller this is on the first layer's ancestor chain, but 6114 // If we ray cast a scroller this is on the first layer's ancestor chain, but
6114 // is not the first scroller we encounter when walking up from the layer, we 6115 // is not the first scroller we encounter when walking up from the layer, we
6115 // should also return ScrollUnknown. 6116 // should also return ScrollUnknown.
6116 gfx::Size content_size(100, 100); 6117 gfx::Size content_size(100, 100);
6117 SetupScrollAndContentsLayers(content_size); 6118 SetupScrollAndContentsLayers(content_size);
6118 6119
6119 int scroll_layer_id = 2; 6120 int scroll_layer_id = 2;
6120 LayerImpl* scroll_layer = 6121 LayerImpl* scroll_layer =
6121 host_impl_->active_tree()->LayerById(scroll_layer_id); 6122 host_impl_->active_tree()->LayerById(scroll_layer_id);
6122 scroll_layer->SetDrawsContent(true); 6123 scroll_layer->SetDrawsContent(true);
6123 6124
6124 int occluder_layer_id = 6; 6125 int occluder_layer_id = 6;
6125 scoped_ptr<LayerImpl> occluder_layer = 6126 scoped_ptr<LayerImpl> occluder_layer =
6126 LayerImpl::Create(host_impl_->active_tree(), occluder_layer_id); 6127 LayerImpl::Create(host_impl_->active_tree(), occluder_layer_id);
6127 occluder_layer->SetDrawsContent(true); 6128 occluder_layer->SetDrawsContent(true);
6128 occluder_layer->SetBounds(content_size); 6129 occluder_layer->SetBounds(content_size);
6129 occluder_layer->SetContentBounds(content_size); 6130 occluder_layer->SetContentBounds(content_size);
6130 occluder_layer->SetPosition(gfx::PointF(-10.f, -10.f)); 6131 occluder_layer->SetPosition(gfx::PointF(-10.f, -10.f));
6131 occluder_layer->SetAnchorPoint(gfx::PointF()); 6132 occluder_layer->SetTransformOrigin(gfx::Point3F());
6132 6133
6133 int child_scroll_clip_layer_id = 7; 6134 int child_scroll_clip_layer_id = 7;
6134 scoped_ptr<LayerImpl> child_scroll_clip = 6135 scoped_ptr<LayerImpl> child_scroll_clip =
6135 LayerImpl::Create(host_impl_->active_tree(), child_scroll_clip_layer_id); 6136 LayerImpl::Create(host_impl_->active_tree(), child_scroll_clip_layer_id);
6136 6137
6137 int child_scroll_layer_id = 8; 6138 int child_scroll_layer_id = 8;
6138 scoped_ptr<LayerImpl> child_scroll = CreateScrollableLayer( 6139 scoped_ptr<LayerImpl> child_scroll = CreateScrollableLayer(
6139 child_scroll_layer_id, content_size, child_scroll_clip.get()); 6140 child_scroll_layer_id, content_size, child_scroll_clip.get());
6140 6141
6141 child_scroll->SetPosition(gfx::PointF(10.f, 10.f)); 6142 child_scroll->SetPosition(gfx::PointF(10.f, 10.f));
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
6195 host_impl_->active_tree()->LayerById(scroll_layer_id); 6196 host_impl_->active_tree()->LayerById(scroll_layer_id);
6196 6197
6197 int scroll_child_id = 6; 6198 int scroll_child_id = 6;
6198 scoped_ptr<LayerImpl> scroll_child = 6199 scoped_ptr<LayerImpl> scroll_child =
6199 LayerImpl::Create(host_impl_->active_tree(), scroll_child_id); 6200 LayerImpl::Create(host_impl_->active_tree(), scroll_child_id);
6200 scroll_child->SetDrawsContent(true); 6201 scroll_child->SetDrawsContent(true);
6201 scroll_child->SetBounds(content_size); 6202 scroll_child->SetBounds(content_size);
6202 scroll_child->SetContentBounds(content_size); 6203 scroll_child->SetContentBounds(content_size);
6203 // Move the scroll child so it's not hit by our test point. 6204 // Move the scroll child so it's not hit by our test point.
6204 scroll_child->SetPosition(gfx::PointF(10.f, 10.f)); 6205 scroll_child->SetPosition(gfx::PointF(10.f, 10.f));
6205 scroll_child->SetAnchorPoint(gfx::PointF()); 6206 scroll_child->SetTransformOrigin(gfx::Point3F());
6206 6207
6207 int invisible_scroll_layer_id = 7; 6208 int invisible_scroll_layer_id = 7;
6208 scoped_ptr<LayerImpl> invisible_scroll = 6209 scoped_ptr<LayerImpl> invisible_scroll =
6209 CreateScrollableLayer(invisible_scroll_layer_id, content_size, root); 6210 CreateScrollableLayer(invisible_scroll_layer_id, content_size, root);
6210 invisible_scroll->SetDrawsContent(false); 6211 invisible_scroll->SetDrawsContent(false);
6211 6212
6212 int container_id = 8; 6213 int container_id = 8;
6213 scoped_ptr<LayerImpl> container = 6214 scoped_ptr<LayerImpl> container =
6214 LayerImpl::Create(host_impl_->active_tree(), container_id); 6215 LayerImpl::Create(host_impl_->active_tree(), container_id);
6215 6216
(...skipping 20 matching lines...) Expand all
6236 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel)); 6237 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Wheel));
6237 6238
6238 EXPECT_EQ(7, host_impl_->CurrentlyScrollingLayer()->id()); 6239 EXPECT_EQ(7, host_impl_->CurrentlyScrollingLayer()->id());
6239 } 6240 }
6240 6241
6241 // Make sure LatencyInfo carried by LatencyInfoSwapPromise are passed 6242 // Make sure LatencyInfo carried by LatencyInfoSwapPromise are passed
6242 // to CompositorFrameMetadata after SwapBuffers(); 6243 // to CompositorFrameMetadata after SwapBuffers();
6243 TEST_F(LayerTreeHostImplTest, LatencyInfoPassedToCompositorFrameMetadata) { 6244 TEST_F(LayerTreeHostImplTest, LatencyInfoPassedToCompositorFrameMetadata) {
6244 scoped_ptr<SolidColorLayerImpl> root = 6245 scoped_ptr<SolidColorLayerImpl> root =
6245 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); 6246 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1);
6246 root->SetAnchorPoint(gfx::PointF()); 6247 root->SetTransformOrigin(gfx::Point3F());
6247 root->SetPosition(gfx::PointF()); 6248 root->SetPosition(gfx::PointF());
6248 root->SetBounds(gfx::Size(10, 10)); 6249 root->SetBounds(gfx::Size(10, 10));
6249 root->SetContentBounds(gfx::Size(10, 10)); 6250 root->SetContentBounds(gfx::Size(10, 10));
6250 root->SetDrawsContent(true); 6251 root->SetDrawsContent(true);
6251 6252
6252 host_impl_->active_tree()->SetRootLayer(root.PassAs<LayerImpl>()); 6253 host_impl_->active_tree()->SetRootLayer(root.PassAs<LayerImpl>());
6253 6254
6254 FakeOutputSurface* fake_output_surface = 6255 FakeOutputSurface* fake_output_surface =
6255 static_cast<FakeOutputSurface*>(host_impl_->output_surface()); 6256 static_cast<FakeOutputSurface*>(host_impl_->output_surface());
6256 6257
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
6453 LayerImpl::Create(layer_tree_impl, kInnerViewportClipLayerId); 6454 LayerImpl::Create(layer_tree_impl, kInnerViewportClipLayerId);
6454 inner_clip->SetBounds(inner_viewport); 6455 inner_clip->SetBounds(inner_viewport);
6455 6456
6456 scoped_ptr<LayerImpl> page_scale = 6457 scoped_ptr<LayerImpl> page_scale =
6457 LayerImpl::Create(layer_tree_impl, kPageScaleLayerId); 6458 LayerImpl::Create(layer_tree_impl, kPageScaleLayerId);
6458 6459
6459 inner_scroll->SetScrollClipLayer(inner_clip->id()); 6460 inner_scroll->SetScrollClipLayer(inner_clip->id());
6460 inner_scroll->SetBounds(outer_viewport); 6461 inner_scroll->SetBounds(outer_viewport);
6461 inner_scroll->SetContentBounds(outer_viewport); 6462 inner_scroll->SetContentBounds(outer_viewport);
6462 inner_scroll->SetPosition(gfx::PointF()); 6463 inner_scroll->SetPosition(gfx::PointF());
6463 inner_scroll->SetAnchorPoint(gfx::PointF()); 6464 inner_scroll->SetTransformOrigin(gfx::Point3F());
6464 6465
6465 scoped_ptr<LayerImpl> outer_clip = 6466 scoped_ptr<LayerImpl> outer_clip =
6466 LayerImpl::Create(layer_tree_impl, kOuterViewportClipLayerId); 6467 LayerImpl::Create(layer_tree_impl, kOuterViewportClipLayerId);
6467 outer_clip->SetBounds(outer_viewport); 6468 outer_clip->SetBounds(outer_viewport);
6468 outer_clip->SetIsContainerForFixedPositionLayers(true); 6469 outer_clip->SetIsContainerForFixedPositionLayers(true);
6469 6470
6470 scoped_ptr<LayerImpl> outer_scroll = 6471 scoped_ptr<LayerImpl> outer_scroll =
6471 LayerImpl::Create(layer_tree_impl, kOuterViewportScrollLayerId); 6472 LayerImpl::Create(layer_tree_impl, kOuterViewportScrollLayerId);
6472 outer_scroll->SetScrollClipLayer(outer_clip->id()); 6473 outer_scroll->SetScrollClipLayer(outer_clip->id());
6473 outer_scroll->SetScrollOffset(gfx::Vector2d()); 6474 outer_scroll->SetScrollOffset(gfx::Vector2d());
6474 outer_scroll->SetBounds(content_size); 6475 outer_scroll->SetBounds(content_size);
6475 outer_scroll->SetContentBounds(content_size); 6476 outer_scroll->SetContentBounds(content_size);
6476 outer_scroll->SetPosition(gfx::PointF()); 6477 outer_scroll->SetPosition(gfx::PointF());
6477 outer_scroll->SetAnchorPoint(gfx::PointF()); 6478 outer_scroll->SetTransformOrigin(gfx::Point3F());
6478 6479
6479 scoped_ptr<LayerImpl> contents = 6480 scoped_ptr<LayerImpl> contents =
6480 LayerImpl::Create(layer_tree_impl, 8); 6481 LayerImpl::Create(layer_tree_impl, 8);
6481 contents->SetDrawsContent(true); 6482 contents->SetDrawsContent(true);
6482 contents->SetBounds(content_size); 6483 contents->SetBounds(content_size);
6483 contents->SetContentBounds(content_size); 6484 contents->SetContentBounds(content_size);
6484 contents->SetPosition(gfx::PointF()); 6485 contents->SetPosition(gfx::PointF());
6485 contents->SetAnchorPoint(gfx::PointF()); 6486 contents->SetTransformOrigin(gfx::Point3F());
6486 6487
6487 outer_scroll->AddChild(contents.Pass()); 6488 outer_scroll->AddChild(contents.Pass());
6488 outer_clip->AddChild(outer_scroll.Pass()); 6489 outer_clip->AddChild(outer_scroll.Pass());
6489 inner_scroll->AddChild(outer_clip.Pass()); 6490 inner_scroll->AddChild(outer_clip.Pass());
6490 page_scale->AddChild(inner_scroll.Pass()); 6491 page_scale->AddChild(inner_scroll.Pass());
6491 inner_clip->AddChild(page_scale.Pass()); 6492 inner_clip->AddChild(page_scale.Pass());
6492 6493
6493 layer_tree_impl->SetRootLayer(inner_clip.Pass()); 6494 layer_tree_impl->SetRootLayer(inner_clip.Pass());
6494 layer_tree_impl->SetViewportLayersFromIds(kPageScaleLayerId, 6495 layer_tree_impl->SetViewportLayersFromIds(kPageScaleLayerId,
6495 kInnerViewportScrollLayerId, kOuterViewportScrollLayerId); 6496 kInnerViewportScrollLayerId, kOuterViewportScrollLayerId);
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
6616 FakePictureLayerImpl* active_mask_content = 6617 FakePictureLayerImpl* active_mask_content =
6617 static_cast<FakePictureLayerImpl*>( 6618 static_cast<FakePictureLayerImpl*>(
6618 host_impl_->active_tree()->root_layer()->children()[0]->mask_layer()); 6619 host_impl_->active_tree()->root_layer()->children()[0]->mask_layer());
6619 gfx::Rect r2 = active_mask_content->visible_rect_for_tile_priority(); 6620 gfx::Rect r2 = active_mask_content->visible_rect_for_tile_priority();
6620 6621
6621 ASSERT_TRUE(!r2.IsEmpty()); 6622 ASSERT_TRUE(!r2.IsEmpty());
6622 } 6623 }
6623 6624
6624 } // namespace 6625 } // namespace
6625 } // namespace cc 6626 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698