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

Side by Side Diff: content/common/cc_messages.cc

Issue 1430363002: List all child surfaces (including occluded) in CompositorFrame (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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 | « content/common/cc_messages.h ('k') | content/common/cc_messages_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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "content/common/cc_messages.h" 5 #include "content/common/cc_messages.h"
6 6
7 #include "cc/output/compositor_frame.h" 7 #include "cc/output/compositor_frame.h"
8 #include "cc/output/filter_operations.h" 8 #include "cc/output/filter_operations.h"
9 #include "cc/quads/draw_quad.h" 9 #include "cc/quads/draw_quad.h"
10 #include "cc/quads/largest_draw_quad.h" 10 #include "cc/quads/largest_draw_quad.h"
(...skipping 282 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 l->append(") "); 293 l->append(") ");
294 } 294 }
295 295
296 void ParamTraits<cc::RenderPass>::Write( 296 void ParamTraits<cc::RenderPass>::Write(
297 Message* m, const param_type& p) { 297 Message* m, const param_type& p) {
298 WriteParam(m, p.id); 298 WriteParam(m, p.id);
299 WriteParam(m, p.output_rect); 299 WriteParam(m, p.output_rect);
300 WriteParam(m, p.damage_rect); 300 WriteParam(m, p.damage_rect);
301 WriteParam(m, p.transform_to_root_target); 301 WriteParam(m, p.transform_to_root_target);
302 WriteParam(m, p.has_transparent_background); 302 WriteParam(m, p.has_transparent_background);
303 WriteParam(m, p.referenced_surfaces);
304 WriteParam(m, p.quad_list.size()); 303 WriteParam(m, p.quad_list.size());
305 304
306 cc::SharedQuadStateList::ConstIterator shared_quad_state_iter = 305 cc::SharedQuadStateList::ConstIterator shared_quad_state_iter =
307 p.shared_quad_state_list.begin(); 306 p.shared_quad_state_list.begin();
308 cc::SharedQuadStateList::ConstIterator last_shared_quad_state_iter = 307 cc::SharedQuadStateList::ConstIterator last_shared_quad_state_iter =
309 p.shared_quad_state_list.end(); 308 p.shared_quad_state_list.end();
310 for (const auto& quad : p.quad_list) { 309 for (const auto& quad : p.quad_list) {
311 DCHECK(quad->rect.Contains(quad->visible_rect)) 310 DCHECK(quad->rect.Contains(quad->visible_rect))
312 << quad->material << " rect: " << quad->rect.ToString() 311 << quad->material << " rect: " << quad->rect.ToString()
313 << " visible_rect: " << quad->visible_rect.ToString(); 312 << " visible_rect: " << quad->visible_rect.ToString();
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 376
378 // Whether the quad points to a new shared quad state for each quad. 377 // Whether the quad points to a new shared quad state for each quad.
379 to_reserve += p.quad_list.size() * sizeof(bool); 378 to_reserve += p.quad_list.size() * sizeof(bool);
380 379
381 // Shared quad state is only written when a quad contains a shared quad state 380 // Shared quad state is only written when a quad contains a shared quad state
382 // that has not been written. 381 // that has not been written.
383 to_reserve += p.shared_quad_state_list.size() * sizeof(cc::SharedQuadState); 382 to_reserve += p.shared_quad_state_list.size() * sizeof(cc::SharedQuadState);
384 383
385 // The largest quad type, verified by a unit test. 384 // The largest quad type, verified by a unit test.
386 to_reserve += p.quad_list.size() * cc::LargestDrawQuadSize(); 385 to_reserve += p.quad_list.size() * cc::LargestDrawQuadSize();
387
388 // The actual list of referenced surfaces.
389 to_reserve += p.referenced_surfaces.size() * sizeof(cc::SurfaceId);
390 return to_reserve; 386 return to_reserve;
391 } 387 }
392 388
393 template <typename QuadType> 389 template <typename QuadType>
394 static cc::DrawQuad* ReadDrawQuad(const Message* m, 390 static cc::DrawQuad* ReadDrawQuad(const Message* m,
395 base::PickleIterator* iter, 391 base::PickleIterator* iter,
396 cc::RenderPass* render_pass) { 392 cc::RenderPass* render_pass) {
397 QuadType* quad = render_pass->CreateAndAppendDrawQuad<QuadType>(); 393 QuadType* quad = render_pass->CreateAndAppendDrawQuad<QuadType>();
398 if (!ReadParam(m, iter, quad)) 394 if (!ReadParam(m, iter, quad))
399 return NULL; 395 return NULL;
400 return quad; 396 return quad;
401 } 397 }
402 398
403 bool ParamTraits<cc::RenderPass>::Read(const Message* m, 399 bool ParamTraits<cc::RenderPass>::Read(const Message* m,
404 base::PickleIterator* iter, 400 base::PickleIterator* iter,
405 param_type* p) { 401 param_type* p) {
406 cc::RenderPassId id; 402 cc::RenderPassId id;
407 gfx::Rect output_rect; 403 gfx::Rect output_rect;
408 gfx::Rect damage_rect; 404 gfx::Rect damage_rect;
409 gfx::Transform transform_to_root_target; 405 gfx::Transform transform_to_root_target;
410 bool has_transparent_background; 406 bool has_transparent_background;
411 std::vector<cc::SurfaceId> referenced_surfaces;
412 size_t quad_list_size; 407 size_t quad_list_size;
413 408
414 if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) || 409 if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) ||
415 !ReadParam(m, iter, &damage_rect) || 410 !ReadParam(m, iter, &damage_rect) ||
416 !ReadParam(m, iter, &transform_to_root_target) || 411 !ReadParam(m, iter, &transform_to_root_target) ||
417 !ReadParam(m, iter, &has_transparent_background) || 412 !ReadParam(m, iter, &has_transparent_background) ||
418 !ReadParam(m, iter, &referenced_surfaces) ||
419 !ReadParam(m, iter, &quad_list_size)) 413 !ReadParam(m, iter, &quad_list_size))
420 return false; 414 return false;
421 415
422 p->SetAll(id, 416 p->SetAll(id,
423 output_rect, 417 output_rect,
424 damage_rect, 418 damage_rect,
425 transform_to_root_target, 419 transform_to_root_target,
426 has_transparent_background); 420 has_transparent_background);
427 p->referenced_surfaces.swap(referenced_surfaces);
428 421
429 for (size_t i = 0; i < quad_list_size; ++i) { 422 for (size_t i = 0; i < quad_list_size; ++i) {
430 cc::DrawQuad::Material material; 423 cc::DrawQuad::Material material;
431 base::PickleIterator temp_iter = *iter; 424 base::PickleIterator temp_iter = *iter;
432 if (!ReadParam(m, &temp_iter, &material)) 425 if (!ReadParam(m, &temp_iter, &material))
433 return false; 426 return false;
434 427
435 cc::DrawQuad* draw_quad = NULL; 428 cc::DrawQuad* draw_quad = NULL;
436 switch (material) { 429 switch (material) {
437 case cc::DrawQuad::DEBUG_BORDER: 430 case cc::DrawQuad::DEBUG_BORDER:
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
506 LogParam(p.id, l); 499 LogParam(p.id, l);
507 l->append("), "); 500 l->append("), ");
508 LogParam(p.output_rect, l); 501 LogParam(p.output_rect, l);
509 l->append(", "); 502 l->append(", ");
510 LogParam(p.damage_rect, l); 503 LogParam(p.damage_rect, l);
511 l->append(", "); 504 l->append(", ");
512 LogParam(p.transform_to_root_target, l); 505 LogParam(p.transform_to_root_target, l);
513 l->append(", "); 506 l->append(", ");
514 LogParam(p.has_transparent_background, l); 507 LogParam(p.has_transparent_background, l);
515 l->append(", "); 508 l->append(", ");
516 LogParam(p.referenced_surfaces, l);
517 l->append(", ");
518 509
519 l->append("["); 510 l->append("[");
520 for (const auto& shared_quad_state : p.shared_quad_state_list) { 511 for (const auto& shared_quad_state : p.shared_quad_state_list) {
521 if (shared_quad_state != p.shared_quad_state_list.front()) 512 if (shared_quad_state != p.shared_quad_state_list.front())
522 l->append(", "); 513 l->append(", ");
523 LogParam(*shared_quad_state, l); 514 LogParam(*shared_quad_state, l);
524 } 515 }
525 l->append("], ["); 516 l->append("], [");
526 for (const auto& quad : p.quad_list) { 517 for (const auto& quad : p.quad_list) {
527 if (quad != p.quad_list.front()) 518 if (quad != p.quad_list.front())
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
850 l->append("TextureDrawQuad::OverlayResources(["); 841 l->append("TextureDrawQuad::OverlayResources([");
851 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { 842 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) {
852 LogParam(p.size_in_pixels[i], l); 843 LogParam(p.size_in_pixels[i], l);
853 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) 844 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1))
854 l->append(", "); 845 l->append(", ");
855 } 846 }
856 l->append("])"); 847 l->append("])");
857 } 848 }
858 849
859 } // namespace IPC 850 } // namespace IPC
OLDNEW
« no previous file with comments | « content/common/cc_messages.h ('k') | content/common/cc_messages_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698