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

Side by Side Diff: cc/ipc/cc_param_traits.cc

Issue 2873593002: Force use of and cache render surface. (Closed)
Patch Set: Calculate damage of |force_render_surface|. Created 3 years, 7 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 | « no previous file | cc/ipc/render_pass.mojom » ('j') | cc/layers/layer.h » ('J')
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 "cc/ipc/cc_param_traits.h" 5 #include "cc/ipc/cc_param_traits.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/numerics/safe_conversions.h" 10 #include "base/numerics/safe_conversions.h"
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 323
324 void ParamTraits<cc::RenderPass>::Write(base::Pickle* m, const param_type& p) { 324 void ParamTraits<cc::RenderPass>::Write(base::Pickle* m, const param_type& p) {
325 WriteParam(m, p.id); 325 WriteParam(m, p.id);
326 WriteParam(m, p.output_rect); 326 WriteParam(m, p.output_rect);
327 WriteParam(m, p.damage_rect); 327 WriteParam(m, p.damage_rect);
328 WriteParam(m, p.transform_to_root_target); 328 WriteParam(m, p.transform_to_root_target);
329 WriteParam(m, p.filters); 329 WriteParam(m, p.filters);
330 WriteParam(m, p.background_filters); 330 WriteParam(m, p.background_filters);
331 WriteParam(m, p.color_space); 331 WriteParam(m, p.color_space);
332 WriteParam(m, p.has_transparent_background); 332 WriteParam(m, p.has_transparent_background);
333 WriteParam(m, p.force_render_surface);
334 WriteParam(m, p.has_property_change_on_contributing_render_surface);
335 WriteParam(m, p.has_damage_on_surface_quad);
333 WriteParam(m, base::checked_cast<uint32_t>(p.quad_list.size())); 336 WriteParam(m, base::checked_cast<uint32_t>(p.quad_list.size()));
334 337
335 cc::SharedQuadStateList::ConstIterator shared_quad_state_iter = 338 cc::SharedQuadStateList::ConstIterator shared_quad_state_iter =
336 p.shared_quad_state_list.begin(); 339 p.shared_quad_state_list.begin();
337 cc::SharedQuadStateList::ConstIterator last_shared_quad_state_iter = 340 cc::SharedQuadStateList::ConstIterator last_shared_quad_state_iter =
338 p.shared_quad_state_list.end(); 341 p.shared_quad_state_list.end();
339 for (auto* quad : p.quad_list) { 342 for (auto* quad : p.quad_list) {
340 DCHECK(quad->rect.Contains(quad->visible_rect)) 343 DCHECK(quad->rect.Contains(quad->visible_rect))
341 << quad->material << " rect: " << quad->rect.ToString() 344 << quad->material << " rect: " << quad->rect.ToString()
342 << " visible_rect: " << quad->visible_rect.ToString(); 345 << " visible_rect: " << quad->visible_rect.ToString();
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
434 base::PickleIterator* iter, 437 base::PickleIterator* iter,
435 param_type* p) { 438 param_type* p) {
436 int id; 439 int id;
437 gfx::Rect output_rect; 440 gfx::Rect output_rect;
438 gfx::Rect damage_rect; 441 gfx::Rect damage_rect;
439 gfx::Transform transform_to_root_target; 442 gfx::Transform transform_to_root_target;
440 cc::FilterOperations filters; 443 cc::FilterOperations filters;
441 cc::FilterOperations background_filters; 444 cc::FilterOperations background_filters;
442 gfx::ColorSpace color_space; 445 gfx::ColorSpace color_space;
443 bool has_transparent_background; 446 bool has_transparent_background;
447 bool force_render_surface;
448 bool has_property_change_on_contributing_render_surface;
449 bool has_damage_on_surface_quad;
450
444 uint32_t quad_list_size; 451 uint32_t quad_list_size;
445 452
446 if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) || 453 if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) ||
447 !ReadParam(m, iter, &damage_rect) || 454 !ReadParam(m, iter, &damage_rect) ||
448 !ReadParam(m, iter, &transform_to_root_target) || 455 !ReadParam(m, iter, &transform_to_root_target) ||
449 !ReadParam(m, iter, &filters) || 456 !ReadParam(m, iter, &filters) ||
450 !ReadParam(m, iter, &background_filters) || 457 !ReadParam(m, iter, &background_filters) ||
451 !ReadParam(m, iter, &color_space) || 458 !ReadParam(m, iter, &color_space) ||
452 !ReadParam(m, iter, &has_transparent_background) || 459 !ReadParam(m, iter, &has_transparent_background) ||
460 !ReadParam(m, iter, &force_render_surface) ||
461 !ReadParam(m, iter,
462 &has_property_change_on_contributing_render_surface) ||
463 !ReadParam(m, iter, &has_damage_on_surface_quad) ||
453 !ReadParam(m, iter, &quad_list_size)) 464 !ReadParam(m, iter, &quad_list_size))
454 return false; 465 return false;
455 466
456 p->SetAll(id, output_rect, damage_rect, transform_to_root_target, filters, 467 p->SetAll(id, output_rect, damage_rect, transform_to_root_target, filters,
457 background_filters, color_space, has_transparent_background); 468 background_filters, color_space, has_transparent_background,
469 force_render_surface,
470 has_property_change_on_contributing_render_surface,
471 has_damage_on_surface_quad);
458 472
459 cc::DrawQuad* last_draw_quad = nullptr; 473 cc::DrawQuad* last_draw_quad = nullptr;
460 for (uint32_t i = 0; i < quad_list_size; ++i) { 474 for (uint32_t i = 0; i < quad_list_size; ++i) {
461 cc::DrawQuad::Material material; 475 cc::DrawQuad::Material material;
462 base::PickleIterator temp_iter = *iter; 476 base::PickleIterator temp_iter = *iter;
463 if (!ReadParam(m, &temp_iter, &material)) 477 if (!ReadParam(m, &temp_iter, &material))
464 return false; 478 return false;
465 479
466 cc::DrawQuad* draw_quad = nullptr; 480 cc::DrawQuad* draw_quad = nullptr;
467 switch (material) { 481 switch (material) {
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
562 LogParam(p.transform_to_root_target, l); 576 LogParam(p.transform_to_root_target, l);
563 l->append(", "); 577 l->append(", ");
564 LogParam(p.filters, l); 578 LogParam(p.filters, l);
565 l->append(", "); 579 l->append(", ");
566 LogParam(p.background_filters, l); 580 LogParam(p.background_filters, l);
567 l->append(", "); 581 l->append(", ");
568 LogParam(p.color_space, l); 582 LogParam(p.color_space, l);
569 l->append(", "); 583 l->append(", ");
570 LogParam(p.has_transparent_background, l); 584 LogParam(p.has_transparent_background, l);
571 l->append(", "); 585 l->append(", ");
586 LogParam(p.force_render_surface, l);
587 l->append(", ");
588 LogParam(p.has_property_change_on_contributing_render_surface, l);
589 l->append(", ");
590 LogParam(p.has_damage_on_surface_quad, l);
591 l->append(", ");
572 592
573 l->append("["); 593 l->append("[");
574 for (auto* shared_quad_state : p.shared_quad_state_list) { 594 for (auto* shared_quad_state : p.shared_quad_state_list) {
575 if (shared_quad_state != p.shared_quad_state_list.front()) 595 if (shared_quad_state != p.shared_quad_state_list.front())
576 l->append(", "); 596 l->append(", ");
577 LogParam(*shared_quad_state, l); 597 LogParam(*shared_quad_state, l);
578 } 598 }
579 l->append("], ["); 599 l->append("], [");
580 for (auto* quad : p.quad_list) { 600 for (auto* quad : p.quad_list) {
581 if (quad != p.quad_list.front()) 601 if (quad != p.quad_list.front())
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
1016 #undef CC_IPC_CC_PARAM_TRAITS_MACROS_H_ 1036 #undef CC_IPC_CC_PARAM_TRAITS_MACROS_H_
1017 #include "cc/ipc/cc_param_traits_macros.h" 1037 #include "cc/ipc/cc_param_traits_macros.h"
1018 } // namespace IPC 1038 } // namespace IPC
1019 1039
1020 // Generate param traits log methods. 1040 // Generate param traits log methods.
1021 #include "ipc/param_traits_log_macros.h" 1041 #include "ipc/param_traits_log_macros.h"
1022 namespace IPC { 1042 namespace IPC {
1023 #undef CC_IPC_CC_PARAM_TRAITS_MACROS_H_ 1043 #undef CC_IPC_CC_PARAM_TRAITS_MACROS_H_
1024 #include "cc/ipc/cc_param_traits_macros.h" 1044 #include "cc/ipc/cc_param_traits_macros.h"
1025 } // namespace IPC 1045 } // namespace IPC
OLDNEW
« no previous file with comments | « no previous file | cc/ipc/render_pass.mojom » ('j') | cc/layers/layer.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698