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

Unified Diff: cc/trees/layer_tree_host_unittest.cc

Issue 2908073003: Ensure that mask layer is of the same size as the owning layer. (Closed)
Patch Set: style change Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cc/trees/layer_tree_host_unittest.cc
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
index 423f8126015d7ad6bfdb0f81314356455cd4db98..1bb3e30acfe37bdb24a3c3e4b35f6d80857dfc3a 100644
--- a/cc/trees/layer_tree_host_unittest.cc
+++ b/cc/trees/layer_tree_host_unittest.cc
@@ -1685,6 +1685,7 @@ class LayerTreeHostTestSwitchMaskLayer : public LayerTreeHostTest {
scoped_refptr<Layer> root = Layer::Create();
root->SetBounds(gfx::Size(10, 10));
child_layer_ = make_scoped_refptr(new UpdateCountingLayer);
+ child_layer_->SetBounds(gfx::Size(10, 10));
mask_layer_ = make_scoped_refptr(new UpdateCountingLayer);
mask_layer_->SetBounds(gfx::Size(10, 10));
child_layer_->SetMaskLayer(mask_layer_.get());
@@ -6991,12 +6992,12 @@ class LayerTreeTestMaskLayerForSurfaceWithClippedLayer : public LayerTreeTest {
content_layer->AddChild(content_child_layer);
std::unique_ptr<RecordingSource> recording_source =
- FakeRecordingSource::CreateFilledRecordingSource(gfx::Size(100, 100));
+ FakeRecordingSource::CreateFilledRecordingSource(gfx::Size(50, 50));
PaintFlags paint1, paint2;
static_cast<FakeRecordingSource*>(recording_source.get())
- ->add_draw_rect_with_flags(gfx::Rect(0, 0, 100, 90), paint1);
+ ->add_draw_rect_with_flags(gfx::Rect(0, 0, 50, 40), paint1);
static_cast<FakeRecordingSource*>(recording_source.get())
- ->add_draw_rect_with_flags(gfx::Rect(0, 90, 100, 10), paint2);
+ ->add_draw_rect_with_flags(gfx::Rect(0, 40, 50, 10), paint2);
client_.set_fill_with_nonsolid_color(true);
static_cast<FakeRecordingSource*>(recording_source.get())->Rerecord();
@@ -7023,7 +7024,7 @@ class LayerTreeTestMaskLayerForSurfaceWithClippedLayer : public LayerTreeTest {
content_child_layer->SetBounds(child_size);
content_child_layer->SetPosition(gfx::PointF(20.f, 0.f));
- gfx::Size mask_size(100, 100);
+ gfx::Size mask_size(50, 50);
mask_layer->SetBounds(mask_size);
mask_layer->SetLayerMaskType(Layer::LayerMaskType::MULTI_TEXTURE_MASK);
mask_layer_id_ = mask_layer->id();
@@ -7241,131 +7242,6 @@ class LayerTreeTestMultiTextureMaskLayerWithScaling
SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeTestMultiTextureMaskLayerWithScaling);
-class LayerTreeTestMaskLayerWithDifferentBounds : public LayerTreeTest {
- protected:
- void SetupTree() override {
- // The mask layer has bounds 100x100 but is attached to a layer with bounds
- // 50x50.
-
- scoped_refptr<Layer> root = Layer::Create();
-
- scoped_refptr<FakePictureLayer> content_layer =
- FakePictureLayer::Create(&client_);
- root->AddChild(content_layer);
-
- std::unique_ptr<RecordingSource> recording_source =
- FakeRecordingSource::CreateFilledRecordingSource(gfx::Size(100, 100));
- PaintFlags paint1, paint2;
- static_cast<FakeRecordingSource*>(recording_source.get())
- ->add_draw_rect_with_flags(gfx::Rect(0, 0, 100, 90), paint1);
- static_cast<FakeRecordingSource*>(recording_source.get())
- ->add_draw_rect_with_flags(gfx::Rect(0, 90, 100, 10), paint2);
- client_.set_fill_with_nonsolid_color(true);
- static_cast<FakeRecordingSource*>(recording_source.get())->Rerecord();
-
- scoped_refptr<FakePictureLayer> mask_layer =
- FakePictureLayer::CreateWithRecordingSource(
- &client_, std::move(recording_source));
- content_layer->SetMaskLayer(mask_layer.get());
-
- gfx::Size root_size(100, 100);
- root->SetBounds(root_size);
-
- gfx::Size layer_size(50, 50);
- content_layer->SetBounds(layer_size);
-
- gfx::Size mask_size(100, 100);
- mask_layer->SetBounds(mask_size);
- mask_layer->SetLayerMaskType(Layer::LayerMaskType::MULTI_TEXTURE_MASK);
-
- layer_tree_host()->SetRootLayer(root);
- LayerTreeTest::SetupTree();
- client_.set_bounds(root->bounds());
- }
-
- void BeginTest() override { PostSetNeedsCommitToMainThread(); }
-
- DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
- LayerTreeHostImpl::FrameData* frame_data,
- DrawResult draw_result) override {
- EXPECT_EQ(2u, frame_data->render_passes.size());
- RenderPass* root_pass = frame_data->render_passes.back().get();
- EXPECT_EQ(2u, root_pass->quad_list.size());
-
- // There's a solid color quad under everything.
- EXPECT_EQ(DrawQuad::SOLID_COLOR, root_pass->quad_list.back()->material);
-
- EXPECT_EQ(DrawQuad::RENDER_PASS, root_pass->quad_list.front()->material);
- const RenderPassDrawQuad* render_pass_quad =
- RenderPassDrawQuad::MaterialCast(root_pass->quad_list.front());
- switch (host_impl->active_tree()->source_frame_number()) {
- case 0:
- // Check that the mask fills the surface.
- EXPECT_EQ(gfx::Rect(0, 0, 50, 50).ToString(),
- render_pass_quad->rect.ToString());
- if (host_impl->settings().enable_mask_tiling) {
- EXPECT_EQ(gfx::RectF(0.f, 0.f, 50.f / 128.f, 50.f / 128.f).ToString(),
- render_pass_quad->mask_uv_rect.ToString());
- } else {
- EXPECT_EQ(gfx::RectF(0.f, 0.f, 1.f, 1.f).ToString(),
- render_pass_quad->mask_uv_rect.ToString());
- }
- break;
- case 1:
- // Applying a DSF should change the render surface size, but won't
- // affect which part of the mask is used.
- EXPECT_EQ(gfx::Rect(0, 0, 100, 100).ToString(),
- render_pass_quad->rect.ToString());
- if (host_impl->settings().enable_mask_tiling) {
- EXPECT_EQ(gfx::RectF(0.f, 0.f, 50.f / 128.f, 50.f / 128.f).ToString(),
- render_pass_quad->mask_uv_rect.ToString());
- } else {
- EXPECT_EQ(gfx::RectF(0.f, 0.f, 1.f, 1.f).ToString(),
- render_pass_quad->mask_uv_rect.ToString());
- }
- EndTest();
- break;
- }
- return draw_result;
- }
-
- void DidCommit() override {
- switch (layer_tree_host()->SourceFrameNumber()) {
- case 1:
- gfx::Size double_root_size(200, 200);
- layer_tree_host()->SetViewportSize(double_root_size);
- layer_tree_host()->SetDeviceScaleFactor(2.f);
- break;
- }
- }
-
- void AfterTest() override {}
-
- FakeContentLayerClient client_;
-};
-
-class LayerTreeTestSingleTextureMaskLayerWithDifferentBounds
- : public LayerTreeTestMaskLayerWithDifferentBounds {
- public:
- void InitializeSettings(LayerTreeSettings* settings) override {
- settings->enable_mask_tiling = false;
- }
-};
-
-SINGLE_AND_MULTI_THREAD_TEST_F(
- LayerTreeTestSingleTextureMaskLayerWithDifferentBounds);
-
-class LayerTreeTestMultiTextureMaskLayerWithDifferentBounds
- : public LayerTreeTestMaskLayerWithDifferentBounds {
- public:
- void InitializeSettings(LayerTreeSettings* settings) override {
- settings->enable_mask_tiling = true;
- }
-};
-
-SINGLE_AND_MULTI_THREAD_TEST_F(
- LayerTreeTestMultiTextureMaskLayerWithDifferentBounds);
-
class LayerTreeTestMaskWithNonExactTextureSize : public LayerTreeTest {
protected:
void SetupTree() override {
« no previous file with comments | « cc/trees/layer_tree_host_pixeltest_masks.cc ('k') | chrome/browser/ui/views/permission_bubble/permission_prompt_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698