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

Unified Diff: cc/trees/layer_tree_host_pixeltest_filters.cc

Issue 394193003: Implement HiDPI and pinch-zoom scaling of filter params (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove extra headers; unneeded code in tests Created 6 years, 4 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
« no previous file with comments | « cc/test/render_pass_test_utils.cc ('k') | cc/trees/layer_tree_host_unittest_delegated.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host_pixeltest_filters.cc
diff --git a/cc/trees/layer_tree_host_pixeltest_filters.cc b/cc/trees/layer_tree_host_pixeltest_filters.cc
index c8c8c7adf3f5f72bc0f3305f9a312cd25076f430..5303ed1afb9d7b39839e4d1ea6f9d46b2e4cad4b 100644
--- a/cc/trees/layer_tree_host_pixeltest_filters.cc
+++ b/cc/trees/layer_tree_host_pixeltest_filters.cc
@@ -157,6 +157,80 @@ TEST_F(LayerTreeHostFiltersPixelTest, BackgroundFilterBlurOffAxis) {
"background_filter_blur_off_axis.png")));
}
+class LayerTreeHostFiltersScaledPixelTest
+ : public LayerTreeHostFiltersPixelTest {
+ virtual void InitializeSettings(LayerTreeSettings* settings) OVERRIDE {
+ // Required so that device scale is inherited by content scale.
+ settings->layer_transforms_should_scale_layer_contents = true;
+ }
+
+ virtual void SetupTree() OVERRIDE {
+ layer_tree_host()->SetDeviceScaleFactor(device_scale_factor_);
+ LayerTreePixelTest::SetupTree();
+ }
+
+ protected:
+ void RunPixelTestType(int content_size,
+ float device_scale_factor,
+ PixelTestType test_type) {
+ int half_content = content_size / 2;
+
+ scoped_refptr<SolidColorLayer> root = CreateSolidColorLayer(
+ gfx::Rect(0, 0, content_size, content_size), SK_ColorWHITE);
+
+ scoped_refptr<SolidColorLayer> background = CreateSolidColorLayer(
+ gfx::Rect(0, 0, content_size, content_size), SK_ColorGREEN);
+ root->AddChild(background);
+
+ // Add a blue layer that completely covers the green layer.
+ scoped_refptr<SolidColorLayer> foreground = CreateSolidColorLayer(
+ gfx::Rect(0, 0, content_size, content_size), SK_ColorBLUE);
+ background->AddChild(foreground);
+
+ // Add an alpha threshold filter to the blue layer which will filter out
+ // everything except the lower right corner.
+ FilterOperations filters;
+ SkRegion alpha_region;
+ alpha_region.setRect(
+ half_content, half_content, content_size, content_size);
+ filters.Append(
+ FilterOperation::CreateAlphaThresholdFilter(alpha_region, 1.f, 0.f));
+ foreground->SetFilters(filters);
+
+ device_scale_factor_ = device_scale_factor;
+ RunPixelTest(
+ test_type,
+ background,
+ base::FilePath(FILE_PATH_LITERAL("green_small_with_blue_corner.png")));
+ }
+
+ float device_scale_factor_;
+};
+
+TEST_F(LayerTreeHostFiltersScaledPixelTest, StandardDpi_GLBitmap) {
+ RunPixelTestType(100, 1.f, GL_WITH_BITMAP);
+}
+
+TEST_F(LayerTreeHostFiltersScaledPixelTest, StandardDpi_GLDefault) {
+ RunPixelTestType(100, 1.f, GL_WITH_DEFAULT);
+}
+
+TEST_F(LayerTreeHostFiltersScaledPixelTest, StandardDpi_Software) {
+ RunPixelTestType(100, 1.f, SOFTWARE_WITH_BITMAP);
+}
+
+TEST_F(LayerTreeHostFiltersScaledPixelTest, HiDpi_GLBitmap) {
+ RunPixelTestType(50, 2.f, GL_WITH_BITMAP);
+}
+
+TEST_F(LayerTreeHostFiltersScaledPixelTest, HiDpi_GLDefault) {
+ RunPixelTestType(50, 2.f, GL_WITH_DEFAULT);
+}
+
+TEST_F(LayerTreeHostFiltersScaledPixelTest, HiDpi_Software) {
+ RunPixelTestType(50, 2.f, SOFTWARE_WITH_BITMAP);
+}
+
class ImageFilterClippedPixelTest : public LayerTreeHostFiltersPixelTest {
protected:
void RunPixelTestType(PixelTestType test_type) {
« no previous file with comments | « cc/test/render_pass_test_utils.cc ('k') | cc/trees/layer_tree_host_unittest_delegated.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698