void setFrameCount(size_t count)
 {
     m_frameCount = count;
     if (count > 1) {
         m_generator.clear();
         m_generator = ImageFrameGenerator::create(fullSize(), m_data, true, true);
         useMockImageDecoderFactory();
     }
 }
 virtual void SetUp() override
 {
     ImageDecodingStore::instance()->setCacheLimitInBytes(1024 * 1024);
     m_data = SharedBuffer::create();
     m_generator = ImageFrameGenerator::create(fullSize(), m_data, false);
     useMockImageDecoderFactory();
     m_decodersDestroyed = 0;
     m_frameBufferRequestCount = 0;
     m_status = ImageFrame::FrameEmpty;
 }
示例#3
0
TEST_F(DeferredImageDecoderTest, decodedSize) {
  m_decodedSize = IntSize(22, 33);
  m_lazyDecoder->setData(m_data, true);
  sk_sp<SkImage> image = m_lazyDecoder->createFrameAtIndex(0);
  ASSERT_TRUE(image);
  EXPECT_EQ(m_decodedSize.width(), image->width());
  EXPECT_EQ(m_decodedSize.height(), image->height());

  useMockImageDecoderFactory();

  // The following code should not fail any assert.
  SkPictureRecorder recorder;
  SkCanvas* tempCanvas = recorder.beginRecording(100, 100, 0, 0);
  tempCanvas->drawImage(image.get(), 0, 0);
  sk_sp<SkPicture> picture = recorder.finishRecordingAsPicture();
  EXPECT_EQ(0, m_decodeRequestCount);
  m_surface->getCanvas()->drawPicture(picture);
  EXPECT_EQ(1, m_decodeRequestCount);
}
TEST_F(DeferredImageDecoderTest, decodedSize)
{
    m_decodedSize = IntSize(22, 33);
    m_lazyDecoder->setData(*m_data, true);
    RefPtr<NativeImageSkia> image = m_lazyDecoder->frameBufferAtIndex(0)->asNewNativeImage();
    EXPECT_EQ(m_decodedSize.width(), image->bitmap().width());
    EXPECT_EQ(m_decodedSize.height(), image->bitmap().height());
    EXPECT_FALSE(image->bitmap().isNull());
    EXPECT_TRUE(image->bitmap().isImmutable());

    useMockImageDecoderFactory();

    // The following code should not fail any assert.
    SkPictureRecorder recorder;
    SkCanvas* tempCanvas = recorder.beginRecording(100, 100, 0, 0);
    tempCanvas->drawBitmap(image->bitmap(), 0, 0);
    RefPtr<SkPicture> picture = adoptRef(recorder.endRecording());
    EXPECT_EQ(0, m_frameBufferRequestCount);
    m_surface->getCanvas()->drawPicture(picture.get());
    EXPECT_EQ(1, m_frameBufferRequestCount);
}
TEST_F(DeferredImageDecoderTest, decodedSize)
{
    m_decodedSize = IntSize(22, 33);
    m_lazyDecoder->setData(*m_data, true);
    SkBitmap bitmap;
    EXPECT_TRUE(m_lazyDecoder->createFrameAtIndex(0, &bitmap));
    EXPECT_EQ(m_decodedSize.width(), bitmap.width());
    EXPECT_EQ(m_decodedSize.height(), bitmap.height());
    EXPECT_FALSE(bitmap.isNull());
    EXPECT_TRUE(bitmap.isImmutable());

    useMockImageDecoderFactory();

    // The following code should not fail any assert.
    SkPictureRecorder recorder;
    SkCanvas* tempCanvas = recorder.beginRecording(100, 100, 0, 0);
    tempCanvas->drawBitmap(bitmap, 0, 0);
    RefPtr<SkPicture> picture = adoptRef(recorder.endRecording());
    EXPECT_EQ(0, m_decodeRequestCount);
    m_surface->getCanvas()->drawPicture(picture.get());
    EXPECT_EQ(1, m_decodeRequestCount);
}