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

Unified Diff: third_party/WebKit/Source/platform/graphics/ImageFrameGeneratorTest.cpp

Issue 2578803002: Remove full-size bitmap copy on SkImage::scalePixels->IFG::decodeAndScale
Patch Set: Created 4 years 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 | « third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/Source/platform/graphics/ImageFrameGeneratorTest.cpp
diff --git a/third_party/WebKit/Source/platform/graphics/ImageFrameGeneratorTest.cpp b/third_party/WebKit/Source/platform/graphics/ImageFrameGeneratorTest.cpp
index c72740578780138748b5e4a7f3ff8f3616f71faf..53f231fd5abecc469f587dc57057720abe08b64f 100644
--- a/third_party/WebKit/Source/platform/graphics/ImageFrameGeneratorTest.cpp
+++ b/third_party/WebKit/Source/platform/graphics/ImageFrameGeneratorTest.cpp
@@ -140,6 +140,7 @@ TEST_F(ImageFrameGeneratorTest, incompleteDecode) {
m_generator->decodeAndScale(m_segmentReader.get(), false, 0, imageInfo(),
buffer, 100 * 4);
EXPECT_EQ(2, m_decodeRequestCount);
+
EXPECT_EQ(0, m_decodersDestroyed);
}
@@ -166,6 +167,37 @@ TEST_F(ImageFrameGeneratorTest, incompleteDecodeBecomesComplete) {
EXPECT_EQ(3, m_decodeRequestCount);
}
+TEST_F(ImageFrameGeneratorTest, scaleAfterDecode) {
+ setFrameStatus(ImageFrame::FramePartial);
+
+ char scaledBuffer[30 * 30 * 4];
+ m_generator->decodeAndScale(m_segmentReader.get(), false, 0,
+ imageInfo().makeWH(30, 30), scaledBuffer, 30 * 4);
+ EXPECT_EQ(1, m_decodeRequestCount);
+
+ char buffer[100 * 100 * 4];
+ addNewData();
+ m_generator->decodeAndScale(m_segmentReader.get(), false, 0, imageInfo(),
+ buffer, 100 * 4);
+ EXPECT_EQ(2, m_decodeRequestCount);
+
+ char scaledBuffer1[45 * 48 * 4];
+ addNewData();
+ m_generator->decodeAndScale(m_segmentReader.get(), false, 0,
+ imageInfo().makeWH(45, 45), scaledBuffer1,
+ 48 * 4);
+ EXPECT_EQ(3, m_decodeRequestCount);
+ EXPECT_EQ(0, m_decodersDestroyed);
+
+ setFrameStatus(ImageFrame::FrameComplete);
+ addNewData();
+
+ m_generator->decodeAndScale(m_segmentReader.get(), false, 0,
+ imageInfo().makeWH(30, 30), scaledBuffer, 30 * 4);
+ EXPECT_EQ(4, m_decodeRequestCount);
+ EXPECT_EQ(1, m_decodersDestroyed);
+}
+
static void decodeThreadMain(ImageFrameGenerator* generator,
SegmentReader* segmentReader) {
char buffer[100 * 100 * 4];
« no previous file with comments | « third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698