| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 SkPictureRecorder recorder; | 159 SkPictureRecorder recorder; |
| 160 SkCanvas* tempCanvas = recorder.beginRecording(100, 100, 0, 0); | 160 SkCanvas* tempCanvas = recorder.beginRecording(100, 100, 0, 0); |
| 161 tempCanvas->drawBitmap(image->bitmap(), 0, 0); | 161 tempCanvas->drawBitmap(image->bitmap(), 0, 0); |
| 162 RefPtr<SkPicture> picture = adoptRef(recorder.endRecording()); | 162 RefPtr<SkPicture> picture = adoptRef(recorder.endRecording()); |
| 163 EXPECT_EQ(0, m_frameBufferRequestCount); | 163 EXPECT_EQ(0, m_frameBufferRequestCount); |
| 164 | 164 |
| 165 m_canvas->drawPicture(picture.get()); | 165 m_canvas->drawPicture(picture.get()); |
| 166 EXPECT_EQ(0, m_frameBufferRequestCount); | 166 EXPECT_EQ(0, m_frameBufferRequestCount); |
| 167 | 167 |
| 168 SkBitmap canvasBitmap; | 168 SkBitmap canvasBitmap; |
| 169 ASSERT_TRUE(canvasBitmap.allocN32Pixels(100, 100)); | 169 canvasBitmap.allocN32Pixels(100, 100); |
| 170 ASSERT_TRUE(m_canvas->readPixels(&canvasBitmap, 0, 0)); | 170 ASSERT_TRUE(m_canvas->readPixels(&canvasBitmap, 0, 0)); |
| 171 SkAutoLockPixels autoLock(canvasBitmap); | 171 SkAutoLockPixels autoLock(canvasBitmap); |
| 172 EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), canvasBitmap.getColor(0, 0)); | 172 EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), canvasBitmap.getColor(0, 0)); |
| 173 } | 173 } |
| 174 | 174 |
| 175 TEST_F(DeferredImageDecoderTest, drawIntoSkPictureProgressive) | 175 TEST_F(DeferredImageDecoderTest, drawIntoSkPictureProgressive) |
| 176 { | 176 { |
| 177 RefPtr<SharedBuffer> partialData = SharedBuffer::create(m_data->data(), m_da
ta->size() - 10); | 177 RefPtr<SharedBuffer> partialData = SharedBuffer::create(m_data->data(), m_da
ta->size() - 10); |
| 178 | 178 |
| 179 // Received only half the file. | 179 // Received only half the file. |
| 180 m_lazyDecoder->setData(*partialData, false); | 180 m_lazyDecoder->setData(*partialData, false); |
| 181 RefPtr<NativeImageSkia> image = m_lazyDecoder->frameBufferAtIndex(0)->asNewN
ativeImage(); | 181 RefPtr<NativeImageSkia> image = m_lazyDecoder->frameBufferAtIndex(0)->asNewN
ativeImage(); |
| 182 SkPictureRecorder recorder; | 182 SkPictureRecorder recorder; |
| 183 SkCanvas* tempCanvas = recorder.beginRecording(100, 100, 0, 0); | 183 SkCanvas* tempCanvas = recorder.beginRecording(100, 100, 0, 0); |
| 184 tempCanvas->drawBitmap(image->bitmap(), 0, 0); | 184 tempCanvas->drawBitmap(image->bitmap(), 0, 0); |
| 185 RefPtr<SkPicture> picture = adoptRef(recorder.endRecording()); | 185 RefPtr<SkPicture> picture = adoptRef(recorder.endRecording()); |
| 186 m_canvas->drawPicture(picture.get()); | 186 m_canvas->drawPicture(picture.get()); |
| 187 | 187 |
| 188 // Fully received the file and draw the SkPicture again. | 188 // Fully received the file and draw the SkPicture again. |
| 189 m_lazyDecoder->setData(*m_data, true); | 189 m_lazyDecoder->setData(*m_data, true); |
| 190 image = m_lazyDecoder->frameBufferAtIndex(0)->asNewNativeImage(); | 190 image = m_lazyDecoder->frameBufferAtIndex(0)->asNewNativeImage(); |
| 191 tempCanvas = recorder.beginRecording(100, 100, 0, 0); | 191 tempCanvas = recorder.beginRecording(100, 100, 0, 0); |
| 192 tempCanvas->drawBitmap(image->bitmap(), 0, 0); | 192 tempCanvas->drawBitmap(image->bitmap(), 0, 0); |
| 193 picture = adoptRef(recorder.endRecording()); | 193 picture = adoptRef(recorder.endRecording()); |
| 194 m_canvas->drawPicture(picture.get()); | 194 m_canvas->drawPicture(picture.get()); |
| 195 | 195 |
| 196 SkBitmap canvasBitmap; | 196 SkBitmap canvasBitmap; |
| 197 ASSERT_TRUE(canvasBitmap.allocN32Pixels(100, 100)); | 197 canvasBitmap.allocN32Pixels(100, 100); |
| 198 ASSERT_TRUE(m_canvas->readPixels(&canvasBitmap, 0, 0)); | 198 ASSERT_TRUE(m_canvas->readPixels(&canvasBitmap, 0, 0)); |
| 199 SkAutoLockPixels autoLock(canvasBitmap); | 199 SkAutoLockPixels autoLock(canvasBitmap); |
| 200 EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), canvasBitmap.getColor(0, 0)); | 200 EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), canvasBitmap.getColor(0, 0)); |
| 201 } | 201 } |
| 202 | 202 |
| 203 static void rasterizeMain(SkCanvas* canvas, SkPicture* picture) | 203 static void rasterizeMain(SkCanvas* canvas, SkPicture* picture) |
| 204 { | 204 { |
| 205 canvas->drawPicture(picture); | 205 canvas->drawPicture(picture); |
| 206 } | 206 } |
| 207 | 207 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 220 RefPtr<SkPicture> picture = adoptRef(recorder.endRecording()); | 220 RefPtr<SkPicture> picture = adoptRef(recorder.endRecording()); |
| 221 EXPECT_EQ(0, m_frameBufferRequestCount); | 221 EXPECT_EQ(0, m_frameBufferRequestCount); |
| 222 | 222 |
| 223 // Create a thread to rasterize SkPicture. | 223 // Create a thread to rasterize SkPicture. |
| 224 OwnPtr<WebThread> thread = adoptPtr(Platform::current()->createThread("Raste
rThread")); | 224 OwnPtr<WebThread> thread = adoptPtr(Platform::current()->createThread("Raste
rThread")); |
| 225 thread->postTask(new Task(WTF::bind(&rasterizeMain, m_canvas.get(), picture.
get()))); | 225 thread->postTask(new Task(WTF::bind(&rasterizeMain, m_canvas.get(), picture.
get()))); |
| 226 thread.clear(); | 226 thread.clear(); |
| 227 EXPECT_EQ(0, m_frameBufferRequestCount); | 227 EXPECT_EQ(0, m_frameBufferRequestCount); |
| 228 | 228 |
| 229 SkBitmap canvasBitmap; | 229 SkBitmap canvasBitmap; |
| 230 ASSERT_TRUE(canvasBitmap.allocN32Pixels(100, 100)); | 230 canvasBitmap.allocN32Pixels(100, 100); |
| 231 ASSERT_TRUE(m_canvas->readPixels(&canvasBitmap, 0, 0)); | 231 ASSERT_TRUE(m_canvas->readPixels(&canvasBitmap, 0, 0)); |
| 232 SkAutoLockPixels autoLock(canvasBitmap); | 232 SkAutoLockPixels autoLock(canvasBitmap); |
| 233 EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), canvasBitmap.getColor(0, 0)); | 233 EXPECT_EQ(SkColorSetARGB(255, 255, 255, 255), canvasBitmap.getColor(0, 0)); |
| 234 } | 234 } |
| 235 | 235 |
| 236 TEST_F(DeferredImageDecoderTest, singleFrameImageLoading) | 236 TEST_F(DeferredImageDecoderTest, singleFrameImageLoading) |
| 237 { | 237 { |
| 238 m_status = ImageFrame::FramePartial; | 238 m_status = ImageFrame::FramePartial; |
| 239 m_lazyDecoder->setData(*m_data, false); | 239 m_lazyDecoder->setData(*m_data, false); |
| 240 EXPECT_FALSE(m_lazyDecoder->frameIsCompleteAtIndex(0)); | 240 EXPECT_FALSE(m_lazyDecoder->frameIsCompleteAtIndex(0)); |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 EXPECT_EQ(m_frameCount, m_lazyDecoder->frameCount()); | 336 EXPECT_EQ(m_frameCount, m_lazyDecoder->frameCount()); |
| 337 m_frameCount = 2; | 337 m_frameCount = 2; |
| 338 m_lazyDecoder->setData(*m_data, false); | 338 m_lazyDecoder->setData(*m_data, false); |
| 339 EXPECT_EQ(m_frameCount, m_lazyDecoder->frameCount()); | 339 EXPECT_EQ(m_frameCount, m_lazyDecoder->frameCount()); |
| 340 m_frameCount = 0; | 340 m_frameCount = 0; |
| 341 m_lazyDecoder->setData(*m_data, true); | 341 m_lazyDecoder->setData(*m_data, true); |
| 342 EXPECT_EQ(m_frameCount, m_lazyDecoder->frameCount()); | 342 EXPECT_EQ(m_frameCount, m_lazyDecoder->frameCount()); |
| 343 } | 343 } |
| 344 | 344 |
| 345 } // namespace blink | 345 } // namespace blink |
| OLD | NEW |