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

Unified Diff: cc/trees/layer_tree_host_pixeltest_blending.cc

Issue 1057283003: Remove parts of //cc we aren't using (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 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/trees/layer_tree_host_perftest.cc ('k') | cc/trees/layer_tree_host_pixeltest_filters.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_blending.cc
diff --git a/cc/trees/layer_tree_host_pixeltest_blending.cc b/cc/trees/layer_tree_host_pixeltest_blending.cc
deleted file mode 100644
index b31d3e8539525ccb1203ffb7377b28aac8e3c33f..0000000000000000000000000000000000000000
--- a/cc/trees/layer_tree_host_pixeltest_blending.cc
+++ /dev/null
@@ -1,498 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "cc/layers/picture_image_layer.h"
-#include "cc/layers/solid_color_layer.h"
-#include "cc/test/layer_tree_pixel_resource_test.h"
-#include "cc/test/pixel_comparator.h"
-
-#if !defined(OS_ANDROID)
-
-namespace cc {
-namespace {
-
-SkXfermode::Mode const kBlendModes[] = {
- SkXfermode::kSrcOver_Mode, SkXfermode::kScreen_Mode,
- SkXfermode::kOverlay_Mode, SkXfermode::kDarken_Mode,
- SkXfermode::kLighten_Mode, SkXfermode::kColorDodge_Mode,
- SkXfermode::kColorBurn_Mode, SkXfermode::kHardLight_Mode,
- SkXfermode::kSoftLight_Mode, SkXfermode::kDifference_Mode,
- SkXfermode::kExclusion_Mode, SkXfermode::kMultiply_Mode,
- SkXfermode::kHue_Mode, SkXfermode::kSaturation_Mode,
- SkXfermode::kColor_Mode, SkXfermode::kLuminosity_Mode};
-
-SkColor kCSSTestColors[] = {
- 0xffff0000, // red
- 0xff00ff00, // lime
- 0xff0000ff, // blue
- 0xff00ffff, // aqua
- 0xffff00ff, // fuchsia
- 0xffffff00, // yellow
- 0xff008000, // green
- 0xff800000, // maroon
- 0xff000080, // navy
- 0xff800080, // purple
- 0xff808000, // olive
- 0xff008080, // teal
- 0xfffa8072, // salmon
- 0xffc0c0c0, // silver
- 0xff000000, // black
- 0xff808080, // gray
- 0x80000000, // black with transparency
- 0xffffffff, // white
- 0x80ffffff, // white with transparency
- 0x00000000 // transparent
-};
-
-const int kBlendModesCount = arraysize(kBlendModes);
-const int kCSSTestColorsCount = arraysize(kCSSTestColors);
-
-using RenderPassOptions = uint32;
-const uint32 kUseMasks = 1 << 0;
-const uint32 kUseAntialiasing = 1 << 1;
-const uint32 kUseColorMatrix = 1 << 2;
-const uint32 kForceShaders = 1 << 3;
-
-class LayerTreeHostBlendingPixelTest : public LayerTreeHostPixelResourceTest {
- public:
- LayerTreeHostBlendingPixelTest()
- : force_antialiasing_(false), force_blending_with_shaders_(false) {
- pixel_comparator_.reset(new FuzzyPixelOffByOneComparator(true));
- }
-
- void InitializeSettings(LayerTreeSettings* settings) override {
- settings->renderer_settings.force_antialiasing = force_antialiasing_;
- settings->renderer_settings.force_blending_with_shaders =
- force_blending_with_shaders_;
- }
-
- protected:
- void RunBlendingWithRootPixelTestType(PixelResourceTestCase type) {
- const int kLaneWidth = 2;
- const int kLaneHeight = kLaneWidth;
- const int kRootWidth = (kBlendModesCount + 2) * kLaneWidth;
- const int kRootHeight = 2 * kLaneWidth + kLaneHeight;
- InitializeFromTestCase(type);
-
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(kRootWidth, kRootHeight), kCSSOrange);
-
- // Orange child layers will blend with the green background
- for (int i = 0; i < kBlendModesCount; ++i) {
- gfx::Rect child_rect(
- (i + 1) * kLaneWidth, kLaneWidth, kLaneWidth, kLaneHeight);
- scoped_refptr<SolidColorLayer> green_lane =
- CreateSolidColorLayer(child_rect, kCSSGreen);
- background->AddChild(green_lane);
- green_lane->SetBlendMode(kBlendModes[i]);
- }
-
- RunPixelResourceTest(
- background,
- base::FilePath(FILE_PATH_LITERAL("blending_with_root.png")));
- }
-
- void RunBlendingWithTransparentPixelTestType(PixelResourceTestCase type) {
- const int kLaneWidth = 2;
- const int kLaneHeight = 3 * kLaneWidth;
- const int kRootWidth = (kBlendModesCount + 2) * kLaneWidth;
- const int kRootHeight = 2 * kLaneWidth + kLaneHeight;
- InitializeFromTestCase(type);
-
- scoped_refptr<SolidColorLayer> root =
- CreateSolidColorLayer(gfx::Rect(kRootWidth, kRootHeight), kCSSBrown);
-
- scoped_refptr<SolidColorLayer> background = CreateSolidColorLayer(
- gfx::Rect(0, kLaneWidth * 2, kRootWidth, kLaneWidth), kCSSOrange);
-
- root->AddChild(background);
- background->SetIsRootForIsolatedGroup(true);
-
- // Orange child layers will blend with the green background
- for (int i = 0; i < kBlendModesCount; ++i) {
- gfx::Rect child_rect(
- (i + 1) * kLaneWidth, -kLaneWidth, kLaneWidth, kLaneHeight);
- scoped_refptr<SolidColorLayer> green_lane =
- CreateSolidColorLayer(child_rect, kCSSGreen);
- background->AddChild(green_lane);
- green_lane->SetBlendMode(kBlendModes[i]);
- }
-
- RunPixelResourceTest(
- root, base::FilePath(FILE_PATH_LITERAL("blending_transparent.png")));
- }
-
- scoped_refptr<Layer> CreateColorfulBackdropLayer(int width, int height) {
- // Draw the backdrop with horizontal lanes.
- const int kLaneWidth = width;
- const int kLaneHeight = height / kCSSTestColorsCount;
- SkBitmap backing_store;
- backing_store.allocN32Pixels(width, height);
- SkCanvas canvas(backing_store);
- canvas.clear(SK_ColorTRANSPARENT);
- for (int i = 0; i < kCSSTestColorsCount; ++i) {
- SkPaint paint;
- paint.setColor(kCSSTestColors[i]);
- canvas.drawRect(
- SkRect::MakeXYWH(0, i * kLaneHeight, kLaneWidth, kLaneHeight), paint);
- }
- scoped_refptr<PictureImageLayer> layer = PictureImageLayer::Create();
- layer->SetIsDrawable(true);
- layer->SetBounds(gfx::Size(width, height));
- layer->SetBitmap(backing_store);
- return layer;
- }
-
- void SetupMaskLayer(scoped_refptr<Layer> layer) {
- const int kMaskOffset = 2;
- gfx::Size bounds = layer->bounds();
- scoped_refptr<PictureImageLayer> mask = PictureImageLayer::Create();
- mask->SetIsDrawable(true);
- mask->SetIsMask(true);
- mask->SetBounds(bounds);
-
- SkBitmap bitmap;
- bitmap.allocN32Pixels(bounds.width(), bounds.height());
- SkCanvas canvas(bitmap);
- SkPaint paint;
- paint.setColor(SK_ColorWHITE);
- canvas.clear(SK_ColorTRANSPARENT);
- canvas.drawRect(SkRect::MakeXYWH(kMaskOffset,
- kMaskOffset,
- bounds.width() - kMaskOffset * 2,
- bounds.height() - kMaskOffset * 2),
- paint);
- mask->SetBitmap(bitmap);
- layer->SetMaskLayer(mask.get());
- }
-
- void SetupColorMatrix(scoped_refptr<Layer> layer) {
- FilterOperations filter_operations;
- filter_operations.Append(FilterOperation::CreateSepiaFilter(.001f));
- layer->SetFilters(filter_operations);
- }
-
- void CreateBlendingColorLayers(int lane_width,
- int lane_height,
- scoped_refptr<Layer> background,
- RenderPassOptions flags) {
- const int kLanesCount = kBlendModesCount + 4;
- const SkColor kMiscOpaqueColor = 0xffc86464;
- const SkColor kMiscTransparentColor = 0x80c86464;
- const SkXfermode::Mode kCoeffBlendMode = SkXfermode::kScreen_Mode;
- const SkXfermode::Mode kShaderBlendMode = SkXfermode::kColorBurn_Mode;
- // add vertical lanes with each of the blend modes
- for (int i = 0; i < kLanesCount; ++i) {
- gfx::Rect child_rect(i * lane_width, 0, lane_width, lane_height);
- SkXfermode::Mode blend_mode = SkXfermode::kSrcOver_Mode;
- float opacity = 1.f;
- SkColor color = kMiscOpaqueColor;
-
- if (i < kBlendModesCount) {
- blend_mode = kBlendModes[i];
- } else if (i == kBlendModesCount) {
- blend_mode = kCoeffBlendMode;
- opacity = 0.5f;
- } else if (i == kBlendModesCount + 1) {
- blend_mode = kCoeffBlendMode;
- color = kMiscTransparentColor;
- } else if (i == kBlendModesCount + 2) {
- blend_mode = kShaderBlendMode;
- opacity = 0.5f;
- } else if (i == kBlendModesCount + 3) {
- blend_mode = kShaderBlendMode;
- color = kMiscTransparentColor;
- }
-
- scoped_refptr<SolidColorLayer> lane =
- CreateSolidColorLayer(child_rect, color);
- lane->SetBlendMode(blend_mode);
- lane->SetOpacity(opacity);
- lane->SetForceRenderSurface(true);
- if (flags & kUseMasks)
- SetupMaskLayer(lane);
- if (flags & kUseColorMatrix) {
- SetupColorMatrix(lane);
- }
- background->AddChild(lane);
- }
- }
-
- void RunBlendingWithRenderPass(PixelResourceTestCase type,
- const base::FilePath::CharType* expected_path,
- RenderPassOptions flags) {
- const int kLaneWidth = 8;
- const int kLaneHeight = kLaneWidth * kCSSTestColorsCount;
- const int kRootSize = kLaneHeight;
- InitializeFromTestCase(type);
-
- scoped_refptr<SolidColorLayer> root =
- CreateSolidColorLayer(gfx::Rect(kRootSize, kRootSize), SK_ColorWHITE);
- scoped_refptr<Layer> background =
- CreateColorfulBackdropLayer(kRootSize, kRootSize);
-
- background->SetIsRootForIsolatedGroup(true);
- root->AddChild(background);
-
- CreateBlendingColorLayers(kLaneWidth, kLaneHeight, background.get(), flags);
-
- this->force_antialiasing_ = (flags & kUseAntialiasing);
- this->force_blending_with_shaders_ = (flags & kForceShaders);
-
- if ((flags & kUseAntialiasing) && (test_type_ == PIXEL_TEST_GL)) {
- // Anti aliasing causes differences up to 8 pixels at the edges.
- int large_error_allowed = 8;
- // Blending results might differ with one pixel.
- int small_error_allowed = 1;
- // Most of the errors are one pixel errors.
- float percentage_pixels_small_error = 13.1f;
- // Because of anti-aliasing, around 10% of pixels (at the edges) have
- // bigger errors (from small_error_allowed + 1 to large_error_allowed).
- float percentage_pixels_error = 22.5f;
- // The average error is still close to 1.
- float average_error_allowed_in_bad_pixels = 1.4f;
-
- pixel_comparator_.reset(
- new FuzzyPixelComparator(false, // discard_alpha
- percentage_pixels_error,
- percentage_pixels_small_error,
- average_error_allowed_in_bad_pixels,
- large_error_allowed,
- small_error_allowed));
- }
-
- RunPixelResourceTest(root, base::FilePath(expected_path));
- }
-
- bool force_antialiasing_;
- bool force_blending_with_shaders_;
-};
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRoot_GL) {
- RunBlendingWithRootPixelTestType(GL_ASYNC_UPLOAD_2D_DRAW);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRoot_Software) {
- RunBlendingWithRootPixelTestType(SOFTWARE);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithBackgroundFilter) {
- const int kLaneWidth = 2;
- const int kLaneHeight = kLaneWidth;
- const int kRootWidth = (kBlendModesCount + 2) * kLaneWidth;
- const int kRootHeight = 2 * kLaneWidth + kLaneHeight;
- InitializeFromTestCase(GL_ASYNC_UPLOAD_2D_DRAW);
-
- scoped_refptr<SolidColorLayer> background =
- CreateSolidColorLayer(gfx::Rect(kRootWidth, kRootHeight), kCSSOrange);
-
- // Orange child layers have a background filter set and they will blend with
- // the green background
- for (int i = 0; i < kBlendModesCount; ++i) {
- gfx::Rect child_rect(
- (i + 1) * kLaneWidth, kLaneWidth, kLaneWidth, kLaneHeight);
- scoped_refptr<SolidColorLayer> green_lane =
- CreateSolidColorLayer(child_rect, kCSSGreen);
- background->AddChild(green_lane);
-
- FilterOperations filters;
- filters.Append(FilterOperation::CreateGrayscaleFilter(.75));
- green_lane->SetBackgroundFilters(filters);
- green_lane->SetBlendMode(kBlendModes[i]);
- }
-
- RunPixelResourceTest(
- background, base::FilePath(FILE_PATH_LITERAL("blending_and_filter.png")));
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithTransparent_GL) {
- RunBlendingWithTransparentPixelTestType(GL_ASYNC_UPLOAD_2D_DRAW);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithTransparent_Software) {
- RunBlendingWithTransparentPixelTestType(SOFTWARE);
-}
-
-// Tests for render passes
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPass_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass.png"), 0);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPass_Software) {
- RunBlendingWithRenderPass(SOFTWARE,
- FILE_PATH_LITERAL("blending_render_pass.png"), 0);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassAA_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass.png"),
- kUseAntialiasing);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassAA_Software) {
- RunBlendingWithRenderPass(SOFTWARE,
- FILE_PATH_LITERAL("blending_render_pass.png"),
- kUseAntialiasing);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassWithMask_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassWithMask_Software) {
- RunBlendingWithRenderPass(
- SOFTWARE, FILE_PATH_LITERAL("blending_render_pass_mask.png"), kUseMasks);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassWithMaskAA_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kUseAntialiasing);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassWithMaskAA_Software) {
- RunBlendingWithRenderPass(SOFTWARE,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kUseAntialiasing);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassColorMatrix_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass.png"),
- kUseColorMatrix);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassColorMatrix_Software) {
- RunBlendingWithRenderPass(
- SOFTWARE, FILE_PATH_LITERAL("blending_render_pass.png"), kUseColorMatrix);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassColorMatrixAA_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass.png"),
- kUseAntialiasing | kUseColorMatrix);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassColorMatrixAA_Software) {
- RunBlendingWithRenderPass(SOFTWARE,
- FILE_PATH_LITERAL("blending_render_pass.png"),
- kUseAntialiasing | kUseColorMatrix);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassWithMaskColorMatrix_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kUseColorMatrix);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassWithMaskColorMatrix_Software) {
- RunBlendingWithRenderPass(SOFTWARE,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kUseColorMatrix);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassWithMaskColorMatrixAA_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kUseAntialiasing | kUseColorMatrix);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassWithMaskColorMatrixAA_Software) {
- RunBlendingWithRenderPass(SOFTWARE,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kUseAntialiasing | kUseColorMatrix);
-}
-
-// Tests for render passes forcing shaders for all the blend modes.
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassShaders_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass.png"),
- kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest, BlendingWithRenderPassShadersAA_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass.png"),
- kUseAntialiasing | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassShadersWithMask_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassShadersWithMask_GL_TextureRect) {
- RunBlendingWithRenderPass(GL_ZERO_COPY_RECT_DRAW,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassShadersWithMaskAA_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kUseAntialiasing | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassShadersWithMaskAA_GL_TextureRect) {
- RunBlendingWithRenderPass(GL_ZERO_COPY_RECT_DRAW,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kUseAntialiasing | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassShadersColorMatrix_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass.png"),
- kUseColorMatrix | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassShadersColorMatrixAA_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass.png"),
- kUseAntialiasing | kUseColorMatrix | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassShadersWithMaskColorMatrix_GL) {
- RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kUseColorMatrix | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassShadersWithMaskColorMatrix_GL_TextureRect) {
- RunBlendingWithRenderPass(GL_ZERO_COPY_RECT_DRAW,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kUseColorMatrix | kForceShaders);
-}
-
-TEST_F(LayerTreeHostBlendingPixelTest,
- BlendingWithRenderPassShadersWithMaskColorMatrixAA_GL) {
- RunBlendingWithRenderPass(
- GL_ASYNC_UPLOAD_2D_DRAW,
- FILE_PATH_LITERAL("blending_render_pass_mask.png"),
- kUseMasks | kUseAntialiasing | kUseColorMatrix | kForceShaders);
-}
-
-} // namespace
-} // namespace cc
-
-#endif // OS_ANDROID
« no previous file with comments | « cc/trees/layer_tree_host_perftest.cc ('k') | cc/trees/layer_tree_host_pixeltest_filters.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698