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

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

Issue 404563005: Make RenderPass::Id an isolated class (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: one more case in mojo Created 6 years, 4 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
« no previous file with comments | « cc/output/renderer_pixeltest.cc ('k') | cc/quads/draw_quad_unittest.cc » ('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 "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "cc/output/compositor_frame_metadata.h" 8 #include "cc/output/compositor_frame_metadata.h"
9 #include "cc/output/copy_output_request.h" 9 #include "cc/output/copy_output_request.h"
10 #include "cc/output/copy_output_result.h" 10 #include "cc/output/copy_output_result.h"
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 93
94 TEST_F(SoftwareRendererTest, SolidColorQuad) { 94 TEST_F(SoftwareRendererTest, SolidColorQuad) {
95 gfx::Size outer_size(100, 100); 95 gfx::Size outer_size(100, 100);
96 gfx::Size inner_size(98, 98); 96 gfx::Size inner_size(98, 98);
97 gfx::Rect outer_rect(outer_size); 97 gfx::Rect outer_rect(outer_size);
98 gfx::Rect inner_rect(gfx::Point(1, 1), inner_size); 98 gfx::Rect inner_rect(gfx::Point(1, 1), inner_size);
99 gfx::Rect visible_rect(gfx::Point(1, 2), gfx::Size(98, 97)); 99 gfx::Rect visible_rect(gfx::Point(1, 2), gfx::Size(98, 97));
100 100
101 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice)); 101 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice));
102 102
103 RenderPass::Id root_render_pass_id = RenderPass::Id(1, 1); 103 RenderPassId root_render_pass_id = RenderPassId(1, 1);
104 scoped_ptr<TestRenderPass> root_render_pass = TestRenderPass::Create(); 104 scoped_ptr<TestRenderPass> root_render_pass = TestRenderPass::Create();
105 root_render_pass->SetNew( 105 root_render_pass->SetNew(
106 root_render_pass_id, outer_rect, outer_rect, gfx::Transform()); 106 root_render_pass_id, outer_rect, outer_rect, gfx::Transform());
107 SharedQuadState* shared_quad_state = 107 SharedQuadState* shared_quad_state =
108 root_render_pass->CreateAndAppendSharedQuadState(); 108 root_render_pass->CreateAndAppendSharedQuadState();
109 shared_quad_state->SetAll(gfx::Transform(), 109 shared_quad_state->SetAll(gfx::Transform(),
110 outer_size, 110 outer_size,
111 outer_rect, 111 outer_rect,
112 outer_rect, 112 outer_rect,
113 false, 113 false,
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 gfx::Rect(outer_size), 176 gfx::Rect(outer_size),
177 gfx::Vector2d()); 177 gfx::Vector2d());
178 resource_provider()->SetPixels(resource_cyan, 178 resource_provider()->SetPixels(resource_cyan,
179 static_cast<uint8_t*>(cyan_tile.getPixels()), 179 static_cast<uint8_t*>(cyan_tile.getPixels()),
180 gfx::Rect(inner_size), 180 gfx::Rect(inner_size),
181 gfx::Rect(inner_size), 181 gfx::Rect(inner_size),
182 gfx::Vector2d()); 182 gfx::Vector2d());
183 183
184 gfx::Rect root_rect = outer_rect; 184 gfx::Rect root_rect = outer_rect;
185 185
186 RenderPass::Id root_render_pass_id = RenderPass::Id(1, 1); 186 RenderPassId root_render_pass_id = RenderPassId(1, 1);
187 scoped_ptr<TestRenderPass> root_render_pass = TestRenderPass::Create(); 187 scoped_ptr<TestRenderPass> root_render_pass = TestRenderPass::Create();
188 root_render_pass->SetNew( 188 root_render_pass->SetNew(
189 root_render_pass_id, root_rect, root_rect, gfx::Transform()); 189 root_render_pass_id, root_rect, root_rect, gfx::Transform());
190 SharedQuadState* shared_quad_state = 190 SharedQuadState* shared_quad_state =
191 root_render_pass->CreateAndAppendSharedQuadState(); 191 root_render_pass->CreateAndAppendSharedQuadState();
192 shared_quad_state->SetAll(gfx::Transform(), 192 shared_quad_state->SetAll(gfx::Transform(),
193 outer_size, 193 outer_size,
194 outer_rect, 194 outer_rect,
195 outer_rect, 195 outer_rect,
196 false, 196 false,
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
258 SK_ColorYELLOW); 258 SK_ColorYELLOW);
259 259
260 resource_provider()->SetPixels(resource_cyan, 260 resource_provider()->SetPixels(resource_cyan,
261 static_cast<uint8_t*>(cyan_tile.getPixels()), 261 static_cast<uint8_t*>(cyan_tile.getPixels()),
262 gfx::Rect(tile_size), 262 gfx::Rect(tile_size),
263 gfx::Rect(tile_size), 263 gfx::Rect(tile_size),
264 gfx::Vector2d()); 264 gfx::Vector2d());
265 265
266 gfx::Rect root_rect(tile_size); 266 gfx::Rect root_rect(tile_size);
267 267
268 RenderPass::Id root_render_pass_id = RenderPass::Id(1, 1); 268 RenderPassId root_render_pass_id = RenderPassId(1, 1);
269 scoped_ptr<TestRenderPass> root_render_pass = TestRenderPass::Create(); 269 scoped_ptr<TestRenderPass> root_render_pass = TestRenderPass::Create();
270 root_render_pass->SetNew( 270 root_render_pass->SetNew(
271 root_render_pass_id, root_rect, root_rect, gfx::Transform()); 271 root_render_pass_id, root_rect, root_rect, gfx::Transform());
272 SharedQuadState* shared_quad_state = 272 SharedQuadState* shared_quad_state =
273 root_render_pass->CreateAndAppendSharedQuadState(); 273 root_render_pass->CreateAndAppendSharedQuadState();
274 shared_quad_state->SetAll(gfx::Transform(), 274 shared_quad_state->SetAll(gfx::Transform(),
275 tile_size, 275 tile_size,
276 tile_rect, 276 tile_rect,
277 tile_rect, 277 tile_rect,
278 false, 278 false,
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 TEST_F(SoftwareRendererTest, ShouldClearRootRenderPass) { 324 TEST_F(SoftwareRendererTest, ShouldClearRootRenderPass) {
325 float device_scale_factor = 1.f; 325 float device_scale_factor = 1.f;
326 gfx::Rect device_viewport_rect(0, 0, 100, 100); 326 gfx::Rect device_viewport_rect(0, 0, 100, 100);
327 327
328 settings_.should_clear_root_render_pass = false; 328 settings_.should_clear_root_render_pass = false;
329 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice)); 329 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice));
330 330
331 RenderPassList list; 331 RenderPassList list;
332 332
333 // Draw a fullscreen green quad in a first frame. 333 // Draw a fullscreen green quad in a first frame.
334 RenderPass::Id root_clear_pass_id(1, 0); 334 RenderPassId root_clear_pass_id(1, 0);
335 TestRenderPass* root_clear_pass = AddRenderPass( 335 TestRenderPass* root_clear_pass = AddRenderPass(
336 &list, root_clear_pass_id, device_viewport_rect, gfx::Transform()); 336 &list, root_clear_pass_id, device_viewport_rect, gfx::Transform());
337 AddQuad(root_clear_pass, device_viewport_rect, SK_ColorGREEN); 337 AddQuad(root_clear_pass, device_viewport_rect, SK_ColorGREEN);
338 338
339 renderer()->DecideRenderPassAllocationsForFrame(list); 339 renderer()->DecideRenderPassAllocationsForFrame(list);
340 340
341 scoped_ptr<SkBitmap> output = 341 scoped_ptr<SkBitmap> output =
342 DrawAndCopyOutput(&list, device_scale_factor, device_viewport_rect); 342 DrawAndCopyOutput(&list, device_scale_factor, device_viewport_rect);
343 EXPECT_EQ(device_viewport_rect.width(), output->info().fWidth); 343 EXPECT_EQ(device_viewport_rect.width(), output->info().fWidth);
344 EXPECT_EQ(device_viewport_rect.width(), output->info().fHeight); 344 EXPECT_EQ(device_viewport_rect.width(), output->info().fHeight);
345 345
346 EXPECT_EQ(SK_ColorGREEN, output->getColor(0, 0)); 346 EXPECT_EQ(SK_ColorGREEN, output->getColor(0, 0));
347 EXPECT_EQ(SK_ColorGREEN, 347 EXPECT_EQ(SK_ColorGREEN,
348 output->getColor(device_viewport_rect.width() - 1, 348 output->getColor(device_viewport_rect.width() - 1,
349 device_viewport_rect.height() - 1)); 349 device_viewport_rect.height() - 1));
350 350
351 list.clear(); 351 list.clear();
352 352
353 // Draw a smaller magenta rect without filling the viewport in a separate 353 // Draw a smaller magenta rect without filling the viewport in a separate
354 // frame. 354 // frame.
355 gfx::Rect smaller_rect(20, 20, 60, 60); 355 gfx::Rect smaller_rect(20, 20, 60, 60);
356 356
357 RenderPass::Id root_smaller_pass_id(2, 0); 357 RenderPassId root_smaller_pass_id(2, 0);
358 TestRenderPass* root_smaller_pass = AddRenderPass( 358 TestRenderPass* root_smaller_pass = AddRenderPass(
359 &list, root_smaller_pass_id, device_viewport_rect, gfx::Transform()); 359 &list, root_smaller_pass_id, device_viewport_rect, gfx::Transform());
360 AddQuad(root_smaller_pass, smaller_rect, SK_ColorMAGENTA); 360 AddQuad(root_smaller_pass, smaller_rect, SK_ColorMAGENTA);
361 361
362 renderer()->DecideRenderPassAllocationsForFrame(list); 362 renderer()->DecideRenderPassAllocationsForFrame(list);
363 363
364 output = DrawAndCopyOutput(&list, device_scale_factor, device_viewport_rect); 364 output = DrawAndCopyOutput(&list, device_scale_factor, device_viewport_rect);
365 EXPECT_EQ(device_viewport_rect.width(), output->info().fWidth); 365 EXPECT_EQ(device_viewport_rect.width(), output->info().fWidth);
366 EXPECT_EQ(device_viewport_rect.width(), output->info().fHeight); 366 EXPECT_EQ(device_viewport_rect.width(), output->info().fHeight);
367 367
(...skipping 12 matching lines...) Expand all
380 380
381 TEST_F(SoftwareRendererTest, RenderPassVisibleRect) { 381 TEST_F(SoftwareRendererTest, RenderPassVisibleRect) {
382 float device_scale_factor = 1.f; 382 float device_scale_factor = 1.f;
383 gfx::Rect device_viewport_rect(0, 0, 100, 100); 383 gfx::Rect device_viewport_rect(0, 0, 100, 100);
384 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice)); 384 InitializeRenderer(make_scoped_ptr(new SoftwareOutputDevice));
385 385
386 RenderPassList list; 386 RenderPassList list;
387 387
388 // Pass drawn as inner quad is magenta. 388 // Pass drawn as inner quad is magenta.
389 gfx::Rect smaller_rect(20, 20, 60, 60); 389 gfx::Rect smaller_rect(20, 20, 60, 60);
390 RenderPass::Id smaller_pass_id(2, 1); 390 RenderPassId smaller_pass_id(2, 1);
391 TestRenderPass* smaller_pass = 391 TestRenderPass* smaller_pass =
392 AddRenderPass(&list, smaller_pass_id, smaller_rect, gfx::Transform()); 392 AddRenderPass(&list, smaller_pass_id, smaller_rect, gfx::Transform());
393 AddQuad(smaller_pass, smaller_rect, SK_ColorMAGENTA); 393 AddQuad(smaller_pass, smaller_rect, SK_ColorMAGENTA);
394 394
395 // Root pass is green. 395 // Root pass is green.
396 RenderPass::Id root_clear_pass_id(1, 0); 396 RenderPassId root_clear_pass_id(1, 0);
397 TestRenderPass* root_clear_pass = AddRenderPass( 397 TestRenderPass* root_clear_pass = AddRenderPass(
398 &list, root_clear_pass_id, device_viewport_rect, gfx::Transform()); 398 &list, root_clear_pass_id, device_viewport_rect, gfx::Transform());
399 AddRenderPassQuad(root_clear_pass, smaller_pass); 399 AddRenderPassQuad(root_clear_pass, smaller_pass);
400 AddQuad(root_clear_pass, device_viewport_rect, SK_ColorGREEN); 400 AddQuad(root_clear_pass, device_viewport_rect, SK_ColorGREEN);
401 401
402 // Interior pass quad has smaller visible rect. 402 // Interior pass quad has smaller visible rect.
403 gfx::Rect interior_visible_rect(30, 30, 40, 40); 403 gfx::Rect interior_visible_rect(30, 30, 40, 40);
404 root_clear_pass->quad_list[0]->visible_rect = interior_visible_rect; 404 root_clear_pass->quad_list[0]->visible_rect = interior_visible_rect;
405 405
406 renderer()->DecideRenderPassAllocationsForFrame(list); 406 renderer()->DecideRenderPassAllocationsForFrame(list);
(...skipping 18 matching lines...) Expand all
425 EXPECT_EQ( 425 EXPECT_EQ(
426 SK_ColorMAGENTA, 426 SK_ColorMAGENTA,
427 output->getColor(interior_visible_rect.x(), interior_visible_rect.y())); 427 output->getColor(interior_visible_rect.x(), interior_visible_rect.y()));
428 EXPECT_EQ(SK_ColorMAGENTA, 428 EXPECT_EQ(SK_ColorMAGENTA,
429 output->getColor(interior_visible_rect.right() - 1, 429 output->getColor(interior_visible_rect.right() - 1,
430 interior_visible_rect.bottom() - 1)); 430 interior_visible_rect.bottom() - 1));
431 } 431 }
432 432
433 } // namespace 433 } // namespace
434 } // namespace cc 434 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/renderer_pixeltest.cc ('k') | cc/quads/draw_quad_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698