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

Side by Side Diff: cc/gl_renderer_pixeltest.cc

Issue 12558003: cc: Made image comparison for pixel tests error tolerant. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Code cleanups Created 7 years, 9 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/gl_renderer.h" 5 #include "cc/gl_renderer.h"
6 6
7 #include "base/file_util.h" 7 #include "base/file_util.h"
8 #include "base/path_service.h" 8 #include "base/path_service.h"
9 #include "cc/compositor_frame_metadata.h" 9 #include "cc/compositor_frame_metadata.h"
10 #include "cc/draw_quad.h" 10 #include "cc/draw_quad.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 new webkit::gpu::WebGraphicsContext3DInProcessCommandBufferImpl); 57 new webkit::gpu::WebGraphicsContext3DInProcessCommandBufferImpl);
58 context3d->Initialize(WebKit::WebGraphicsContext3D::Attributes(), NULL); 58 context3d->Initialize(WebKit::WebGraphicsContext3D::Attributes(), NULL);
59 output_surface_.reset(new OutputSurface( 59 output_surface_.reset(new OutputSurface(
60 context3d.PassAs<WebKit::WebGraphicsContext3D>())); 60 context3d.PassAs<WebKit::WebGraphicsContext3D>()));
61 resource_provider_ = ResourceProvider::create(output_surface_.get()); 61 resource_provider_ = ResourceProvider::create(output_surface_.get());
62 renderer_ = GLRenderer::create(&fake_client_, 62 renderer_ = GLRenderer::create(&fake_client_,
63 output_surface_.get(), 63 output_surface_.get(),
64 resource_provider_.get()); 64 resource_provider_.get());
65 } 65 }
66 66
67 bool PixelsMatchReference(base::FilePath ref_file, gfx::Rect viewport_rect) { 67 bool PixelsMatchReference(base::FilePath ref_file, gfx::Rect viewport_rect,
danakj 2013/03/18 17:45:22 This code moved to cc/test/pixel_test.h|cc
ernstm 2013/03/18 20:19:39 Done.
68 const PixelComparator& comparator) {
68 SkBitmap bitmap; 69 SkBitmap bitmap;
69 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 70 bitmap.setConfig(SkBitmap::kARGB_8888_Config,
70 viewport_rect.width(), viewport_rect.height()); 71 viewport_rect.width(), viewport_rect.height());
71 bitmap.allocPixels(); 72 bitmap.allocPixels();
72 unsigned char* pixels = static_cast<unsigned char*>(bitmap.getPixels()); 73 unsigned char* pixels = static_cast<unsigned char*>(bitmap.getPixels());
73 renderer_->getFramebufferPixels(pixels, viewport_rect); 74 renderer_->getFramebufferPixels(pixels, viewport_rect);
74 75
75 base::FilePath test_data_dir; 76 base::FilePath test_data_dir;
76 if (!PathService::Get(cc::DIR_TEST_DATA, &test_data_dir)) 77 if (!PathService::Get(cc::DIR_TEST_DATA, &test_data_dir))
77 return false; 78 return false;
78 79
79 return IsSameAsPNGFile(bitmap, test_data_dir.Append(ref_file)); 80 return MatchesPNGFile(bitmap, test_data_dir.Append(ref_file), comparator);
80 } 81 }
81 82
82 scoped_ptr<OutputSurface> output_surface_; 83 scoped_ptr<OutputSurface> output_surface_;
83 FakeRendererClient fake_client_; 84 FakeRendererClient fake_client_;
84 scoped_ptr<ResourceProvider> resource_provider_; 85 scoped_ptr<ResourceProvider> resource_provider_;
85 scoped_ptr<GLRenderer> renderer_; 86 scoped_ptr<GLRenderer> renderer_;
86 }; 87 };
87 88
88 scoped_ptr<RenderPass> CreateTestRenderPass(RenderPass::Id id, gfx::Rect rect) { 89 scoped_ptr<RenderPass> CreateTestRenderPass(RenderPass::Id id, gfx::Rect rect) {
89 scoped_ptr<RenderPass> pass = RenderPass::Create(); 90 scoped_ptr<RenderPass> pass = RenderPass::Create();
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
145 146
146 pass->quad_list.push_back(color_quad.PassAs<DrawQuad>()); 147 pass->quad_list.push_back(color_quad.PassAs<DrawQuad>());
147 148
148 RenderPassList pass_list; 149 RenderPassList pass_list;
149 pass_list.push_back(pass.Pass()); 150 pass_list.push_back(pass.Pass());
150 151
151 renderer_->drawFrame(pass_list); 152 renderer_->drawFrame(pass_list);
152 153
153 EXPECT_TRUE(PixelsMatchReference( 154 EXPECT_TRUE(PixelsMatchReference(
154 base::FilePath(FILE_PATH_LITERAL("green.png")), 155 base::FilePath(FILE_PATH_LITERAL("green.png")),
155 rect)); 156 rect, ExactPixelComparator()));
156 } 157 }
157 158
158 TEST_F(GLRendererPixelTest, RenderPassChangesSize) { 159 TEST_F(GLRendererPixelTest, RenderPassChangesSize) {
159 gfx::Rect viewport_rect(200, 200); 160 gfx::Rect viewport_rect(200, 200);
160 161
161 RenderPass::Id root_pass_id(1, 1); 162 RenderPass::Id root_pass_id(1, 1);
162 scoped_ptr<RenderPass> root_pass = 163 scoped_ptr<RenderPass> root_pass =
163 CreateTestRenderPass(root_pass_id, viewport_rect); 164 CreateTestRenderPass(root_pass_id, viewport_rect);
164 165
165 RenderPass::Id child_pass_id(2, 2); 166 RenderPass::Id child_pass_id(2, 2);
(...skipping 22 matching lines...) Expand all
188 189
189 RenderPassList pass_list; 190 RenderPassList pass_list;
190 pass_list.push_back(child_pass.Pass()); 191 pass_list.push_back(child_pass.Pass());
191 pass_list.push_back(root_pass.Pass()); 192 pass_list.push_back(root_pass.Pass());
192 193
193 renderer_->setEnlargePassTextureAmountForTesting(gfx::Vector2d(50, 75)); 194 renderer_->setEnlargePassTextureAmountForTesting(gfx::Vector2d(50, 75));
194 renderer_->decideRenderPassAllocationsForFrame(pass_list); 195 renderer_->decideRenderPassAllocationsForFrame(pass_list);
195 renderer_->drawFrame(pass_list); 196 renderer_->drawFrame(pass_list);
196 197
197 EXPECT_TRUE(PixelsMatchReference( 198 EXPECT_TRUE(PixelsMatchReference(
198 base::FilePath(FILE_PATH_LITERAL("blue_yellow.png")), viewport_rect)); 199 base::FilePath(FILE_PATH_LITERAL("blue_yellow.png")), viewport_rect,
200 ExactPixelComparator()));
199 } 201 }
200 #endif 202 #endif
201 203
202 } // namespace 204 } // namespace
203 } // namespace cc 205 } // namespace cc
OLDNEW
« no previous file with comments | « cc/cc_tests.gyp ('k') | cc/test/pixel_comparator.h » ('j') | cc/test/pixel_comparator.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698