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 2352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2363 } | 2363 } |
2364 | 2364 |
2365 protected: | 2365 protected: |
2366 gfx::Size layer_size_; | 2366 gfx::Size layer_size_; |
2367 gfx::Size clip_size_; | 2367 gfx::Size clip_size_; |
2368 gfx::Size viewport_size_; | 2368 gfx::Size viewport_size_; |
2369 | 2369 |
2370 LayerTreeSettings settings_; | 2370 LayerTreeSettings settings_; |
2371 }; // class LayerTreeHostImplTopControlsTest | 2371 }; // class LayerTreeHostImplTopControlsTest |
2372 | 2372 |
2373 TEST_F(LayerTreeHostImplTopControlsTest, | |
2374 TopControlsDeltaOnlySentWithRootLayer) { | |
2375 CreateHostImpl(settings_, CreateOutputSurface()); | |
2376 | |
2377 host_impl_->active_tree()->set_top_controls_delta(-20.f); | |
2378 | |
2379 // Because LTH::ApplyScrollAndScale doesn't know what to do with a scroll | |
2380 // delta packet when the root layer doesn't exist yet, make sure not to set | |
2381 // sent_top_controls_delta either to avoid the delta getting clobbered on the | |
2382 // next commit. | |
2383 scoped_ptr<ScrollAndScaleSet> scroll_info = host_impl_->ProcessScrollDeltas(); | |
2384 EXPECT_EQ(scroll_info->top_controls_delta, 0.f); | |
2385 EXPECT_EQ(host_impl_->active_tree()->sent_top_controls_delta(), 0.f); | |
2386 | |
2387 SetupTopControlsAndScrollLayer(); | |
2388 | |
2389 // After the root layer exists, it should be set normally. | |
2390 scroll_info = host_impl_->ProcessScrollDeltas(); | |
2391 EXPECT_EQ(scroll_info->top_controls_delta, -20.f); | |
2392 EXPECT_EQ(host_impl_->active_tree()->sent_top_controls_delta(), -20.f); | |
2393 } | |
2394 | |
2395 TEST_F(LayerTreeHostImplTopControlsTest, ScrollTopControlsByFractionalAmount) { | 2373 TEST_F(LayerTreeHostImplTopControlsTest, ScrollTopControlsByFractionalAmount) { |
2396 SetupTopControlsAndScrollLayerWithVirtualViewport( | 2374 SetupTopControlsAndScrollLayerWithVirtualViewport( |
2397 gfx::Size(10, 10), gfx::Size(10, 10), gfx::Size(10, 10)); | 2375 gfx::Size(10, 10), gfx::Size(10, 10), gfx::Size(10, 10)); |
2398 DrawFrame(); | 2376 DrawFrame(); |
2399 | 2377 |
2400 EXPECT_EQ(InputHandler::ScrollStarted, | 2378 EXPECT_EQ(InputHandler::ScrollStarted, |
2401 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture)); | 2379 host_impl_->ScrollBegin(gfx::Point(), InputHandler::Gesture)); |
2402 | 2380 |
2403 // Make the test scroll delta a fractional amount, to verify that the | 2381 // Make the test scroll delta a fractional amount, to verify that the |
2404 // fixed container size delta is (1) non-zero, and (2) fractional, and | 2382 // fixed container size delta is (1) non-zero, and (2) fractional, and |
(...skipping 2011 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4416 gutter_quad_material_ = material; | 4394 gutter_quad_material_ = material; |
4417 } | 4395 } |
4418 void set_gutter_texture_size(const gfx::Size& gutter_texture_size) { | 4396 void set_gutter_texture_size(const gfx::Size& gutter_texture_size) { |
4419 gutter_texture_size_ = gutter_texture_size; | 4397 gutter_texture_size_ = gutter_texture_size; |
4420 } | 4398 } |
4421 | 4399 |
4422 protected: | 4400 protected: |
4423 size_t CountGutterQuads(const QuadList& quad_list) { | 4401 size_t CountGutterQuads(const QuadList& quad_list) { |
4424 size_t num_gutter_quads = 0; | 4402 size_t num_gutter_quads = 0; |
4425 for (const auto& quad : quad_list) { | 4403 for (const auto& quad : quad_list) { |
4426 num_gutter_quads += (quad.material == gutter_quad_material_) ? 1 : 0; | 4404 num_gutter_quads += (quad->material == gutter_quad_material_) ? 1 : 0; |
4427 } | 4405 } |
4428 return num_gutter_quads; | 4406 return num_gutter_quads; |
4429 } | 4407 } |
4430 | 4408 |
4431 void VerifyQuadsExactlyCoverViewport(const QuadList& quad_list) { | 4409 void VerifyQuadsExactlyCoverViewport(const QuadList& quad_list) { |
4432 LayerTestCommon::VerifyQuadsExactlyCoverRect( | 4410 LayerTestCommon::VerifyQuadsExactlyCoverRect( |
4433 quad_list, gfx::Rect(DipSizeToPixelSize(viewport_size_))); | 4411 quad_list, gfx::Rect(DipSizeToPixelSize(viewport_size_))); |
4434 } | 4412 } |
4435 | 4413 |
4436 // Make sure that the texture coordinates match their expectations. | 4414 // Make sure that the texture coordinates match their expectations. |
4437 void ValidateTextureDrawQuads(const QuadList& quad_list) { | 4415 void ValidateTextureDrawQuads(const QuadList& quad_list) { |
4438 for (const auto& quad : quad_list) { | 4416 for (const auto& quad : quad_list) { |
4439 if (quad.material != DrawQuad::TEXTURE_CONTENT) | 4417 if (quad->material != DrawQuad::TEXTURE_CONTENT) |
4440 continue; | 4418 continue; |
4441 const TextureDrawQuad* texture_quad = | 4419 const TextureDrawQuad* texture_quad = TextureDrawQuad::MaterialCast(quad); |
4442 TextureDrawQuad::MaterialCast(&quad); | |
4443 gfx::SizeF gutter_texture_size_pixels = gfx::ScaleSize( | 4420 gfx::SizeF gutter_texture_size_pixels = gfx::ScaleSize( |
4444 gutter_texture_size_, host_impl_->device_scale_factor()); | 4421 gutter_texture_size_, host_impl_->device_scale_factor()); |
4445 EXPECT_EQ(texture_quad->uv_top_left.x(), | 4422 EXPECT_EQ(texture_quad->uv_top_left.x(), |
4446 texture_quad->rect.x() / gutter_texture_size_pixels.width()); | 4423 texture_quad->rect.x() / gutter_texture_size_pixels.width()); |
4447 EXPECT_EQ(texture_quad->uv_top_left.y(), | 4424 EXPECT_EQ(texture_quad->uv_top_left.y(), |
4448 texture_quad->rect.y() / gutter_texture_size_pixels.height()); | 4425 texture_quad->rect.y() / gutter_texture_size_pixels.height()); |
4449 EXPECT_EQ( | 4426 EXPECT_EQ( |
4450 texture_quad->uv_bottom_right.x(), | 4427 texture_quad->uv_bottom_right.x(), |
4451 texture_quad->rect.right() / gutter_texture_size_pixels.width()); | 4428 texture_quad->rect.right() / gutter_texture_size_pixels.width()); |
4452 EXPECT_EQ( | 4429 EXPECT_EQ( |
(...skipping 3090 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7543 // surface. | 7520 // surface. |
7544 EXPECT_EQ(0, num_lost_surfaces_); | 7521 EXPECT_EQ(0, num_lost_surfaces_); |
7545 host_impl_->DidLoseOutputSurface(); | 7522 host_impl_->DidLoseOutputSurface(); |
7546 EXPECT_EQ(1, num_lost_surfaces_); | 7523 EXPECT_EQ(1, num_lost_surfaces_); |
7547 host_impl_->DidLoseOutputSurface(); | 7524 host_impl_->DidLoseOutputSurface(); |
7548 EXPECT_LE(1, num_lost_surfaces_); | 7525 EXPECT_LE(1, num_lost_surfaces_); |
7549 } | 7526 } |
7550 | 7527 |
7551 } // namespace | 7528 } // namespace |
7552 } // namespace cc | 7529 } // namespace cc |
OLD | NEW |