OLD | NEW |
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 <algorithm> | 7 #include <algorithm> |
8 #include <cmath> | 8 #include <cmath> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
292 LayerImpl::Create(host_impl_->active_tree(), id); | 292 LayerImpl::Create(host_impl_->active_tree(), id); |
293 layer->SetScrollClipLayer(clip_layer->id()); | 293 layer->SetScrollClipLayer(clip_layer->id()); |
294 layer->SetDrawsContent(true); | 294 layer->SetDrawsContent(true); |
295 layer->SetBounds(size); | 295 layer->SetBounds(size); |
296 layer->SetContentBounds(size); | 296 layer->SetContentBounds(size); |
297 clip_layer->SetBounds(gfx::Size(size.width() / 2, size.height() / 2)); | 297 clip_layer->SetBounds(gfx::Size(size.width() / 2, size.height() / 2)); |
298 return layer.Pass(); | 298 return layer.Pass(); |
299 } | 299 } |
300 | 300 |
301 void DrawFrame() { | 301 void DrawFrame() { |
302 LayerTreeHostImpl::FrameData frame; | 302 FrameData frame; |
303 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 303 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
304 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 304 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
305 host_impl_->DidDrawAllLayers(frame); | 305 host_impl_->DidDrawAllLayers(frame); |
306 } | 306 } |
307 | 307 |
308 void pinch_zoom_pan_viewport_forces_commit_redraw(float device_scale_factor); | 308 void pinch_zoom_pan_viewport_forces_commit_redraw(float device_scale_factor); |
309 void pinch_zoom_pan_viewport_test(float device_scale_factor); | 309 void pinch_zoom_pan_viewport_test(float device_scale_factor); |
310 void pinch_zoom_pan_viewport_and_scroll_test(float device_scale_factor); | 310 void pinch_zoom_pan_viewport_and_scroll_test(float device_scale_factor); |
311 void pinch_zoom_pan_viewport_and_scroll_boundary_test( | 311 void pinch_zoom_pan_viewport_and_scroll_boundary_test( |
312 float device_scale_factor); | 312 float device_scale_factor); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
378 } | 378 } |
379 | 379 |
380 void SetupMouseMoveAtWithDeviceScale(float device_scale_factor); | 380 void SetupMouseMoveAtWithDeviceScale(float device_scale_factor); |
381 | 381 |
382 protected: | 382 protected: |
383 virtual scoped_ptr<OutputSurface> CreateOutputSurface() { | 383 virtual scoped_ptr<OutputSurface> CreateOutputSurface() { |
384 return FakeOutputSurface::Create3d(); | 384 return FakeOutputSurface::Create3d(); |
385 } | 385 } |
386 | 386 |
387 void DrawOneFrame() { | 387 void DrawOneFrame() { |
388 LayerTreeHostImpl::FrameData frame_data; | 388 FrameData frame_data; |
389 host_impl_->PrepareToDraw(&frame_data); | 389 host_impl_->PrepareToDraw(&frame_data); |
390 host_impl_->DidDrawAllLayers(frame_data); | 390 host_impl_->DidDrawAllLayers(frame_data); |
391 } | 391 } |
392 | 392 |
393 FakeProxy proxy_; | 393 FakeProxy proxy_; |
394 DebugScopedSetImplThread always_impl_thread_; | 394 DebugScopedSetImplThread always_impl_thread_; |
395 DebugScopedSetMainThreadBlocked always_main_thread_blocked_; | 395 DebugScopedSetMainThreadBlocked always_main_thread_blocked_; |
396 | 396 |
397 scoped_ptr<TestSharedBitmapManager> shared_bitmap_manager_; | 397 scoped_ptr<TestSharedBitmapManager> shared_bitmap_manager_; |
398 scoped_ptr<TestGpuMemoryBufferManager> gpu_memory_buffer_manager_; | 398 scoped_ptr<TestGpuMemoryBufferManager> gpu_memory_buffer_manager_; |
(...skipping 1571 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1970 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 1970 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); |
1971 DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( | 1971 DidDrawCheckLayer* root = static_cast<DidDrawCheckLayer*>( |
1972 host_impl_->active_tree()->root_layer()); | 1972 host_impl_->active_tree()->root_layer()); |
1973 | 1973 |
1974 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); | 1974 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); |
1975 root->SetHasRenderSurface(true); | 1975 root->SetHasRenderSurface(true); |
1976 DidDrawCheckLayer* layer = | 1976 DidDrawCheckLayer* layer = |
1977 static_cast<DidDrawCheckLayer*>(root->children()[0]); | 1977 static_cast<DidDrawCheckLayer*>(root->children()[0]); |
1978 | 1978 |
1979 { | 1979 { |
1980 LayerTreeHostImpl::FrameData frame; | 1980 FrameData frame; |
1981 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 1981 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
1982 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 1982 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
1983 host_impl_->DidDrawAllLayers(frame); | 1983 host_impl_->DidDrawAllLayers(frame); |
1984 | 1984 |
1985 EXPECT_TRUE(layer->will_draw_called()); | 1985 EXPECT_TRUE(layer->will_draw_called()); |
1986 EXPECT_TRUE(layer->append_quads_called()); | 1986 EXPECT_TRUE(layer->append_quads_called()); |
1987 EXPECT_TRUE(layer->did_draw_called()); | 1987 EXPECT_TRUE(layer->did_draw_called()); |
1988 } | 1988 } |
1989 | 1989 |
1990 host_impl_->SetViewportDamage(gfx::Rect(10, 10)); | 1990 host_impl_->SetViewportDamage(gfx::Rect(10, 10)); |
1991 | 1991 |
1992 { | 1992 { |
1993 LayerTreeHostImpl::FrameData frame; | 1993 FrameData frame; |
1994 | 1994 |
1995 layer->set_will_draw_returns_false(); | 1995 layer->set_will_draw_returns_false(); |
1996 layer->ClearDidDrawCheck(); | 1996 layer->ClearDidDrawCheck(); |
1997 | 1997 |
1998 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 1998 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
1999 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 1999 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
2000 host_impl_->DidDrawAllLayers(frame); | 2000 host_impl_->DidDrawAllLayers(frame); |
2001 | 2001 |
2002 EXPECT_TRUE(layer->will_draw_called()); | 2002 EXPECT_TRUE(layer->will_draw_called()); |
2003 EXPECT_FALSE(layer->append_quads_called()); | 2003 EXPECT_FALSE(layer->append_quads_called()); |
(...skipping 11 matching lines...) Expand all Loading... |
2015 root->SetMasksToBounds(true); | 2015 root->SetMasksToBounds(true); |
2016 root->SetHasRenderSurface(true); | 2016 root->SetHasRenderSurface(true); |
2017 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); | 2017 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 2)); |
2018 DidDrawCheckLayer* layer = | 2018 DidDrawCheckLayer* layer = |
2019 static_cast<DidDrawCheckLayer*>(root->children()[0]); | 2019 static_cast<DidDrawCheckLayer*>(root->children()[0]); |
2020 // Ensure visible_content_rect for layer is empty. | 2020 // Ensure visible_content_rect for layer is empty. |
2021 layer->SetPosition(gfx::PointF(100.f, 100.f)); | 2021 layer->SetPosition(gfx::PointF(100.f, 100.f)); |
2022 layer->SetBounds(gfx::Size(10, 10)); | 2022 layer->SetBounds(gfx::Size(10, 10)); |
2023 layer->SetContentBounds(gfx::Size(10, 10)); | 2023 layer->SetContentBounds(gfx::Size(10, 10)); |
2024 | 2024 |
2025 LayerTreeHostImpl::FrameData frame; | 2025 FrameData frame; |
2026 | 2026 |
2027 EXPECT_FALSE(layer->will_draw_called()); | 2027 EXPECT_FALSE(layer->will_draw_called()); |
2028 EXPECT_FALSE(layer->did_draw_called()); | 2028 EXPECT_FALSE(layer->did_draw_called()); |
2029 | 2029 |
2030 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 2030 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
2031 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 2031 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
2032 host_impl_->DidDrawAllLayers(frame); | 2032 host_impl_->DidDrawAllLayers(frame); |
2033 | 2033 |
2034 EXPECT_FALSE(layer->will_draw_called()); | 2034 EXPECT_FALSE(layer->will_draw_called()); |
2035 EXPECT_FALSE(layer->did_draw_called()); | 2035 EXPECT_FALSE(layer->did_draw_called()); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2068 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 3)); | 2068 root->AddChild(DidDrawCheckLayer::Create(host_impl_->active_tree(), 3)); |
2069 root->SetHasRenderSurface(true); | 2069 root->SetHasRenderSurface(true); |
2070 DidDrawCheckLayer* top_layer = | 2070 DidDrawCheckLayer* top_layer = |
2071 static_cast<DidDrawCheckLayer*>(root->children()[1]); | 2071 static_cast<DidDrawCheckLayer*>(root->children()[1]); |
2072 // This layer covers the occluded_layer above. Make this layer large so it can | 2072 // This layer covers the occluded_layer above. Make this layer large so it can |
2073 // occlude. | 2073 // occlude. |
2074 top_layer->SetBounds(big_size); | 2074 top_layer->SetBounds(big_size); |
2075 top_layer->SetContentBounds(big_size); | 2075 top_layer->SetContentBounds(big_size); |
2076 top_layer->SetContentsOpaque(true); | 2076 top_layer->SetContentsOpaque(true); |
2077 | 2077 |
2078 LayerTreeHostImpl::FrameData frame; | 2078 FrameData frame; |
2079 | 2079 |
2080 EXPECT_FALSE(occluded_layer->will_draw_called()); | 2080 EXPECT_FALSE(occluded_layer->will_draw_called()); |
2081 EXPECT_FALSE(occluded_layer->did_draw_called()); | 2081 EXPECT_FALSE(occluded_layer->did_draw_called()); |
2082 EXPECT_FALSE(top_layer->will_draw_called()); | 2082 EXPECT_FALSE(top_layer->will_draw_called()); |
2083 EXPECT_FALSE(top_layer->did_draw_called()); | 2083 EXPECT_FALSE(top_layer->did_draw_called()); |
2084 | 2084 |
2085 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 2085 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
2086 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 2086 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
2087 host_impl_->DidDrawAllLayers(frame); | 2087 host_impl_->DidDrawAllLayers(frame); |
2088 | 2088 |
(...skipping 18 matching lines...) Expand all Loading... |
2107 DidDrawCheckLayer* layer2 = | 2107 DidDrawCheckLayer* layer2 = |
2108 static_cast<DidDrawCheckLayer*>(layer1->children()[0]); | 2108 static_cast<DidDrawCheckLayer*>(layer1->children()[0]); |
2109 | 2109 |
2110 layer1->SetHasRenderSurface(true); | 2110 layer1->SetHasRenderSurface(true); |
2111 layer1->SetShouldFlattenTransform(true); | 2111 layer1->SetShouldFlattenTransform(true); |
2112 | 2112 |
2113 EXPECT_FALSE(root->did_draw_called()); | 2113 EXPECT_FALSE(root->did_draw_called()); |
2114 EXPECT_FALSE(layer1->did_draw_called()); | 2114 EXPECT_FALSE(layer1->did_draw_called()); |
2115 EXPECT_FALSE(layer2->did_draw_called()); | 2115 EXPECT_FALSE(layer2->did_draw_called()); |
2116 | 2116 |
2117 LayerTreeHostImpl::FrameData frame; | 2117 FrameData frame; |
2118 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( | 2118 FakeLayerTreeHostImpl::RecursiveUpdateNumChildren( |
2119 host_impl_->active_tree()->root_layer()); | 2119 host_impl_->active_tree()->root_layer()); |
2120 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 2120 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
2121 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 2121 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
2122 host_impl_->DidDrawAllLayers(frame); | 2122 host_impl_->DidDrawAllLayers(frame); |
2123 | 2123 |
2124 EXPECT_TRUE(root->did_draw_called()); | 2124 EXPECT_TRUE(root->did_draw_called()); |
2125 EXPECT_TRUE(layer1->did_draw_called()); | 2125 EXPECT_TRUE(layer1->did_draw_called()); |
2126 EXPECT_TRUE(layer2->did_draw_called()); | 2126 EXPECT_TRUE(layer2->did_draw_called()); |
2127 | 2127 |
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2292 cases.back().high_res_required = true; | 2292 cases.back().high_res_required = true; |
2293 cases.back().layer_between.has_missing_tile = true; | 2293 cases.back().layer_between.has_missing_tile = true; |
2294 cases.back().layer_between.has_copy_request = true; | 2294 cases.back().layer_between.has_copy_request = true; |
2295 | 2295 |
2296 host_impl_->active_tree()->SetRootLayer( | 2296 host_impl_->active_tree()->SetRootLayer( |
2297 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 2297 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); |
2298 DidDrawCheckLayer* root = | 2298 DidDrawCheckLayer* root = |
2299 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); | 2299 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); |
2300 root->SetHasRenderSurface(true); | 2300 root->SetHasRenderSurface(true); |
2301 | 2301 |
2302 LayerTreeHostImpl::FrameData frame; | 2302 FrameData frame; |
2303 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 2303 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
2304 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 2304 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
2305 host_impl_->DidDrawAllLayers(frame); | 2305 host_impl_->DidDrawAllLayers(frame); |
2306 host_impl_->SwapBuffers(frame); | 2306 host_impl_->SwapBuffers(frame); |
2307 | 2307 |
2308 for (size_t i = 0; i < cases.size(); ++i) { | 2308 for (size_t i = 0; i < cases.size(); ++i) { |
2309 const auto& testcase = cases[i]; | 2309 const auto& testcase = cases[i]; |
2310 std::vector<LayerImpl*> to_remove; | 2310 std::vector<LayerImpl*> to_remove; |
2311 for (auto* child : root->children()) | 2311 for (auto* child : root->children()) |
2312 to_remove.push_back(child); | 2312 to_remove.push_back(child); |
(...skipping 27 matching lines...) Expand all Loading... |
2340 testcase.layer_after.has_incomplete_tile, | 2340 testcase.layer_after.has_incomplete_tile, |
2341 testcase.layer_after.is_animating, host_impl_->resource_provider())); | 2341 testcase.layer_after.is_animating, host_impl_->resource_provider())); |
2342 DidDrawCheckLayer* after = | 2342 DidDrawCheckLayer* after = |
2343 static_cast<DidDrawCheckLayer*>(root->children().back()); | 2343 static_cast<DidDrawCheckLayer*>(root->children().back()); |
2344 if (testcase.layer_after.has_copy_request) | 2344 if (testcase.layer_after.has_copy_request) |
2345 after->AddCopyRequest(); | 2345 after->AddCopyRequest(); |
2346 | 2346 |
2347 if (testcase.high_res_required) | 2347 if (testcase.high_res_required) |
2348 host_impl_->SetRequiresHighResToDraw(); | 2348 host_impl_->SetRequiresHighResToDraw(); |
2349 | 2349 |
2350 LayerTreeHostImpl::FrameData frame; | 2350 FrameData frame; |
2351 EXPECT_EQ(testcase.expected_result, host_impl_->PrepareToDraw(&frame)); | 2351 EXPECT_EQ(testcase.expected_result, host_impl_->PrepareToDraw(&frame)); |
2352 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 2352 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
2353 host_impl_->DidDrawAllLayers(frame); | 2353 host_impl_->DidDrawAllLayers(frame); |
2354 host_impl_->SwapBuffers(frame); | 2354 host_impl_->SwapBuffers(frame); |
2355 } | 2355 } |
2356 } | 2356 } |
2357 | 2357 |
2358 TEST_F(LayerTreeHostImplTest, | 2358 TEST_F(LayerTreeHostImplTest, |
2359 PrepareToDrawWhenDrawAndSwapFullViewportEveryFrame) { | 2359 PrepareToDrawWhenDrawAndSwapFullViewportEveryFrame) { |
2360 CreateHostImpl(DefaultSettings(), | 2360 CreateHostImpl(DefaultSettings(), |
(...skipping 18 matching lines...) Expand all Loading... |
2379 cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); | 2379 cases.push_back(PrepareToDrawSuccessTestCase(DRAW_SUCCESS)); |
2380 cases.back().high_res_required = true; | 2380 cases.back().high_res_required = true; |
2381 cases.back().layer_between.has_missing_tile = true; | 2381 cases.back().layer_between.has_missing_tile = true; |
2382 | 2382 |
2383 host_impl_->active_tree()->SetRootLayer( | 2383 host_impl_->active_tree()->SetRootLayer( |
2384 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); | 2384 DidDrawCheckLayer::Create(host_impl_->active_tree(), 1)); |
2385 DidDrawCheckLayer* root = | 2385 DidDrawCheckLayer* root = |
2386 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); | 2386 static_cast<DidDrawCheckLayer*>(host_impl_->active_tree()->root_layer()); |
2387 root->SetHasRenderSurface(true); | 2387 root->SetHasRenderSurface(true); |
2388 | 2388 |
2389 LayerTreeHostImpl::FrameData frame; | 2389 FrameData frame; |
2390 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 2390 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
2391 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 2391 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
2392 host_impl_->DidDrawAllLayers(frame); | 2392 host_impl_->DidDrawAllLayers(frame); |
2393 host_impl_->SwapBuffers(frame); | 2393 host_impl_->SwapBuffers(frame); |
2394 | 2394 |
2395 for (size_t i = 0; i < cases.size(); ++i) { | 2395 for (size_t i = 0; i < cases.size(); ++i) { |
2396 const auto& testcase = cases[i]; | 2396 const auto& testcase = cases[i]; |
2397 std::vector<LayerImpl*> to_remove; | 2397 std::vector<LayerImpl*> to_remove; |
2398 for (auto* child : root->children()) | 2398 for (auto* child : root->children()) |
2399 to_remove.push_back(child); | 2399 to_remove.push_back(child); |
(...skipping 27 matching lines...) Expand all Loading... |
2427 testcase.layer_after.has_incomplete_tile, | 2427 testcase.layer_after.has_incomplete_tile, |
2428 testcase.layer_after.is_animating, host_impl_->resource_provider())); | 2428 testcase.layer_after.is_animating, host_impl_->resource_provider())); |
2429 DidDrawCheckLayer* after = | 2429 DidDrawCheckLayer* after = |
2430 static_cast<DidDrawCheckLayer*>(root->children().back()); | 2430 static_cast<DidDrawCheckLayer*>(root->children().back()); |
2431 if (testcase.layer_after.has_copy_request) | 2431 if (testcase.layer_after.has_copy_request) |
2432 after->AddCopyRequest(); | 2432 after->AddCopyRequest(); |
2433 | 2433 |
2434 if (testcase.high_res_required) | 2434 if (testcase.high_res_required) |
2435 host_impl_->SetRequiresHighResToDraw(); | 2435 host_impl_->SetRequiresHighResToDraw(); |
2436 | 2436 |
2437 LayerTreeHostImpl::FrameData frame; | 2437 FrameData frame; |
2438 EXPECT_EQ(testcase.expected_result, host_impl_->PrepareToDraw(&frame)); | 2438 EXPECT_EQ(testcase.expected_result, host_impl_->PrepareToDraw(&frame)); |
2439 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 2439 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
2440 host_impl_->DidDrawAllLayers(frame); | 2440 host_impl_->DidDrawAllLayers(frame); |
2441 host_impl_->SwapBuffers(frame); | 2441 host_impl_->SwapBuffers(frame); |
2442 } | 2442 } |
2443 } | 2443 } |
2444 | 2444 |
2445 TEST_F(LayerTreeHostImplTest, ScrollRootIgnored) { | 2445 TEST_F(LayerTreeHostImplTest, ScrollRootIgnored) { |
2446 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); | 2446 scoped_ptr<LayerImpl> root = LayerImpl::Create(host_impl_->active_tree(), 1); |
2447 root->SetScrollClipLayer(Layer::INVALID_ID); | 2447 root->SetScrollClipLayer(Layer::INVALID_ID); |
(...skipping 940 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3388 EXPECT_EQ(1.f, root->contents_scale_y()); | 3388 EXPECT_EQ(1.f, root->contents_scale_y()); |
3389 EXPECT_EQ(1.f, scroll->contents_scale_x()); | 3389 EXPECT_EQ(1.f, scroll->contents_scale_x()); |
3390 EXPECT_EQ(1.f, scroll->contents_scale_y()); | 3390 EXPECT_EQ(1.f, scroll->contents_scale_y()); |
3391 EXPECT_EQ(1.f, child->contents_scale_x()); | 3391 EXPECT_EQ(1.f, child->contents_scale_x()); |
3392 EXPECT_EQ(1.f, child->contents_scale_y()); | 3392 EXPECT_EQ(1.f, child->contents_scale_y()); |
3393 EXPECT_EQ(1.f, grand_child->contents_scale_x()); | 3393 EXPECT_EQ(1.f, grand_child->contents_scale_x()); |
3394 EXPECT_EQ(1.f, grand_child->contents_scale_y()); | 3394 EXPECT_EQ(1.f, grand_child->contents_scale_y()); |
3395 | 3395 |
3396 // Make sure all the layers are drawn with the page scale delta applied, i.e., | 3396 // Make sure all the layers are drawn with the page scale delta applied, i.e., |
3397 // the page scale delta on the root layer is applied hierarchically. | 3397 // the page scale delta on the root layer is applied hierarchically. |
3398 LayerTreeHostImpl::FrameData frame; | 3398 FrameData frame; |
3399 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 3399 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
3400 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 3400 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
3401 host_impl_->DidDrawAllLayers(frame); | 3401 host_impl_->DidDrawAllLayers(frame); |
3402 | 3402 |
3403 EXPECT_EQ(1.f, root->draw_transform().matrix().getDouble(0, 0)); | 3403 EXPECT_EQ(1.f, root->draw_transform().matrix().getDouble(0, 0)); |
3404 EXPECT_EQ(1.f, root->draw_transform().matrix().getDouble(1, 1)); | 3404 EXPECT_EQ(1.f, root->draw_transform().matrix().getDouble(1, 1)); |
3405 EXPECT_EQ(new_page_scale, scroll->draw_transform().matrix().getDouble(0, 0)); | 3405 EXPECT_EQ(new_page_scale, scroll->draw_transform().matrix().getDouble(0, 0)); |
3406 EXPECT_EQ(new_page_scale, scroll->draw_transform().matrix().getDouble(1, 1)); | 3406 EXPECT_EQ(new_page_scale, scroll->draw_transform().matrix().getDouble(1, 1)); |
3407 EXPECT_EQ(new_page_scale, child->draw_transform().matrix().getDouble(0, 0)); | 3407 EXPECT_EQ(new_page_scale, child->draw_transform().matrix().getDouble(0, 0)); |
3408 EXPECT_EQ(new_page_scale, child->draw_transform().matrix().getDouble(1, 1)); | 3408 EXPECT_EQ(new_page_scale, child->draw_transform().matrix().getDouble(1, 1)); |
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4058 DrawFrame(); | 4058 DrawFrame(); |
4059 CheckLayerScrollDelta(scroll_layer, gfx::Vector2dF(0.f, 0.f)); | 4059 CheckLayerScrollDelta(scroll_layer, gfx::Vector2dF(0.f, 0.f)); |
4060 EXPECT_FALSE(host_impl_->active_tree()->needs_update_draw_properties()); | 4060 EXPECT_FALSE(host_impl_->active_tree()->needs_update_draw_properties()); |
4061 | 4061 |
4062 // Set external scroll delta on delegate and notify LayerTreeHost. | 4062 // Set external scroll delta on delegate and notify LayerTreeHost. |
4063 gfx::ScrollOffset scroll_offset(10.f, 10.f); | 4063 gfx::ScrollOffset scroll_offset(10.f, 10.f); |
4064 scroll_delegate.set_getter_return_value(scroll_offset); | 4064 scroll_delegate.set_getter_return_value(scroll_offset); |
4065 host_impl_->OnRootLayerDelegatedScrollOffsetChanged(); | 4065 host_impl_->OnRootLayerDelegatedScrollOffsetChanged(); |
4066 | 4066 |
4067 // Check scroll delta reflected in layer. | 4067 // Check scroll delta reflected in layer. |
4068 LayerTreeHostImpl::FrameData frame; | 4068 FrameData frame; |
4069 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 4069 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
4070 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 4070 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
4071 host_impl_->DidDrawAllLayers(frame); | 4071 host_impl_->DidDrawAllLayers(frame); |
4072 EXPECT_FALSE(frame.has_no_damage); | 4072 EXPECT_FALSE(frame.has_no_damage); |
4073 CheckLayerScrollDelta(scroll_layer, ScrollOffsetToVector2dF(scroll_offset)); | 4073 CheckLayerScrollDelta(scroll_layer, ScrollOffsetToVector2dF(scroll_offset)); |
4074 | 4074 |
4075 host_impl_->SetRootLayerScrollOffsetDelegate(NULL); | 4075 host_impl_->SetRootLayerScrollOffsetDelegate(NULL); |
4076 } | 4076 } |
4077 | 4077 |
4078 TEST_F(LayerTreeHostImplTest, OverscrollRoot) { | 4078 TEST_F(LayerTreeHostImplTest, OverscrollRoot) { |
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4512 LayerImpl* root = host_impl_->active_tree()->root_layer(); | 4512 LayerImpl* root = host_impl_->active_tree()->root_layer(); |
4513 | 4513 |
4514 root->AddChild( | 4514 root->AddChild( |
4515 BlendStateCheckLayer::Create(host_impl_->active_tree(), | 4515 BlendStateCheckLayer::Create(host_impl_->active_tree(), |
4516 2, | 4516 2, |
4517 host_impl_->resource_provider())); | 4517 host_impl_->resource_provider())); |
4518 BlendStateCheckLayer* layer1 = | 4518 BlendStateCheckLayer* layer1 = |
4519 static_cast<BlendStateCheckLayer*>(root->children()[0]); | 4519 static_cast<BlendStateCheckLayer*>(root->children()[0]); |
4520 layer1->SetPosition(gfx::PointF(2.f, 2.f)); | 4520 layer1->SetPosition(gfx::PointF(2.f, 2.f)); |
4521 | 4521 |
4522 LayerTreeHostImpl::FrameData frame; | 4522 FrameData frame; |
4523 | 4523 |
4524 // Opaque layer, drawn without blending. | 4524 // Opaque layer, drawn without blending. |
4525 layer1->SetContentsOpaque(true); | 4525 layer1->SetContentsOpaque(true); |
4526 layer1->SetExpectation(false, false); | 4526 layer1->SetExpectation(false, false); |
4527 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); | 4527 layer1->SetUpdateRect(gfx::Rect(layer1->content_bounds())); |
4528 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 4528 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
4529 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 4529 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
4530 EXPECT_TRUE(layer1->quads_appended()); | 4530 EXPECT_TRUE(layer1->quads_appended()); |
4531 host_impl_->DidDrawAllLayers(frame); | 4531 host_impl_->DidDrawAllLayers(frame); |
4532 | 4532 |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4758 | 4758 |
4759 // Expect no gutter rects. | 4759 // Expect no gutter rects. |
4760 void TestLayerCoversFullViewport() { | 4760 void TestLayerCoversFullViewport() { |
4761 gfx::Rect layer_rect(viewport_size_); | 4761 gfx::Rect layer_rect(viewport_size_); |
4762 child_->SetPosition(layer_rect.origin()); | 4762 child_->SetPosition(layer_rect.origin()); |
4763 child_->SetBounds(layer_rect.size()); | 4763 child_->SetBounds(layer_rect.size()); |
4764 child_->SetContentBounds(layer_rect.size()); | 4764 child_->SetContentBounds(layer_rect.size()); |
4765 child_->SetQuadRect(gfx::Rect(layer_rect.size())); | 4765 child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
4766 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); | 4766 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
4767 | 4767 |
4768 LayerTreeHostImpl::FrameData frame; | 4768 FrameData frame; |
4769 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 4769 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
4770 ASSERT_EQ(1u, frame.render_passes.size()); | 4770 ASSERT_EQ(1u, frame.render_passes.size()); |
4771 | 4771 |
4772 EXPECT_EQ(0u, CountGutterQuads(frame.render_passes[0]->quad_list)); | 4772 EXPECT_EQ(0u, CountGutterQuads(frame.render_passes[0]->quad_list)); |
4773 EXPECT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 4773 EXPECT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
4774 ValidateTextureDrawQuads(frame.render_passes[0]->quad_list); | 4774 ValidateTextureDrawQuads(frame.render_passes[0]->quad_list); |
4775 | 4775 |
4776 VerifyQuadsExactlyCoverViewport(frame.render_passes[0]->quad_list); | 4776 VerifyQuadsExactlyCoverViewport(frame.render_passes[0]->quad_list); |
4777 host_impl_->DidDrawAllLayers(frame); | 4777 host_impl_->DidDrawAllLayers(frame); |
4778 } | 4778 } |
4779 | 4779 |
4780 // Expect fullscreen gutter rect. | 4780 // Expect fullscreen gutter rect. |
4781 void TestEmptyLayer() { | 4781 void TestEmptyLayer() { |
4782 gfx::Rect layer_rect(0, 0, 0, 0); | 4782 gfx::Rect layer_rect(0, 0, 0, 0); |
4783 child_->SetPosition(layer_rect.origin()); | 4783 child_->SetPosition(layer_rect.origin()); |
4784 child_->SetBounds(layer_rect.size()); | 4784 child_->SetBounds(layer_rect.size()); |
4785 child_->SetContentBounds(layer_rect.size()); | 4785 child_->SetContentBounds(layer_rect.size()); |
4786 child_->SetQuadRect(gfx::Rect(layer_rect.size())); | 4786 child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
4787 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); | 4787 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
4788 | 4788 |
4789 LayerTreeHostImpl::FrameData frame; | 4789 FrameData frame; |
4790 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 4790 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
4791 ASSERT_EQ(1u, frame.render_passes.size()); | 4791 ASSERT_EQ(1u, frame.render_passes.size()); |
4792 | 4792 |
4793 EXPECT_EQ(1u, CountGutterQuads(frame.render_passes[0]->quad_list)); | 4793 EXPECT_EQ(1u, CountGutterQuads(frame.render_passes[0]->quad_list)); |
4794 EXPECT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 4794 EXPECT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
4795 ValidateTextureDrawQuads(frame.render_passes[0]->quad_list); | 4795 ValidateTextureDrawQuads(frame.render_passes[0]->quad_list); |
4796 | 4796 |
4797 VerifyQuadsExactlyCoverViewport(frame.render_passes[0]->quad_list); | 4797 VerifyQuadsExactlyCoverViewport(frame.render_passes[0]->quad_list); |
4798 host_impl_->DidDrawAllLayers(frame); | 4798 host_impl_->DidDrawAllLayers(frame); |
4799 } | 4799 } |
4800 | 4800 |
4801 // Expect four surrounding gutter rects. | 4801 // Expect four surrounding gutter rects. |
4802 void TestLayerInMiddleOfViewport() { | 4802 void TestLayerInMiddleOfViewport() { |
4803 gfx::Rect layer_rect(500, 500, 200, 200); | 4803 gfx::Rect layer_rect(500, 500, 200, 200); |
4804 child_->SetPosition(layer_rect.origin()); | 4804 child_->SetPosition(layer_rect.origin()); |
4805 child_->SetBounds(layer_rect.size()); | 4805 child_->SetBounds(layer_rect.size()); |
4806 child_->SetContentBounds(layer_rect.size()); | 4806 child_->SetContentBounds(layer_rect.size()); |
4807 child_->SetQuadRect(gfx::Rect(layer_rect.size())); | 4807 child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
4808 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); | 4808 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
4809 | 4809 |
4810 LayerTreeHostImpl::FrameData frame; | 4810 FrameData frame; |
4811 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 4811 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
4812 ASSERT_EQ(1u, frame.render_passes.size()); | 4812 ASSERT_EQ(1u, frame.render_passes.size()); |
4813 | 4813 |
4814 EXPECT_EQ(4u, CountGutterQuads(frame.render_passes[0]->quad_list)); | 4814 EXPECT_EQ(4u, CountGutterQuads(frame.render_passes[0]->quad_list)); |
4815 EXPECT_EQ(5u, frame.render_passes[0]->quad_list.size()); | 4815 EXPECT_EQ(5u, frame.render_passes[0]->quad_list.size()); |
4816 ValidateTextureDrawQuads(frame.render_passes[0]->quad_list); | 4816 ValidateTextureDrawQuads(frame.render_passes[0]->quad_list); |
4817 | 4817 |
4818 VerifyQuadsExactlyCoverViewport(frame.render_passes[0]->quad_list); | 4818 VerifyQuadsExactlyCoverViewport(frame.render_passes[0]->quad_list); |
4819 host_impl_->DidDrawAllLayers(frame); | 4819 host_impl_->DidDrawAllLayers(frame); |
4820 } | 4820 } |
4821 | 4821 |
4822 // Expect no gutter rects. | 4822 // Expect no gutter rects. |
4823 void TestLayerIsLargerThanViewport() { | 4823 void TestLayerIsLargerThanViewport() { |
4824 gfx::Rect layer_rect(viewport_size_.width() + 10, | 4824 gfx::Rect layer_rect(viewport_size_.width() + 10, |
4825 viewport_size_.height() + 10); | 4825 viewport_size_.height() + 10); |
4826 child_->SetPosition(layer_rect.origin()); | 4826 child_->SetPosition(layer_rect.origin()); |
4827 child_->SetBounds(layer_rect.size()); | 4827 child_->SetBounds(layer_rect.size()); |
4828 child_->SetContentBounds(layer_rect.size()); | 4828 child_->SetContentBounds(layer_rect.size()); |
4829 child_->SetQuadRect(gfx::Rect(layer_rect.size())); | 4829 child_->SetQuadRect(gfx::Rect(layer_rect.size())); |
4830 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); | 4830 child_->SetQuadVisibleRect(gfx::Rect(layer_rect.size())); |
4831 | 4831 |
4832 LayerTreeHostImpl::FrameData frame; | 4832 FrameData frame; |
4833 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 4833 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
4834 ASSERT_EQ(1u, frame.render_passes.size()); | 4834 ASSERT_EQ(1u, frame.render_passes.size()); |
4835 | 4835 |
4836 EXPECT_EQ(0u, CountGutterQuads(frame.render_passes[0]->quad_list)); | 4836 EXPECT_EQ(0u, CountGutterQuads(frame.render_passes[0]->quad_list)); |
4837 EXPECT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 4837 EXPECT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
4838 ValidateTextureDrawQuads(frame.render_passes[0]->quad_list); | 4838 ValidateTextureDrawQuads(frame.render_passes[0]->quad_list); |
4839 | 4839 |
4840 host_impl_->DidDrawAllLayers(frame); | 4840 host_impl_->DidDrawAllLayers(frame); |
4841 } | 4841 } |
4842 | 4842 |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4991 scoped_ptr<LayerImpl> root = | 4991 scoped_ptr<LayerImpl> root = |
4992 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1); | 4992 FakeDrawableLayerImpl::Create(host_impl_->active_tree(), 1); |
4993 root->SetBounds(gfx::Size(10, 10)); | 4993 root->SetBounds(gfx::Size(10, 10)); |
4994 root->SetContentBounds(gfx::Size(10, 10)); | 4994 root->SetContentBounds(gfx::Size(10, 10)); |
4995 root->SetDrawsContent(true); | 4995 root->SetDrawsContent(true); |
4996 root->SetHasRenderSurface(true); | 4996 root->SetHasRenderSurface(true); |
4997 host_impl_->active_tree()->SetRootLayer(root.Pass()); | 4997 host_impl_->active_tree()->SetRootLayer(root.Pass()); |
4998 EXPECT_FALSE(provider->TestContext3d()->reshape_called()); | 4998 EXPECT_FALSE(provider->TestContext3d()->reshape_called()); |
4999 provider->TestContext3d()->clear_reshape_called(); | 4999 provider->TestContext3d()->clear_reshape_called(); |
5000 | 5000 |
5001 LayerTreeHostImpl::FrameData frame; | 5001 FrameData frame; |
5002 host_impl_->SetViewportSize(gfx::Size(10, 10)); | 5002 host_impl_->SetViewportSize(gfx::Size(10, 10)); |
5003 host_impl_->SetDeviceScaleFactor(1.f); | 5003 host_impl_->SetDeviceScaleFactor(1.f); |
5004 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5004 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5005 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 5005 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
5006 EXPECT_TRUE(provider->TestContext3d()->reshape_called()); | 5006 EXPECT_TRUE(provider->TestContext3d()->reshape_called()); |
5007 EXPECT_EQ(provider->TestContext3d()->width(), 10); | 5007 EXPECT_EQ(provider->TestContext3d()->width(), 10); |
5008 EXPECT_EQ(provider->TestContext3d()->height(), 10); | 5008 EXPECT_EQ(provider->TestContext3d()->height(), 10); |
5009 EXPECT_EQ(provider->TestContext3d()->scale_factor(), 1.f); | 5009 EXPECT_EQ(provider->TestContext3d()->scale_factor(), 1.f); |
5010 host_impl_->DidDrawAllLayers(frame); | 5010 host_impl_->DidDrawAllLayers(frame); |
5011 provider->TestContext3d()->clear_reshape_called(); | 5011 provider->TestContext3d()->clear_reshape_called(); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5068 child->SetPosition(gfx::PointF(12.f, 13.f)); | 5068 child->SetPosition(gfx::PointF(12.f, 13.f)); |
5069 child->SetBounds(gfx::Size(14, 15)); | 5069 child->SetBounds(gfx::Size(14, 15)); |
5070 child->SetContentBounds(gfx::Size(14, 15)); | 5070 child->SetContentBounds(gfx::Size(14, 15)); |
5071 child->SetDrawsContent(true); | 5071 child->SetDrawsContent(true); |
5072 root->SetBounds(gfx::Size(500, 500)); | 5072 root->SetBounds(gfx::Size(500, 500)); |
5073 root->SetContentBounds(gfx::Size(500, 500)); | 5073 root->SetContentBounds(gfx::Size(500, 500)); |
5074 root->SetDrawsContent(true); | 5074 root->SetDrawsContent(true); |
5075 root->AddChild(child.Pass()); | 5075 root->AddChild(child.Pass()); |
5076 layer_tree_host_impl->active_tree()->SetRootLayer(root.Pass()); | 5076 layer_tree_host_impl->active_tree()->SetRootLayer(root.Pass()); |
5077 | 5077 |
5078 LayerTreeHostImpl::FrameData frame; | 5078 FrameData frame; |
5079 | 5079 |
5080 // First frame, the entire screen should get swapped. | 5080 // First frame, the entire screen should get swapped. |
5081 EXPECT_EQ(DRAW_SUCCESS, layer_tree_host_impl->PrepareToDraw(&frame)); | 5081 EXPECT_EQ(DRAW_SUCCESS, layer_tree_host_impl->PrepareToDraw(&frame)); |
5082 layer_tree_host_impl->DrawLayers(&frame, gfx::FrameTime::Now()); | 5082 layer_tree_host_impl->DrawLayers(&frame, gfx::FrameTime::Now()); |
5083 layer_tree_host_impl->DidDrawAllLayers(frame); | 5083 layer_tree_host_impl->DidDrawAllLayers(frame); |
5084 layer_tree_host_impl->SwapBuffers(frame); | 5084 layer_tree_host_impl->SwapBuffers(frame); |
5085 gfx::Rect expected_swap_rect(0, 0, 500, 500); | 5085 gfx::Rect expected_swap_rect(0, 0, 500, 500); |
5086 EXPECT_EQ(expected_swap_rect.ToString(), | 5086 EXPECT_EQ(expected_swap_rect.ToString(), |
5087 fake_output_surface->last_swap_rect().ToString()); | 5087 fake_output_surface->last_swap_rect().ToString()); |
5088 | 5088 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5127 child->SetContentBounds(gfx::Size(10, 10)); | 5127 child->SetContentBounds(gfx::Size(10, 10)); |
5128 child->SetDrawsContent(true); | 5128 child->SetDrawsContent(true); |
5129 root->SetBounds(gfx::Size(10, 10)); | 5129 root->SetBounds(gfx::Size(10, 10)); |
5130 root->SetContentBounds(gfx::Size(10, 10)); | 5130 root->SetContentBounds(gfx::Size(10, 10)); |
5131 root->SetDrawsContent(true); | 5131 root->SetDrawsContent(true); |
5132 root->SetHasRenderSurface(true); | 5132 root->SetHasRenderSurface(true); |
5133 root->AddChild(child.Pass()); | 5133 root->AddChild(child.Pass()); |
5134 | 5134 |
5135 host_impl_->active_tree()->SetRootLayer(root.Pass()); | 5135 host_impl_->active_tree()->SetRootLayer(root.Pass()); |
5136 | 5136 |
5137 LayerTreeHostImpl::FrameData frame; | 5137 FrameData frame; |
5138 | 5138 |
5139 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5139 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5140 EXPECT_EQ(1u, frame.render_surface_layer_list->size()); | 5140 EXPECT_EQ(1u, frame.render_surface_layer_list->size()); |
5141 EXPECT_EQ(1u, frame.render_passes.size()); | 5141 EXPECT_EQ(1u, frame.render_passes.size()); |
5142 host_impl_->DidDrawAllLayers(frame); | 5142 host_impl_->DidDrawAllLayers(frame); |
5143 } | 5143 } |
5144 | 5144 |
5145 class FakeLayerWithQuads : public LayerImpl { | 5145 class FakeLayerWithQuads : public LayerImpl { |
5146 public: | 5146 public: |
5147 static scoped_ptr<LayerImpl> Create(LayerTreeImpl* tree_impl, int id) { | 5147 static scoped_ptr<LayerImpl> Create(LayerTreeImpl* tree_impl, int id) { |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5264 LayerTreeSettings settings = DefaultSettings(); | 5264 LayerTreeSettings settings = DefaultSettings(); |
5265 settings.renderer_settings.partial_swap_enabled = false; | 5265 settings.renderer_settings.partial_swap_enabled = false; |
5266 CreateHostImpl(settings, | 5266 CreateHostImpl(settings, |
5267 FakeOutputSurface::Create3d(mock_context_owned.Pass())); | 5267 FakeOutputSurface::Create3d(mock_context_owned.Pass())); |
5268 SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1)); | 5268 SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1)); |
5269 | 5269 |
5270 // Without partial swap, and no clipping, no scissor is set. | 5270 // Without partial swap, and no clipping, no scissor is set. |
5271 harness.MustDrawSolidQuad(); | 5271 harness.MustDrawSolidQuad(); |
5272 harness.MustSetNoScissor(); | 5272 harness.MustSetNoScissor(); |
5273 { | 5273 { |
5274 LayerTreeHostImpl::FrameData frame; | 5274 FrameData frame; |
5275 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5275 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5276 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 5276 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
5277 host_impl_->DidDrawAllLayers(frame); | 5277 host_impl_->DidDrawAllLayers(frame); |
5278 } | 5278 } |
5279 Mock::VerifyAndClearExpectations(&mock_context); | 5279 Mock::VerifyAndClearExpectations(&mock_context); |
5280 | 5280 |
5281 // Without partial swap, but a layer does clip its subtree, one scissor is | 5281 // Without partial swap, but a layer does clip its subtree, one scissor is |
5282 // set. | 5282 // set. |
5283 host_impl_->active_tree()->root_layer()->SetMasksToBounds(true); | 5283 host_impl_->active_tree()->root_layer()->SetMasksToBounds(true); |
5284 harness.MustDrawSolidQuad(); | 5284 harness.MustDrawSolidQuad(); |
5285 harness.MustSetScissor(0, 0, 10, 10); | 5285 harness.MustSetScissor(0, 0, 10, 10); |
5286 { | 5286 { |
5287 LayerTreeHostImpl::FrameData frame; | 5287 FrameData frame; |
5288 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5288 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5289 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 5289 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
5290 host_impl_->DidDrawAllLayers(frame); | 5290 host_impl_->DidDrawAllLayers(frame); |
5291 } | 5291 } |
5292 Mock::VerifyAndClearExpectations(&mock_context); | 5292 Mock::VerifyAndClearExpectations(&mock_context); |
5293 } | 5293 } |
5294 | 5294 |
5295 TEST_F(LayerTreeHostImplTest, PartialSwap) { | 5295 TEST_F(LayerTreeHostImplTest, PartialSwap) { |
5296 scoped_ptr<MockContext> context_owned(new MockContext); | 5296 scoped_ptr<MockContext> context_owned(new MockContext); |
5297 MockContext* mock_context = context_owned.get(); | 5297 MockContext* mock_context = context_owned.get(); |
5298 MockContextHarness harness(mock_context); | 5298 MockContextHarness harness(mock_context); |
5299 | 5299 |
5300 LayerTreeSettings settings = DefaultSettings(); | 5300 LayerTreeSettings settings = DefaultSettings(); |
5301 settings.renderer_settings.partial_swap_enabled = true; | 5301 settings.renderer_settings.partial_swap_enabled = true; |
5302 CreateHostImpl(settings, FakeOutputSurface::Create3d(context_owned.Pass())); | 5302 CreateHostImpl(settings, FakeOutputSurface::Create3d(context_owned.Pass())); |
5303 SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1)); | 5303 SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1)); |
5304 | 5304 |
5305 // The first frame is not a partially-swapped one. | 5305 // The first frame is not a partially-swapped one. |
5306 harness.MustSetScissor(0, 0, 10, 10); | 5306 harness.MustSetScissor(0, 0, 10, 10); |
5307 harness.MustDrawSolidQuad(); | 5307 harness.MustDrawSolidQuad(); |
5308 { | 5308 { |
5309 LayerTreeHostImpl::FrameData frame; | 5309 FrameData frame; |
5310 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5310 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5311 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 5311 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
5312 host_impl_->DidDrawAllLayers(frame); | 5312 host_impl_->DidDrawAllLayers(frame); |
5313 } | 5313 } |
5314 Mock::VerifyAndClearExpectations(&mock_context); | 5314 Mock::VerifyAndClearExpectations(&mock_context); |
5315 | 5315 |
5316 // Damage a portion of the frame. | 5316 // Damage a portion of the frame. |
5317 host_impl_->active_tree()->root_layer()->SetUpdateRect( | 5317 host_impl_->active_tree()->root_layer()->SetUpdateRect( |
5318 gfx::Rect(0, 0, 2, 3)); | 5318 gfx::Rect(0, 0, 2, 3)); |
5319 | 5319 |
5320 // The second frame will be partially-swapped (the y coordinates are flipped). | 5320 // The second frame will be partially-swapped (the y coordinates are flipped). |
5321 harness.MustSetScissor(0, 7, 2, 3); | 5321 harness.MustSetScissor(0, 7, 2, 3); |
5322 harness.MustDrawSolidQuad(); | 5322 harness.MustDrawSolidQuad(); |
5323 { | 5323 { |
5324 LayerTreeHostImpl::FrameData frame; | 5324 FrameData frame; |
5325 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5325 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5326 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 5326 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
5327 host_impl_->DidDrawAllLayers(frame); | 5327 host_impl_->DidDrawAllLayers(frame); |
5328 } | 5328 } |
5329 Mock::VerifyAndClearExpectations(&mock_context); | 5329 Mock::VerifyAndClearExpectations(&mock_context); |
5330 } | 5330 } |
5331 | 5331 |
5332 static scoped_ptr<LayerTreeHostImpl> SetupLayersForOpacity( | 5332 static scoped_ptr<LayerTreeHostImpl> SetupLayersForOpacity( |
5333 bool partial_swap, | 5333 bool partial_swap, |
5334 LayerTreeHostImplClient* client, | 5334 LayerTreeHostImplClient* client, |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5409 TEST_F(LayerTreeHostImplTest, ContributingLayerEmptyScissorPartialSwap) { | 5409 TEST_F(LayerTreeHostImplTest, ContributingLayerEmptyScissorPartialSwap) { |
5410 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 5410 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
5411 new TestSharedBitmapManager()); | 5411 new TestSharedBitmapManager()); |
5412 scoped_ptr<LayerTreeHostImpl> my_host_impl = | 5412 scoped_ptr<LayerTreeHostImpl> my_host_impl = |
5413 SetupLayersForOpacity(true, | 5413 SetupLayersForOpacity(true, |
5414 this, | 5414 this, |
5415 &proxy_, | 5415 &proxy_, |
5416 shared_bitmap_manager.get(), | 5416 shared_bitmap_manager.get(), |
5417 &stats_instrumentation_); | 5417 &stats_instrumentation_); |
5418 { | 5418 { |
5419 LayerTreeHostImpl::FrameData frame; | 5419 FrameData frame; |
5420 EXPECT_EQ(DRAW_SUCCESS, my_host_impl->PrepareToDraw(&frame)); | 5420 EXPECT_EQ(DRAW_SUCCESS, my_host_impl->PrepareToDraw(&frame)); |
5421 | 5421 |
5422 // Verify all quads have been computed | 5422 // Verify all quads have been computed |
5423 ASSERT_EQ(2U, frame.render_passes.size()); | 5423 ASSERT_EQ(2U, frame.render_passes.size()); |
5424 ASSERT_EQ(1U, frame.render_passes[0]->quad_list.size()); | 5424 ASSERT_EQ(1U, frame.render_passes[0]->quad_list.size()); |
5425 ASSERT_EQ(1U, frame.render_passes[1]->quad_list.size()); | 5425 ASSERT_EQ(1U, frame.render_passes[1]->quad_list.size()); |
5426 EXPECT_EQ(DrawQuad::SOLID_COLOR, | 5426 EXPECT_EQ(DrawQuad::SOLID_COLOR, |
5427 frame.render_passes[0]->quad_list.front()->material); | 5427 frame.render_passes[0]->quad_list.front()->material); |
5428 EXPECT_EQ(DrawQuad::RENDER_PASS, | 5428 EXPECT_EQ(DrawQuad::RENDER_PASS, |
5429 frame.render_passes[1]->quad_list.front()->material); | 5429 frame.render_passes[1]->quad_list.front()->material); |
5430 | 5430 |
5431 my_host_impl->DrawLayers(&frame, gfx::FrameTime::Now()); | 5431 my_host_impl->DrawLayers(&frame, gfx::FrameTime::Now()); |
5432 my_host_impl->DidDrawAllLayers(frame); | 5432 my_host_impl->DidDrawAllLayers(frame); |
5433 } | 5433 } |
5434 } | 5434 } |
5435 | 5435 |
5436 TEST_F(LayerTreeHostImplTest, ContributingLayerEmptyScissorNoPartialSwap) { | 5436 TEST_F(LayerTreeHostImplTest, ContributingLayerEmptyScissorNoPartialSwap) { |
5437 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( | 5437 scoped_ptr<SharedBitmapManager> shared_bitmap_manager( |
5438 new TestSharedBitmapManager()); | 5438 new TestSharedBitmapManager()); |
5439 scoped_ptr<LayerTreeHostImpl> my_host_impl = | 5439 scoped_ptr<LayerTreeHostImpl> my_host_impl = |
5440 SetupLayersForOpacity(false, | 5440 SetupLayersForOpacity(false, |
5441 this, | 5441 this, |
5442 &proxy_, | 5442 &proxy_, |
5443 shared_bitmap_manager.get(), | 5443 shared_bitmap_manager.get(), |
5444 &stats_instrumentation_); | 5444 &stats_instrumentation_); |
5445 { | 5445 { |
5446 LayerTreeHostImpl::FrameData frame; | 5446 FrameData frame; |
5447 EXPECT_EQ(DRAW_SUCCESS, my_host_impl->PrepareToDraw(&frame)); | 5447 EXPECT_EQ(DRAW_SUCCESS, my_host_impl->PrepareToDraw(&frame)); |
5448 | 5448 |
5449 // Verify all quads have been computed | 5449 // Verify all quads have been computed |
5450 ASSERT_EQ(2U, frame.render_passes.size()); | 5450 ASSERT_EQ(2U, frame.render_passes.size()); |
5451 ASSERT_EQ(1U, frame.render_passes[0]->quad_list.size()); | 5451 ASSERT_EQ(1U, frame.render_passes[0]->quad_list.size()); |
5452 ASSERT_EQ(1U, frame.render_passes[1]->quad_list.size()); | 5452 ASSERT_EQ(1U, frame.render_passes[1]->quad_list.size()); |
5453 EXPECT_EQ(DrawQuad::SOLID_COLOR, | 5453 EXPECT_EQ(DrawQuad::SOLID_COLOR, |
5454 frame.render_passes[0]->quad_list.front()->material); | 5454 frame.render_passes[0]->quad_list.front()->material); |
5455 EXPECT_EQ(DrawQuad::RENDER_PASS, | 5455 EXPECT_EQ(DrawQuad::RENDER_PASS, |
5456 frame.render_passes[1]->quad_list.front()->material); | 5456 frame.render_passes[1]->quad_list.front()->material); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5490 io_surface_layer->SetBounds(gfx::Size(10, 10)); | 5490 io_surface_layer->SetBounds(gfx::Size(10, 10)); |
5491 io_surface_layer->SetContentBounds(gfx::Size(10, 10)); | 5491 io_surface_layer->SetContentBounds(gfx::Size(10, 10)); |
5492 io_surface_layer->SetDrawsContent(true); | 5492 io_surface_layer->SetDrawsContent(true); |
5493 io_surface_layer->SetIOSurfaceProperties(1, gfx::Size(10, 10)); | 5493 io_surface_layer->SetIOSurfaceProperties(1, gfx::Size(10, 10)); |
5494 root_layer->AddChild(io_surface_layer.Pass()); | 5494 root_layer->AddChild(io_surface_layer.Pass()); |
5495 | 5495 |
5496 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); | 5496 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); |
5497 | 5497 |
5498 EXPECT_EQ(0u, context3d->NumTextures()); | 5498 EXPECT_EQ(0u, context3d->NumTextures()); |
5499 | 5499 |
5500 LayerTreeHostImpl::FrameData frame; | 5500 FrameData frame; |
5501 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5501 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5502 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 5502 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
5503 host_impl_->DidDrawAllLayers(frame); | 5503 host_impl_->DidDrawAllLayers(frame); |
5504 host_impl_->SwapBuffers(frame); | 5504 host_impl_->SwapBuffers(frame); |
5505 | 5505 |
5506 EXPECT_GT(context3d->NumTextures(), 0u); | 5506 EXPECT_GT(context3d->NumTextures(), 0u); |
5507 | 5507 |
5508 // Kill the layer tree. | 5508 // Kill the layer tree. |
5509 host_impl_->active_tree()->SetRootLayer( | 5509 host_impl_->active_tree()->SetRootLayer( |
5510 LayerImpl::Create(host_impl_->active_tree(), 100)); | 5510 LayerImpl::Create(host_impl_->active_tree(), 100)); |
(...skipping 22 matching lines...) Expand all Loading... |
5533 FakeOutputSurface::Create3d(mock_context_owned.Pass())); | 5533 FakeOutputSurface::Create3d(mock_context_owned.Pass())); |
5534 SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); | 5534 SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); |
5535 host_impl_->active_tree()->set_background_color(SK_ColorWHITE); | 5535 host_impl_->active_tree()->set_background_color(SK_ColorWHITE); |
5536 | 5536 |
5537 // Verify one quad is drawn when transparent background set is not set. | 5537 // Verify one quad is drawn when transparent background set is not set. |
5538 host_impl_->active_tree()->set_has_transparent_background(false); | 5538 host_impl_->active_tree()->set_has_transparent_background(false); |
5539 EXPECT_CALL(*mock_context, useProgram(_)) | 5539 EXPECT_CALL(*mock_context, useProgram(_)) |
5540 .Times(1); | 5540 .Times(1); |
5541 EXPECT_CALL(*mock_context, drawElements(_, _, _, _)) | 5541 EXPECT_CALL(*mock_context, drawElements(_, _, _, _)) |
5542 .Times(1); | 5542 .Times(1); |
5543 LayerTreeHostImpl::FrameData frame; | 5543 FrameData frame; |
5544 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5544 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5545 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 5545 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
5546 host_impl_->DidDrawAllLayers(frame); | 5546 host_impl_->DidDrawAllLayers(frame); |
5547 Mock::VerifyAndClearExpectations(&mock_context); | 5547 Mock::VerifyAndClearExpectations(&mock_context); |
5548 | 5548 |
5549 // Verify no quads are drawn when transparent background is set. | 5549 // Verify no quads are drawn when transparent background is set. |
5550 host_impl_->active_tree()->set_has_transparent_background(true); | 5550 host_impl_->active_tree()->set_has_transparent_background(true); |
5551 host_impl_->SetFullRootLayerDamage(); | 5551 host_impl_->SetFullRootLayerDamage(); |
5552 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5552 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5553 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 5553 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5598 class LayerTreeHostImplTestWithDelegatingRenderer | 5598 class LayerTreeHostImplTestWithDelegatingRenderer |
5599 : public LayerTreeHostImplTest { | 5599 : public LayerTreeHostImplTest { |
5600 protected: | 5600 protected: |
5601 scoped_ptr<OutputSurface> CreateOutputSurface() override { | 5601 scoped_ptr<OutputSurface> CreateOutputSurface() override { |
5602 return FakeOutputSurface::CreateDelegating3d(); | 5602 return FakeOutputSurface::CreateDelegating3d(); |
5603 } | 5603 } |
5604 | 5604 |
5605 void DrawFrameAndTestDamage(const gfx::RectF& expected_damage) { | 5605 void DrawFrameAndTestDamage(const gfx::RectF& expected_damage) { |
5606 bool expect_to_draw = !expected_damage.IsEmpty(); | 5606 bool expect_to_draw = !expected_damage.IsEmpty(); |
5607 | 5607 |
5608 LayerTreeHostImpl::FrameData frame; | 5608 FrameData frame; |
5609 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5609 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5610 | 5610 |
5611 if (!expect_to_draw) { | 5611 if (!expect_to_draw) { |
5612 // With no damage, we don't draw, and no quads are created. | 5612 // With no damage, we don't draw, and no quads are created. |
5613 ASSERT_EQ(0u, frame.render_passes.size()); | 5613 ASSERT_EQ(0u, frame.render_passes.size()); |
5614 } else { | 5614 } else { |
5615 ASSERT_EQ(1u, frame.render_passes.size()); | 5615 ASSERT_EQ(1u, frame.render_passes.size()); |
5616 | 5616 |
5617 // Verify the damage rect for the root render pass. | 5617 // Verify the damage rect for the root render pass. |
5618 const RenderPass* root_render_pass = frame.render_passes.back(); | 5618 const RenderPass* root_render_pass = frame.render_passes.back(); |
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5755 mask_layer->SetPosition(gfx::PointF()); | 5755 mask_layer->SetPosition(gfx::PointF()); |
5756 mask_layer->SetDrawsContent(true); | 5756 mask_layer->SetDrawsContent(true); |
5757 | 5757 |
5758 | 5758 |
5759 // Check that the tree scaling is correctly taken into account for the mask, | 5759 // Check that the tree scaling is correctly taken into account for the mask, |
5760 // that should fully map onto the quad. | 5760 // that should fully map onto the quad. |
5761 float device_scale_factor = 1.f; | 5761 float device_scale_factor = 1.f; |
5762 host_impl_->SetViewportSize(root_size); | 5762 host_impl_->SetViewportSize(root_size); |
5763 host_impl_->SetDeviceScaleFactor(device_scale_factor); | 5763 host_impl_->SetDeviceScaleFactor(device_scale_factor); |
5764 { | 5764 { |
5765 LayerTreeHostImpl::FrameData frame; | 5765 FrameData frame; |
5766 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5766 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5767 | 5767 |
5768 ASSERT_EQ(1u, frame.render_passes.size()); | 5768 ASSERT_EQ(1u, frame.render_passes.size()); |
5769 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 5769 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
5770 ASSERT_EQ(DrawQuad::RENDER_PASS, | 5770 ASSERT_EQ(DrawQuad::RENDER_PASS, |
5771 frame.render_passes[0]->quad_list.front()->material); | 5771 frame.render_passes[0]->quad_list.front()->material); |
5772 const RenderPassDrawQuad* render_pass_quad = | 5772 const RenderPassDrawQuad* render_pass_quad = |
5773 RenderPassDrawQuad::MaterialCast( | 5773 RenderPassDrawQuad::MaterialCast( |
5774 frame.render_passes[0]->quad_list.front()); | 5774 frame.render_passes[0]->quad_list.front()); |
5775 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), | 5775 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), |
(...skipping 10 matching lines...) Expand all Loading... |
5786 | 5786 |
5787 // Applying a DSF should change the render surface size, but won't affect | 5787 // Applying a DSF should change the render surface size, but won't affect |
5788 // which part of the mask is used. | 5788 // which part of the mask is used. |
5789 device_scale_factor = 2.f; | 5789 device_scale_factor = 2.f; |
5790 gfx::Size device_viewport = | 5790 gfx::Size device_viewport = |
5791 gfx::ToFlooredSize(gfx::ScaleSize(root_size, device_scale_factor)); | 5791 gfx::ToFlooredSize(gfx::ScaleSize(root_size, device_scale_factor)); |
5792 host_impl_->SetViewportSize(device_viewport); | 5792 host_impl_->SetViewportSize(device_viewport); |
5793 host_impl_->SetDeviceScaleFactor(device_scale_factor); | 5793 host_impl_->SetDeviceScaleFactor(device_scale_factor); |
5794 host_impl_->active_tree()->set_needs_update_draw_properties(); | 5794 host_impl_->active_tree()->set_needs_update_draw_properties(); |
5795 { | 5795 { |
5796 LayerTreeHostImpl::FrameData frame; | 5796 FrameData frame; |
5797 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5797 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5798 | 5798 |
5799 ASSERT_EQ(1u, frame.render_passes.size()); | 5799 ASSERT_EQ(1u, frame.render_passes.size()); |
5800 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 5800 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
5801 ASSERT_EQ(DrawQuad::RENDER_PASS, | 5801 ASSERT_EQ(DrawQuad::RENDER_PASS, |
5802 frame.render_passes[0]->quad_list.front()->material); | 5802 frame.render_passes[0]->quad_list.front()->material); |
5803 const RenderPassDrawQuad* render_pass_quad = | 5803 const RenderPassDrawQuad* render_pass_quad = |
5804 RenderPassDrawQuad::MaterialCast( | 5804 RenderPassDrawQuad::MaterialCast( |
5805 frame.render_passes[0]->quad_list.front()); | 5805 frame.render_passes[0]->quad_list.front()); |
5806 EXPECT_EQ(gfx::Rect(0, 0, 200, 200).ToString(), | 5806 EXPECT_EQ(gfx::Rect(0, 0, 200, 200).ToString(), |
(...skipping 12 matching lines...) Expand all Loading... |
5819 // should still result in the same part of the mask being used. | 5819 // should still result in the same part of the mask being used. |
5820 gfx::Size content_bounds = | 5820 gfx::Size content_bounds = |
5821 gfx::ToRoundedSize(gfx::ScaleSize(scaling_layer_size, | 5821 gfx::ToRoundedSize(gfx::ScaleSize(scaling_layer_size, |
5822 device_scale_factor)); | 5822 device_scale_factor)); |
5823 content_layer->SetContentBounds(content_bounds); | 5823 content_layer->SetContentBounds(content_bounds); |
5824 content_layer->SetContentsScale(device_scale_factor, device_scale_factor); | 5824 content_layer->SetContentsScale(device_scale_factor, device_scale_factor); |
5825 mask_layer->SetContentBounds(content_bounds); | 5825 mask_layer->SetContentBounds(content_bounds); |
5826 mask_layer->SetContentsScale(device_scale_factor, device_scale_factor); | 5826 mask_layer->SetContentsScale(device_scale_factor, device_scale_factor); |
5827 host_impl_->active_tree()->set_needs_update_draw_properties(); | 5827 host_impl_->active_tree()->set_needs_update_draw_properties(); |
5828 { | 5828 { |
5829 LayerTreeHostImpl::FrameData frame; | 5829 FrameData frame; |
5830 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5830 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5831 | 5831 |
5832 ASSERT_EQ(1u, frame.render_passes.size()); | 5832 ASSERT_EQ(1u, frame.render_passes.size()); |
5833 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 5833 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
5834 ASSERT_EQ(DrawQuad::RENDER_PASS, | 5834 ASSERT_EQ(DrawQuad::RENDER_PASS, |
5835 frame.render_passes[0]->quad_list.front()->material); | 5835 frame.render_passes[0]->quad_list.front()->material); |
5836 const RenderPassDrawQuad* render_pass_quad = | 5836 const RenderPassDrawQuad* render_pass_quad = |
5837 RenderPassDrawQuad::MaterialCast( | 5837 RenderPassDrawQuad::MaterialCast( |
5838 frame.render_passes[0]->quad_list.front()); | 5838 frame.render_passes[0]->quad_list.front()); |
5839 EXPECT_EQ(gfx::Rect(0, 0, 200, 200).ToString(), | 5839 EXPECT_EQ(gfx::Rect(0, 0, 200, 200).ToString(), |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5885 mask_layer->SetBounds(mask_size); | 5885 mask_layer->SetBounds(mask_size); |
5886 mask_layer->SetContentBounds(mask_size); | 5886 mask_layer->SetContentBounds(mask_size); |
5887 mask_layer->SetPosition(gfx::PointF()); | 5887 mask_layer->SetPosition(gfx::PointF()); |
5888 mask_layer->SetDrawsContent(true); | 5888 mask_layer->SetDrawsContent(true); |
5889 | 5889 |
5890 // Check that the mask fills the surface. | 5890 // Check that the mask fills the surface. |
5891 float device_scale_factor = 1.f; | 5891 float device_scale_factor = 1.f; |
5892 host_impl_->SetViewportSize(root_size); | 5892 host_impl_->SetViewportSize(root_size); |
5893 host_impl_->SetDeviceScaleFactor(device_scale_factor); | 5893 host_impl_->SetDeviceScaleFactor(device_scale_factor); |
5894 { | 5894 { |
5895 LayerTreeHostImpl::FrameData frame; | 5895 FrameData frame; |
5896 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5896 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5897 | 5897 |
5898 ASSERT_EQ(1u, frame.render_passes.size()); | 5898 ASSERT_EQ(1u, frame.render_passes.size()); |
5899 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 5899 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
5900 ASSERT_EQ(DrawQuad::RENDER_PASS, | 5900 ASSERT_EQ(DrawQuad::RENDER_PASS, |
5901 frame.render_passes[0]->quad_list.front()->material); | 5901 frame.render_passes[0]->quad_list.front()->material); |
5902 const RenderPassDrawQuad* render_pass_quad = | 5902 const RenderPassDrawQuad* render_pass_quad = |
5903 RenderPassDrawQuad::MaterialCast( | 5903 RenderPassDrawQuad::MaterialCast( |
5904 frame.render_passes[0]->quad_list.front()); | 5904 frame.render_passes[0]->quad_list.front()); |
5905 EXPECT_EQ(gfx::Rect(0, 0, 50, 50).ToString(), | 5905 EXPECT_EQ(gfx::Rect(0, 0, 50, 50).ToString(), |
5906 render_pass_quad->rect.ToString()); | 5906 render_pass_quad->rect.ToString()); |
5907 EXPECT_EQ(gfx::RectF(0.f, 0.f, 1.f, 1.f).ToString(), | 5907 EXPECT_EQ(gfx::RectF(0.f, 0.f, 1.f, 1.f).ToString(), |
5908 render_pass_quad->MaskUVRect().ToString()); | 5908 render_pass_quad->MaskUVRect().ToString()); |
5909 EXPECT_EQ(gfx::Vector2dF(1.f, 1.f).ToString(), | 5909 EXPECT_EQ(gfx::Vector2dF(1.f, 1.f).ToString(), |
5910 render_pass_quad->mask_uv_scale.ToString()); | 5910 render_pass_quad->mask_uv_scale.ToString()); |
5911 | 5911 |
5912 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 5912 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
5913 host_impl_->DidDrawAllLayers(frame); | 5913 host_impl_->DidDrawAllLayers(frame); |
5914 } | 5914 } |
5915 | 5915 |
5916 // Applying a DSF should change the render surface size, but won't affect | 5916 // Applying a DSF should change the render surface size, but won't affect |
5917 // which part of the mask is used. | 5917 // which part of the mask is used. |
5918 device_scale_factor = 2.f; | 5918 device_scale_factor = 2.f; |
5919 gfx::Size device_viewport = | 5919 gfx::Size device_viewport = |
5920 gfx::ToFlooredSize(gfx::ScaleSize(root_size, device_scale_factor)); | 5920 gfx::ToFlooredSize(gfx::ScaleSize(root_size, device_scale_factor)); |
5921 host_impl_->SetViewportSize(device_viewport); | 5921 host_impl_->SetViewportSize(device_viewport); |
5922 host_impl_->SetDeviceScaleFactor(device_scale_factor); | 5922 host_impl_->SetDeviceScaleFactor(device_scale_factor); |
5923 host_impl_->active_tree()->set_needs_update_draw_properties(); | 5923 host_impl_->active_tree()->set_needs_update_draw_properties(); |
5924 { | 5924 { |
5925 LayerTreeHostImpl::FrameData frame; | 5925 FrameData frame; |
5926 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5926 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5927 | 5927 |
5928 ASSERT_EQ(1u, frame.render_passes.size()); | 5928 ASSERT_EQ(1u, frame.render_passes.size()); |
5929 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 5929 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
5930 ASSERT_EQ(DrawQuad::RENDER_PASS, | 5930 ASSERT_EQ(DrawQuad::RENDER_PASS, |
5931 frame.render_passes[0]->quad_list.front()->material); | 5931 frame.render_passes[0]->quad_list.front()->material); |
5932 const RenderPassDrawQuad* render_pass_quad = | 5932 const RenderPassDrawQuad* render_pass_quad = |
5933 RenderPassDrawQuad::MaterialCast( | 5933 RenderPassDrawQuad::MaterialCast( |
5934 frame.render_passes[0]->quad_list.front()); | 5934 frame.render_passes[0]->quad_list.front()); |
5935 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), | 5935 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), |
(...skipping 12 matching lines...) Expand all Loading... |
5948 gfx::Size layer_size_large = | 5948 gfx::Size layer_size_large = |
5949 gfx::ToRoundedSize(gfx::ScaleSize(layer_size, device_scale_factor)); | 5949 gfx::ToRoundedSize(gfx::ScaleSize(layer_size, device_scale_factor)); |
5950 content_layer->SetContentBounds(layer_size_large); | 5950 content_layer->SetContentBounds(layer_size_large); |
5951 content_layer->SetContentsScale(device_scale_factor, device_scale_factor); | 5951 content_layer->SetContentsScale(device_scale_factor, device_scale_factor); |
5952 gfx::Size mask_size_large = | 5952 gfx::Size mask_size_large = |
5953 gfx::ToRoundedSize(gfx::ScaleSize(mask_size, device_scale_factor)); | 5953 gfx::ToRoundedSize(gfx::ScaleSize(mask_size, device_scale_factor)); |
5954 mask_layer->SetContentBounds(mask_size_large); | 5954 mask_layer->SetContentBounds(mask_size_large); |
5955 mask_layer->SetContentsScale(device_scale_factor, device_scale_factor); | 5955 mask_layer->SetContentsScale(device_scale_factor, device_scale_factor); |
5956 host_impl_->active_tree()->set_needs_update_draw_properties(); | 5956 host_impl_->active_tree()->set_needs_update_draw_properties(); |
5957 { | 5957 { |
5958 LayerTreeHostImpl::FrameData frame; | 5958 FrameData frame; |
5959 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5959 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5960 | 5960 |
5961 ASSERT_EQ(1u, frame.render_passes.size()); | 5961 ASSERT_EQ(1u, frame.render_passes.size()); |
5962 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 5962 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
5963 ASSERT_EQ(DrawQuad::RENDER_PASS, | 5963 ASSERT_EQ(DrawQuad::RENDER_PASS, |
5964 frame.render_passes[0]->quad_list.front()->material); | 5964 frame.render_passes[0]->quad_list.front()->material); |
5965 const RenderPassDrawQuad* render_pass_quad = | 5965 const RenderPassDrawQuad* render_pass_quad = |
5966 RenderPassDrawQuad::MaterialCast( | 5966 RenderPassDrawQuad::MaterialCast( |
5967 frame.render_passes[0]->quad_list.front()); | 5967 frame.render_passes[0]->quad_list.front()); |
5968 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), | 5968 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), |
5969 render_pass_quad->rect.ToString()); | 5969 render_pass_quad->rect.ToString()); |
5970 EXPECT_EQ(gfx::RectF(0.f, 0.f, 1.f, 1.f).ToString(), | 5970 EXPECT_EQ(gfx::RectF(0.f, 0.f, 1.f, 1.f).ToString(), |
5971 render_pass_quad->MaskUVRect().ToString()); | 5971 render_pass_quad->MaskUVRect().ToString()); |
5972 EXPECT_EQ(gfx::Vector2dF(1.f, 1.f).ToString(), | 5972 EXPECT_EQ(gfx::Vector2dF(1.f, 1.f).ToString(), |
5973 render_pass_quad->mask_uv_scale.ToString()); | 5973 render_pass_quad->mask_uv_scale.ToString()); |
5974 | 5974 |
5975 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 5975 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
5976 host_impl_->DidDrawAllLayers(frame); | 5976 host_impl_->DidDrawAllLayers(frame); |
5977 } | 5977 } |
5978 | 5978 |
5979 // Applying a different contents scale to the mask layer means it will have | 5979 // Applying a different contents scale to the mask layer means it will have |
5980 // a larger texture, but it should use the same tex coords to cover the | 5980 // a larger texture, but it should use the same tex coords to cover the |
5981 // layer it masks. | 5981 // layer it masks. |
5982 mask_layer->SetContentBounds(mask_size); | 5982 mask_layer->SetContentBounds(mask_size); |
5983 mask_layer->SetContentsScale(1.f, 1.f); | 5983 mask_layer->SetContentsScale(1.f, 1.f); |
5984 host_impl_->active_tree()->set_needs_update_draw_properties(); | 5984 host_impl_->active_tree()->set_needs_update_draw_properties(); |
5985 { | 5985 { |
5986 LayerTreeHostImpl::FrameData frame; | 5986 FrameData frame; |
5987 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 5987 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
5988 | 5988 |
5989 ASSERT_EQ(1u, frame.render_passes.size()); | 5989 ASSERT_EQ(1u, frame.render_passes.size()); |
5990 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 5990 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
5991 ASSERT_EQ(DrawQuad::RENDER_PASS, | 5991 ASSERT_EQ(DrawQuad::RENDER_PASS, |
5992 frame.render_passes[0]->quad_list.front()->material); | 5992 frame.render_passes[0]->quad_list.front()->material); |
5993 const RenderPassDrawQuad* render_pass_quad = | 5993 const RenderPassDrawQuad* render_pass_quad = |
5994 RenderPassDrawQuad::MaterialCast( | 5994 RenderPassDrawQuad::MaterialCast( |
5995 frame.render_passes[0]->quad_list.front()); | 5995 frame.render_passes[0]->quad_list.front()); |
5996 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), | 5996 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6048 mask_layer->SetBounds(mask_size); | 6048 mask_layer->SetBounds(mask_size); |
6049 mask_layer->SetContentBounds(mask_size); | 6049 mask_layer->SetContentBounds(mask_size); |
6050 mask_layer->SetPosition(gfx::PointF()); | 6050 mask_layer->SetPosition(gfx::PointF()); |
6051 mask_layer->SetDrawsContent(true); | 6051 mask_layer->SetDrawsContent(true); |
6052 | 6052 |
6053 // Check that the mask fills the surface. | 6053 // Check that the mask fills the surface. |
6054 float device_scale_factor = 1.f; | 6054 float device_scale_factor = 1.f; |
6055 host_impl_->SetViewportSize(root_size); | 6055 host_impl_->SetViewportSize(root_size); |
6056 host_impl_->SetDeviceScaleFactor(device_scale_factor); | 6056 host_impl_->SetDeviceScaleFactor(device_scale_factor); |
6057 { | 6057 { |
6058 LayerTreeHostImpl::FrameData frame; | 6058 FrameData frame; |
6059 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6059 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
6060 | 6060 |
6061 ASSERT_EQ(1u, frame.render_passes.size()); | 6061 ASSERT_EQ(1u, frame.render_passes.size()); |
6062 ASSERT_EQ(2u, frame.render_passes[0]->quad_list.size()); | 6062 ASSERT_EQ(2u, frame.render_passes[0]->quad_list.size()); |
6063 ASSERT_EQ(DrawQuad::RENDER_PASS, | 6063 ASSERT_EQ(DrawQuad::RENDER_PASS, |
6064 frame.render_passes[0]->quad_list.ElementAt(1)->material); | 6064 frame.render_passes[0]->quad_list.ElementAt(1)->material); |
6065 const RenderPassDrawQuad* replica_quad = RenderPassDrawQuad::MaterialCast( | 6065 const RenderPassDrawQuad* replica_quad = RenderPassDrawQuad::MaterialCast( |
6066 frame.render_passes[0]->quad_list.ElementAt(1)); | 6066 frame.render_passes[0]->quad_list.ElementAt(1)); |
6067 EXPECT_EQ(gfx::Rect(0, 0, 50, 50).ToString(), | 6067 EXPECT_EQ(gfx::Rect(0, 0, 50, 50).ToString(), |
6068 replica_quad->rect.ToString()); | 6068 replica_quad->rect.ToString()); |
6069 EXPECT_EQ(gfx::RectF(0.f, 0.f, 1.f, 1.f).ToString(), | 6069 EXPECT_EQ(gfx::RectF(0.f, 0.f, 1.f, 1.f).ToString(), |
6070 replica_quad->MaskUVRect().ToString()); | 6070 replica_quad->MaskUVRect().ToString()); |
6071 EXPECT_EQ(gfx::Vector2dF(1.f, 1.f).ToString(), | 6071 EXPECT_EQ(gfx::Vector2dF(1.f, 1.f).ToString(), |
6072 replica_quad->mask_uv_scale.ToString()); | 6072 replica_quad->mask_uv_scale.ToString()); |
6073 | 6073 |
6074 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 6074 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
6075 host_impl_->DidDrawAllLayers(frame); | 6075 host_impl_->DidDrawAllLayers(frame); |
6076 } | 6076 } |
6077 | 6077 |
6078 // Applying a DSF should change the render surface size, but won't affect | 6078 // Applying a DSF should change the render surface size, but won't affect |
6079 // which part of the mask is used. | 6079 // which part of the mask is used. |
6080 device_scale_factor = 2.f; | 6080 device_scale_factor = 2.f; |
6081 gfx::Size device_viewport = | 6081 gfx::Size device_viewport = |
6082 gfx::ToFlooredSize(gfx::ScaleSize(root_size, device_scale_factor)); | 6082 gfx::ToFlooredSize(gfx::ScaleSize(root_size, device_scale_factor)); |
6083 host_impl_->SetViewportSize(device_viewport); | 6083 host_impl_->SetViewportSize(device_viewport); |
6084 host_impl_->SetDeviceScaleFactor(device_scale_factor); | 6084 host_impl_->SetDeviceScaleFactor(device_scale_factor); |
6085 host_impl_->active_tree()->set_needs_update_draw_properties(); | 6085 host_impl_->active_tree()->set_needs_update_draw_properties(); |
6086 { | 6086 { |
6087 LayerTreeHostImpl::FrameData frame; | 6087 FrameData frame; |
6088 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6088 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
6089 | 6089 |
6090 ASSERT_EQ(1u, frame.render_passes.size()); | 6090 ASSERT_EQ(1u, frame.render_passes.size()); |
6091 ASSERT_EQ(2u, frame.render_passes[0]->quad_list.size()); | 6091 ASSERT_EQ(2u, frame.render_passes[0]->quad_list.size()); |
6092 ASSERT_EQ(DrawQuad::RENDER_PASS, | 6092 ASSERT_EQ(DrawQuad::RENDER_PASS, |
6093 frame.render_passes[0]->quad_list.ElementAt(1)->material); | 6093 frame.render_passes[0]->quad_list.ElementAt(1)->material); |
6094 const RenderPassDrawQuad* replica_quad = RenderPassDrawQuad::MaterialCast( | 6094 const RenderPassDrawQuad* replica_quad = RenderPassDrawQuad::MaterialCast( |
6095 frame.render_passes[0]->quad_list.ElementAt(1)); | 6095 frame.render_passes[0]->quad_list.ElementAt(1)); |
6096 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), | 6096 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), |
6097 replica_quad->rect.ToString()); | 6097 replica_quad->rect.ToString()); |
(...skipping 11 matching lines...) Expand all Loading... |
6109 gfx::Size layer_size_large = | 6109 gfx::Size layer_size_large = |
6110 gfx::ToRoundedSize(gfx::ScaleSize(layer_size, device_scale_factor)); | 6110 gfx::ToRoundedSize(gfx::ScaleSize(layer_size, device_scale_factor)); |
6111 content_layer->SetContentBounds(layer_size_large); | 6111 content_layer->SetContentBounds(layer_size_large); |
6112 content_layer->SetContentsScale(device_scale_factor, device_scale_factor); | 6112 content_layer->SetContentsScale(device_scale_factor, device_scale_factor); |
6113 gfx::Size mask_size_large = | 6113 gfx::Size mask_size_large = |
6114 gfx::ToRoundedSize(gfx::ScaleSize(mask_size, device_scale_factor)); | 6114 gfx::ToRoundedSize(gfx::ScaleSize(mask_size, device_scale_factor)); |
6115 mask_layer->SetContentBounds(mask_size_large); | 6115 mask_layer->SetContentBounds(mask_size_large); |
6116 mask_layer->SetContentsScale(device_scale_factor, device_scale_factor); | 6116 mask_layer->SetContentsScale(device_scale_factor, device_scale_factor); |
6117 host_impl_->active_tree()->set_needs_update_draw_properties(); | 6117 host_impl_->active_tree()->set_needs_update_draw_properties(); |
6118 { | 6118 { |
6119 LayerTreeHostImpl::FrameData frame; | 6119 FrameData frame; |
6120 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6120 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
6121 | 6121 |
6122 ASSERT_EQ(1u, frame.render_passes.size()); | 6122 ASSERT_EQ(1u, frame.render_passes.size()); |
6123 ASSERT_EQ(2u, frame.render_passes[0]->quad_list.size()); | 6123 ASSERT_EQ(2u, frame.render_passes[0]->quad_list.size()); |
6124 ASSERT_EQ(DrawQuad::RENDER_PASS, | 6124 ASSERT_EQ(DrawQuad::RENDER_PASS, |
6125 frame.render_passes[0]->quad_list.ElementAt(1)->material); | 6125 frame.render_passes[0]->quad_list.ElementAt(1)->material); |
6126 const RenderPassDrawQuad* replica_quad = RenderPassDrawQuad::MaterialCast( | 6126 const RenderPassDrawQuad* replica_quad = RenderPassDrawQuad::MaterialCast( |
6127 frame.render_passes[0]->quad_list.ElementAt(1)); | 6127 frame.render_passes[0]->quad_list.ElementAt(1)); |
6128 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), | 6128 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), |
6129 replica_quad->rect.ToString()); | 6129 replica_quad->rect.ToString()); |
6130 EXPECT_EQ(gfx::RectF(0.f, 0.f, 1.f, 1.f).ToString(), | 6130 EXPECT_EQ(gfx::RectF(0.f, 0.f, 1.f, 1.f).ToString(), |
6131 replica_quad->MaskUVRect().ToString()); | 6131 replica_quad->MaskUVRect().ToString()); |
6132 EXPECT_EQ(gfx::Vector2dF(1.f, 1.f).ToString(), | 6132 EXPECT_EQ(gfx::Vector2dF(1.f, 1.f).ToString(), |
6133 replica_quad->mask_uv_scale.ToString()); | 6133 replica_quad->mask_uv_scale.ToString()); |
6134 | 6134 |
6135 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 6135 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
6136 host_impl_->DidDrawAllLayers(frame); | 6136 host_impl_->DidDrawAllLayers(frame); |
6137 } | 6137 } |
6138 | 6138 |
6139 // Applying a different contents scale to the mask layer means it will have | 6139 // Applying a different contents scale to the mask layer means it will have |
6140 // a larger texture, but it should use the same tex coords to cover the | 6140 // a larger texture, but it should use the same tex coords to cover the |
6141 // layer it masks. | 6141 // layer it masks. |
6142 mask_layer->SetContentBounds(mask_size); | 6142 mask_layer->SetContentBounds(mask_size); |
6143 mask_layer->SetContentsScale(1.f, 1.f); | 6143 mask_layer->SetContentsScale(1.f, 1.f); |
6144 host_impl_->active_tree()->set_needs_update_draw_properties(); | 6144 host_impl_->active_tree()->set_needs_update_draw_properties(); |
6145 { | 6145 { |
6146 LayerTreeHostImpl::FrameData frame; | 6146 FrameData frame; |
6147 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6147 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
6148 | 6148 |
6149 ASSERT_EQ(1u, frame.render_passes.size()); | 6149 ASSERT_EQ(1u, frame.render_passes.size()); |
6150 ASSERT_EQ(2u, frame.render_passes[0]->quad_list.size()); | 6150 ASSERT_EQ(2u, frame.render_passes[0]->quad_list.size()); |
6151 ASSERT_EQ(DrawQuad::RENDER_PASS, | 6151 ASSERT_EQ(DrawQuad::RENDER_PASS, |
6152 frame.render_passes[0]->quad_list.ElementAt(1)->material); | 6152 frame.render_passes[0]->quad_list.ElementAt(1)->material); |
6153 const RenderPassDrawQuad* replica_quad = RenderPassDrawQuad::MaterialCast( | 6153 const RenderPassDrawQuad* replica_quad = RenderPassDrawQuad::MaterialCast( |
6154 frame.render_passes[0]->quad_list.ElementAt(1)); | 6154 frame.render_passes[0]->quad_list.ElementAt(1)); |
6155 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), | 6155 EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(), |
6156 replica_quad->rect.ToString()); | 6156 replica_quad->rect.ToString()); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6216 gfx::Size mask_size(50, 50); | 6216 gfx::Size mask_size(50, 50); |
6217 mask_layer->SetBounds(mask_size); | 6217 mask_layer->SetBounds(mask_size); |
6218 mask_layer->SetContentBounds(mask_size); | 6218 mask_layer->SetContentBounds(mask_size); |
6219 mask_layer->SetPosition(gfx::PointF()); | 6219 mask_layer->SetPosition(gfx::PointF()); |
6220 mask_layer->SetDrawsContent(true); | 6220 mask_layer->SetDrawsContent(true); |
6221 | 6221 |
6222 float device_scale_factor = 1.f; | 6222 float device_scale_factor = 1.f; |
6223 host_impl_->SetViewportSize(root_size); | 6223 host_impl_->SetViewportSize(root_size); |
6224 host_impl_->SetDeviceScaleFactor(device_scale_factor); | 6224 host_impl_->SetDeviceScaleFactor(device_scale_factor); |
6225 { | 6225 { |
6226 LayerTreeHostImpl::FrameData frame; | 6226 FrameData frame; |
6227 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6227 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
6228 | 6228 |
6229 ASSERT_EQ(1u, frame.render_passes.size()); | 6229 ASSERT_EQ(1u, frame.render_passes.size()); |
6230 ASSERT_EQ(2u, frame.render_passes[0]->quad_list.size()); | 6230 ASSERT_EQ(2u, frame.render_passes[0]->quad_list.size()); |
6231 | 6231 |
6232 // The surface is 100x50. | 6232 // The surface is 100x50. |
6233 ASSERT_EQ(DrawQuad::RENDER_PASS, | 6233 ASSERT_EQ(DrawQuad::RENDER_PASS, |
6234 frame.render_passes[0]->quad_list.front()->material); | 6234 frame.render_passes[0]->quad_list.front()->material); |
6235 const RenderPassDrawQuad* render_pass_quad = | 6235 const RenderPassDrawQuad* render_pass_quad = |
6236 RenderPassDrawQuad::MaterialCast( | 6236 RenderPassDrawQuad::MaterialCast( |
(...skipping 14 matching lines...) Expand all Loading... |
6251 replica_quad->mask_uv_scale.ToString()); | 6251 replica_quad->mask_uv_scale.ToString()); |
6252 | 6252 |
6253 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 6253 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
6254 host_impl_->DidDrawAllLayers(frame); | 6254 host_impl_->DidDrawAllLayers(frame); |
6255 } | 6255 } |
6256 | 6256 |
6257 // Move the child to (-50, 0) instead. Now the mask should be moved to still | 6257 // Move the child to (-50, 0) instead. Now the mask should be moved to still |
6258 // cover the layer being replicated. | 6258 // cover the layer being replicated. |
6259 content_child_layer->SetPosition(gfx::Point(-50, 0)); | 6259 content_child_layer->SetPosition(gfx::Point(-50, 0)); |
6260 { | 6260 { |
6261 LayerTreeHostImpl::FrameData frame; | 6261 FrameData frame; |
6262 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6262 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
6263 | 6263 |
6264 ASSERT_EQ(1u, frame.render_passes.size()); | 6264 ASSERT_EQ(1u, frame.render_passes.size()); |
6265 ASSERT_EQ(2u, frame.render_passes[0]->quad_list.size()); | 6265 ASSERT_EQ(2u, frame.render_passes[0]->quad_list.size()); |
6266 | 6266 |
6267 // The surface is 100x50 with its origin at (-50, 0). | 6267 // The surface is 100x50 with its origin at (-50, 0). |
6268 ASSERT_EQ(DrawQuad::RENDER_PASS, | 6268 ASSERT_EQ(DrawQuad::RENDER_PASS, |
6269 frame.render_passes[0]->quad_list.front()->material); | 6269 frame.render_passes[0]->quad_list.front()->material); |
6270 const RenderPassDrawQuad* render_pass_quad = | 6270 const RenderPassDrawQuad* render_pass_quad = |
6271 RenderPassDrawQuad::MaterialCast( | 6271 RenderPassDrawQuad::MaterialCast( |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6349 gfx::Size mask_size(100, 100); | 6349 gfx::Size mask_size(100, 100); |
6350 mask_layer->SetBounds(mask_size); | 6350 mask_layer->SetBounds(mask_size); |
6351 mask_layer->SetContentBounds(mask_size); | 6351 mask_layer->SetContentBounds(mask_size); |
6352 mask_layer->SetPosition(gfx::PointF()); | 6352 mask_layer->SetPosition(gfx::PointF()); |
6353 mask_layer->SetDrawsContent(true); | 6353 mask_layer->SetDrawsContent(true); |
6354 | 6354 |
6355 float device_scale_factor = 1.f; | 6355 float device_scale_factor = 1.f; |
6356 host_impl_->SetViewportSize(root_size); | 6356 host_impl_->SetViewportSize(root_size); |
6357 host_impl_->SetDeviceScaleFactor(device_scale_factor); | 6357 host_impl_->SetDeviceScaleFactor(device_scale_factor); |
6358 { | 6358 { |
6359 LayerTreeHostImpl::FrameData frame; | 6359 FrameData frame; |
6360 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6360 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
6361 | 6361 |
6362 ASSERT_EQ(1u, frame.render_passes.size()); | 6362 ASSERT_EQ(1u, frame.render_passes.size()); |
6363 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); | 6363 ASSERT_EQ(1u, frame.render_passes[0]->quad_list.size()); |
6364 | 6364 |
6365 // The surface is clipped to 10x20. | 6365 // The surface is clipped to 10x20. |
6366 ASSERT_EQ(DrawQuad::RENDER_PASS, | 6366 ASSERT_EQ(DrawQuad::RENDER_PASS, |
6367 frame.render_passes[0]->quad_list.front()->material); | 6367 frame.render_passes[0]->quad_list.front()->material); |
6368 const RenderPassDrawQuad* render_pass_quad = | 6368 const RenderPassDrawQuad* render_pass_quad = |
6369 RenderPassDrawQuad::MaterialCast( | 6369 RenderPassDrawQuad::MaterialCast( |
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6434 gfx::ScrollOffset scroll_offset(100000, 0); | 6434 gfx::ScrollOffset scroll_offset(100000, 0); |
6435 scrolling_layer->SetScrollClipLayer(root->id()); | 6435 scrolling_layer->SetScrollClipLayer(root->id()); |
6436 scrolling_layer->PushScrollOffsetFromMainThread(scroll_offset); | 6436 scrolling_layer->PushScrollOffsetFromMainThread(scroll_offset); |
6437 | 6437 |
6438 host_impl_->ActivateSyncTree(); | 6438 host_impl_->ActivateSyncTree(); |
6439 | 6439 |
6440 bool update_lcd_text = false; | 6440 bool update_lcd_text = false; |
6441 host_impl_->active_tree()->UpdateDrawProperties(update_lcd_text); | 6441 host_impl_->active_tree()->UpdateDrawProperties(update_lcd_text); |
6442 ASSERT_EQ(1u, host_impl_->active_tree()->RenderSurfaceLayerList().size()); | 6442 ASSERT_EQ(1u, host_impl_->active_tree()->RenderSurfaceLayerList().size()); |
6443 | 6443 |
6444 LayerTreeHostImpl::FrameData frame; | 6444 FrameData frame; |
6445 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6445 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
6446 | 6446 |
6447 ASSERT_EQ(1u, frame.render_passes.size()); | 6447 ASSERT_EQ(1u, frame.render_passes.size()); |
6448 ASSERT_LE(1u, frame.render_passes[0]->quad_list.size()); | 6448 ASSERT_LE(1u, frame.render_passes[0]->quad_list.size()); |
6449 const DrawQuad* quad = frame.render_passes[0]->quad_list.front(); | 6449 const DrawQuad* quad = frame.render_passes[0]->quad_list.front(); |
6450 | 6450 |
6451 bool antialiased = | 6451 bool antialiased = |
6452 GLRendererWithSetupQuadForAntialiasing::ShouldAntialiasQuad( | 6452 GLRendererWithSetupQuadForAntialiasing::ShouldAntialiasQuad( |
6453 quad->quadTransform(), quad, false); | 6453 quad->quadTransform(), quad, false); |
6454 EXPECT_FALSE(antialiased); | 6454 EXPECT_FALSE(antialiased); |
(...skipping 11 matching lines...) Expand all Loading... |
6466 void DidSwapBuffersCompleteOnImplThread() override { | 6466 void DidSwapBuffersCompleteOnImplThread() override { |
6467 swap_buffers_complete_++; | 6467 swap_buffers_complete_++; |
6468 } | 6468 } |
6469 | 6469 |
6470 int swap_buffers_complete_; | 6470 int swap_buffers_complete_; |
6471 }; | 6471 }; |
6472 | 6472 |
6473 TEST_F(CompositorFrameMetadataTest, CompositorFrameAckCountsAsSwapComplete) { | 6473 TEST_F(CompositorFrameMetadataTest, CompositorFrameAckCountsAsSwapComplete) { |
6474 SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1)); | 6474 SetupRootLayerImpl(FakeLayerWithQuads::Create(host_impl_->active_tree(), 1)); |
6475 { | 6475 { |
6476 LayerTreeHostImpl::FrameData frame; | 6476 FrameData frame; |
6477 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6477 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
6478 host_impl_->DrawLayers(&frame, base::TimeTicks()); | 6478 host_impl_->DrawLayers(&frame, base::TimeTicks()); |
6479 host_impl_->DidDrawAllLayers(frame); | 6479 host_impl_->DidDrawAllLayers(frame); |
6480 } | 6480 } |
6481 CompositorFrameAck ack; | 6481 CompositorFrameAck ack; |
6482 host_impl_->ReclaimResources(&ack); | 6482 host_impl_->ReclaimResources(&ack); |
6483 host_impl_->DidSwapBuffersComplete(); | 6483 host_impl_->DidSwapBuffersComplete(); |
6484 EXPECT_EQ(swap_buffers_complete_, 1); | 6484 EXPECT_EQ(swap_buffers_complete_, 1); |
6485 } | 6485 } |
6486 | 6486 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6569 // VideoLayerImpl will not be drawn. | 6569 // VideoLayerImpl will not be drawn. |
6570 FakeVideoFrameProvider provider; | 6570 FakeVideoFrameProvider provider; |
6571 scoped_ptr<VideoLayerImpl> video_layer = VideoLayerImpl::Create( | 6571 scoped_ptr<VideoLayerImpl> video_layer = VideoLayerImpl::Create( |
6572 host_impl_->active_tree(), 2, &provider, media::VIDEO_ROTATION_0); | 6572 host_impl_->active_tree(), 2, &provider, media::VIDEO_ROTATION_0); |
6573 video_layer->SetBounds(gfx::Size(10, 10)); | 6573 video_layer->SetBounds(gfx::Size(10, 10)); |
6574 video_layer->SetContentBounds(gfx::Size(10, 10)); | 6574 video_layer->SetContentBounds(gfx::Size(10, 10)); |
6575 video_layer->SetDrawsContent(true); | 6575 video_layer->SetDrawsContent(true); |
6576 root_layer->AddChild(video_layer.Pass()); | 6576 root_layer->AddChild(video_layer.Pass()); |
6577 SetupRootLayerImpl(root_layer.Pass()); | 6577 SetupRootLayerImpl(root_layer.Pass()); |
6578 | 6578 |
6579 LayerTreeHostImpl::FrameData frame; | 6579 FrameData frame; |
6580 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6580 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
6581 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 6581 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
6582 host_impl_->DidDrawAllLayers(frame); | 6582 host_impl_->DidDrawAllLayers(frame); |
6583 | 6583 |
6584 EXPECT_EQ(1u, frame.will_draw_layers.size()); | 6584 EXPECT_EQ(1u, frame.will_draw_layers.size()); |
6585 EXPECT_EQ(host_impl_->active_tree()->root_layer(), frame.will_draw_layers[0]); | 6585 EXPECT_EQ(host_impl_->active_tree()->root_layer(), frame.will_draw_layers[0]); |
6586 } | 6586 } |
6587 | 6587 |
6588 class LayerTreeHostImplTestDeferredInitialize : public LayerTreeHostImplTest { | 6588 class LayerTreeHostImplTestDeferredInitialize : public LayerTreeHostImplTest { |
6589 protected: | 6589 protected: |
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6879 FakeOutputSurface::Create3d(context_provider)); | 6879 FakeOutputSurface::Create3d(context_provider)); |
6880 | 6880 |
6881 SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); | 6881 SetupRootLayerImpl(LayerImpl::Create(host_impl_->active_tree(), 1)); |
6882 | 6882 |
6883 ScopedPtrVector<CopyOutputRequest> requests; | 6883 ScopedPtrVector<CopyOutputRequest> requests; |
6884 requests.push_back(CopyOutputRequest::CreateRequest( | 6884 requests.push_back(CopyOutputRequest::CreateRequest( |
6885 base::Bind(&ShutdownReleasesContext_Callback))); | 6885 base::Bind(&ShutdownReleasesContext_Callback))); |
6886 | 6886 |
6887 host_impl_->active_tree()->root_layer()->PassCopyRequests(&requests); | 6887 host_impl_->active_tree()->root_layer()->PassCopyRequests(&requests); |
6888 | 6888 |
6889 LayerTreeHostImpl::FrameData frame; | 6889 FrameData frame; |
6890 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 6890 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
6891 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 6891 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
6892 host_impl_->DidDrawAllLayers(frame); | 6892 host_impl_->DidDrawAllLayers(frame); |
6893 | 6893 |
6894 // The CopyOutputResult's callback has a ref on the ContextProvider and a | 6894 // The CopyOutputResult's callback has a ref on the ContextProvider and a |
6895 // texture in a texture mailbox. | 6895 // texture in a texture mailbox. |
6896 EXPECT_FALSE(context_provider->HasOneRef()); | 6896 EXPECT_FALSE(context_provider->HasOneRef()); |
6897 EXPECT_EQ(1u, context_provider->TestContext3d()->NumTextures()); | 6897 EXPECT_EQ(1u, context_provider->TestContext3d()->NumTextures()); |
6898 | 6898 |
6899 host_impl_ = nullptr; | 6899 host_impl_ = nullptr; |
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7276 | 7276 |
7277 ui::LatencyInfo latency_info; | 7277 ui::LatencyInfo latency_info; |
7278 latency_info.AddLatencyNumber( | 7278 latency_info.AddLatencyNumber( |
7279 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, 0); | 7279 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, 0); |
7280 scoped_ptr<SwapPromise> swap_promise( | 7280 scoped_ptr<SwapPromise> swap_promise( |
7281 new LatencyInfoSwapPromise(latency_info)); | 7281 new LatencyInfoSwapPromise(latency_info)); |
7282 host_impl_->active_tree()->QueueSwapPromise(swap_promise.Pass()); | 7282 host_impl_->active_tree()->QueueSwapPromise(swap_promise.Pass()); |
7283 host_impl_->SetNeedsRedraw(); | 7283 host_impl_->SetNeedsRedraw(); |
7284 | 7284 |
7285 gfx::Rect full_frame_damage(host_impl_->DrawViewportSize()); | 7285 gfx::Rect full_frame_damage(host_impl_->DrawViewportSize()); |
7286 LayerTreeHostImpl::FrameData frame; | 7286 FrameData frame; |
7287 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7287 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
7288 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 7288 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
7289 host_impl_->DidDrawAllLayers(frame); | 7289 host_impl_->DidDrawAllLayers(frame); |
7290 EXPECT_TRUE(host_impl_->SwapBuffers(frame)); | 7290 EXPECT_TRUE(host_impl_->SwapBuffers(frame)); |
7291 | 7291 |
7292 const std::vector<ui::LatencyInfo>& metadata_latency_after = | 7292 const std::vector<ui::LatencyInfo>& metadata_latency_after = |
7293 fake_output_surface->last_sent_frame().metadata.latency_info; | 7293 fake_output_surface->last_sent_frame().metadata.latency_info; |
7294 EXPECT_EQ(1u, metadata_latency_after.size()); | 7294 EXPECT_EQ(1u, metadata_latency_after.size()); |
7295 EXPECT_TRUE(metadata_latency_after[0].FindLatency( | 7295 EXPECT_TRUE(metadata_latency_after[0].FindLatency( |
7296 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, NULL)); | 7296 ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, 0, NULL)); |
(...skipping 29 matching lines...) Expand all Loading... |
7326 start.layer_id = root_layer_id; | 7326 start.layer_id = root_layer_id; |
7327 start.edge_bottom = selection_bottom; | 7327 start.edge_bottom = selection_bottom; |
7328 start.edge_top = selection_top; | 7328 start.edge_top = selection_top; |
7329 end = start; | 7329 end = start; |
7330 host_impl_->active_tree()->RegisterSelection(start, end); | 7330 host_impl_->active_tree()->RegisterSelection(start, end); |
7331 | 7331 |
7332 // Trigger a draw-swap sequence. | 7332 // Trigger a draw-swap sequence. |
7333 host_impl_->SetNeedsRedraw(); | 7333 host_impl_->SetNeedsRedraw(); |
7334 | 7334 |
7335 gfx::Rect full_frame_damage(host_impl_->DrawViewportSize()); | 7335 gfx::Rect full_frame_damage(host_impl_->DrawViewportSize()); |
7336 LayerTreeHostImpl::FrameData frame; | 7336 FrameData frame; |
7337 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); | 7337 EXPECT_EQ(DRAW_SUCCESS, host_impl_->PrepareToDraw(&frame)); |
7338 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); | 7338 host_impl_->DrawLayers(&frame, gfx::FrameTime::Now()); |
7339 host_impl_->DidDrawAllLayers(frame); | 7339 host_impl_->DidDrawAllLayers(frame); |
7340 EXPECT_TRUE(host_impl_->SwapBuffers(frame)); | 7340 EXPECT_TRUE(host_impl_->SwapBuffers(frame)); |
7341 | 7341 |
7342 // Ensure the selection bounds have propagated to the frame metadata. | 7342 // Ensure the selection bounds have propagated to the frame metadata. |
7343 const ViewportSelectionBound& selection_start_after = | 7343 const ViewportSelectionBound& selection_start_after = |
7344 fake_output_surface->last_sent_frame().metadata.selection_start; | 7344 fake_output_surface->last_sent_frame().metadata.selection_start; |
7345 const ViewportSelectionBound& selection_end_after = | 7345 const ViewportSelectionBound& selection_end_after = |
7346 fake_output_surface->last_sent_frame().metadata.selection_end; | 7346 fake_output_surface->last_sent_frame().metadata.selection_end; |
(...skipping 1152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8499 // surface. | 8499 // surface. |
8500 EXPECT_EQ(0, num_lost_surfaces_); | 8500 EXPECT_EQ(0, num_lost_surfaces_); |
8501 host_impl_->DidLoseOutputSurface(); | 8501 host_impl_->DidLoseOutputSurface(); |
8502 EXPECT_EQ(1, num_lost_surfaces_); | 8502 EXPECT_EQ(1, num_lost_surfaces_); |
8503 host_impl_->DidLoseOutputSurface(); | 8503 host_impl_->DidLoseOutputSurface(); |
8504 EXPECT_LE(1, num_lost_surfaces_); | 8504 EXPECT_LE(1, num_lost_surfaces_); |
8505 } | 8505 } |
8506 | 8506 |
8507 } // namespace | 8507 } // namespace |
8508 } // namespace cc | 8508 } // namespace cc |
OLD | NEW |