| Index: ui/accelerated_widget_mac/ca_layer_tree_unittest_mac.mm
|
| diff --git a/ui/accelerated_widget_mac/ca_layer_tree_unittest_mac.mm b/ui/accelerated_widget_mac/ca_layer_tree_unittest_mac.mm
|
| index 8639241e0f9322c09b0b28031281693970e57a33..fe5b2249a0d9fea1b917e4dddd7814159dc2fb07 100644
|
| --- a/ui/accelerated_widget_mac/ca_layer_tree_unittest_mac.mm
|
| +++ b/ui/accelerated_widget_mac/ca_layer_tree_unittest_mac.mm
|
| @@ -16,6 +16,48 @@
|
|
|
| namespace gpu {
|
|
|
| +namespace {
|
| +
|
| +struct CALayerProperties {
|
| + bool is_clipped = true;
|
| + gfx::Rect clip_rect;
|
| + int sorting_context_id = 0;
|
| + gfx::Transform transform;
|
| + gfx::RectF contents_rect = gfx::RectF(0.0f, 0.0f, 1.0f, 1.0f);
|
| + gfx::Rect rect = gfx::Rect(0, 0, 256, 256);
|
| + unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0xFF, 0xFF);
|
| + unsigned edge_aa_mask = 0;
|
| + float opacity = 1.0f;
|
| + float scale_factor = 1.0f;
|
| + unsigned filter = GL_LINEAR;
|
| + base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer;
|
| + base::ScopedCFTypeRef<IOSurfaceRef> io_surface;
|
| +};
|
| +
|
| +bool ScheduleCALayer(ui::CARendererLayerTree* tree,
|
| + CALayerProperties* properties) {
|
| + return tree->ScheduleCALayer(
|
| + properties->is_clipped, properties->clip_rect,
|
| + properties->sorting_context_id, properties->transform,
|
| + properties->io_surface, properties->cv_pixel_buffer,
|
| + properties->contents_rect, properties->rect, properties->background_color,
|
| + properties->edge_aa_mask, properties->opacity, properties->filter);
|
| +}
|
| +
|
| +void UpdateCALayerTree(std::unique_ptr<ui::CARendererLayerTree>& ca_layer_tree,
|
| + CALayerProperties* properties,
|
| + CALayer* superlayer) {
|
| + std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| + new ui::CARendererLayerTree);
|
| + bool result = ScheduleCALayer(new_ca_layer_tree.get(), properties);
|
| + EXPECT_TRUE(result);
|
| + new_ca_layer_tree->CommitScheduledCALayers(
|
| + superlayer, std::move(ca_layer_tree), properties->scale_factor);
|
| + std::swap(new_ca_layer_tree, ca_layer_tree);
|
| +}
|
| +
|
| +} // namespace
|
| +
|
| class CALayerTreeTest : public testing::Test {
|
| protected:
|
| void SetUp() override {
|
| @@ -30,21 +72,16 @@ class CALayerTreeTest : public testing::Test {
|
|
|
| // Test updating each layer's properties.
|
| TEST_F(CALayerTreeTest, PropertyUpdates) {
|
| - base::ScopedCFTypeRef<IOSurfaceRef> io_surface(gfx::CreateIOSurface(
|
| - gfx::Size(256, 256), gfx::BufferFormat::BGRA_8888));
|
| - bool is_clipped = true;
|
| - gfx::Rect clip_rect(2, 4, 8, 16);
|
| - int sorting_context_id = 0;
|
| - gfx::Transform transform;
|
| - transform.Translate(10, 20);
|
| - gfx::RectF contents_rect(0.0f, 0.25f, 0.5f, 0.75f);
|
| - gfx::Rect rect(16, 32, 64, 128);
|
| - unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0, 0);
|
| - unsigned edge_aa_mask = GL_CA_LAYER_EDGE_LEFT_CHROMIUM;
|
| - float opacity = 0.5f;
|
| - unsigned filter = GL_LINEAR;
|
| - float scale_factor = 1.0f;
|
| - bool result = false;
|
| + CALayerProperties properties;
|
| + properties.clip_rect = gfx::Rect(2, 4, 8, 16);
|
| + properties.transform.Translate(10, 20);
|
| + properties.contents_rect = gfx::RectF(0.0f, 0.25f, 0.5f, 0.75f);
|
| + properties.rect = gfx::Rect(16, 32, 64, 128);
|
| + properties.background_color = SkColorSetARGB(0xFF, 0xFF, 0, 0);
|
| + properties.edge_aa_mask = GL_CA_LAYER_EDGE_LEFT_CHROMIUM;
|
| + properties.opacity = 0.5f;
|
| + properties.io_surface =
|
| + gfx::CreateIOSurface(gfx::Size(256, 256), gfx::BufferFormat::BGRA_8888);
|
|
|
| std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree;
|
| CALayer* root_layer = nil;
|
| @@ -56,23 +93,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
| {
|
| std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| +
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -86,56 +108,41 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
|
|
| // Validate the clip and sorting context layer.
|
| EXPECT_TRUE([clip_and_sorting_layer masksToBounds]);
|
| - EXPECT_EQ(gfx::Rect(clip_rect.size()),
|
| + EXPECT_EQ(gfx::Rect(properties.clip_rect.size()),
|
| gfx::Rect([clip_and_sorting_layer bounds]));
|
| - EXPECT_EQ(clip_rect.origin(),
|
| + EXPECT_EQ(properties.clip_rect.origin(),
|
| gfx::Point([clip_and_sorting_layer position]));
|
| - EXPECT_EQ(-clip_rect.origin().x(),
|
| + EXPECT_EQ(-properties.clip_rect.origin().x(),
|
| [clip_and_sorting_layer sublayerTransform].m41);
|
| - EXPECT_EQ(-clip_rect.origin().y(),
|
| + EXPECT_EQ(-properties.clip_rect.origin().y(),
|
| [clip_and_sorting_layer sublayerTransform].m42);
|
|
|
| // Validate the transform layer.
|
| - EXPECT_EQ(transform.matrix().get(3, 0),
|
| + EXPECT_EQ(properties.transform.matrix().get(3, 0),
|
| [transform_layer sublayerTransform].m41);
|
| - EXPECT_EQ(transform.matrix().get(3, 1),
|
| + EXPECT_EQ(properties.transform.matrix().get(3, 1),
|
| [transform_layer sublayerTransform].m42);
|
|
|
| // Validate the content layer.
|
| - EXPECT_EQ(static_cast<id>(io_surface.get()), [content_layer contents]);
|
| - EXPECT_EQ(contents_rect, gfx::RectF([content_layer contentsRect]));
|
| - EXPECT_EQ(rect.origin(), gfx::Point([content_layer position]));
|
| - EXPECT_EQ(gfx::Rect(rect.size()), gfx::Rect([content_layer bounds]));
|
| + EXPECT_EQ(static_cast<id>(properties.io_surface.get()),
|
| + [content_layer contents]);
|
| + EXPECT_EQ(properties.contents_rect,
|
| + gfx::RectF([content_layer contentsRect]));
|
| + EXPECT_EQ(properties.rect.origin(), gfx::Point([content_layer position]));
|
| + EXPECT_EQ(gfx::Rect(properties.rect.size()),
|
| + gfx::Rect([content_layer bounds]));
|
| EXPECT_EQ(kCALayerLeftEdge, [content_layer edgeAntialiasingMask]);
|
| - EXPECT_EQ(opacity, [content_layer opacity]);
|
| + EXPECT_EQ(properties.opacity, [content_layer opacity]);
|
| EXPECT_NSEQ(kCAFilterLinear, [content_layer minificationFilter]);
|
| EXPECT_NSEQ(kCAFilterLinear, [content_layer magnificationFilter]);
|
| if ([content_layer respondsToSelector:(@selector(contentsScale))])
|
| - EXPECT_EQ(scale_factor, [content_layer contentsScale]);
|
| + EXPECT_EQ(properties.scale_factor, [content_layer contentsScale]);
|
| }
|
|
|
| // Update just the clip rect and re-commit.
|
| {
|
| - clip_rect = gfx::Rect(4, 8, 16, 32);
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + properties.clip_rect = gfx::Rect(4, 8, 16, 32);
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -148,38 +155,20 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
|
|
| // Validate the clip and sorting context layer.
|
| EXPECT_TRUE([clip_and_sorting_layer masksToBounds]);
|
| - EXPECT_EQ(gfx::Rect(clip_rect.size()),
|
| + EXPECT_EQ(gfx::Rect(properties.clip_rect.size()),
|
| gfx::Rect([clip_and_sorting_layer bounds]));
|
| - EXPECT_EQ(clip_rect.origin(),
|
| + EXPECT_EQ(properties.clip_rect.origin(),
|
| gfx::Point([clip_and_sorting_layer position]));
|
| - EXPECT_EQ(-clip_rect.origin().x(),
|
| + EXPECT_EQ(-properties.clip_rect.origin().x(),
|
| [clip_and_sorting_layer sublayerTransform].m41);
|
| - EXPECT_EQ(-clip_rect.origin().y(),
|
| + EXPECT_EQ(-properties.clip_rect.origin().y(),
|
| [clip_and_sorting_layer sublayerTransform].m42);
|
| }
|
|
|
| // Disable clipping and re-commit.
|
| {
|
| - is_clipped = false;
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + properties.is_clipped = false;
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -201,26 +190,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
|
|
| // Change the transform and re-commit.
|
| {
|
| - transform.Translate(5, 5);
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + properties.transform.Translate(5, 5);
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -232,34 +203,16 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
| [[clip_and_sorting_layer sublayers] objectAtIndex:0]);
|
|
|
| // Validate the transform layer.
|
| - EXPECT_EQ(transform.matrix().get(3, 0),
|
| + EXPECT_EQ(properties.transform.matrix().get(3, 0),
|
| [transform_layer sublayerTransform].m41);
|
| - EXPECT_EQ(transform.matrix().get(3, 1),
|
| + EXPECT_EQ(properties.transform.matrix().get(3, 1),
|
| [transform_layer sublayerTransform].m42);
|
| }
|
|
|
| // Change the edge antialiasing mask and commit.
|
| {
|
| - edge_aa_mask = GL_CA_LAYER_EDGE_TOP_CHROMIUM;
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + properties.edge_aa_mask = GL_CA_LAYER_EDGE_TOP_CHROMIUM;
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -278,25 +231,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
|
|
| // Change the contents and commit.
|
| {
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - nullptr,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + properties.io_surface = nullptr;
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -316,26 +252,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
|
|
| // Change the rect size.
|
| {
|
| - rect = gfx::Rect(rect.origin(), gfx::Size(32, 16));
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - nullptr,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + properties.rect = gfx::Rect(properties.rect.origin(), gfx::Size(32, 16));
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -349,32 +267,15 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
| EXPECT_EQ(content_layer, [[transform_layer sublayers] objectAtIndex:0]);
|
|
|
| // Validate the content layer.
|
| - EXPECT_EQ(rect.origin(), gfx::Point([content_layer position]));
|
| - EXPECT_EQ(gfx::Rect(rect.size()), gfx::Rect([content_layer bounds]));
|
| + EXPECT_EQ(properties.rect.origin(), gfx::Point([content_layer position]));
|
| + EXPECT_EQ(gfx::Rect(properties.rect.size()),
|
| + gfx::Rect([content_layer bounds]));
|
| }
|
|
|
| // Change the rect position.
|
| {
|
| - rect = gfx::Rect(gfx::Point(16, 4), rect.size());
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - nullptr,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + properties.rect = gfx::Rect(gfx::Point(16, 4), properties.rect.size());
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -388,32 +289,15 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
| EXPECT_EQ(content_layer, [[transform_layer sublayers] objectAtIndex:0]);
|
|
|
| // Validate the content layer.
|
| - EXPECT_EQ(rect.origin(), gfx::Point([content_layer position]));
|
| - EXPECT_EQ(gfx::Rect(rect.size()), gfx::Rect([content_layer bounds]));
|
| + EXPECT_EQ(properties.rect.origin(), gfx::Point([content_layer position]));
|
| + EXPECT_EQ(gfx::Rect(properties.rect.size()),
|
| + gfx::Rect([content_layer bounds]));
|
| }
|
|
|
| // Change the opacity.
|
| {
|
| - opacity = 1.0f;
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - nullptr,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + properties.opacity = 1.0f;
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -427,31 +311,13 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
| EXPECT_EQ(content_layer, [[transform_layer sublayers] objectAtIndex:0]);
|
|
|
| // Validate the content layer.
|
| - EXPECT_EQ(opacity, [content_layer opacity]);
|
| + EXPECT_EQ(properties.opacity, [content_layer opacity]);
|
| }
|
|
|
| // Change the filter.
|
| {
|
| - filter = GL_NEAREST;
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - nullptr,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + properties.filter = GL_NEAREST;
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -471,26 +337,10 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
|
|
| // Add the clipping and IOSurface contents back.
|
| {
|
| - is_clipped = true;
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + properties.is_clipped = true;
|
| + properties.io_surface =
|
| + gfx::CreateIOSurface(gfx::Size(256, 256), gfx::BufferFormat::BGRA_8888);
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -504,32 +354,15 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
| EXPECT_EQ(content_layer, [[transform_layer sublayers] objectAtIndex:0]);
|
|
|
| // Validate the content layer.
|
| - EXPECT_EQ(static_cast<id>(io_surface.get()), [content_layer contents]);
|
| + EXPECT_EQ(static_cast<id>(properties.io_surface.get()),
|
| + [content_layer contents]);
|
| EXPECT_EQ(kCALayerBottomEdge, [content_layer edgeAntialiasingMask]);
|
| }
|
|
|
| // Change the scale factor. This should result in a new tree being created.
|
| {
|
| - scale_factor = 2.0f;
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + properties.scale_factor = 2.0f;
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -548,47 +381,47 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
|
|
|
| // Validate the clip and sorting context layer.
|
| EXPECT_TRUE([clip_and_sorting_layer masksToBounds]);
|
| - EXPECT_EQ(gfx::ConvertRectToDIP(scale_factor, gfx::Rect(clip_rect.size())),
|
| + EXPECT_EQ(gfx::ConvertRectToDIP(properties.scale_factor,
|
| + gfx::Rect(properties.clip_rect.size())),
|
| gfx::Rect([clip_and_sorting_layer bounds]));
|
| - EXPECT_EQ(gfx::ConvertPointToDIP(scale_factor, clip_rect.origin()),
|
| + EXPECT_EQ(gfx::ConvertPointToDIP(properties.scale_factor,
|
| + properties.clip_rect.origin()),
|
| gfx::Point([clip_and_sorting_layer position]));
|
| - EXPECT_EQ(-clip_rect.origin().x() / scale_factor,
|
| + EXPECT_EQ(-properties.clip_rect.origin().x() / properties.scale_factor,
|
| [clip_and_sorting_layer sublayerTransform].m41);
|
| - EXPECT_EQ(-clip_rect.origin().y() / scale_factor,
|
| + EXPECT_EQ(-properties.clip_rect.origin().y() / properties.scale_factor,
|
| [clip_and_sorting_layer sublayerTransform].m42);
|
|
|
| // Validate the transform layer.
|
| - EXPECT_EQ(transform.matrix().get(3, 0) / scale_factor,
|
| + EXPECT_EQ(properties.transform.matrix().get(3, 0) / properties.scale_factor,
|
| [transform_layer sublayerTransform].m41);
|
| - EXPECT_EQ(transform.matrix().get(3, 1) / scale_factor,
|
| + EXPECT_EQ(properties.transform.matrix().get(3, 1) / properties.scale_factor,
|
| [transform_layer sublayerTransform].m42);
|
|
|
| // Validate the content layer.
|
| - EXPECT_EQ(static_cast<id>(io_surface.get()), [content_layer contents]);
|
| - EXPECT_EQ(contents_rect, gfx::RectF([content_layer contentsRect]));
|
| - EXPECT_EQ(gfx::ConvertPointToDIP(scale_factor, rect.origin()),
|
| + EXPECT_EQ(static_cast<id>(properties.io_surface.get()),
|
| + [content_layer contents]);
|
| + EXPECT_EQ(properties.contents_rect,
|
| + gfx::RectF([content_layer contentsRect]));
|
| + EXPECT_EQ(gfx::ConvertPointToDIP(properties.scale_factor,
|
| + properties.rect.origin()),
|
| gfx::Point([content_layer position]));
|
| - EXPECT_EQ(gfx::ConvertRectToDIP(scale_factor, gfx::Rect(rect.size())),
|
| + EXPECT_EQ(gfx::ConvertRectToDIP(properties.scale_factor,
|
| + gfx::Rect(properties.rect.size())),
|
| gfx::Rect([content_layer bounds]));
|
| EXPECT_EQ(kCALayerBottomEdge, [content_layer edgeAntialiasingMask]);
|
| - EXPECT_EQ(opacity, [content_layer opacity]);
|
| + EXPECT_EQ(properties.opacity, [content_layer opacity]);
|
| if ([content_layer respondsToSelector:(@selector(contentsScale))])
|
| - EXPECT_EQ(scale_factor, [content_layer contentsScale]);
|
| + EXPECT_EQ(properties.scale_factor, [content_layer contentsScale]);
|
| }
|
| }
|
|
|
| // Verify that sorting context zero is split at non-flat transforms.
|
| TEST_F(CALayerTreeTest, SplitSortingContextZero) {
|
| - bool is_clipped = false;
|
| - gfx::Rect clip_rect;
|
| - int sorting_context_id = 0;
|
| - gfx::RectF contents_rect(0, 0, 1, 1);
|
| - gfx::Rect rect(0, 0, 256, 256);
|
| - unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0xFF, 0xFF);
|
| - unsigned edge_aa_mask = 0;
|
| - float opacity = 1.0f;
|
| - float scale_factor = 1.0f;
|
| - unsigned filter = GL_LINEAR;
|
| + CALayerProperties properties;
|
| + properties.is_clipped = false;
|
| + properties.clip_rect = gfx::Rect();
|
| + properties.rect = gfx::Rect(0, 0, 256, 256);
|
|
|
| // We'll use the IOSurface contents to identify the content layers.
|
| base::ScopedCFTypeRef<IOSurfaceRef> io_surfaces[5];
|
| @@ -612,22 +445,13 @@ TEST_F(CALayerTreeTest, SplitSortingContextZero) {
|
| std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree(
|
| new ui::CARendererLayerTree);
|
| for (size_t i = 0; i < 5; ++i) {
|
| - bool result = ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transforms[i],
|
| - io_surfaces[i],
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| + properties.io_surface = io_surfaces[i];
|
| + properties.transform = transforms[i];
|
| + bool result = ScheduleCALayer(ca_layer_tree.get(), &properties);
|
| EXPECT_TRUE(result);
|
| }
|
| - ca_layer_tree->CommitScheduledCALayers(superlayer_, nullptr, scale_factor);
|
| + ca_layer_tree->CommitScheduledCALayers(superlayer_, nullptr,
|
| + properties.scale_factor);
|
|
|
| // Validate the root layer.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -678,17 +502,10 @@ TEST_F(CALayerTreeTest, SplitSortingContextZero) {
|
|
|
| // Verify that sorting contexts are allocated appropriately.
|
| TEST_F(CALayerTreeTest, SortingContexts) {
|
| - bool is_clipped = false;
|
| - gfx::Rect clip_rect;
|
| - int sorting_context_ids[3] = {3, -1, 0};
|
| - gfx::RectF contents_rect(0, 0, 1, 1);
|
| - gfx::Rect rect(0, 0, 256, 256);
|
| - gfx::Transform transform;
|
| - unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0xFF, 0xFF);
|
| - unsigned edge_aa_mask = 0;
|
| - float opacity = 1.0f;
|
| - float scale_factor = 1.0f;
|
| - unsigned filter = GL_LINEAR;
|
| + CALayerProperties properties;
|
| + properties.is_clipped = false;
|
| + properties.clip_rect = gfx::Rect();
|
| + properties.rect = gfx::Rect(0, 0, 256, 256);
|
|
|
| // We'll use the IOSurface contents to identify the content layers.
|
| base::ScopedCFTypeRef<IOSurfaceRef> io_surfaces[3];
|
| @@ -697,26 +514,19 @@ TEST_F(CALayerTreeTest, SortingContexts) {
|
| gfx::Size(256, 256), gfx::BufferFormat::BGRA_8888));
|
| }
|
|
|
| + int sorting_context_ids[3] = {3, -1, 0};
|
| +
|
| // Schedule and commit the layers.
|
| std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree(
|
| new ui::CARendererLayerTree);
|
| for (size_t i = 0; i < 3; ++i) {
|
| - bool result = ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_ids[i],
|
| - transform,
|
| - io_surfaces[i],
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| + properties.sorting_context_id = sorting_context_ids[i];
|
| + properties.io_surface = io_surfaces[i];
|
| + bool result = ScheduleCALayer(ca_layer_tree.get(), &properties);
|
| EXPECT_TRUE(result);
|
| }
|
| - ca_layer_tree->CommitScheduledCALayers(superlayer_, nullptr, scale_factor);
|
| + ca_layer_tree->CommitScheduledCALayers(superlayer_, nullptr,
|
| + properties.scale_factor);
|
|
|
| // Validate the root layer.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -755,14 +565,7 @@ TEST_F(CALayerTreeTest, SortingContexts) {
|
|
|
| // Verify that sorting contexts must all have the same clipping properties.
|
| TEST_F(CALayerTreeTest, SortingContextMustHaveConsistentClip) {
|
| - base::ScopedCFTypeRef<IOSurfaceRef> io_surface;
|
| - gfx::RectF contents_rect(0, 0, 1, 1);
|
| - gfx::Rect rect(0, 0, 256, 256);
|
| - gfx::Transform transform;
|
| - unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0xFF, 0xFF);
|
| - unsigned edge_aa_mask = 0;
|
| - float opacity = 1.0f;
|
| - unsigned filter = GL_LINEAR;
|
| + CALayerProperties properties;
|
|
|
| // Vary the clipping parameters within sorting contexts.
|
| bool is_clippeds[3] = { true, true, false};
|
| @@ -777,39 +580,21 @@ TEST_F(CALayerTreeTest, SortingContextMustHaveConsistentClip) {
|
| // First send the various clip parameters to sorting context zero. This is
|
| // legitimate.
|
| for (size_t i = 0; i < 3; ++i) {
|
| - int sorting_context_id = 0;
|
| - bool result = ca_layer_tree->ScheduleCALayer(
|
| - is_clippeds[i],
|
| - clip_rects[i],
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| + properties.is_clipped = is_clippeds[i];
|
| + properties.clip_rect = clip_rects[i];
|
| +
|
| + bool result = ScheduleCALayer(ca_layer_tree.get(), &properties);
|
| EXPECT_TRUE(result);
|
| }
|
| +
|
| // Next send the various clip parameters to a non-zero sorting context. This
|
| // will fail when we try to change the clip within the sorting context.
|
| for (size_t i = 0; i < 3; ++i) {
|
| - int sorting_context_id = 3;
|
| - bool result = ca_layer_tree->ScheduleCALayer(
|
| - is_clippeds[i],
|
| - clip_rects[i],
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| + properties.sorting_context_id = 3;
|
| + properties.is_clipped = is_clippeds[i];
|
| + properties.clip_rect = clip_rects[i];
|
| +
|
| + bool result = ScheduleCALayer(ca_layer_tree.get(), &properties);
|
| if (i == 0)
|
| EXPECT_TRUE(result);
|
| else
|
| @@ -817,41 +602,19 @@ TEST_F(CALayerTreeTest, SortingContextMustHaveConsistentClip) {
|
| }
|
| // Try once more with the original clip and verify it works.
|
| {
|
| - int sorting_context_id = 3;
|
| - bool result = ca_layer_tree->ScheduleCALayer(
|
| - is_clippeds[0],
|
| - clip_rects[0],
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| + properties.is_clipped = is_clippeds[0];
|
| + properties.clip_rect = clip_rects[0];
|
| +
|
| + bool result = ScheduleCALayer(ca_layer_tree.get(), &properties);
|
| EXPECT_TRUE(result);
|
| }
|
| }
|
|
|
| // Test updating each layer's properties.
|
| TEST_F(CALayerTreeTest, AVLayer) {
|
| - base::ScopedCFTypeRef<IOSurfaceRef> io_surface(gfx::CreateIOSurface(
|
| - gfx::Size(256, 256), gfx::BufferFormat::YUV_420_BIPLANAR));
|
| -
|
| - bool is_clipped = true;
|
| - gfx::Rect clip_rect(2, 4, 8, 16);
|
| - int sorting_context_id = 0;
|
| - gfx::Transform transform;
|
| - gfx::RectF contents_rect(0.0f, 0.0f, 1.0f, 1.0f);
|
| - gfx::Rect rect(16, 32, 64, 128);
|
| - unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0, 0);
|
| - unsigned edge_aa_mask = GL_CA_LAYER_EDGE_LEFT_CHROMIUM;
|
| - float opacity = 0.5f;
|
| - float scale_factor = 1.0f;
|
| - bool result = false;
|
| - unsigned filter = GL_LINEAR;
|
| + CALayerProperties properties;
|
| + properties.io_surface = gfx::CreateIOSurface(
|
| + gfx::Size(256, 256), gfx::BufferFormat::YUV_420_BIPLANAR);
|
|
|
| std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree;
|
| CALayer* root_layer = nil;
|
| @@ -863,24 +626,7 @@ TEST_F(CALayerTreeTest, AVLayer) {
|
|
|
| // Validate the initial values.
|
| {
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect, background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -897,30 +643,12 @@ TEST_F(CALayerTreeTest, AVLayer) {
|
| isKindOfClass:NSClassFromString(@"AVSampleBufferDisplayLayer")]);
|
| }
|
|
|
| - io_surface.reset(gfx::CreateIOSurface(gfx::Size(256, 256),
|
| - gfx::BufferFormat::YUV_420_BIPLANAR));
|
| + properties.io_surface.reset(gfx::CreateIOSurface(
|
| + gfx::Size(256, 256), gfx::BufferFormat::YUV_420_BIPLANAR));
|
|
|
| // Pass another frame.
|
| {
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -938,33 +666,14 @@ TEST_F(CALayerTreeTest, AVLayer) {
|
| EXPECT_EQ(content_layer2, content_layer1);
|
| }
|
|
|
| - io_surface.reset(gfx::CreateIOSurface(gfx::Size(256, 256),
|
| - gfx::BufferFormat::YUV_420_BIPLANAR));
|
| - base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer;
|
| - CVPixelBufferCreateWithIOSurface(
|
| - nullptr, io_surface, nullptr, cv_pixel_buffer.InitializeInto());
|
| + properties.io_surface.reset(gfx::CreateIOSurface(
|
| + gfx::Size(256, 256), gfx::BufferFormat::YUV_420_BIPLANAR));
|
| + CVPixelBufferCreateWithIOSurface(nullptr, properties.io_surface, nullptr,
|
| + properties.cv_pixel_buffer.InitializeInto());
|
|
|
| // Pass a frame with a CVPixelBuffer
|
| {
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - cv_pixel_buffer,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -982,32 +691,14 @@ TEST_F(CALayerTreeTest, AVLayer) {
|
| EXPECT_NE(content_layer2, content_layer1);
|
| }
|
|
|
| - io_surface.reset(gfx::CreateIOSurface(gfx::Size(256, 256),
|
| - gfx::BufferFormat::YUV_420_BIPLANAR));
|
| - cv_pixel_buffer.reset();
|
| + properties.io_surface.reset(gfx::CreateIOSurface(
|
| + gfx::Size(256, 256), gfx::BufferFormat::YUV_420_BIPLANAR));
|
| + properties.cv_pixel_buffer.reset();
|
|
|
| // Pass a frame that is clipped.
|
| - contents_rect = gfx::RectF(0, 0, 1, 0.9);
|
| + properties.contents_rect = gfx::RectF(0, 0, 1, 0.9);
|
| {
|
| - std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| - new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped,
|
| - clip_rect,
|
| - sorting_context_id,
|
| - transform,
|
| - io_surface,
|
| - nullptr,
|
| - contents_rect,
|
| - rect,
|
| - background_color,
|
| - edge_aa_mask,
|
| - opacity,
|
| - filter);
|
| - EXPECT_TRUE(result);
|
| - new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| - std::swap(new_ca_layer_tree, ca_layer_tree);
|
| + UpdateCALayerTree(ca_layer_tree, &properties, superlayer_);
|
|
|
| // Validate the tree structure.
|
| EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
|
| @@ -1028,41 +719,30 @@ TEST_F(CALayerTreeTest, AVLayer) {
|
|
|
| // Test fullscreen low power detection.
|
| TEST_F(CALayerTreeTest, FullscreenLowPower) {
|
| - base::ScopedCFTypeRef<IOSurfaceRef> io_surface(gfx::CreateIOSurface(
|
| - gfx::Size(256, 256), gfx::BufferFormat::YUV_420_BIPLANAR));
|
| -
|
| - bool is_clipped = false;
|
| - gfx::Rect clip_rect(0, 0, 1, 1);
|
| - int sorting_context_id = 0;
|
| - gfx::Transform transform;
|
| - transform.Translate(10, 20);
|
| - transform.Scale(0.5, 2.0);
|
| - gfx::RectF contents_rect(0.0f, 0.0f, 1.0f, 1.0f);
|
| - gfx::Rect rect(16, 32, 64, 128);
|
| - unsigned background_color = SkColorSetARGB(0, 0, 0, 0);
|
| - unsigned edge_aa_mask = 0;
|
| - float opacity = 1.0f;
|
| - float scale_factor = 1.0f;
|
| - bool result = false;
|
| - unsigned filter = GL_LINEAR;
|
| + CALayerProperties properties;
|
| + properties.io_surface = gfx::CreateIOSurface(
|
| + gfx::Size(256, 256), gfx::BufferFormat::YUV_420_BIPLANAR);
|
| + properties.is_clipped = false;
|
| + CVPixelBufferCreateWithIOSurface(nullptr, properties.io_surface, nullptr,
|
| + properties.cv_pixel_buffer.InitializeInto());
|
| +
|
| + CALayerProperties properties_black;
|
| + properties_black.is_clipped = false;
|
| + properties_black.background_color = SK_ColorBLACK;
|
| + CALayerProperties properties_white;
|
| + properties_white.is_clipped = false;
|
| + properties_white.background_color = SK_ColorWHITE;
|
|
|
| std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree;
|
|
|
| - base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer;
|
| - CVPixelBufferCreateWithIOSurface(nullptr, io_surface, nullptr,
|
| - cv_pixel_buffer.InitializeInto());
|
| -
|
| // Test a configuration with no background.
|
| {
|
| std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped, clip_rect, sorting_context_id, transform, io_surface,
|
| - cv_pixel_buffer, contents_rect, rect, background_color, edge_aa_mask,
|
| - opacity, filter);
|
| + bool result = ScheduleCALayer(new_ca_layer_tree.get(), &properties);
|
| EXPECT_TRUE(result);
|
| new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| + superlayer_, std::move(ca_layer_tree), properties.scale_factor);
|
| bool fullscreen_low_power_valid =
|
| new_ca_layer_tree->CommitFullscreenLowPowerLayer(
|
| fullscreen_low_power_layer_);
|
| @@ -1089,16 +769,12 @@ TEST_F(CALayerTreeTest, FullscreenLowPower) {
|
| {
|
| std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped, clip_rect, sorting_context_id, transform, nullptr, nullptr,
|
| - contents_rect, rect, SK_ColorBLACK, edge_aa_mask, opacity, filter);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped, clip_rect, sorting_context_id, transform, io_surface,
|
| - cv_pixel_buffer, contents_rect, rect, background_color, edge_aa_mask,
|
| - opacity, filter);
|
| + bool result = ScheduleCALayer(new_ca_layer_tree.get(), &properties_black);
|
| + EXPECT_TRUE(result);
|
| + result = ScheduleCALayer(new_ca_layer_tree.get(), &properties);
|
| EXPECT_TRUE(result);
|
| new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| + superlayer_, std::move(ca_layer_tree), properties.scale_factor);
|
| bool fullscreen_low_power_valid =
|
| new_ca_layer_tree->CommitFullscreenLowPowerLayer(
|
| fullscreen_low_power_layer_);
|
| @@ -1125,16 +801,12 @@ TEST_F(CALayerTreeTest, FullscreenLowPower) {
|
| {
|
| std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped, clip_rect, sorting_context_id, transform, nullptr, nullptr,
|
| - contents_rect, rect, SK_ColorWHITE, edge_aa_mask, opacity, filter);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped, clip_rect, sorting_context_id, transform, io_surface,
|
| - cv_pixel_buffer, contents_rect, rect, background_color, edge_aa_mask,
|
| - opacity, filter);
|
| + bool result = ScheduleCALayer(new_ca_layer_tree.get(), &properties_white);
|
| + EXPECT_TRUE(result);
|
| + result = ScheduleCALayer(new_ca_layer_tree.get(), &properties);
|
| EXPECT_TRUE(result);
|
| new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| + superlayer_, std::move(ca_layer_tree), properties.scale_factor);
|
| bool fullscreen_low_power_valid =
|
| new_ca_layer_tree->CommitFullscreenLowPowerLayer(
|
| fullscreen_low_power_layer_);
|
| @@ -1161,16 +833,12 @@ TEST_F(CALayerTreeTest, FullscreenLowPower) {
|
| {
|
| std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
|
| new ui::CARendererLayerTree);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped, clip_rect, sorting_context_id, transform, io_surface,
|
| - cv_pixel_buffer, contents_rect, rect, background_color, edge_aa_mask,
|
| - opacity, filter);
|
| - result = new_ca_layer_tree->ScheduleCALayer(
|
| - is_clipped, clip_rect, sorting_context_id, transform, nullptr, nullptr,
|
| - contents_rect, rect, SK_ColorBLACK, edge_aa_mask, opacity, filter);
|
| + bool result = ScheduleCALayer(new_ca_layer_tree.get(), &properties);
|
| + EXPECT_TRUE(result);
|
| + result = ScheduleCALayer(new_ca_layer_tree.get(), &properties_black);
|
| EXPECT_TRUE(result);
|
| new_ca_layer_tree->CommitScheduledCALayers(
|
| - superlayer_, std::move(ca_layer_tree), scale_factor);
|
| + superlayer_, std::move(ca_layer_tree), properties.scale_factor);
|
| bool fullscreen_low_power_valid =
|
| new_ca_layer_tree->CommitFullscreenLowPowerLayer(
|
| fullscreen_low_power_layer_);
|
|
|