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

Side by Side Diff: cc/layers/scrollbar_layer_unittest.cc

Issue 448303002: Use custom ListContainer to allocate DrawQuads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@perftest
Patch Set: fix win trybot compile error Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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 "base/containers/hash_tables.h" 5 #include "base/containers/hash_tables.h"
6 #include "cc/animation/scrollbar_animation_controller.h" 6 #include "cc/animation/scrollbar_animation_controller.h"
7 #include "cc/layers/append_quads_data.h" 7 #include "cc/layers/append_quads_data.h"
8 #include "cc/layers/painted_scrollbar_layer.h" 8 #include "cc/layers/painted_scrollbar_layer.h"
9 #include "cc/layers/painted_scrollbar_layer_impl.h" 9 #include "cc/layers/painted_scrollbar_layer_impl.h"
10 #include "cc/layers/scrollbar_layer_interface.h" 10 #include "cc/layers/scrollbar_layer_interface.h"
(...skipping 328 matching lines...) Expand 10 before | Expand all | Expand 10 after
339 // Thickness should be overridden to 3. 339 // Thickness should be overridden to 3.
340 { 340 {
341 MockOcclusionTracker<LayerImpl> occlusion_tracker; 341 MockOcclusionTracker<LayerImpl> occlusion_tracker;
342 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 342 scoped_ptr<RenderPass> render_pass = RenderPass::Create();
343 AppendQuadsData data; 343 AppendQuadsData data;
344 scrollbar_layer_impl->AppendQuads( 344 scrollbar_layer_impl->AppendQuads(
345 render_pass.get(), occlusion_tracker, &data); 345 render_pass.get(), occlusion_tracker, &data);
346 346
347 const QuadList& quads = render_pass->quad_list; 347 const QuadList& quads = render_pass->quad_list;
348 ASSERT_EQ(1u, quads.size()); 348 ASSERT_EQ(1u, quads.size());
349 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); 349 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads.front()->material);
350 EXPECT_RECT_EQ(gfx::Rect(6, 0, 39, 3), quads[0]->rect); 350 EXPECT_RECT_EQ(gfx::Rect(6, 0, 39, 3), quads.front()->rect);
351 } 351 }
352 352
353 // Contents scale should scale the draw quad. 353 // Contents scale should scale the draw quad.
354 scrollbar_layer_impl->draw_properties().contents_scale_x = 2.f; 354 scrollbar_layer_impl->draw_properties().contents_scale_x = 2.f;
355 scrollbar_layer_impl->draw_properties().contents_scale_y = 2.f; 355 scrollbar_layer_impl->draw_properties().contents_scale_y = 2.f;
356 { 356 {
357 MockOcclusionTracker<LayerImpl> occlusion_tracker; 357 MockOcclusionTracker<LayerImpl> occlusion_tracker;
358 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 358 scoped_ptr<RenderPass> render_pass = RenderPass::Create();
359 AppendQuadsData data; 359 AppendQuadsData data;
360 scrollbar_layer_impl->AppendQuads( 360 scrollbar_layer_impl->AppendQuads(
361 render_pass.get(), occlusion_tracker, &data); 361 render_pass.get(), occlusion_tracker, &data);
362 362
363 const QuadList& quads = render_pass->quad_list; 363 const QuadList& quads = render_pass->quad_list;
364 ASSERT_EQ(1u, quads.size()); 364 ASSERT_EQ(1u, quads.size());
365 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); 365 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads.front()->material);
366 EXPECT_RECT_EQ(gfx::Rect(12, 0, 78, 6), quads[0]->rect); 366 EXPECT_RECT_EQ(gfx::Rect(12, 0, 78, 6), quads.front()->rect);
367 } 367 }
368 scrollbar_layer_impl->draw_properties().contents_scale_x = 1.f; 368 scrollbar_layer_impl->draw_properties().contents_scale_x = 1.f;
369 scrollbar_layer_impl->draw_properties().contents_scale_y = 1.f; 369 scrollbar_layer_impl->draw_properties().contents_scale_y = 1.f;
370 370
371 // For solid color scrollbars, position and size should reflect the 371 // For solid color scrollbars, position and size should reflect the
372 // current viewport state. 372 // current viewport state.
373 scrollbar_layer_impl->SetVisibleToTotalLengthRatio(0.2f); 373 scrollbar_layer_impl->SetVisibleToTotalLengthRatio(0.2f);
374 { 374 {
375 MockOcclusionTracker<LayerImpl> occlusion_tracker; 375 MockOcclusionTracker<LayerImpl> occlusion_tracker;
376 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 376 scoped_ptr<RenderPass> render_pass = RenderPass::Create();
377 AppendQuadsData data; 377 AppendQuadsData data;
378 scrollbar_layer_impl->AppendQuads( 378 scrollbar_layer_impl->AppendQuads(
379 render_pass.get(), occlusion_tracker, &data); 379 render_pass.get(), occlusion_tracker, &data);
380 380
381 const QuadList& quads = render_pass->quad_list; 381 const QuadList& quads = render_pass->quad_list;
382 ASSERT_EQ(1u, quads.size()); 382 ASSERT_EQ(1u, quads.size());
383 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); 383 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads.front()->material);
384 EXPECT_RECT_EQ(gfx::Rect(8, 0, 19, 3), quads[0]->rect); 384 EXPECT_RECT_EQ(gfx::Rect(8, 0, 19, 3), quads.front()->rect);
385 } 385 }
386 386
387 // We shouldn't attempt div-by-zero when the maximum is zero. 387 // We shouldn't attempt div-by-zero when the maximum is zero.
388 scrollbar_layer_impl->SetCurrentPos(0.f); 388 scrollbar_layer_impl->SetCurrentPos(0.f);
389 scrollbar_layer_impl->SetMaximum(0); 389 scrollbar_layer_impl->SetMaximum(0);
390 { 390 {
391 MockOcclusionTracker<LayerImpl> occlusion_tracker; 391 MockOcclusionTracker<LayerImpl> occlusion_tracker;
392 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 392 scoped_ptr<RenderPass> render_pass = RenderPass::Create();
393 AppendQuadsData data; 393 AppendQuadsData data;
394 scrollbar_layer_impl->AppendQuads( 394 scrollbar_layer_impl->AppendQuads(
395 render_pass.get(), occlusion_tracker, &data); 395 render_pass.get(), occlusion_tracker, &data);
396 396
397 const QuadList& quads = render_pass->quad_list; 397 const QuadList& quads = render_pass->quad_list;
398 ASSERT_EQ(1u, quads.size()); 398 ASSERT_EQ(1u, quads.size());
399 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); 399 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads.front()->material);
400 EXPECT_RECT_EQ(gfx::Rect(1, 0, 19, 3), quads[0]->rect); 400 EXPECT_RECT_EQ(gfx::Rect(1, 0, 19, 3), quads.front()->rect);
401 } 401 }
402 } 402 }
403 403
404 TEST(ScrollbarLayerTest, LayerDrivenSolidColorDrawQuads) { 404 TEST(ScrollbarLayerTest, LayerDrivenSolidColorDrawQuads) {
405 const int kThumbThickness = 3; 405 const int kThumbThickness = 3;
406 const int kTrackStart = 0; 406 const int kTrackStart = 0;
407 const int kTrackLength = 10; 407 const int kTrackLength = 10;
408 408
409 LayerTreeSettings layer_tree_settings; 409 LayerTreeSettings layer_tree_settings;
410 scoped_ptr<FakeLayerTreeHost> host = 410 scoped_ptr<FakeLayerTreeHost> host =
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 { 449 {
450 MockOcclusionTracker<LayerImpl> occlusion_tracker; 450 MockOcclusionTracker<LayerImpl> occlusion_tracker;
451 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); 451 scoped_ptr<RenderPass> render_pass = RenderPass::Create();
452 452
453 AppendQuadsData data; 453 AppendQuadsData data;
454 scrollbar_layer_impl->AppendQuads( 454 scrollbar_layer_impl->AppendQuads(
455 render_pass.get(), occlusion_tracker, &data); 455 render_pass.get(), occlusion_tracker, &data);
456 456
457 const QuadList& quads = render_pass->quad_list; 457 const QuadList& quads = render_pass->quad_list;
458 ASSERT_EQ(1u, quads.size()); 458 ASSERT_EQ(1u, quads.size());
459 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads[0]->material); 459 EXPECT_EQ(DrawQuad::SOLID_COLOR, quads.front()->material);
460 EXPECT_RECT_EQ(gfx::Rect(3, 0, 3, 3), quads[0]->rect); 460 EXPECT_RECT_EQ(gfx::Rect(3, 0, 3, 3), quads.front()->rect);
461 } 461 }
462 } 462 }
463 463
464 class ScrollbarLayerSolidColorThumbTest : public testing::Test { 464 class ScrollbarLayerSolidColorThumbTest : public testing::Test {
465 public: 465 public:
466 ScrollbarLayerSolidColorThumbTest() { 466 ScrollbarLayerSolidColorThumbTest() {
467 LayerTreeSettings layer_tree_settings; 467 LayerTreeSettings layer_tree_settings;
468 host_impl_.reset(new FakeLayerTreeHostImpl( 468 host_impl_.reset(new FakeLayerTreeHostImpl(
469 layer_tree_settings, &proxy_, &shared_bitmap_manager_)); 469 layer_tree_settings, &proxy_, &shared_bitmap_manager_));
470 470
(...skipping 624 matching lines...) Expand 10 before | Expand all | Expand 10 after
1095 TestScale(gfx::Rect(1240, 0, 15, 1333), 2.7754839f); 1095 TestScale(gfx::Rect(1240, 0, 15, 1333), 2.7754839f);
1096 TestScale(gfx::Rect(1240, 0, 15, 677), 2.46677136f); 1096 TestScale(gfx::Rect(1240, 0, 15, 677), 2.46677136f);
1097 1097
1098 // Horizontal Scrollbars. 1098 // Horizontal Scrollbars.
1099 TestScale(gfx::Rect(0, 1240, 1333, 15), 2.7754839f); 1099 TestScale(gfx::Rect(0, 1240, 1333, 15), 2.7754839f);
1100 TestScale(gfx::Rect(0, 1240, 677, 15), 2.46677136f); 1100 TestScale(gfx::Rect(0, 1240, 677, 15), 2.46677136f);
1101 } 1101 }
1102 1102
1103 } // namespace 1103 } // namespace
1104 } // namespace cc 1104 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698