| OLD | NEW |
| 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 "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" |
| 11 #include "base/time/time.h" |
| 11 #include "cc/output/compositor_frame.h" | 12 #include "cc/output/compositor_frame.h" |
| 12 #include "cc/output/filter_operations.h" | 13 #include "cc/output/filter_operations.h" |
| 14 #include "cc/quads/debug_border_draw_quad.h" |
| 13 #include "cc/quads/draw_quad.h" | 15 #include "cc/quads/draw_quad.h" |
| 16 #include "cc/quads/io_surface_draw_quad.h" |
| 14 #include "cc/quads/largest_draw_quad.h" | 17 #include "cc/quads/largest_draw_quad.h" |
| 15 #include "cc/quads/render_pass_id.h" | 18 #include "cc/quads/render_pass_draw_quad.h" |
| 16 #include "content/public/common/common_param_traits.h" | 19 #include "cc/quads/solid_color_draw_quad.h" |
| 20 #include "cc/quads/surface_draw_quad.h" |
| 21 #include "cc/quads/tile_draw_quad.h" |
| 22 #include "cc/quads/yuv_video_draw_quad.h" |
| 17 #include "third_party/skia/include/core/SkData.h" | 23 #include "third_party/skia/include/core/SkData.h" |
| 18 #include "third_party/skia/include/core/SkFlattenableSerialization.h" | 24 #include "third_party/skia/include/core/SkFlattenableSerialization.h" |
| 19 #include "third_party/skia/include/core/SkImageFilter.h" | 25 #include "third_party/skia/include/core/SkImageFilter.h" |
| 20 #include "third_party/skia/include/core/SkRefCnt.h" | 26 #include "third_party/skia/include/core/SkRefCnt.h" |
| 27 #include "ui/gfx/ipc/geometry/gfx_param_traits.h" |
| 28 #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h" |
| 21 | 29 |
| 22 namespace IPC { | 30 namespace IPC { |
| 23 | 31 |
| 24 void ParamTraits<cc::FilterOperation>::GetSize(base::PickleSizer* s, | 32 void ParamTraits<cc::FilterOperation>::GetSize(base::PickleSizer* s, |
| 25 const param_type& p) { | 33 const param_type& p) { |
| 26 GetParamSize(s, p.type()); | 34 GetParamSize(s, p.type()); |
| 27 switch (p.type()) { | 35 switch (p.type()) { |
| 28 case cc::FilterOperation::GRAYSCALE: | 36 case cc::FilterOperation::GRAYSCALE: |
| 29 case cc::FilterOperation::SEPIA: | 37 case cc::FilterOperation::SEPIA: |
| 30 case cc::FilterOperation::SATURATE: | 38 case cc::FilterOperation::SATURATE: |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 144 if (!ReadParam(m, iter, &matrix[i])) | 152 if (!ReadParam(m, iter, &matrix[i])) |
| 145 break; | 153 break; |
| 146 } | 154 } |
| 147 if (i == 20) { | 155 if (i == 20) { |
| 148 r->set_matrix(matrix); | 156 r->set_matrix(matrix); |
| 149 success = true; | 157 success = true; |
| 150 } | 158 } |
| 151 break; | 159 break; |
| 152 } | 160 } |
| 153 case cc::FilterOperation::ZOOM: | 161 case cc::FilterOperation::ZOOM: |
| 154 if (ReadParam(m, iter, &amount) && | 162 if (ReadParam(m, iter, &amount) && ReadParam(m, iter, &zoom_inset) && |
| 155 ReadParam(m, iter, &zoom_inset) && | 163 amount >= 0.f && zoom_inset >= 0) { |
| 156 amount >= 0.f && | |
| 157 zoom_inset >= 0) { | |
| 158 r->set_amount(amount); | 164 r->set_amount(amount); |
| 159 r->set_zoom_inset(zoom_inset); | 165 r->set_zoom_inset(zoom_inset); |
| 160 success = true; | 166 success = true; |
| 161 } | 167 } |
| 162 break; | 168 break; |
| 163 case cc::FilterOperation::REFERENCE: { | 169 case cc::FilterOperation::REFERENCE: { |
| 164 sk_sp<SkImageFilter> filter; | 170 sk_sp<SkImageFilter> filter; |
| 165 if (!ReadParam(m, iter, &filter)) { | 171 if (!ReadParam(m, iter, &filter)) { |
| 166 success = false; | 172 success = false; |
| 167 break; | 173 break; |
| 168 } | 174 } |
| 169 r->set_image_filter(std::move(filter)); | 175 r->set_image_filter(std::move(filter)); |
| 170 success = true; | 176 success = true; |
| 171 break; | 177 break; |
| 172 } | 178 } |
| 173 case cc::FilterOperation::ALPHA_THRESHOLD: | 179 case cc::FilterOperation::ALPHA_THRESHOLD: |
| 174 break; | 180 break; |
| 175 } | 181 } |
| 176 return success; | 182 return success; |
| 177 } | 183 } |
| 178 | 184 |
| 179 void ParamTraits<cc::FilterOperation>::Log( | 185 void ParamTraits<cc::FilterOperation>::Log(const param_type& p, |
| 180 const param_type& p, std::string* l) { | 186 std::string* l) { |
| 181 l->append("("); | 187 l->append("("); |
| 182 LogParam(static_cast<unsigned>(p.type()), l); | 188 LogParam(static_cast<unsigned>(p.type()), l); |
| 183 l->append(", "); | 189 l->append(", "); |
| 184 | 190 |
| 185 switch (p.type()) { | 191 switch (p.type()) { |
| 186 case cc::FilterOperation::GRAYSCALE: | 192 case cc::FilterOperation::GRAYSCALE: |
| 187 case cc::FilterOperation::SEPIA: | 193 case cc::FilterOperation::SEPIA: |
| 188 case cc::FilterOperation::SATURATE: | 194 case cc::FilterOperation::SATURATE: |
| 189 case cc::FilterOperation::HUE_ROTATE: | 195 case cc::FilterOperation::HUE_ROTATE: |
| 190 case cc::FilterOperation::INVERT: | 196 case cc::FilterOperation::INVERT: |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 249 | 255 |
| 250 for (std::size_t i = 0; i < count; ++i) { | 256 for (std::size_t i = 0; i < count; ++i) { |
| 251 cc::FilterOperation op = cc::FilterOperation::CreateEmptyFilter(); | 257 cc::FilterOperation op = cc::FilterOperation::CreateEmptyFilter(); |
| 252 if (!ReadParam(m, iter, &op)) | 258 if (!ReadParam(m, iter, &op)) |
| 253 return false; | 259 return false; |
| 254 r->Append(op); | 260 r->Append(op); |
| 255 } | 261 } |
| 256 return true; | 262 return true; |
| 257 } | 263 } |
| 258 | 264 |
| 259 void ParamTraits<cc::FilterOperations>::Log( | 265 void ParamTraits<cc::FilterOperations>::Log(const param_type& p, |
| 260 const param_type& p, std::string* l) { | 266 std::string* l) { |
| 261 l->append("("); | 267 l->append("("); |
| 262 for (std::size_t i = 0; i < p.size(); ++i) { | 268 for (std::size_t i = 0; i < p.size(); ++i) { |
| 263 if (i) | 269 if (i) |
| 264 l->append(", "); | 270 l->append(", "); |
| 265 LogParam(p.at(i), l); | 271 LogParam(p.at(i), l); |
| 266 } | 272 } |
| 267 l->append(")"); | 273 l->append(")"); |
| 268 } | 274 } |
| 269 | 275 |
| 270 void ParamTraits<sk_sp<SkImageFilter>>::GetSize(base::PickleSizer* s, | 276 void ParamTraits<sk_sp<SkImageFilter>>::GetSize(base::PickleSizer* s, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 299 if (length > 0) { | 305 if (length > 0) { |
| 300 SkFlattenable* flattenable = SkValidatingDeserializeFlattenable( | 306 SkFlattenable* flattenable = SkValidatingDeserializeFlattenable( |
| 301 data, length, SkImageFilter::GetFlattenableType()); | 307 data, length, SkImageFilter::GetFlattenableType()); |
| 302 *r = sk_sp<SkImageFilter>(static_cast<SkImageFilter*>(flattenable)); | 308 *r = sk_sp<SkImageFilter>(static_cast<SkImageFilter*>(flattenable)); |
| 303 } else { | 309 } else { |
| 304 r->reset(); | 310 r->reset(); |
| 305 } | 311 } |
| 306 return true; | 312 return true; |
| 307 } | 313 } |
| 308 | 314 |
| 309 void ParamTraits<sk_sp<SkImageFilter> >::Log( | 315 void ParamTraits<sk_sp<SkImageFilter>>::Log(const param_type& p, |
| 310 const param_type& p, std::string* l) { | 316 std::string* l) { |
| 311 l->append("("); | 317 l->append("("); |
| 312 LogParam(p.get() ? p->countInputs() : 0, l); | 318 LogParam(p.get() ? p->countInputs() : 0, l); |
| 313 l->append(")"); | 319 l->append(")"); |
| 314 } | 320 } |
| 315 | 321 |
| 316 void ParamTraits<cc::RenderPass>::Write(base::Pickle* m, const param_type& p) { | 322 void ParamTraits<cc::RenderPass>::Write(base::Pickle* m, const param_type& p) { |
| 317 WriteParam(m, p.id); | 323 WriteParam(m, p.id); |
| 318 WriteParam(m, p.output_rect); | 324 WriteParam(m, p.output_rect); |
| 319 WriteParam(m, p.damage_rect); | 325 WriteParam(m, p.damage_rect); |
| 320 WriteParam(m, p.transform_to_root_target); | 326 WriteParam(m, p.transform_to_root_target); |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 425 bool has_transparent_background; | 431 bool has_transparent_background; |
| 426 uint32_t quad_list_size; | 432 uint32_t quad_list_size; |
| 427 | 433 |
| 428 if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) || | 434 if (!ReadParam(m, iter, &id) || !ReadParam(m, iter, &output_rect) || |
| 429 !ReadParam(m, iter, &damage_rect) || | 435 !ReadParam(m, iter, &damage_rect) || |
| 430 !ReadParam(m, iter, &transform_to_root_target) || | 436 !ReadParam(m, iter, &transform_to_root_target) || |
| 431 !ReadParam(m, iter, &has_transparent_background) || | 437 !ReadParam(m, iter, &has_transparent_background) || |
| 432 !ReadParam(m, iter, &quad_list_size)) | 438 !ReadParam(m, iter, &quad_list_size)) |
| 433 return false; | 439 return false; |
| 434 | 440 |
| 435 p->SetAll(id, | 441 p->SetAll(id, output_rect, damage_rect, transform_to_root_target, |
| 436 output_rect, | |
| 437 damage_rect, | |
| 438 transform_to_root_target, | |
| 439 has_transparent_background); | 442 has_transparent_background); |
| 440 | 443 |
| 441 for (uint32_t i = 0; i < quad_list_size; ++i) { | 444 for (uint32_t i = 0; i < quad_list_size; ++i) { |
| 442 cc::DrawQuad::Material material; | 445 cc::DrawQuad::Material material; |
| 443 base::PickleIterator temp_iter = *iter; | 446 base::PickleIterator temp_iter = *iter; |
| 444 if (!ReadParam(m, &temp_iter, &material)) | 447 if (!ReadParam(m, &temp_iter, &material)) |
| 445 return false; | 448 return false; |
| 446 | 449 |
| 447 cc::DrawQuad* draw_quad = NULL; | 450 cc::DrawQuad* draw_quad = NULL; |
| 448 switch (material) { | 451 switch (material) { |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 505 if (!ReadParam(m, iter, state)) | 508 if (!ReadParam(m, iter, state)) |
| 506 return false; | 509 return false; |
| 507 } | 510 } |
| 508 | 511 |
| 509 draw_quad->shared_quad_state = p->shared_quad_state_list.back(); | 512 draw_quad->shared_quad_state = p->shared_quad_state_list.back(); |
| 510 } | 513 } |
| 511 | 514 |
| 512 return true; | 515 return true; |
| 513 } | 516 } |
| 514 | 517 |
| 515 void ParamTraits<cc::RenderPass>::Log( | 518 void ParamTraits<cc::RenderPass>::Log(const param_type& p, std::string* l) { |
| 516 const param_type& p, std::string* l) { | |
| 517 l->append("RenderPass(("); | 519 l->append("RenderPass(("); |
| 518 LogParam(p.id, l); | 520 LogParam(p.id, l); |
| 519 l->append("), "); | 521 l->append("), "); |
| 520 LogParam(p.output_rect, l); | 522 LogParam(p.output_rect, l); |
| 521 l->append(", "); | 523 l->append(", "); |
| 522 LogParam(p.damage_rect, l); | 524 LogParam(p.damage_rect, l); |
| 523 l->append(", "); | 525 l->append(", "); |
| 524 LogParam(p.transform_to_root_target, l); | 526 LogParam(p.transform_to_root_target, l); |
| 525 l->append(", "); | 527 l->append(", "); |
| 526 LogParam(p.has_transparent_background, l); | 528 LogParam(p.has_transparent_background, l); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 568 LogParam(*cc::YUVVideoDrawQuad::MaterialCast(quad), l); | 570 LogParam(*cc::YUVVideoDrawQuad::MaterialCast(quad), l); |
| 569 break; | 571 break; |
| 570 case cc::DrawQuad::INVALID: | 572 case cc::DrawQuad::INVALID: |
| 571 break; | 573 break; |
| 572 } | 574 } |
| 573 } | 575 } |
| 574 l->append("])"); | 576 l->append("])"); |
| 575 } | 577 } |
| 576 | 578 |
| 577 namespace { | 579 namespace { |
| 578 enum CompositorFrameType { | 580 enum CompositorFrameType { |
| 579 NO_FRAME, | 581 NO_FRAME, |
| 580 DELEGATED_FRAME, | 582 DELEGATED_FRAME, |
| 581 GL_FRAME, | 583 GL_FRAME, |
| 582 }; | 584 }; |
| 583 } | 585 } |
| 584 | 586 |
| 585 void ParamTraits<cc::CompositorFrame>::Write(base::Pickle* m, | 587 void ParamTraits<cc::CompositorFrame>::Write(base::Pickle* m, |
| 586 const param_type& p) { | 588 const param_type& p) { |
| 587 WriteParam(m, p.metadata); | 589 WriteParam(m, p.metadata); |
| 588 if (p.delegated_frame_data) { | 590 if (p.delegated_frame_data) { |
| 589 DCHECK(!p.gl_frame_data); | 591 DCHECK(!p.gl_frame_data); |
| 590 WriteParam(m, static_cast<int>(DELEGATED_FRAME)); | 592 WriteParam(m, static_cast<int>(DELEGATED_FRAME)); |
| 591 WriteParam(m, *p.delegated_frame_data); | 593 WriteParam(m, *p.delegated_frame_data); |
| 592 } else if (p.gl_frame_data) { | 594 } else if (p.gl_frame_data) { |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 693 to_reserve += sizeof(size_t) * 2; | 695 to_reserve += sizeof(size_t) * 2; |
| 694 to_reserve += ReserveSizeForRenderPassWrite(*pass); | 696 to_reserve += ReserveSizeForRenderPassWrite(*pass); |
| 695 } | 697 } |
| 696 m->Reserve(to_reserve); | 698 m->Reserve(to_reserve); |
| 697 | 699 |
| 698 WriteParam(m, p.device_scale_factor); | 700 WriteParam(m, p.device_scale_factor); |
| 699 WriteParam(m, p.resource_list); | 701 WriteParam(m, p.resource_list); |
| 700 WriteParam(m, base::checked_cast<uint32_t>(p.render_pass_list.size())); | 702 WriteParam(m, base::checked_cast<uint32_t>(p.render_pass_list.size())); |
| 701 for (const auto& pass : p.render_pass_list) { | 703 for (const auto& pass : p.render_pass_list) { |
| 702 WriteParam(m, base::checked_cast<uint32_t>(pass->quad_list.size())); | 704 WriteParam(m, base::checked_cast<uint32_t>(pass->quad_list.size())); |
| 703 WriteParam(m, base::checked_cast<uint32_t>( | 705 WriteParam( |
| 704 pass->shared_quad_state_list.size())); | 706 m, base::checked_cast<uint32_t>(pass->shared_quad_state_list.size())); |
| 705 WriteParam(m, *pass); | 707 WriteParam(m, *pass); |
| 706 } | 708 } |
| 707 } | 709 } |
| 708 | 710 |
| 709 bool ParamTraits<cc::DelegatedFrameData>::Read(const base::Pickle* m, | 711 bool ParamTraits<cc::DelegatedFrameData>::Read(const base::Pickle* m, |
| 710 base::PickleIterator* iter, | 712 base::PickleIterator* iter, |
| 711 param_type* p) { | 713 param_type* p) { |
| 714 const size_t kMaxRenderPasses = 10000; |
| 715 const size_t kMaxSharedQuadStateListSize = 100000; |
| 716 const size_t kMaxQuadListSize = 1000000; |
| 717 |
| 712 if (!ReadParam(m, iter, &p->device_scale_factor)) | 718 if (!ReadParam(m, iter, &p->device_scale_factor)) |
| 713 return false; | 719 return false; |
| 714 | 720 |
| 715 const static size_t kMaxRenderPasses = 10000; | |
| 716 const static size_t kMaxSharedQuadStateListSize = 100000; | |
| 717 const static size_t kMaxQuadListSize = 1000000; | |
| 718 | |
| 719 std::set<cc::RenderPassId> pass_set; | 721 std::set<cc::RenderPassId> pass_set; |
| 720 | 722 |
| 721 uint32_t num_render_passes; | 723 uint32_t num_render_passes; |
| 722 if (!ReadParam(m, iter, &p->resource_list) || | 724 if (!ReadParam(m, iter, &p->resource_list) || |
| 723 !ReadParam(m, iter, &num_render_passes) || | 725 !ReadParam(m, iter, &num_render_passes) || |
| 724 num_render_passes > kMaxRenderPasses || num_render_passes == 0) | 726 num_render_passes > kMaxRenderPasses || num_render_passes == 0) |
| 725 return false; | 727 return false; |
| 726 for (uint32_t i = 0; i < num_render_passes; ++i) { | 728 for (uint32_t i = 0; i < num_render_passes; ++i) { |
| 727 uint32_t quad_list_size; | 729 uint32_t quad_list_size; |
| 728 uint32_t shared_quad_state_list_size; | 730 uint32_t shared_quad_state_list_size; |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 807 | 809 |
| 808 for (size_t i = 0; i < p.count; ++i) { | 810 for (size_t i = 0; i < p.count; ++i) { |
| 809 LogParam(p.ids[i], l); | 811 LogParam(p.ids[i], l); |
| 810 if (i < (p.count - 1)) | 812 if (i < (p.count - 1)) |
| 811 l->append(", "); | 813 l->append(", "); |
| 812 } | 814 } |
| 813 l->append("])"); | 815 l->append("])"); |
| 814 } | 816 } |
| 815 | 817 |
| 816 void ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::GetSize( | 818 void ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::GetSize( |
| 817 base::PickleSizer* s, const param_type& p) { | 819 base::PickleSizer* s, |
| 820 const param_type& p) { |
| 818 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 821 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 819 GetParamSize(s, p.size_in_pixels[i]); | 822 GetParamSize(s, p.size_in_pixels[i]); |
| 820 } | 823 } |
| 821 } | 824 } |
| 822 | 825 |
| 823 void ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::Write( | 826 void ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::Write( |
| 824 base::Pickle* m, | 827 base::Pickle* m, |
| 825 const param_type& p) { | 828 const param_type& p) { |
| 826 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 829 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 827 WriteParam(m, p.size_in_pixels[i]); | 830 WriteParam(m, p.size_in_pixels[i]); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 845 l->append("StreamVideoDrawQuad::OverlayResources(["); | 848 l->append("StreamVideoDrawQuad::OverlayResources(["); |
| 846 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 849 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 847 LogParam(p.size_in_pixels[i], l); | 850 LogParam(p.size_in_pixels[i], l); |
| 848 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) | 851 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) |
| 849 l->append(", "); | 852 l->append(", "); |
| 850 } | 853 } |
| 851 l->append("])"); | 854 l->append("])"); |
| 852 } | 855 } |
| 853 | 856 |
| 854 void ParamTraits<cc::TextureDrawQuad::OverlayResources>::GetSize( | 857 void ParamTraits<cc::TextureDrawQuad::OverlayResources>::GetSize( |
| 855 base::PickleSizer* s, const param_type& p) { | 858 base::PickleSizer* s, |
| 859 const param_type& p) { |
| 856 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 860 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 857 GetParamSize(s, p.size_in_pixels[i]); | 861 GetParamSize(s, p.size_in_pixels[i]); |
| 858 } | 862 } |
| 859 } | 863 } |
| 860 | 864 |
| 861 void ParamTraits<cc::TextureDrawQuad::OverlayResources>::Write( | 865 void ParamTraits<cc::TextureDrawQuad::OverlayResources>::Write( |
| 862 base::Pickle* m, | 866 base::Pickle* m, |
| 863 const param_type& p) { | 867 const param_type& p) { |
| 864 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 868 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 865 WriteParam(m, p.size_in_pixels[i]); | 869 WriteParam(m, p.size_in_pixels[i]); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 883 l->append("TextureDrawQuad::OverlayResources(["); | 887 l->append("TextureDrawQuad::OverlayResources(["); |
| 884 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 888 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 885 LogParam(p.size_in_pixels[i], l); | 889 LogParam(p.size_in_pixels[i], l); |
| 886 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) | 890 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) |
| 887 l->append(", "); | 891 l->append(", "); |
| 888 } | 892 } |
| 889 l->append("])"); | 893 l->append("])"); |
| 890 } | 894 } |
| 891 | 895 |
| 892 } // namespace IPC | 896 } // namespace IPC |
| 897 |
| 898 // Generate param traits size methods. |
| 899 #include "ipc/param_traits_size_macros.h" |
| 900 namespace IPC { |
| 901 #undef CC_IPC_CC_PARAM_TRAITS_MACROS_H_ |
| 902 #include "cc/ipc/cc_param_traits_macros.h" |
| 903 } |
| 904 |
| 905 // Generate param traits write methods. |
| 906 #include "ipc/param_traits_write_macros.h" |
| 907 namespace IPC { |
| 908 #undef CC_IPC_CC_PARAM_TRAITS_MACROS_H_ |
| 909 #include "cc/ipc/cc_param_traits_macros.h" |
| 910 } // namespace IPC |
| 911 |
| 912 // Generate param traits read methods. |
| 913 #include "ipc/param_traits_read_macros.h" |
| 914 namespace IPC { |
| 915 #undef CC_IPC_CC_PARAM_TRAITS_MACROS_H_ |
| 916 #include "cc/ipc/cc_param_traits_macros.h" |
| 917 } // namespace IPC |
| 918 |
| 919 // Generate param traits log methods. |
| 920 #include "ipc/param_traits_log_macros.h" |
| 921 namespace IPC { |
| 922 #undef CC_IPC_CC_PARAM_TRAITS_MACROS_H_ |
| 923 #include "cc/ipc/cc_param_traits_macros.h" |
| 924 } // namespace IPC |
| OLD | NEW |