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

Side by Side Diff: cc/test/layer_tree_pixel_test.cc

Issue 14060015: cc: Async readback. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 7 months 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/test/layer_tree_pixel_test.h ('k') | cc/test/pixel_test.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/test/layer_tree_pixel_test.h" 5 #include "cc/test/layer_tree_pixel_test.h"
6 6
7 #include "base/path_service.h" 7 #include "base/path_service.h"
8 #include "cc/test/paths.h" 8 #include "cc/test/paths.h"
9 #include "cc/test/pixel_comparator.h" 9 #include "cc/test/pixel_comparator.h"
10 #include "cc/test/pixel_test_utils.h" 10 #include "cc/test/pixel_test_utils.h"
(...skipping 29 matching lines...) Expand all
40 } 40 }
41 41
42 scoped_refptr<cc::ContextProvider> 42 scoped_refptr<cc::ContextProvider>
43 LayerTreePixelTest::OffscreenContextProviderForCompositorThread() { 43 LayerTreePixelTest::OffscreenContextProviderForCompositorThread() {
44 scoped_refptr<webkit::gpu::ContextProviderInProcess> provider = 44 scoped_refptr<webkit::gpu::ContextProviderInProcess> provider =
45 webkit::gpu::ContextProviderInProcess::Create(); 45 webkit::gpu::ContextProviderInProcess::Create();
46 CHECK(provider); 46 CHECK(provider);
47 return provider; 47 return provider;
48 } 48 }
49 49
50 void LayerTreePixelTest::SwapBuffersOnThread(LayerTreeHostImpl* host_impl, 50 void LayerTreePixelTest::ReadbackResult(scoped_ptr<SkBitmap> bitmap) {
51 bool result) { 51 ASSERT_TRUE(bitmap);
52 EXPECT_TRUE(result);
53
54 gfx::Rect device_viewport_rect(
55 host_impl->active_tree()->device_viewport_size());
56
57 SkBitmap bitmap;
58 bitmap.setConfig(SkBitmap::kARGB_8888_Config,
59 device_viewport_rect.width(),
60 device_viewport_rect.height());
61 bitmap.allocPixels();
62 unsigned char* pixels = static_cast<unsigned char*>(bitmap.getPixels());
63 host_impl->Readback(pixels, device_viewport_rect);
64 52
65 base::FilePath test_data_dir; 53 base::FilePath test_data_dir;
66 EXPECT_TRUE(PathService::Get(cc::DIR_TEST_DATA, &test_data_dir)); 54 EXPECT_TRUE(PathService::Get(cc::DIR_TEST_DATA, &test_data_dir));
67 55
68 // To rebaseline: 56 // To rebaseline:
69 // EXPECT_TRUE(WritePNGFile(bitmap, test_data_dir.Append(ref_file_), true)); 57 // EXPECT_TRUE(WritePNGFile(*bitmap, test_data_dir.Append(ref_file_), true));
70 58
71 EXPECT_TRUE(MatchesPNGFile(bitmap, 59 EXPECT_TRUE(MatchesPNGFile(*bitmap,
72 test_data_dir.Append(ref_file_), 60 test_data_dir.Append(ref_file_),
73 *pixel_comparator_)); 61 *pixel_comparator_));
74
75 EndTest(); 62 EndTest();
76 } 63 }
77 64
78 void LayerTreePixelTest::BeginTest() { 65 void LayerTreePixelTest::BeginTest() {
66 layer_tree_host()->root_layer()->RequestCopyAsBitmap(
67 base::Bind(&LayerTreePixelTest::ReadbackResult,
68 base::Unretained(this)));
79 PostSetNeedsCommitToMainThread(); 69 PostSetNeedsCommitToMainThread();
80 } 70 }
81 71
82 void LayerTreePixelTest::AfterTest() {} 72 void LayerTreePixelTest::AfterTest() {}
83 73
84 scoped_refptr<SolidColorLayer> LayerTreePixelTest::CreateSolidColorLayer( 74 scoped_refptr<SolidColorLayer> LayerTreePixelTest::CreateSolidColorLayer(
85 gfx::Rect rect, SkColor color) { 75 gfx::Rect rect, SkColor color) {
86 scoped_refptr<SolidColorLayer> layer = SolidColorLayer::Create(); 76 scoped_refptr<SolidColorLayer> layer = SolidColorLayer::Create();
87 layer->SetIsDrawable(true); 77 layer->SetIsDrawable(true);
88 layer->SetAnchorPoint(gfx::PointF()); 78 layer->SetAnchorPoint(gfx::PointF());
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 120
131 void LayerTreePixelTest::SetupTree() { 121 void LayerTreePixelTest::SetupTree() {
132 scoped_refptr<Layer> root = Layer::Create(); 122 scoped_refptr<Layer> root = Layer::Create();
133 root->SetBounds(content_root_->bounds()); 123 root->SetBounds(content_root_->bounds());
134 root->AddChild(content_root_); 124 root->AddChild(content_root_);
135 layer_tree_host()->SetRootLayer(root); 125 layer_tree_host()->SetRootLayer(root);
136 LayerTreeTest::SetupTree(); 126 LayerTreeTest::SetupTree();
137 } 127 }
138 128
139 } // namespace cc 129 } // namespace cc
OLDNEW
« no previous file with comments | « cc/test/layer_tree_pixel_test.h ('k') | cc/test/pixel_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698