| Index: cc/test/pixel_test.cc
|
| diff --git a/cc/test/pixel_test.cc b/cc/test/pixel_test.cc
|
| index 8563440aa789dc00b68151fdb86e8e6bd8ef5c96..5976ae350db3ecc0af2c04beec660f975b531050 100644
|
| --- a/cc/test/pixel_test.cc
|
| +++ b/cc/test/pixel_test.cc
|
| @@ -77,26 +77,40 @@ void PixelTest::SetUp() {
|
| resource_provider_->set_offscreen_context_provider(offscreen_contexts);
|
| }
|
|
|
| -bool PixelTest::PixelsMatchReference(const base::FilePath& ref_file,
|
| - const PixelComparator& comparator) {
|
| - gfx::Rect device_viewport_rect(device_viewport_size_);
|
| +bool PixelTest::RunPixelTest(RenderPassList* pass_list,
|
| + const base::FilePath& ref_file,
|
| + const PixelComparator& comparator) {
|
| + pass_list->back()->copy_callbacks.push_back(
|
| + base::Bind(&PixelTest::ReadbackResult, base::Unretained(this)));
|
| +
|
| + renderer_->DecideRenderPassAllocationsForFrame(*pass_list);
|
| + renderer_->DrawFrame(pass_list);
|
|
|
| - SkBitmap bitmap;
|
| - bitmap.setConfig(SkBitmap::kARGB_8888_Config,
|
| - device_viewport_rect.width(),
|
| - device_viewport_rect.height());
|
| - bitmap.allocPixels();
|
| - unsigned char* pixels = static_cast<unsigned char*>(bitmap.getPixels());
|
| - renderer_->GetFramebufferPixels(pixels, device_viewport_rect);
|
| + // TODO(danakj): When the glReadPixels is async, wait for it to finish.
|
|
|
| + return PixelsMatchReference(ref_file, comparator);
|
| +}
|
| +
|
| +void PixelTest::ReadbackResult(scoped_ptr<SkBitmap> bitmap) {
|
| + result_bitmap_ = bitmap.Pass();
|
| +}
|
| +
|
| +bool PixelTest::PixelsMatchReference(const base::FilePath& ref_file,
|
| + const PixelComparator& comparator) {
|
| base::FilePath test_data_dir;
|
| if (!PathService::Get(cc::DIR_TEST_DATA, &test_data_dir))
|
| return false;
|
|
|
| + // If this is false, we didn't set up a readback on a render pass.
|
| + if (!result_bitmap_)
|
| + return false;
|
| +
|
| // To rebaseline:
|
| - // return WritePNGFile(bitmap, test_data_dir.Append(ref_file));
|
| + // return WritePNGFile(*result_bitmap_, test_data_dir.Append(ref_file), true);
|
|
|
| - return MatchesPNGFile(bitmap, test_data_dir.Append(ref_file), comparator);
|
| + return MatchesPNGFile(*result_bitmap_,
|
| + test_data_dir.Append(ref_file),
|
| + comparator);
|
| }
|
|
|
| } // namespace cc
|
|
|