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

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

Issue 251343002: Remove offscreen compositor contexts. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rm-offscreencontext: include Created 6 years, 8 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/renderer_pixeltest.cc ('k') | cc/resources/resource_provider_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 "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"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 inner_quad->visible_rect = visible_rect; 88 inner_quad->visible_rect = visible_rect;
89 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>()); 89 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>());
90 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>()); 90 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>());
91 91
92 RenderPassList list; 92 RenderPassList list;
93 list.push_back(root_render_pass.PassAs<RenderPass>()); 93 list.push_back(root_render_pass.PassAs<RenderPass>());
94 94
95 float device_scale_factor = 1.f; 95 float device_scale_factor = 1.f;
96 gfx::Rect device_viewport_rect(outer_size); 96 gfx::Rect device_viewport_rect(outer_size);
97 renderer()->DrawFrame(&list, 97 renderer()->DrawFrame(&list,
98 NULL,
99 device_scale_factor, 98 device_scale_factor,
100 device_viewport_rect, 99 device_viewport_rect,
101 device_viewport_rect, 100 device_viewport_rect,
102 false); 101 false);
103 102
104 SkBitmap output; 103 SkBitmap output;
105 output.setConfig( 104 output.setConfig(
106 SkBitmap::kARGB_8888_Config, outer_rect.width(), outer_rect.height()); 105 SkBitmap::kARGB_8888_Config, outer_rect.width(), outer_rect.height());
107 output.allocPixels(); 106 output.allocPixels();
108 renderer()->GetFramebufferPixels(output.getPixels(), outer_rect); 107 renderer()->GetFramebufferPixels(output.getPixels(), outer_rect);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 false); 191 false);
193 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>()); 192 root_render_pass->AppendQuad(inner_quad.PassAs<DrawQuad>());
194 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>()); 193 root_render_pass->AppendQuad(outer_quad.PassAs<DrawQuad>());
195 194
196 RenderPassList list; 195 RenderPassList list;
197 list.push_back(root_render_pass.PassAs<RenderPass>()); 196 list.push_back(root_render_pass.PassAs<RenderPass>());
198 197
199 float device_scale_factor = 1.f; 198 float device_scale_factor = 1.f;
200 gfx::Rect device_viewport_rect(outer_size); 199 gfx::Rect device_viewport_rect(outer_size);
201 renderer()->DrawFrame(&list, 200 renderer()->DrawFrame(&list,
202 NULL,
203 device_scale_factor, 201 device_scale_factor,
204 device_viewport_rect, 202 device_viewport_rect,
205 device_viewport_rect, 203 device_viewport_rect,
206 false); 204 false);
207 205
208 SkBitmap output; 206 SkBitmap output;
209 output.setConfig( 207 output.setConfig(
210 SkBitmap::kARGB_8888_Config, outer_size.width(), outer_size.height()); 208 SkBitmap::kARGB_8888_Config, outer_size.width(), outer_size.height());
211 output.allocPixels(); 209 output.allocPixels();
212 renderer()->GetFramebufferPixels(output.getPixels(), outer_rect); 210 renderer()->GetFramebufferPixels(output.getPixels(), outer_rect);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 false); 271 false);
274 quad->visible_rect = visible_rect; 272 quad->visible_rect = visible_rect;
275 root_render_pass->AppendQuad(quad.PassAs<DrawQuad>()); 273 root_render_pass->AppendQuad(quad.PassAs<DrawQuad>());
276 274
277 RenderPassList list; 275 RenderPassList list;
278 list.push_back(root_render_pass.PassAs<RenderPass>()); 276 list.push_back(root_render_pass.PassAs<RenderPass>());
279 277
280 float device_scale_factor = 1.f; 278 float device_scale_factor = 1.f;
281 gfx::Rect device_viewport_rect(tile_size); 279 gfx::Rect device_viewport_rect(tile_size);
282 renderer()->DrawFrame(&list, 280 renderer()->DrawFrame(&list,
283 NULL,
284 device_scale_factor, 281 device_scale_factor,
285 device_viewport_rect, 282 device_viewport_rect,
286 device_viewport_rect, 283 device_viewport_rect,
287 false); 284 false);
288 285
289 SkBitmap output; 286 SkBitmap output;
290 output.setConfig( 287 output.setConfig(
291 SkBitmap::kARGB_8888_Config, tile_size.width(), tile_size.height()); 288 SkBitmap::kARGB_8888_Config, tile_size.width(), tile_size.height());
292 output.allocPixels(); 289 output.allocPixels();
293 renderer()->GetFramebufferPixels(output.getPixels(), tile_rect); 290 renderer()->GetFramebufferPixels(output.getPixels(), tile_rect);
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
328 output.allocPixels(); 325 output.allocPixels();
329 326
330 // Draw a fullscreen green quad in a first frame. 327 // Draw a fullscreen green quad in a first frame.
331 RenderPass::Id root_clear_pass_id(1, 0); 328 RenderPass::Id root_clear_pass_id(1, 0);
332 TestRenderPass* root_clear_pass = AddRenderPass( 329 TestRenderPass* root_clear_pass = AddRenderPass(
333 &list, root_clear_pass_id, viewport_rect, gfx::Transform()); 330 &list, root_clear_pass_id, viewport_rect, gfx::Transform());
334 AddQuad(root_clear_pass, viewport_rect, SK_ColorGREEN); 331 AddQuad(root_clear_pass, viewport_rect, SK_ColorGREEN);
335 332
336 renderer()->DecideRenderPassAllocationsForFrame(list); 333 renderer()->DecideRenderPassAllocationsForFrame(list);
337 renderer()->DrawFrame(&list, 334 renderer()->DrawFrame(&list,
338 NULL,
339 device_scale_factor, 335 device_scale_factor,
340 viewport_rect, 336 viewport_rect,
341 viewport_rect, 337 viewport_rect,
342 false); 338 false);
343 renderer()->GetFramebufferPixels(output.getPixels(), viewport_rect); 339 renderer()->GetFramebufferPixels(output.getPixels(), viewport_rect);
344 340
345 EXPECT_EQ(SK_ColorGREEN, output.getColor(0, 0)); 341 EXPECT_EQ(SK_ColorGREEN, output.getColor(0, 0));
346 EXPECT_EQ(SK_ColorGREEN, 342 EXPECT_EQ(SK_ColorGREEN,
347 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1)); 343 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1));
348 344
349 list.clear(); 345 list.clear();
350 346
351 // Draw a smaller magenta rect without filling the viewport in a separate 347 // Draw a smaller magenta rect without filling the viewport in a separate
352 // frame. 348 // frame.
353 gfx::Rect smaller_rect(20, 20, 60, 60); 349 gfx::Rect smaller_rect(20, 20, 60, 60);
354 350
355 RenderPass::Id root_smaller_pass_id(2, 0); 351 RenderPass::Id root_smaller_pass_id(2, 0);
356 TestRenderPass* root_smaller_pass = AddRenderPass( 352 TestRenderPass* root_smaller_pass = AddRenderPass(
357 &list, root_smaller_pass_id, viewport_rect, gfx::Transform()); 353 &list, root_smaller_pass_id, viewport_rect, gfx::Transform());
358 AddQuad(root_smaller_pass, smaller_rect, SK_ColorMAGENTA); 354 AddQuad(root_smaller_pass, smaller_rect, SK_ColorMAGENTA);
359 355
360 renderer()->DecideRenderPassAllocationsForFrame(list); 356 renderer()->DecideRenderPassAllocationsForFrame(list);
361 renderer()->DrawFrame(&list, 357 renderer()->DrawFrame(&list,
362 NULL,
363 device_scale_factor, 358 device_scale_factor,
364 viewport_rect, 359 viewport_rect,
365 viewport_rect, 360 viewport_rect,
366 false); 361 false);
367 renderer()->GetFramebufferPixels(output.getPixels(), viewport_rect); 362 renderer()->GetFramebufferPixels(output.getPixels(), viewport_rect);
368 363
369 // If we didn't clear, the borders should still be green. 364 // If we didn't clear, the borders should still be green.
370 EXPECT_EQ(SK_ColorGREEN, output.getColor(0, 0)); 365 EXPECT_EQ(SK_ColorGREEN, output.getColor(0, 0));
371 EXPECT_EQ(SK_ColorGREEN, 366 EXPECT_EQ(SK_ColorGREEN,
372 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1)); 367 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1));
(...skipping 30 matching lines...) Expand all
403 AddRenderPass(&list, root_clear_pass_id, viewport_rect, gfx::Transform()); 398 AddRenderPass(&list, root_clear_pass_id, viewport_rect, gfx::Transform());
404 AddRenderPassQuad(root_clear_pass, smaller_pass); 399 AddRenderPassQuad(root_clear_pass, smaller_pass);
405 AddQuad(root_clear_pass, viewport_rect, SK_ColorGREEN); 400 AddQuad(root_clear_pass, viewport_rect, SK_ColorGREEN);
406 401
407 // Interior pass quad has smaller visible rect. 402 // Interior pass quad has smaller visible rect.
408 gfx::Rect interior_visible_rect(30, 30, 40, 40); 403 gfx::Rect interior_visible_rect(30, 30, 40, 40);
409 root_clear_pass->quad_list[0]->visible_rect = interior_visible_rect; 404 root_clear_pass->quad_list[0]->visible_rect = interior_visible_rect;
410 405
411 renderer()->DecideRenderPassAllocationsForFrame(list); 406 renderer()->DecideRenderPassAllocationsForFrame(list);
412 renderer()->DrawFrame(&list, 407 renderer()->DrawFrame(&list,
413 NULL,
414 device_scale_factor, 408 device_scale_factor,
415 viewport_rect, 409 viewport_rect,
416 viewport_rect, 410 viewport_rect,
417 false); 411 false);
418 renderer()->GetFramebufferPixels(output.getPixels(), viewport_rect); 412 renderer()->GetFramebufferPixels(output.getPixels(), viewport_rect);
419 413
420 EXPECT_EQ(SK_ColorGREEN, output.getColor(0, 0)); 414 EXPECT_EQ(SK_ColorGREEN, output.getColor(0, 0));
421 EXPECT_EQ( 415 EXPECT_EQ(
422 SK_ColorGREEN, 416 SK_ColorGREEN,
423 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1)); 417 output.getColor(viewport_rect.width() - 1, viewport_rect.height() - 1));
424 418
425 // Part outside visible rect should remain green. 419 // Part outside visible rect should remain green.
426 EXPECT_EQ(SK_ColorGREEN, output.getColor(smaller_rect.x(), smaller_rect.y())); 420 EXPECT_EQ(SK_ColorGREEN, output.getColor(smaller_rect.x(), smaller_rect.y()));
427 EXPECT_EQ( 421 EXPECT_EQ(
428 SK_ColorGREEN, 422 SK_ColorGREEN,
429 output.getColor(smaller_rect.right() - 1, smaller_rect.bottom() - 1)); 423 output.getColor(smaller_rect.right() - 1, smaller_rect.bottom() - 1));
430 424
431 EXPECT_EQ( 425 EXPECT_EQ(
432 SK_ColorMAGENTA, 426 SK_ColorMAGENTA,
433 output.getColor(interior_visible_rect.x(), interior_visible_rect.y())); 427 output.getColor(interior_visible_rect.x(), interior_visible_rect.y()));
434 EXPECT_EQ(SK_ColorMAGENTA, 428 EXPECT_EQ(SK_ColorMAGENTA,
435 output.getColor(interior_visible_rect.right() - 1, 429 output.getColor(interior_visible_rect.right() - 1,
436 interior_visible_rect.bottom() - 1)); 430 interior_visible_rect.bottom() - 1));
437 } 431 }
438 432
439 } // namespace 433 } // namespace
440 } // namespace cc 434 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/renderer_pixeltest.cc ('k') | cc/resources/resource_provider_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698