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

Side by Side Diff: cc/output/software_renderer_unittest.cc

Issue 23961003: cc: Remove most methods from RendererClient. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rendererclient: rebase Created 7 years, 3 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/output/software_renderer.cc ('k') | cc/test/fake_output_surface.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 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/output/software_renderer.h" 5 #include "cc/output/software_renderer.h"
6 6
7 #include "cc/layers/quad_sink.h" 7 #include "cc/layers/quad_sink.h"
8 #include "cc/output/compositor_frame_metadata.h" 8 #include "cc/output/compositor_frame_metadata.h"
9 #include "cc/output/software_output_device.h" 9 #include "cc/output/software_output_device.h"
10 #include "cc/quads/render_pass.h" 10 #include "cc/quads/render_pass.h"
11 #include "cc/quads/render_pass_draw_quad.h" 11 #include "cc/quads/render_pass_draw_quad.h"
12 #include "cc/quads/solid_color_draw_quad.h" 12 #include "cc/quads/solid_color_draw_quad.h"
13 #include "cc/quads/tile_draw_quad.h" 13 #include "cc/quads/tile_draw_quad.h"
14 #include "cc/test/animation_test_common.h" 14 #include "cc/test/animation_test_common.h"
15 #include "cc/test/fake_output_surface.h" 15 #include "cc/test/fake_output_surface.h"
16 #include "cc/test/fake_output_surface_client.h" 16 #include "cc/test/fake_output_surface_client.h"
17 #include "cc/test/geometry_test_utils.h" 17 #include "cc/test/geometry_test_utils.h"
18 #include "cc/test/render_pass_test_common.h" 18 #include "cc/test/render_pass_test_common.h"
19 #include "cc/test/render_pass_test_utils.h" 19 #include "cc/test/render_pass_test_utils.h"
20 #include "testing/gmock/include/gmock/gmock.h" 20 #include "testing/gmock/include/gmock/gmock.h"
21 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
22 #include "third_party/skia/include/core/SkCanvas.h" 22 #include "third_party/skia/include/core/SkCanvas.h"
23 #include "third_party/skia/include/core/SkDevice.h" 23 #include "third_party/skia/include/core/SkDevice.h"
24 24
25 namespace cc { 25 namespace cc {
26 namespace { 26 namespace {
27 27
28 class SoftwareRendererTest : public testing::Test, public RendererClient { 28 class SoftwareRendererTest : public testing::Test, public RendererClient {
29 public: 29 public:
30 SoftwareRendererTest() : should_clear_root_render_pass_(true) {}
31
32 void InitializeRenderer( 30 void InitializeRenderer(
33 scoped_ptr<SoftwareOutputDevice> software_output_device) { 31 scoped_ptr<SoftwareOutputDevice> software_output_device) {
34 output_surface_ = FakeOutputSurface::CreateSoftware( 32 output_surface_ = FakeOutputSurface::CreateSoftware(
35 software_output_device.Pass()); 33 software_output_device.Pass());
36 CHECK(output_surface_->BindToClient(&output_surface_client_)); 34 CHECK(output_surface_->BindToClient(&output_surface_client_));
37 35
38 resource_provider_ = ResourceProvider::Create(output_surface_.get(), 0); 36 resource_provider_ = ResourceProvider::Create(output_surface_.get(), 0);
39 renderer_ = SoftwareRenderer::Create( 37 renderer_ = SoftwareRenderer::Create(
40 this, output_surface_.get(), resource_provider()); 38 this, &settings_, output_surface_.get(), resource_provider());
41 } 39 }
42 40
43 ResourceProvider* resource_provider() const { 41 ResourceProvider* resource_provider() const {
44 return resource_provider_.get(); 42 return resource_provider_.get();
45 } 43 }
46 44
47 SoftwareRenderer* renderer() const { return renderer_.get(); } 45 SoftwareRenderer* renderer() const { return renderer_.get(); }
48 46
49 void set_viewport(gfx::Rect viewport) { 47 void set_viewport(gfx::Rect viewport) {
50 viewport_ = viewport; 48 viewport_ = viewport;
51 } 49 }
52 50
53 void set_should_clear_root_render_pass(bool clear_root_render_pass) {
54 should_clear_root_render_pass_ = clear_root_render_pass;
55 }
56
57 // RendererClient implementation. 51 // RendererClient implementation.
58 virtual gfx::Rect DeviceViewport() const OVERRIDE { 52 virtual gfx::Rect DeviceViewport() const OVERRIDE {
59 return viewport_; 53 return viewport_;
60 } 54 }
61 virtual gfx::Rect DeviceClip() const OVERRIDE { 55 virtual gfx::Rect DeviceClip() const OVERRIDE { return DeviceViewport(); }
62 return DeviceViewport();
63 }
64 virtual float DeviceScaleFactor() const OVERRIDE {
65 return 1.f;
66 }
67 virtual const LayerTreeSettings& Settings() const OVERRIDE {
68 return settings_;
69 }
70 virtual void SetFullRootLayerDamage() OVERRIDE {} 56 virtual void SetFullRootLayerDamage() OVERRIDE {}
71 virtual bool HasImplThread() const OVERRIDE { return false; }
72 virtual bool ShouldClearRootRenderPass() const OVERRIDE {
73 return should_clear_root_render_pass_;
74 }
75 virtual CompositorFrameMetadata MakeCompositorFrameMetadata() const OVERRIDE { 57 virtual CompositorFrameMetadata MakeCompositorFrameMetadata() const OVERRIDE {
76 return CompositorFrameMetadata(); 58 return CompositorFrameMetadata();
77 } 59 }
78 virtual bool AllowPartialSwap() const OVERRIDE {
79 return true;
80 }
81 virtual bool ExternalStencilTestEnabled() const OVERRIDE { return false; }
82 60
83 protected: 61 protected:
62 LayerTreeSettings settings_;
84 FakeOutputSurfaceClient output_surface_client_; 63 FakeOutputSurfaceClient output_surface_client_;
85 scoped_ptr<FakeOutputSurface> output_surface_; 64 scoped_ptr<FakeOutputSurface> output_surface_;
86 scoped_ptr<ResourceProvider> resource_provider_; 65 scoped_ptr<ResourceProvider> resource_provider_;
87 scoped_ptr<SoftwareRenderer> renderer_; 66 scoped_ptr<SoftwareRenderer> renderer_;
88 gfx::Rect viewport_; 67 gfx::Rect viewport_;
89 LayerTreeSettings settings_;
90 bool should_clear_root_render_pass_;
91 }; 68 };
92 69
93 TEST_F(SoftwareRendererTest, SolidColorQuad) { 70 TEST_F(SoftwareRendererTest, SolidColorQuad) {
94 gfx::Size outer_size(100, 100); 71 gfx::Size outer_size(100, 100);
95 gfx::Size inner_size(98, 98); 72 gfx::Size inner_size(98, 98);
96 gfx::Rect outer_rect(outer_size); 73 gfx::Rect outer_rect(outer_size);
97 gfx::Rect inner_rect(gfx::Point(1, 1), inner_size); 74 gfx::Rect inner_rect(gfx::Point(1, 1), inner_size);
98 gfx::Rect visible_rect(gfx::Point(1, 2), gfx::Size(98, 97)); 75 gfx::Rect visible_rect(gfx::Point(1, 2), gfx::Size(98, 97));
99 set_viewport(gfx::Rect(outer_size)); 76 set_viewport(gfx::Rect(outer_size));
100 77
(...skipping 10 matching lines...) Expand all
111 outer_quad->SetNew( 88 outer_quad->SetNew(
112 shared_quad_state.get(), outer_rect, SK_ColorYELLOW, false); 89 shared_quad_state.get(), outer_rect, SK_ColorYELLOW, false);
113 scoped_ptr<SolidColorDrawQuad> inner_quad = SolidColorDrawQuad::Create(); 90 scoped_ptr<SolidColorDrawQuad> inner_quad = SolidColorDrawQuad::Create();
114 inner_quad->SetNew(shared_quad_state.get(), inner_rect, SK_ColorCYAN, false); 91 inner_quad->SetNew(shared_quad_state.get(), inner_rect, SK_ColorCYAN, false);
115 inner_quad->visible_rect = visible_rect; 92 inner_quad->visible_rect = visible_rect;
116 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>()); 93 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>());
117 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>()); 94 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>());
118 95
119 RenderPassList list; 96 RenderPassList list;
120 list.push_back(root_render_pass.PassAs<RenderPass>()); 97 list.push_back(root_render_pass.PassAs<RenderPass>());
121 renderer()->DrawFrame(&list, NULL); 98
99 float device_scale_factor = 1.f;
100 renderer()->DrawFrame(&list, NULL, device_scale_factor, true);
122 101
123 SkBitmap output; 102 SkBitmap output;
124 output.setConfig(SkBitmap::kARGB_8888_Config, 103 output.setConfig(SkBitmap::kARGB_8888_Config,
125 DeviceViewport().width(), 104 DeviceViewport().width(),
126 DeviceViewport().height()); 105 DeviceViewport().height());
127 output.allocPixels(); 106 output.allocPixels();
128 renderer()->GetFramebufferPixels(output.getPixels(), outer_rect); 107 renderer()->GetFramebufferPixels(output.getPixels(), outer_rect);
129 108
130 EXPECT_EQ(SK_ColorYELLOW, output.getColor(0, 0)); 109 EXPECT_EQ(SK_ColorYELLOW, output.getColor(0, 0));
131 EXPECT_EQ(SK_ColorYELLOW, 110 EXPECT_EQ(SK_ColorYELLOW,
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 inner_rect, 179 inner_rect,
201 resource_cyan, 180 resource_cyan,
202 gfx::RectF(inner_size), 181 gfx::RectF(inner_size),
203 inner_size, 182 inner_size,
204 false); 183 false);
205 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>()); 184 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>());
206 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>()); 185 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>());
207 186
208 RenderPassList list; 187 RenderPassList list;
209 list.push_back(root_render_pass.PassAs<RenderPass>()); 188 list.push_back(root_render_pass.PassAs<RenderPass>());
210 renderer()->DrawFrame(&list, NULL); 189
190 float device_scale_factor = 1.f;
191 renderer()->DrawFrame(&list, NULL, device_scale_factor, true);
211 192
212 SkBitmap output; 193 SkBitmap output;
213 output.setConfig(SkBitmap::kARGB_8888_Config, 194 output.setConfig(SkBitmap::kARGB_8888_Config,
214 DeviceViewport().width(), 195 DeviceViewport().width(),
215 DeviceViewport().height()); 196 DeviceViewport().height());
216 output.allocPixels(); 197 output.allocPixels();
217 renderer()->GetFramebufferPixels(output.getPixels(), outer_rect); 198 renderer()->GetFramebufferPixels(output.getPixels(), outer_rect);
218 199
219 EXPECT_EQ(SK_ColorYELLOW, output.getColor(0, 0)); 200 EXPECT_EQ(SK_ColorYELLOW, output.getColor(0, 0));
220 EXPECT_EQ(SK_ColorYELLOW, 201 EXPECT_EQ(SK_ColorYELLOW,
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 tile_rect, 249 tile_rect,
269 resource_cyan, 250 resource_cyan,
270 gfx::RectF(tile_size), 251 gfx::RectF(tile_size),
271 tile_size, 252 tile_size,
272 false); 253 false);
273 quad->visible_rect = visible_rect; 254 quad->visible_rect = visible_rect;
274 root_render_pass->AppendQuad(quad.PassAs<DrawQuad>()); 255 root_render_pass->AppendQuad(quad.PassAs<DrawQuad>());
275 256
276 RenderPassList list; 257 RenderPassList list;
277 list.push_back(root_render_pass.PassAs<RenderPass>()); 258 list.push_back(root_render_pass.PassAs<RenderPass>());
278 renderer()->DrawFrame(&list, NULL); 259
260 float device_scale_factor = 1.f;
261 renderer()->DrawFrame(&list, NULL, device_scale_factor, true);
279 262
280 SkBitmap output; 263 SkBitmap output;
281 output.setConfig(SkBitmap::kARGB_8888_Config, 264 output.setConfig(SkBitmap::kARGB_8888_Config,
282 DeviceViewport().width(), 265 DeviceViewport().width(),
283 DeviceViewport().height()); 266 DeviceViewport().height());
284 output.allocPixels(); 267 output.allocPixels();
285 renderer()->GetFramebufferPixels(output.getPixels(), tile_rect); 268 renderer()->GetFramebufferPixels(output.getPixels(), tile_rect);
286 269
287 // Check portion of tile not in visible rect isn't drawn. 270 // Check portion of tile not in visible rect isn't drawn.
288 const unsigned int kTransparent = SK_ColorTRANSPARENT; 271 const unsigned int kTransparent = SK_ColorTRANSPARENT;
289 EXPECT_EQ(kTransparent, output.getColor(0, 0)); 272 EXPECT_EQ(kTransparent, output.getColor(0, 0));
290 EXPECT_EQ(kTransparent, 273 EXPECT_EQ(kTransparent,
291 output.getColor(tile_rect.width() - 1, tile_rect.height() - 1)); 274 output.getColor(tile_rect.width() - 1, tile_rect.height() - 1));
292 EXPECT_EQ(kTransparent, 275 EXPECT_EQ(kTransparent,
293 output.getColor(visible_rect.x() - 1, visible_rect.y() - 1)); 276 output.getColor(visible_rect.x() - 1, visible_rect.y() - 1));
294 EXPECT_EQ(kTransparent, 277 EXPECT_EQ(kTransparent,
295 output.getColor(visible_rect.right(), visible_rect.bottom())); 278 output.getColor(visible_rect.right(), visible_rect.bottom()));
296 // Ensure visible part is drawn correctly. 279 // Ensure visible part is drawn correctly.
297 EXPECT_EQ(SK_ColorCYAN, output.getColor(visible_rect.x(), visible_rect.y())); 280 EXPECT_EQ(SK_ColorCYAN, output.getColor(visible_rect.x(), visible_rect.y()));
298 EXPECT_EQ( 281 EXPECT_EQ(
299 SK_ColorCYAN, 282 SK_ColorCYAN,
300 output.getColor(visible_rect.right() - 2, visible_rect.bottom() - 2)); 283 output.getColor(visible_rect.right() - 2, visible_rect.bottom() - 2));
301 // Ensure last visible line is correct. 284 // Ensure last visible line is correct.
302 EXPECT_EQ( 285 EXPECT_EQ(
303 SK_ColorYELLOW, 286 SK_ColorYELLOW,
304 output.getColor(visible_rect.right() - 1, visible_rect.bottom() - 1)); 287 output.getColor(visible_rect.right() - 1, visible_rect.bottom() - 1));
305 } 288 }
306 289
307 TEST_F(SoftwareRendererTest, ShouldClearRootRenderPass) { 290 TEST_F(SoftwareRendererTest, ShouldClearRootRenderPass) {
291 float device_scale_factor = 1.f;
308 gfx::Rect viewport_rect(0, 0, 100, 100); 292 gfx::Rect viewport_rect(0, 0, 100, 100);
309 set_viewport(viewport_rect); 293 set_viewport(viewport_rect);
310 set_should_clear_root_render_pass(false); 294
295 settings_.should_clear_root_render_pass = false;
311 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice)); 296 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice));
312 297
313 RenderPassList list; 298 RenderPassList list;
314 299
315 SkBitmap output; 300 SkBitmap output;
316 output.setConfig(SkBitmap::kARGB_8888_Config, 301 output.setConfig(SkBitmap::kARGB_8888_Config,
317 viewport_rect.width(), 302 viewport_rect.width(),
318 viewport_rect.height()); 303 viewport_rect.height());
319 output.allocPixels(); 304 output.allocPixels();
320 305
321 // Draw a fullscreen green quad in a first frame. 306 // Draw a fullscreen green quad in a first frame.
322 RenderPass::Id root_clear_pass_id(1, 0); 307 RenderPass::Id root_clear_pass_id(1, 0);
323 TestRenderPass* root_clear_pass = AddRenderPass( 308 TestRenderPass* root_clear_pass = AddRenderPass(
324 &list, root_clear_pass_id, viewport_rect, gfx::Transform()); 309 &list, root_clear_pass_id, viewport_rect, gfx::Transform());
325 AddQuad(root_clear_pass, viewport_rect, SK_ColorGREEN); 310 AddQuad(root_clear_pass, viewport_rect, SK_ColorGREEN);
326 311
327 renderer()->DecideRenderPassAllocationsForFrame(list); 312 renderer()->DecideRenderPassAllocationsForFrame(list);
328 renderer()->DrawFrame(&list, NULL); 313 renderer()->DrawFrame(&list, NULL, device_scale_factor, true);
329 renderer()->GetFramebufferPixels(output.getPixels(), viewport_rect); 314 renderer()->GetFramebufferPixels(output.getPixels(), viewport_rect);
330 315
331 EXPECT_EQ(SK_ColorGREEN, output.getColor(0, 0)); 316 EXPECT_EQ(SK_ColorGREEN, output.getColor(0, 0));
332 EXPECT_EQ(SK_ColorGREEN, 317 EXPECT_EQ(SK_ColorGREEN,
333 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1)); 318 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1));
334 319
335 list.clear(); 320 list.clear();
336 321
337 // Draw a smaller magenta rect without filling the viewport in a separate 322 // Draw a smaller magenta rect without filling the viewport in a separate
338 // frame. 323 // frame.
339 gfx::Rect smaller_rect(20, 20, 60, 60); 324 gfx::Rect smaller_rect(20, 20, 60, 60);
340 325
341 RenderPass::Id root_smaller_pass_id(2, 0); 326 RenderPass::Id root_smaller_pass_id(2, 0);
342 TestRenderPass* root_smaller_pass = AddRenderPass( 327 TestRenderPass* root_smaller_pass = AddRenderPass(
343 &list, root_smaller_pass_id, viewport_rect, gfx::Transform()); 328 &list, root_smaller_pass_id, viewport_rect, gfx::Transform());
344 AddQuad(root_smaller_pass, smaller_rect, SK_ColorMAGENTA); 329 AddQuad(root_smaller_pass, smaller_rect, SK_ColorMAGENTA);
345 330
346 renderer()->DecideRenderPassAllocationsForFrame(list); 331 renderer()->DecideRenderPassAllocationsForFrame(list);
347 renderer()->DrawFrame(&list, NULL); 332 renderer()->DrawFrame(&list, NULL, device_scale_factor, true);
348 renderer()->GetFramebufferPixels(output.getPixels(), viewport_rect); 333 renderer()->GetFramebufferPixels(output.getPixels(), viewport_rect);
349 334
350 // If we didn't clear, the borders should still be green. 335 // If we didn't clear, the borders should still be green.
351 EXPECT_EQ(SK_ColorGREEN, output.getColor(0, 0)); 336 EXPECT_EQ(SK_ColorGREEN, output.getColor(0, 0));
352 EXPECT_EQ(SK_ColorGREEN, 337 EXPECT_EQ(SK_ColorGREEN,
353 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1)); 338 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1));
354 339
355 EXPECT_EQ(SK_ColorMAGENTA, 340 EXPECT_EQ(SK_ColorMAGENTA,
356 output.getColor(smaller_rect.x(), smaller_rect.y())); 341 output.getColor(smaller_rect.x(), smaller_rect.y()));
357 EXPECT_EQ(SK_ColorMAGENTA, 342 EXPECT_EQ(SK_ColorMAGENTA,
358 output.getColor(smaller_rect.right() - 1, smaller_rect.bottom() - 1)); 343 output.getColor(smaller_rect.right() - 1, smaller_rect.bottom() - 1));
359 } 344 }
360 345
361 TEST_F(SoftwareRendererTest, RenderPassVisibleRect) { 346 TEST_F(SoftwareRendererTest, RenderPassVisibleRect) {
347 float device_scale_factor = 1.f;
362 gfx::Rect viewport_rect(0, 0, 100, 100); 348 gfx::Rect viewport_rect(0, 0, 100, 100);
363 set_viewport(viewport_rect); 349 set_viewport(viewport_rect);
364 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice)); 350 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice));
365 351
366 RenderPassList list; 352 RenderPassList list;
367 353
368 SkBitmap output; 354 SkBitmap output;
369 output.setConfig(SkBitmap::kARGB_8888_Config, 355 output.setConfig(SkBitmap::kARGB_8888_Config,
370 viewport_rect.width(), 356 viewport_rect.width(),
371 viewport_rect.height()); 357 viewport_rect.height());
(...skipping 11 matching lines...) Expand all
383 TestRenderPass* root_clear_pass = 369 TestRenderPass* root_clear_pass =
384 AddRenderPass(&list, root_clear_pass_id, viewport_rect, gfx::Transform()); 370 AddRenderPass(&list, root_clear_pass_id, viewport_rect, gfx::Transform());
385 AddRenderPassQuad(root_clear_pass, smaller_pass); 371 AddRenderPassQuad(root_clear_pass, smaller_pass);
386 AddQuad(root_clear_pass, viewport_rect, SK_ColorGREEN); 372 AddQuad(root_clear_pass, viewport_rect, SK_ColorGREEN);
387 373
388 // Interior pass quad has smaller visible rect. 374 // Interior pass quad has smaller visible rect.
389 gfx::Rect interior_visible_rect(30, 30, 40, 40); 375 gfx::Rect interior_visible_rect(30, 30, 40, 40);
390 root_clear_pass->quad_list[0]->visible_rect = interior_visible_rect; 376 root_clear_pass->quad_list[0]->visible_rect = interior_visible_rect;
391 377
392 renderer()->DecideRenderPassAllocationsForFrame(list); 378 renderer()->DecideRenderPassAllocationsForFrame(list);
393 renderer()->DrawFrame(&list, NULL); 379 renderer()->DrawFrame(&list, NULL, device_scale_factor, true);
394 renderer()->GetFramebufferPixels(output.getPixels(), viewport_rect); 380 renderer()->GetFramebufferPixels(output.getPixels(), viewport_rect);
395 381
396 EXPECT_EQ(SK_ColorGREEN, output.getColor(0, 0)); 382 EXPECT_EQ(SK_ColorGREEN, output.getColor(0, 0));
397 EXPECT_EQ( 383 EXPECT_EQ(
398 SK_ColorGREEN, 384 SK_ColorGREEN,
399 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1)); 385 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1));
400 386
401 // Part outside visible rect should remain green. 387 // Part outside visible rect should remain green.
402 EXPECT_EQ(SK_ColorGREEN, output.getColor(smaller_rect.x(), smaller_rect.y())); 388 EXPECT_EQ(SK_ColorGREEN, output.getColor(smaller_rect.x(), smaller_rect.y()));
403 EXPECT_EQ( 389 EXPECT_EQ(
404 SK_ColorGREEN, 390 SK_ColorGREEN,
405 output.getColor(smaller_rect.right() - 1, smaller_rect.bottom() - 1)); 391 output.getColor(smaller_rect.right() - 1, smaller_rect.bottom() - 1));
406 392
407 EXPECT_EQ( 393 EXPECT_EQ(
408 SK_ColorMAGENTA, 394 SK_ColorMAGENTA,
409 output.getColor(interior_visible_rect.x(), interior_visible_rect.y())); 395 output.getColor(interior_visible_rect.x(), interior_visible_rect.y()));
410 EXPECT_EQ(SK_ColorMAGENTA, 396 EXPECT_EQ(SK_ColorMAGENTA,
411 output.getColor(interior_visible_rect.right() - 1, 397 output.getColor(interior_visible_rect.right() - 1,
412 interior_visible_rect.bottom() - 1)); 398 interior_visible_rect.bottom() - 1));
413 } 399 }
414 400
415 } // namespace 401 } // namespace
416 } // namespace cc 402 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/software_renderer.cc ('k') | cc/test/fake_output_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698