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

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

Issue 2437923002: cc: Change ClipNode::applies_local_clip to a clip_type enum (Closed)
Patch Set: Fix Windows build Created 4 years, 1 month 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
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "platform/graphics/compositing/PaintArtifactCompositor.h" 5 #include "platform/graphics/compositing/PaintArtifactCompositor.h"
6 6
7 #include "base/test/test_simple_task_runner.h" 7 #include "base/test/test_simple_task_runner.h"
8 #include "base/threading/thread_task_runner_handle.h" 8 #include "base/threading/thread_task_runner_handle.h"
9 #include "cc/layers/layer.h" 9 #include "cc/layers/layer.h"
10 #include "cc/test/fake_compositor_frame_sink.h" 10 #include "cc/test/fake_compositor_frame_sink.h"
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 update(artifact.build()); 357 update(artifact.build());
358 358
359 ASSERT_EQ(1u, contentLayerCount()); 359 ASSERT_EQ(1u, contentLayerCount());
360 const cc::Layer* layer = contentLayerAt(0); 360 const cc::Layer* layer = contentLayerAt(0);
361 EXPECT_THAT(layer->GetPicture(), 361 EXPECT_THAT(layer->GetPicture(),
362 Pointee(drawsRectangle(FloatRect(0, 0, 300, 200), Color::black))); 362 Pointee(drawsRectangle(FloatRect(0, 0, 300, 200), Color::black)));
363 EXPECT_EQ(translation(220, 80), layer->screen_space_transform()); 363 EXPECT_EQ(translation(220, 80), layer->screen_space_transform());
364 364
365 const cc::ClipNode* clipNode = 365 const cc::ClipNode* clipNode =
366 propertyTrees().clip_tree.Node(layer->clip_tree_index()); 366 propertyTrees().clip_tree.Node(layer->clip_tree_index());
367 EXPECT_TRUE(clipNode->applies_local_clip); 367 EXPECT_EQ(cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP, clipNode->clip_type);
368 EXPECT_TRUE(clipNode->layers_are_clipped); 368 EXPECT_TRUE(clipNode->layers_are_clipped);
369 EXPECT_EQ(gfx::RectF(100, 100, 300, 200), clipNode->clip); 369 EXPECT_EQ(gfx::RectF(100, 100, 300, 200), clipNode->clip);
370 } 370 }
371 371
372 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, NestedClips) { 372 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, NestedClips) {
373 RefPtr<ClipPaintPropertyNode> clip1 = ClipPaintPropertyNode::create( 373 RefPtr<ClipPaintPropertyNode> clip1 = ClipPaintPropertyNode::create(
374 nullptr, nullptr, FloatRoundedRect(100, 100, 700, 700)); 374 nullptr, nullptr, FloatRoundedRect(100, 100, 700, 700));
375 RefPtr<ClipPaintPropertyNode> clip2 = ClipPaintPropertyNode::create( 375 RefPtr<ClipPaintPropertyNode> clip2 = ClipPaintPropertyNode::create(
376 clip1, nullptr, FloatRoundedRect(200, 200, 700, 100)); 376 clip1, nullptr, FloatRoundedRect(200, 200, 700, 100));
377 377
(...skipping 28 matching lines...) Expand all
406 EXPECT_EQ(translation(300, 350), darkGrayLayer->screen_space_transform()); 406 EXPECT_EQ(translation(300, 350), darkGrayLayer->screen_space_transform());
407 407
408 const cc::Layer* blackLayer = contentLayerAt(3); 408 const cc::Layer* blackLayer = contentLayerAt(3);
409 EXPECT_THAT(blackLayer->GetPicture(), 409 EXPECT_THAT(blackLayer->GetPicture(),
410 Pointee(drawsRectangle(FloatRect(0, 0, 100, 100), Color::black))); 410 Pointee(drawsRectangle(FloatRect(0, 0, 100, 100), Color::black)));
411 EXPECT_EQ(translation(300, 350), blackLayer->screen_space_transform()); 411 EXPECT_EQ(translation(300, 350), blackLayer->screen_space_transform());
412 412
413 EXPECT_EQ(whiteLayer->clip_tree_index(), darkGrayLayer->clip_tree_index()); 413 EXPECT_EQ(whiteLayer->clip_tree_index(), darkGrayLayer->clip_tree_index());
414 const cc::ClipNode* outerClip = 414 const cc::ClipNode* outerClip =
415 propertyTrees().clip_tree.Node(whiteLayer->clip_tree_index()); 415 propertyTrees().clip_tree.Node(whiteLayer->clip_tree_index());
416 EXPECT_TRUE(outerClip->applies_local_clip); 416 EXPECT_EQ(cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP, outerClip->clip_type);
417 EXPECT_TRUE(outerClip->layers_are_clipped); 417 EXPECT_TRUE(outerClip->layers_are_clipped);
418 EXPECT_EQ(gfx::RectF(100, 100, 700, 700), outerClip->clip); 418 EXPECT_EQ(gfx::RectF(100, 100, 700, 700), outerClip->clip);
419 419
420 EXPECT_EQ(lightGrayLayer->clip_tree_index(), blackLayer->clip_tree_index()); 420 EXPECT_EQ(lightGrayLayer->clip_tree_index(), blackLayer->clip_tree_index());
421 const cc::ClipNode* innerClip = 421 const cc::ClipNode* innerClip =
422 propertyTrees().clip_tree.Node(blackLayer->clip_tree_index()); 422 propertyTrees().clip_tree.Node(blackLayer->clip_tree_index());
423 EXPECT_TRUE(innerClip->applies_local_clip); 423 EXPECT_EQ(cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP, innerClip->clip_type);
424 EXPECT_TRUE(innerClip->layers_are_clipped); 424 EXPECT_TRUE(innerClip->layers_are_clipped);
425 EXPECT_EQ(gfx::RectF(200, 200, 700, 100), innerClip->clip); 425 EXPECT_EQ(gfx::RectF(200, 200, 700, 100), innerClip->clip);
426 EXPECT_EQ(outerClip->id, innerClip->parent_id); 426 EXPECT_EQ(outerClip->id, innerClip->parent_id);
427 } 427 }
428 428
429 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, DeeplyNestedClips) { 429 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, DeeplyNestedClips) {
430 Vector<RefPtr<ClipPaintPropertyNode>> clips; 430 Vector<RefPtr<ClipPaintPropertyNode>> clips;
431 for (unsigned i = 1; i <= 10; i++) { 431 for (unsigned i = 1; i <= 10; i++) {
432 clips.append(ClipPaintPropertyNode::create( 432 clips.append(ClipPaintPropertyNode::create(
433 clips.isEmpty() ? nullptr : clips.last(), nullptr, 433 clips.isEmpty() ? nullptr : clips.last(), nullptr,
(...skipping 10 matching lines...) Expand all
444 const cc::Layer* drawingLayer = contentLayerAt(0); 444 const cc::Layer* drawingLayer = contentLayerAt(0);
445 EXPECT_THAT(drawingLayer->GetPicture(), 445 EXPECT_THAT(drawingLayer->GetPicture(),
446 Pointee(drawsRectangle(FloatRect(0, 0, 200, 200), Color::white))); 446 Pointee(drawsRectangle(FloatRect(0, 0, 200, 200), Color::white)));
447 EXPECT_EQ(gfx::Transform(), drawingLayer->screen_space_transform()); 447 EXPECT_EQ(gfx::Transform(), drawingLayer->screen_space_transform());
448 448
449 // Check the clip nodes. 449 // Check the clip nodes.
450 const cc::ClipNode* clipNode = 450 const cc::ClipNode* clipNode =
451 propertyTrees().clip_tree.Node(drawingLayer->clip_tree_index()); 451 propertyTrees().clip_tree.Node(drawingLayer->clip_tree_index());
452 for (auto it = clips.rbegin(); it != clips.rend(); ++it) { 452 for (auto it = clips.rbegin(); it != clips.rend(); ++it) {
453 const ClipPaintPropertyNode* paintClipNode = it->get(); 453 const ClipPaintPropertyNode* paintClipNode = it->get();
454 EXPECT_TRUE(clipNode->applies_local_clip); 454 EXPECT_EQ(cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP, clipNode->clip_type);
455 EXPECT_TRUE(clipNode->layers_are_clipped); 455 EXPECT_TRUE(clipNode->layers_are_clipped);
456 EXPECT_EQ(paintClipNode->clipRect().rect(), clipNode->clip); 456 EXPECT_EQ(paintClipNode->clipRect().rect(), clipNode->clip);
457 clipNode = propertyTrees().clip_tree.Node(clipNode->parent_id); 457 clipNode = propertyTrees().clip_tree.Node(clipNode->parent_id);
458 } 458 }
459 } 459 }
460 460
461 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, SiblingClips) { 461 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, SiblingClips) {
462 RefPtr<ClipPaintPropertyNode> commonClip = ClipPaintPropertyNode::create( 462 RefPtr<ClipPaintPropertyNode> commonClip = ClipPaintPropertyNode::create(
463 nullptr, nullptr, FloatRoundedRect(0, 0, 800, 600)); 463 nullptr, nullptr, FloatRoundedRect(0, 0, 800, 600));
464 RefPtr<ClipPaintPropertyNode> clip1 = ClipPaintPropertyNode::create( 464 RefPtr<ClipPaintPropertyNode> clip1 = ClipPaintPropertyNode::create(
465 commonClip, nullptr, FloatRoundedRect(0, 0, 400, 600)); 465 commonClip, nullptr, FloatRoundedRect(0, 0, 400, 600));
466 RefPtr<ClipPaintPropertyNode> clip2 = ClipPaintPropertyNode::create( 466 RefPtr<ClipPaintPropertyNode> clip2 = ClipPaintPropertyNode::create(
467 commonClip, nullptr, FloatRoundedRect(400, 0, 400, 600)); 467 commonClip, nullptr, FloatRoundedRect(400, 0, 400, 600));
468 468
469 TestPaintArtifact artifact; 469 TestPaintArtifact artifact;
470 artifact.chunk(nullptr, clip1, dummyRootEffect()) 470 artifact.chunk(nullptr, clip1, dummyRootEffect())
471 .rectDrawing(FloatRect(0, 0, 640, 480), Color::white); 471 .rectDrawing(FloatRect(0, 0, 640, 480), Color::white);
472 artifact.chunk(nullptr, clip2, dummyRootEffect()) 472 artifact.chunk(nullptr, clip2, dummyRootEffect())
473 .rectDrawing(FloatRect(0, 0, 640, 480), Color::black); 473 .rectDrawing(FloatRect(0, 0, 640, 480), Color::black);
474 update(artifact.build()); 474 update(artifact.build());
475 475
476 ASSERT_EQ(2u, contentLayerCount()); 476 ASSERT_EQ(2u, contentLayerCount());
477 477
478 const cc::Layer* whiteLayer = contentLayerAt(0); 478 const cc::Layer* whiteLayer = contentLayerAt(0);
479 EXPECT_THAT(whiteLayer->GetPicture(), 479 EXPECT_THAT(whiteLayer->GetPicture(),
480 Pointee(drawsRectangle(FloatRect(0, 0, 640, 480), Color::white))); 480 Pointee(drawsRectangle(FloatRect(0, 0, 640, 480), Color::white)));
481 EXPECT_EQ(gfx::Transform(), whiteLayer->screen_space_transform()); 481 EXPECT_EQ(gfx::Transform(), whiteLayer->screen_space_transform());
482 const cc::ClipNode* whiteClip = 482 const cc::ClipNode* whiteClip =
483 propertyTrees().clip_tree.Node(whiteLayer->clip_tree_index()); 483 propertyTrees().clip_tree.Node(whiteLayer->clip_tree_index());
484 EXPECT_TRUE(whiteClip->applies_local_clip); 484 EXPECT_EQ(cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP, whiteClip->clip_type);
485 EXPECT_TRUE(whiteClip->layers_are_clipped); 485 EXPECT_TRUE(whiteClip->layers_are_clipped);
486 ASSERT_EQ(gfx::RectF(0, 0, 400, 600), whiteClip->clip); 486 ASSERT_EQ(gfx::RectF(0, 0, 400, 600), whiteClip->clip);
487 487
488 const cc::Layer* blackLayer = contentLayerAt(1); 488 const cc::Layer* blackLayer = contentLayerAt(1);
489 EXPECT_THAT(blackLayer->GetPicture(), 489 EXPECT_THAT(blackLayer->GetPicture(),
490 Pointee(drawsRectangle(FloatRect(0, 0, 640, 480), Color::black))); 490 Pointee(drawsRectangle(FloatRect(0, 0, 640, 480), Color::black)));
491 EXPECT_EQ(gfx::Transform(), blackLayer->screen_space_transform()); 491 EXPECT_EQ(gfx::Transform(), blackLayer->screen_space_transform());
492 const cc::ClipNode* blackClip = 492 const cc::ClipNode* blackClip =
493 propertyTrees().clip_tree.Node(blackLayer->clip_tree_index()); 493 propertyTrees().clip_tree.Node(blackLayer->clip_tree_index());
494 EXPECT_TRUE(blackClip->applies_local_clip); 494 EXPECT_EQ(cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP, blackClip->clip_type);
495 EXPECT_TRUE(blackClip->layers_are_clipped); 495 EXPECT_TRUE(blackClip->layers_are_clipped);
496 ASSERT_EQ(gfx::RectF(400, 0, 400, 600), blackClip->clip); 496 ASSERT_EQ(gfx::RectF(400, 0, 400, 600), blackClip->clip);
497 497
498 EXPECT_EQ(whiteClip->parent_id, blackClip->parent_id); 498 EXPECT_EQ(whiteClip->parent_id, blackClip->parent_id);
499 const cc::ClipNode* commonClipNode = 499 const cc::ClipNode* commonClipNode =
500 propertyTrees().clip_tree.Node(whiteClip->parent_id); 500 propertyTrees().clip_tree.Node(whiteClip->parent_id);
501 EXPECT_TRUE(commonClipNode->applies_local_clip); 501 EXPECT_EQ(cc::ClipNode::ClipType::APPLIES_LOCAL_CLIP,
502 commonClipNode->clip_type);
502 EXPECT_TRUE(commonClipNode->layers_are_clipped); 503 EXPECT_TRUE(commonClipNode->layers_are_clipped);
503 ASSERT_EQ(gfx::RectF(0, 0, 800, 600), commonClipNode->clip); 504 ASSERT_EQ(gfx::RectF(0, 0, 800, 600), commonClipNode->clip);
504 } 505 }
505 506
506 TEST_F(PaintArtifactCompositorTestWithPropertyTrees, 507 TEST_F(PaintArtifactCompositorTestWithPropertyTrees,
507 ForeignLayerPassesThrough) { 508 ForeignLayerPassesThrough) {
508 scoped_refptr<cc::Layer> layer = cc::Layer::Create(); 509 scoped_refptr<cc::Layer> layer = cc::Layer::Create();
509 510
510 TestPaintArtifact artifact; 511 TestPaintArtifact artifact;
511 artifact.chunk(PaintChunkProperties()) 512 artifact.chunk(PaintChunkProperties())
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
652 scrollTree.current_scroll_offset(contentLayerAt(1)->id())); 653 scrollTree.current_scroll_offset(contentLayerAt(1)->id()));
653 654
654 EXPECT_TRUE(scrollNodeA.main_thread_scrolling_reasons & 655 EXPECT_TRUE(scrollNodeA.main_thread_scrolling_reasons &
655 MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects); 656 MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects);
656 EXPECT_FALSE(scrollNodeB.main_thread_scrolling_reasons & 657 EXPECT_FALSE(scrollNodeB.main_thread_scrolling_reasons &
657 MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects); 658 MainThreadScrollingReason::kHasBackgroundAttachmentFixedObjects);
658 } 659 }
659 660
660 } // namespace 661 } // namespace
661 } // namespace blink 662 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698