diff options
author | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-26 16:18:25 +0000 |
---|---|---|
committer | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-26 16:18:25 +0000 |
commit | 18a7019dbdee8d72bcdf060fb656295f3b64b60d (patch) | |
tree | 7e4dceed39c7dee39ccb37dd34c33c9e4fe6cdae /cc/test/layer_tree_pixel_test.cc | |
parent | ebf258d7abe7d118039b56fa3a0c12ed5eb5ceee (diff) | |
download | chromium_src-18a7019dbdee8d72bcdf060fb656295f3b64b60d.zip chromium_src-18a7019dbdee8d72bcdf060fb656295f3b64b60d.tar.gz chromium_src-18a7019dbdee8d72bcdf060fb656295f3b64b60d.tar.bz2 |
cc: Async readback.
Provide a path to get a readback of a layer's subtree via an
asynchronous mechanism.
This path is used for all the cc pixel tests, to show that it
works. Also by some unit tests:
LayerTreeHostTestAsyncReadback.GLRenderer_RunSingleThread
LayerTreeHostTestAsyncReadback.GLRenderer_RunMultiThread
LayerTreeHostTestAsyncReadback.SoftwareRenderer_RunSingleThread
LayerTreeHostTestAsyncReadback.SoftwareRenderer_RunMultiThread
LayerTreeHostTestAsyncReadbackLayerDestroyed.RunSingleThread
LayerTreeHostTestAsyncReadbackLayerDestroyed.RunMultiThread
BUG=179896
Review URL: https://chromiumcodereview.appspot.com/14060015
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@196747 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/test/layer_tree_pixel_test.cc')
-rw-r--r-- | cc/test/layer_tree_pixel_test.cc | 24 |
1 files changed, 7 insertions, 17 deletions
diff --git a/cc/test/layer_tree_pixel_test.cc b/cc/test/layer_tree_pixel_test.cc index 34a0f8d..1dfc551 100644 --- a/cc/test/layer_tree_pixel_test.cc +++ b/cc/test/layer_tree_pixel_test.cc @@ -47,35 +47,25 @@ LayerTreePixelTest::OffscreenContextProviderForCompositorThread() { return provider; } -void LayerTreePixelTest::SwapBuffersOnThread(LayerTreeHostImpl* host_impl, - bool result) { - EXPECT_TRUE(result); - - gfx::Rect device_viewport_rect( - host_impl->active_tree()->device_viewport_size()); - - 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()); - host_impl->Readback(pixels, device_viewport_rect); +void LayerTreePixelTest::ReadbackResult(scoped_ptr<SkBitmap> bitmap) { + ASSERT_TRUE(bitmap); base::FilePath test_data_dir; EXPECT_TRUE(PathService::Get(cc::DIR_TEST_DATA, &test_data_dir)); // To rebaseline: - // EXPECT_TRUE(WritePNGFile(bitmap, test_data_dir.Append(ref_file_), true)); + // EXPECT_TRUE(WritePNGFile(*bitmap, test_data_dir.Append(ref_file_), true)); - EXPECT_TRUE(MatchesPNGFile(bitmap, + EXPECT_TRUE(MatchesPNGFile(*bitmap, test_data_dir.Append(ref_file_), *pixel_comparator_)); - EndTest(); } void LayerTreePixelTest::BeginTest() { + layer_tree_host()->root_layer()->RequestCopyAsBitmap( + base::Bind(&LayerTreePixelTest::ReadbackResult, + base::Unretained(this))); PostSetNeedsCommitToMainThread(); } |