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

Unified Diff: cc/output/renderer_pixeltest.cc

Issue 2936343002: Add support to GLRenderer for different blending for solid color quads (Closed)
Patch Set: 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
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/output/renderer_pixeltest.cc
diff --git a/cc/output/renderer_pixeltest.cc b/cc/output/renderer_pixeltest.cc
index e8215673291e24cfeb67c784c0b2e92871f71ab9..54403b5630a0a9f8117e2ef227051962a62bd9d2 100644
--- a/cc/output/renderer_pixeltest.cc
+++ b/cc/output/renderer_pixeltest.cc
@@ -810,6 +810,39 @@ TYPED_TEST(RendererPixelTest, PremultipliedTextureWithBackground) {
FuzzyPixelOffByOneComparator(true)));
}
+TEST_F(GLRendererPixelTest, SolidColorBlend) {
+ gfx::Rect rect(this->device_viewport_size_);
+
+ int id = 1;
+ std::unique_ptr<RenderPass> pass = CreateTestRootRenderPass(id, rect);
+
+ SharedQuadState* shared_state =
+ CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
+ shared_state->opacity = 1 - 16.0f / 255;
+ shared_state->blend_mode = SkBlendMode::kDstOut;
+
+ SolidColorDrawQuad* color_quad =
+ pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
+ color_quad->SetNew(shared_state, rect, rect, SK_ColorRED, false);
+
+ SharedQuadState* shared_state_background =
+ CreateTestSharedQuadState(gfx::Transform(), rect, pass.get());
+
+ SkColor background_color = SkColorSetRGB(0xff, 0xff * 14 / 16, 0xff);
+ SolidColorDrawQuad* color_quad_background =
+ pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
+ color_quad_background->SetNew(shared_state_background, rect, rect,
+ background_color, false);
+ // Result should be r=16, g=14, b=16.
+
+ RenderPassList pass_list;
+ pass_list.push_back(std::move(pass));
+
+ EXPECT_TRUE(this->RunPixelTest(
+ &pass_list, base::FilePath(FILE_PATH_LITERAL("dark_grey.png")),
+ FuzzyPixelOffByOneComparator(true)));
+}
+
TEST_F(GLRendererPixelTest,
PremultipliedTextureWithBackgroundAndVertexOpacity) {
gfx::Rect rect(this->device_viewport_size_);
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698