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

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

Issue 1678623002: Switch cc::RenderPassId and cc::DrawQuad::Resources to use uint32_t instead of size_t. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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/quads/render_pass_id.h ('k') | no next file » | 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 <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "cc/output/compositor_frame.h" 10 #include "cc/output/compositor_frame.h"
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 break; 179 break;
180 case cc::FilterOperation::ALPHA_THRESHOLD: 180 case cc::FilterOperation::ALPHA_THRESHOLD:
181 NOTREACHED(); 181 NOTREACHED();
182 break; 182 break;
183 } 183 }
184 l->append(")"); 184 l->append(")");
185 } 185 }
186 186
187 void ParamTraits<cc::FilterOperations>::Write(base::Pickle* m, 187 void ParamTraits<cc::FilterOperations>::Write(base::Pickle* m,
188 const param_type& p) { 188 const param_type& p) {
189 WriteParam(m, p.size()); 189 WriteParam(m, static_cast<uint32_t>(p.size()));
190 for (std::size_t i = 0; i < p.size(); ++i) { 190 for (std::size_t i = 0; i < p.size(); ++i) {
Tom Sepez 2016/02/08 17:32:09 Should this get truncated, we'd write more items i
jam 2016/02/08 17:49:53 Done.
191 WriteParam(m, p.at(i)); 191 WriteParam(m, p.at(i));
192 } 192 }
193 } 193 }
194 194
195 bool ParamTraits<cc::FilterOperations>::Read(const base::Pickle* m, 195 bool ParamTraits<cc::FilterOperations>::Read(const base::Pickle* m,
196 base::PickleIterator* iter, 196 base::PickleIterator* iter,
197 param_type* r) { 197 param_type* r) {
198 size_t count; 198 uint32_t count;
199 if (!ReadParam(m, iter, &count)) 199 if (!ReadParam(m, iter, &count))
200 return false; 200 return false;
201 201
202 for (std::size_t i = 0; i < count; ++i) { 202 for (std::size_t i = 0; i < count; ++i) {
203 cc::FilterOperation op = cc::FilterOperation::CreateEmptyFilter(); 203 cc::FilterOperation op = cc::FilterOperation::CreateEmptyFilter();
204 if (!ReadParam(m, iter, &op)) 204 if (!ReadParam(m, iter, &op))
205 return false; 205 return false;
206 r->Append(op); 206 r->Append(op);
207 } 207 }
208 return true; 208 return true;
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 } 294 }
295 l->append(") "); 295 l->append(") ");
296 } 296 }
297 297
298 void ParamTraits<cc::RenderPass>::Write(base::Pickle* m, const param_type& p) { 298 void ParamTraits<cc::RenderPass>::Write(base::Pickle* m, const param_type& p) {
299 WriteParam(m, p.id); 299 WriteParam(m, p.id);
300 WriteParam(m, p.output_rect); 300 WriteParam(m, p.output_rect);
301 WriteParam(m, p.damage_rect); 301 WriteParam(m, p.damage_rect);
302 WriteParam(m, p.transform_to_root_target); 302 WriteParam(m, p.transform_to_root_target);
303 WriteParam(m, p.has_transparent_background); 303 WriteParam(m, p.has_transparent_background);
304 WriteParam(m, p.quad_list.size()); 304 WriteParam(m, static_cast<uint32_t>(p.quad_list.size()));
305 305
306 cc::SharedQuadStateList::ConstIterator shared_quad_state_iter = 306 cc::SharedQuadStateList::ConstIterator shared_quad_state_iter =
307 p.shared_quad_state_list.begin(); 307 p.shared_quad_state_list.begin();
308 cc::SharedQuadStateList::ConstIterator last_shared_quad_state_iter = 308 cc::SharedQuadStateList::ConstIterator last_shared_quad_state_iter =
309 p.shared_quad_state_list.end(); 309 p.shared_quad_state_list.end();
310 for (const auto& quad : p.quad_list) { 310 for (const auto& quad : p.quad_list) {
Tom Sepez 2016/02/08 17:32:09 This has the same issue.
jam 2016/02/08 17:49:53 Done.
311 DCHECK(quad->rect.Contains(quad->visible_rect)) 311 DCHECK(quad->rect.Contains(quad->visible_rect))
312 << quad->material << " rect: " << quad->rect.ToString() 312 << quad->material << " rect: " << quad->rect.ToString()
313 << " visible_rect: " << quad->visible_rect.ToString(); 313 << " visible_rect: " << quad->visible_rect.ToString();
314 DCHECK(quad->opaque_rect.IsEmpty() || 314 DCHECK(quad->opaque_rect.IsEmpty() ||
315 quad->rect.Contains(quad->opaque_rect)) 315 quad->rect.Contains(quad->opaque_rect))
316 << quad->material << " rect: " << quad->rect.ToString() 316 << quad->material << " rect: " << quad->rect.ToString()
317 << " opaque_rect: " << quad->opaque_rect.ToString(); 317 << " opaque_rect: " << quad->opaque_rect.ToString();
318 318
319 switch (quad->material) { 319 switch (quad->material) {
320 case cc::DrawQuad::DEBUG_BORDER: 320 case cc::DrawQuad::DEBUG_BORDER:
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
398 } 398 }
399 399
400 bool ParamTraits<cc::RenderPass>::Read(const base::Pickle* m, 400 bool ParamTraits<cc::RenderPass>::Read(const base::Pickle* m,
401 base::PickleIterator* iter, 401 base::PickleIterator* iter,
402 param_type* p) { 402 param_type* p) {
403 cc::RenderPassId id; 403 cc::RenderPassId id;
404 gfx::Rect output_rect; 404 gfx::Rect output_rect;
405 gfx::Rect damage_rect; 405 gfx::Rect damage_rect;
406 gfx::Transform transform_to_root_target; 406 gfx::Transform transform_to_root_target;
407 bool has_transparent_background; 407 bool has_transparent_background;
408 size_t quad_list_size; 408 uint32_t quad_list_size;
409 409
410 if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) || 410 if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) ||
411 !ReadParam(m, iter, &damage_rect) || 411 !ReadParam(m, iter, &damage_rect) ||
412 !ReadParam(m, iter, &transform_to_root_target) || 412 !ReadParam(m, iter, &transform_to_root_target) ||
413 !ReadParam(m, iter, &has_transparent_background) || 413 !ReadParam(m, iter, &has_transparent_background) ||
414 !ReadParam(m, iter, &quad_list_size)) 414 !ReadParam(m, iter, &quad_list_size))
415 return false; 415 return false;
416 416
417 p->SetAll(id, 417 p->SetAll(id,
418 output_rect, 418 output_rect,
419 damage_rect, 419 damage_rect,
420 transform_to_root_target, 420 transform_to_root_target,
421 has_transparent_background); 421 has_transparent_background);
422 422
423 for (size_t i = 0; i < quad_list_size; ++i) { 423 for (uint32_t i = 0; i < quad_list_size; ++i) {
424 cc::DrawQuad::Material material; 424 cc::DrawQuad::Material material;
425 base::PickleIterator temp_iter = *iter; 425 base::PickleIterator temp_iter = *iter;
426 if (!ReadParam(m, &temp_iter, &material)) 426 if (!ReadParam(m, &temp_iter, &material))
427 return false; 427 return false;
428 428
429 cc::DrawQuad* draw_quad = NULL; 429 cc::DrawQuad* draw_quad = NULL;
430 switch (material) { 430 switch (material) {
431 case cc::DrawQuad::DEBUG_BORDER: 431 case cc::DrawQuad::DEBUG_BORDER:
432 draw_quad = ReadDrawQuad<cc::DebugBorderDrawQuad>(m, iter, p); 432 draw_quad = ReadDrawQuad<cc::DebugBorderDrawQuad>(m, iter, p);
433 break; 433 break;
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
672 size_t to_reserve = sizeof(p.device_scale_factor); 672 size_t to_reserve = sizeof(p.device_scale_factor);
673 to_reserve += p.resource_list.size() * sizeof(cc::TransferableResource); 673 to_reserve += p.resource_list.size() * sizeof(cc::TransferableResource);
674 for (const auto& pass : p.render_pass_list) { 674 for (const auto& pass : p.render_pass_list) {
675 to_reserve += sizeof(size_t) * 2; 675 to_reserve += sizeof(size_t) * 2;
676 to_reserve += ReserveSizeForRenderPassWrite(*pass); 676 to_reserve += ReserveSizeForRenderPassWrite(*pass);
677 } 677 }
678 m->Reserve(to_reserve); 678 m->Reserve(to_reserve);
679 679
680 WriteParam(m, p.device_scale_factor); 680 WriteParam(m, p.device_scale_factor);
681 WriteParam(m, p.resource_list); 681 WriteParam(m, p.resource_list);
682 WriteParam(m, p.render_pass_list.size()); 682 WriteParam(m, static_cast<uint32_t>(p.render_pass_list.size()));
683 for (const auto& pass : p.render_pass_list) { 683 for (const auto& pass : p.render_pass_list) {
684 WriteParam(m, pass->quad_list.size()); 684 WriteParam(m, static_cast<uint32_t>(pass->quad_list.size()));
685 WriteParam(m, pass->shared_quad_state_list.size()); 685 WriteParam(m, static_cast<uint32_t>(pass->shared_quad_state_list.size()));
686 WriteParam(m, *pass); 686 WriteParam(m, *pass);
687 } 687 }
688 } 688 }
689 689
690 bool ParamTraits<cc::DelegatedFrameData>::Read(const base::Pickle* m, 690 bool ParamTraits<cc::DelegatedFrameData>::Read(const base::Pickle* m,
691 base::PickleIterator* iter, 691 base::PickleIterator* iter,
692 param_type* p) { 692 param_type* p) {
693 if (!ReadParam(m, iter, &p->device_scale_factor)) 693 if (!ReadParam(m, iter, &p->device_scale_factor))
694 return false; 694 return false;
695 695
696 const static size_t kMaxRenderPasses = 10000; 696 const static size_t kMaxRenderPasses = 10000;
697 const static size_t kMaxSharedQuadStateListSize = 100000; 697 const static size_t kMaxSharedQuadStateListSize = 100000;
698 const static size_t kMaxQuadListSize = 1000000; 698 const static size_t kMaxQuadListSize = 1000000;
699 699
700 std::set<cc::RenderPassId> pass_set; 700 std::set<cc::RenderPassId> pass_set;
701 701
702 size_t num_render_passes; 702 uint32_t num_render_passes;
703 if (!ReadParam(m, iter, &p->resource_list) || 703 if (!ReadParam(m, iter, &p->resource_list) ||
704 !ReadParam(m, iter, &num_render_passes) || 704 !ReadParam(m, iter, &num_render_passes) ||
705 num_render_passes > kMaxRenderPasses || num_render_passes == 0) 705 num_render_passes > kMaxRenderPasses || num_render_passes == 0)
706 return false; 706 return false;
707 for (size_t i = 0; i < num_render_passes; ++i) { 707 for (uint32_t i = 0; i < num_render_passes; ++i) {
708 size_t quad_list_size; 708 uint32_t quad_list_size;
709 size_t shared_quad_state_list_size; 709 uint32_t shared_quad_state_list_size;
710 if (!ReadParam(m, iter, &quad_list_size) || 710 if (!ReadParam(m, iter, &quad_list_size) ||
711 !ReadParam(m, iter, &shared_quad_state_list_size) || 711 !ReadParam(m, iter, &shared_quad_state_list_size) ||
712 quad_list_size > kMaxQuadListSize || 712 quad_list_size > kMaxQuadListSize ||
713 shared_quad_state_list_size > kMaxSharedQuadStateListSize) 713 shared_quad_state_list_size > kMaxSharedQuadStateListSize)
714 return false; 714 return false;
715 scoped_ptr<cc::RenderPass> render_pass = 715 scoped_ptr<cc::RenderPass> render_pass =
716 cc::RenderPass::Create(shared_quad_state_list_size, quad_list_size); 716 cc::RenderPass::Create(
717 static_cast<size_t>(shared_quad_state_list_size),
718 static_cast<size_t>(quad_list_size));
717 if (!ReadParam(m, iter, render_pass.get())) 719 if (!ReadParam(m, iter, render_pass.get()))
718 return false; 720 return false;
719 // Validate that each RenderPassDrawQuad points at a valid RenderPass 721 // Validate that each RenderPassDrawQuad points at a valid RenderPass
720 // earlier in the frame. 722 // earlier in the frame.
721 for (const auto* quad : render_pass->quad_list) { 723 for (const auto* quad : render_pass->quad_list) {
722 if (quad->material != cc::DrawQuad::RENDER_PASS) 724 if (quad->material != cc::DrawQuad::RENDER_PASS)
723 continue; 725 continue;
724 const cc::RenderPassDrawQuad* rpdq = 726 const cc::RenderPassDrawQuad* rpdq =
725 cc::RenderPassDrawQuad::MaterialCast(quad); 727 cc::RenderPassDrawQuad::MaterialCast(quad);
726 if (!pass_set.count(rpdq->render_pass_id)) 728 if (!pass_set.count(rpdq->render_pass_id))
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
842 l->append("TextureDrawQuad::OverlayResources(["); 844 l->append("TextureDrawQuad::OverlayResources([");
843 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { 845 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) {
844 LogParam(p.size_in_pixels[i], l); 846 LogParam(p.size_in_pixels[i], l);
845 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) 847 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1))
846 l->append(", "); 848 l->append(", ");
847 } 849 }
848 l->append("])"); 850 l->append("])");
849 } 851 }
850 852
851 } // namespace IPC 853 } // namespace IPC
OLDNEW
« no previous file with comments | « cc/quads/render_pass_id.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698