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

Unified Diff: media/filters/skcanvas_video_renderer_unittest.cc

Issue 441303002: 2D Canvas doesn't blend video with the destination buffer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove redundant SkCanvas::clear on compositor 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
Index: media/filters/skcanvas_video_renderer_unittest.cc
diff --git a/media/filters/skcanvas_video_renderer_unittest.cc b/media/filters/skcanvas_video_renderer_unittest.cc
index 5db3a34d6cfa260029c62ddd8b4c1ba5b56a8875..523aab05b491a2d40ebe6298550e6e0d5f9518cb 100644
--- a/media/filters/skcanvas_video_renderer_unittest.cc
+++ b/media/filters/skcanvas_video_renderer_unittest.cc
@@ -52,7 +52,10 @@ class SkCanvasVideoRendererTest : public testing::Test {
// Paints the |video_frame| to the |canvas| using |renderer_|, setting the
// color of |video_frame| to |color| first.
- void Paint(VideoFrame* video_frame, SkCanvas* canvas, Color color);
+ void Paint(VideoFrame* video_frame,
+ SkCanvas* canvas,
+ Color color,
+ SkXfermode::Mode mode = SkXfermode::kSrcOver_Mode);
// Getters for various frame sizes.
VideoFrame* natural_frame() { return natural_frame_.get(); }
@@ -185,12 +188,13 @@ SkCanvasVideoRendererTest::SkCanvasVideoRendererTest()
SkCanvasVideoRendererTest::~SkCanvasVideoRendererTest() {}
void SkCanvasVideoRendererTest::PaintWithoutFrame(SkCanvas* canvas) {
- renderer_.Paint(NULL, canvas, kNaturalRect, 0xFF);
+ renderer_.Paint(NULL, canvas, kNaturalRect, 0xFF, SkXfermode::kSrcOver_Mode);
}
void SkCanvasVideoRendererTest::Paint(VideoFrame* video_frame,
SkCanvas* canvas,
- Color color) {
+ Color color,
+ SkXfermode::Mode mode) {
switch (color) {
case kNone:
break;
@@ -204,7 +208,7 @@ void SkCanvasVideoRendererTest::Paint(VideoFrame* video_frame,
media::FillYUV(video_frame, 29, 255, 107);
break;
}
- renderer_.Paint(video_frame, canvas, kNaturalRect, 0xFF);
+ renderer_.Paint(video_frame, canvas, kNaturalRect, 0xFF, mode);
}
TEST_F(SkCanvasVideoRendererTest, NoFrame) {
@@ -215,11 +219,20 @@ TEST_F(SkCanvasVideoRendererTest, NoFrame) {
}
TEST_F(SkCanvasVideoRendererTest, TransparentFrame) {
- // Test that we don't blend with existing canvas contents.
FillCanvas(target_canvas(), SK_ColorRED);
Paint(VideoFrame::CreateTransparentFrame(gfx::Size(kWidth, kHeight)),
target_canvas(),
kNone);
+ EXPECT_EQ(static_cast<SkColor>(SK_ColorRED), GetColor(target_canvas()));
+}
+
+TEST_F(SkCanvasVideoRendererTest, TransparentFrameSrcMode) {
+ FillCanvas(target_canvas(), SK_ColorRED);
+ // SRC mode completely overwrites the buffer.
+ Paint(VideoFrame::CreateTransparentFrame(gfx::Size(kWidth, kHeight)),
+ target_canvas(),
+ kNone,
+ SkXfermode::kSrc_Mode);
EXPECT_EQ(static_cast<SkColor>(SK_ColorTRANSPARENT),
GetColor(target_canvas()));
}

Powered by Google App Engine
This is Rietveld 408576698