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

Unified Diff: ui/accelerated_widget_mac/ca_layer_tree_unittest_mac.mm

Issue 1893273005: Hook up plumbing for minification/magnification filters. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@temp66
Patch Set: Rebase. Created 4 years, 8 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: 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 79261a66e5d89c0fa9c5f1c79d602f18521db81c..5d28d17fd1833979cbcb902a9f80e5f246305a8f 100644
--- a/ui/accelerated_widget_mac/ca_layer_tree_unittest_mac.mm
+++ b/ui/accelerated_widget_mac/ca_layer_tree_unittest_mac.mm
@@ -8,6 +8,7 @@
#include "base/mac/sdk_forward_declarations.h"
#include "gpu/GLES2/gl2extchromium.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "testing/gtest_mac.h"
#include "third_party/skia/include/core/SkColor.h"
#include "ui/accelerated_widget_mac/ca_renderer_layer_tree.h"
#include "ui/gfx/geometry/dip_util.h"
@@ -41,6 +42,7 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
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;
@@ -65,7 +67,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -105,6 +108,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
EXPECT_EQ(gfx::Rect(rect.size()), gfx::Rect([content_layer bounds]));
EXPECT_EQ(kCALayerLeftEdge, [content_layer edgeAntialiasingMask]);
EXPECT_EQ(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]);
}
@@ -125,7 +130,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -168,7 +174,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -208,7 +215,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -246,7 +254,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -282,7 +291,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -320,7 +330,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -358,7 +369,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -396,7 +408,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -417,6 +430,44 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
EXPECT_EQ(opacity, [content_layer opacity]);
}
+ // Change the filter.
+ {
+ filter = GL_NEAREST;
+ std::unique_ptr<ui::CALayerTree> new_ca_layer_tree(new ui::CALayerTree);
+ 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);
+
+ // Validate the tree structure.
+ EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
+ EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]);
+ EXPECT_EQ(1u, [[root_layer sublayers] count]);
+ EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]);
+ EXPECT_EQ(1u, [[clip_and_sorting_layer sublayers] count]);
+ EXPECT_EQ(transform_layer,
+ [[clip_and_sorting_layer sublayers] objectAtIndex:0]);
+ EXPECT_EQ(1u, [[transform_layer sublayers] count]);
+ EXPECT_EQ(content_layer, [[transform_layer sublayers] objectAtIndex:0]);
+
+ // Validate the content layer.
+ EXPECT_NSEQ(kCAFilterNearest, [content_layer minificationFilter]);
+ EXPECT_NSEQ(kCAFilterNearest, [content_layer magnificationFilter]);
+ }
+
// Add the clipping and IOSurface contents back.
{
is_clipped = true;
@@ -433,7 +484,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -471,7 +523,8 @@ TEST_F(CALayerTreeTest, PropertyUpdates) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -534,6 +587,7 @@ TEST_F(CALayerTreeTest, SplitSortingContextZero) {
unsigned edge_aa_mask = 0;
float opacity = 1.0f;
float scale_factor = 1.0f;
+ unsigned filter = GL_LINEAR;
// We'll use the IOSurface contents to identify the content layers.
base::ScopedCFTypeRef<IOSurfaceRef> io_surfaces[5];
@@ -568,7 +622,8 @@ TEST_F(CALayerTreeTest, SplitSortingContextZero) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
}
ca_layer_tree->CommitScheduledCALayers(superlayer_, nullptr, scale_factor);
@@ -632,6 +687,7 @@ TEST_F(CALayerTreeTest, SortingContexts) {
unsigned edge_aa_mask = 0;
float opacity = 1.0f;
float scale_factor = 1.0f;
+ unsigned filter = GL_LINEAR;
// We'll use the IOSurface contents to identify the content layers.
base::ScopedCFTypeRef<IOSurfaceRef> io_surfaces[3];
@@ -655,7 +711,8 @@ TEST_F(CALayerTreeTest, SortingContexts) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
}
ca_layer_tree->CommitScheduledCALayers(superlayer_, nullptr, scale_factor);
@@ -704,6 +761,7 @@ TEST_F(CALayerTreeTest, SortingContextMustHaveConsistentClip) {
unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0xFF, 0xFF);
unsigned edge_aa_mask = 0;
float opacity = 1.0f;
+ unsigned filter = GL_LINEAR;
// Vary the clipping parameters within sorting contexts.
bool is_clippeds[3] = { true, true, false};
@@ -730,7 +788,8 @@ TEST_F(CALayerTreeTest, SortingContextMustHaveConsistentClip) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
}
// Next send the various clip parameters to a non-zero sorting context. This
@@ -748,7 +807,8 @@ TEST_F(CALayerTreeTest, SortingContextMustHaveConsistentClip) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
if (i == 0)
EXPECT_TRUE(result);
else
@@ -768,7 +828,8 @@ TEST_F(CALayerTreeTest, SortingContextMustHaveConsistentClip) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
}
}
@@ -789,6 +850,7 @@ TEST_F(CALayerTreeTest, AVLayer) {
float opacity = 0.5f;
float scale_factor = 1.0f;
bool result = false;
+ unsigned filter = GL_LINEAR;
std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree;
CALayer* root_layer = nil;
@@ -812,7 +874,8 @@ TEST_F(CALayerTreeTest, AVLayer) {
contents_rect,
rect, background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -851,7 +914,8 @@ TEST_F(CALayerTreeTest, AVLayer) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -894,7 +958,8 @@ TEST_F(CALayerTreeTest, AVLayer) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);
@@ -936,7 +1001,8 @@ TEST_F(CALayerTreeTest, AVLayer) {
rect,
background_color,
edge_aa_mask,
- opacity);
+ opacity,
+ filter);
EXPECT_TRUE(result);
new_ca_layer_tree->CommitScheduledCALayers(
superlayer_, std::move(ca_layer_tree), scale_factor);

Powered by Google App Engine
This is Rietveld 408576698