| 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 "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 "base/numerics/safe_conversions.h" | 10 #include "base/numerics/safe_conversions.h" |
| 11 #include "cc/output/compositor_frame.h" | 11 #include "cc/output/compositor_frame.h" |
| 12 #include "cc/output/filter_operations.h" | 12 #include "cc/output/filter_operations.h" |
| 13 #include "cc/quads/draw_quad.h" | 13 #include "cc/quads/draw_quad.h" |
| 14 #include "cc/quads/largest_draw_quad.h" | 14 #include "cc/quads/largest_draw_quad.h" |
| 15 #include "cc/quads/render_pass_id.h" | 15 #include "cc/quads/render_pass_id.h" |
| 16 #include "content/public/common/common_param_traits.h" | 16 #include "content/public/common/common_param_traits.h" |
| 17 #include "third_party/skia/include/core/SkData.h" | 17 #include "third_party/skia/include/core/SkData.h" |
| 18 #include "third_party/skia/include/core/SkFlattenableSerialization.h" | 18 #include "third_party/skia/include/core/SkFlattenableSerialization.h" |
| 19 #include "third_party/skia/include/core/SkImageFilter.h" | 19 #include "third_party/skia/include/core/SkImageFilter.h" |
| 20 #include "third_party/skia/include/core/SkRefCnt.h" | 20 #include "third_party/skia/include/core/SkRefCnt.h" |
| 21 | 21 |
| 22 namespace IPC { | 22 namespace IPC { |
| 23 | 23 |
| 24 void ParamTraits<cc::FilterOperation>::GetSize(base::PickleSizer* s, |
| 25 const param_type& p) { |
| 26 GetParamSize(s, p.type()); |
| 27 switch (p.type()) { |
| 28 case cc::FilterOperation::GRAYSCALE: |
| 29 case cc::FilterOperation::SEPIA: |
| 30 case cc::FilterOperation::SATURATE: |
| 31 case cc::FilterOperation::HUE_ROTATE: |
| 32 case cc::FilterOperation::INVERT: |
| 33 case cc::FilterOperation::BRIGHTNESS: |
| 34 case cc::FilterOperation::SATURATING_BRIGHTNESS: |
| 35 case cc::FilterOperation::CONTRAST: |
| 36 case cc::FilterOperation::OPACITY: |
| 37 case cc::FilterOperation::BLUR: |
| 38 GetParamSize(s, p.amount()); |
| 39 break; |
| 40 case cc::FilterOperation::DROP_SHADOW: |
| 41 GetParamSize(s, p.drop_shadow_offset()); |
| 42 GetParamSize(s, p.amount()); |
| 43 GetParamSize(s, p.drop_shadow_color()); |
| 44 break; |
| 45 case cc::FilterOperation::COLOR_MATRIX: |
| 46 for (int i = 0; i < 20; ++i) |
| 47 GetParamSize(s, p.matrix()[i]); |
| 48 break; |
| 49 case cc::FilterOperation::ZOOM: |
| 50 GetParamSize(s, p.amount()); |
| 51 GetParamSize(s, p.zoom_inset()); |
| 52 break; |
| 53 case cc::FilterOperation::REFERENCE: |
| 54 GetParamSize(s, p.image_filter()); |
| 55 break; |
| 56 case cc::FilterOperation::ALPHA_THRESHOLD: |
| 57 NOTREACHED(); |
| 58 break; |
| 59 } |
| 60 } |
| 61 |
| 24 void ParamTraits<cc::FilterOperation>::Write(base::Pickle* m, | 62 void ParamTraits<cc::FilterOperation>::Write(base::Pickle* m, |
| 25 const param_type& p) { | 63 const param_type& p) { |
| 26 WriteParam(m, p.type()); | 64 WriteParam(m, p.type()); |
| 27 switch (p.type()) { | 65 switch (p.type()) { |
| 28 case cc::FilterOperation::GRAYSCALE: | 66 case cc::FilterOperation::GRAYSCALE: |
| 29 case cc::FilterOperation::SEPIA: | 67 case cc::FilterOperation::SEPIA: |
| 30 case cc::FilterOperation::SATURATE: | 68 case cc::FilterOperation::SATURATE: |
| 31 case cc::FilterOperation::HUE_ROTATE: | 69 case cc::FilterOperation::HUE_ROTATE: |
| 32 case cc::FilterOperation::INVERT: | 70 case cc::FilterOperation::INVERT: |
| 33 case cc::FilterOperation::BRIGHTNESS: | 71 case cc::FilterOperation::BRIGHTNESS: |
| (...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 case cc::FilterOperation::REFERENCE: | 217 case cc::FilterOperation::REFERENCE: |
| 180 LogParam(p.image_filter(), l); | 218 LogParam(p.image_filter(), l); |
| 181 break; | 219 break; |
| 182 case cc::FilterOperation::ALPHA_THRESHOLD: | 220 case cc::FilterOperation::ALPHA_THRESHOLD: |
| 183 NOTREACHED(); | 221 NOTREACHED(); |
| 184 break; | 222 break; |
| 185 } | 223 } |
| 186 l->append(")"); | 224 l->append(")"); |
| 187 } | 225 } |
| 188 | 226 |
| 227 void ParamTraits<cc::FilterOperations>::GetSize(base::PickleSizer* s, |
| 228 const param_type& p) { |
| 229 GetParamSize(s, base::checked_cast<uint32_t>(p.size())); |
| 230 for (std::size_t i = 0; i < p.size(); ++i) { |
| 231 GetParamSize(s, p.at(i)); |
| 232 } |
| 233 } |
| 234 |
| 189 void ParamTraits<cc::FilterOperations>::Write(base::Pickle* m, | 235 void ParamTraits<cc::FilterOperations>::Write(base::Pickle* m, |
| 190 const param_type& p) { | 236 const param_type& p) { |
| 191 WriteParam(m, base::checked_cast<uint32_t>(p.size())); | 237 WriteParam(m, base::checked_cast<uint32_t>(p.size())); |
| 192 for (std::size_t i = 0; i < p.size(); ++i) { | 238 for (std::size_t i = 0; i < p.size(); ++i) { |
| 193 WriteParam(m, p.at(i)); | 239 WriteParam(m, p.at(i)); |
| 194 } | 240 } |
| 195 } | 241 } |
| 196 | 242 |
| 197 bool ParamTraits<cc::FilterOperations>::Read(const base::Pickle* m, | 243 bool ParamTraits<cc::FilterOperations>::Read(const base::Pickle* m, |
| 198 base::PickleIterator* iter, | 244 base::PickleIterator* iter, |
| (...skipping 15 matching lines...) Expand all Loading... |
| 214 const param_type& p, std::string* l) { | 260 const param_type& p, std::string* l) { |
| 215 l->append("("); | 261 l->append("("); |
| 216 for (std::size_t i = 0; i < p.size(); ++i) { | 262 for (std::size_t i = 0; i < p.size(); ++i) { |
| 217 if (i) | 263 if (i) |
| 218 l->append(", "); | 264 l->append(", "); |
| 219 LogParam(p.at(i), l); | 265 LogParam(p.at(i), l); |
| 220 } | 266 } |
| 221 l->append(")"); | 267 l->append(")"); |
| 222 } | 268 } |
| 223 | 269 |
| 270 void ParamTraits<sk_sp<SkImageFilter>>::GetSize(base::PickleSizer* s, |
| 271 const param_type& p) { |
| 272 SkImageFilter* filter = p.get(); |
| 273 if (filter) { |
| 274 sk_sp<SkData> data(SkValidatingSerializeFlattenable(filter)); |
| 275 s->AddData(data->size()); |
| 276 } else { |
| 277 s->AddData(0); |
| 278 } |
| 279 } |
| 280 |
| 224 void ParamTraits<sk_sp<SkImageFilter>>::Write(base::Pickle* m, | 281 void ParamTraits<sk_sp<SkImageFilter>>::Write(base::Pickle* m, |
| 225 const param_type& p) { | 282 const param_type& p) { |
| 226 SkImageFilter* filter = p.get(); | 283 SkImageFilter* filter = p.get(); |
| 227 if (filter) { | 284 if (filter) { |
| 228 sk_sp<SkData> data(SkValidatingSerializeFlattenable(filter)); | 285 sk_sp<SkData> data(SkValidatingSerializeFlattenable(filter)); |
| 229 m->WriteData(static_cast<const char*>(data->data()), data->size()); | 286 m->WriteData(static_cast<const char*>(data->data()), data->size()); |
| 230 } else { | 287 } else { |
| 231 m->WriteData(0, 0); | 288 m->WriteData(0, 0); |
| 232 } | 289 } |
| 233 } | 290 } |
| (...skipping 468 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 702 LogParam(p.resource_list, l); | 759 LogParam(p.resource_list, l); |
| 703 l->append(", ["); | 760 l->append(", ["); |
| 704 for (size_t i = 0; i < p.render_pass_list.size(); ++i) { | 761 for (size_t i = 0; i < p.render_pass_list.size(); ++i) { |
| 705 if (i) | 762 if (i) |
| 706 l->append(", "); | 763 l->append(", "); |
| 707 LogParam(*p.render_pass_list[i], l); | 764 LogParam(*p.render_pass_list[i], l); |
| 708 } | 765 } |
| 709 l->append("])"); | 766 l->append("])"); |
| 710 } | 767 } |
| 711 | 768 |
| 769 void ParamTraits<cc::DrawQuad::Resources>::GetSize(base::PickleSizer* s, |
| 770 const param_type& p) { |
| 771 GetParamSize(s, p.count); |
| 772 for (size_t i = 0; i < p.count; ++i) |
| 773 GetParamSize(s, p.ids[i]); |
| 774 } |
| 775 |
| 712 void ParamTraits<cc::DrawQuad::Resources>::Write(base::Pickle* m, | 776 void ParamTraits<cc::DrawQuad::Resources>::Write(base::Pickle* m, |
| 713 const param_type& p) { | 777 const param_type& p) { |
| 714 DCHECK_LE(p.count, cc::DrawQuad::Resources::kMaxResourceIdCount); | 778 DCHECK_LE(p.count, cc::DrawQuad::Resources::kMaxResourceIdCount); |
| 715 WriteParam(m, p.count); | 779 WriteParam(m, p.count); |
| 716 for (size_t i = 0; i < p.count; ++i) | 780 for (size_t i = 0; i < p.count; ++i) |
| 717 WriteParam(m, p.ids[i]); | 781 WriteParam(m, p.ids[i]); |
| 718 } | 782 } |
| 719 | 783 |
| 720 bool ParamTraits<cc::DrawQuad::Resources>::Read(const base::Pickle* m, | 784 bool ParamTraits<cc::DrawQuad::Resources>::Read(const base::Pickle* m, |
| 721 base::PickleIterator* iter, | 785 base::PickleIterator* iter, |
| (...skipping 20 matching lines...) Expand all Loading... |
| 742 } | 806 } |
| 743 | 807 |
| 744 for (size_t i = 0; i < p.count; ++i) { | 808 for (size_t i = 0; i < p.count; ++i) { |
| 745 LogParam(p.ids[i], l); | 809 LogParam(p.ids[i], l); |
| 746 if (i < (p.count - 1)) | 810 if (i < (p.count - 1)) |
| 747 l->append(", "); | 811 l->append(", "); |
| 748 } | 812 } |
| 749 l->append("])"); | 813 l->append("])"); |
| 750 } | 814 } |
| 751 | 815 |
| 816 void ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::GetSize( |
| 817 base::PickleSizer* s, const param_type& p) { |
| 818 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 819 GetParamSize(s, p.size_in_pixels[i]); |
| 820 } |
| 821 } |
| 822 |
| 752 void ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::Write( | 823 void ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::Write( |
| 753 base::Pickle* m, | 824 base::Pickle* m, |
| 754 const param_type& p) { | 825 const param_type& p) { |
| 755 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 826 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 756 WriteParam(m, p.size_in_pixels[i]); | 827 WriteParam(m, p.size_in_pixels[i]); |
| 757 } | 828 } |
| 758 } | 829 } |
| 759 | 830 |
| 760 bool ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::Read( | 831 bool ParamTraits<cc::StreamVideoDrawQuad::OverlayResources>::Read( |
| 761 const base::Pickle* m, | 832 const base::Pickle* m, |
| (...skipping 11 matching lines...) Expand all Loading... |
| 773 std::string* l) { | 844 std::string* l) { |
| 774 l->append("StreamVideoDrawQuad::OverlayResources(["); | 845 l->append("StreamVideoDrawQuad::OverlayResources(["); |
| 775 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 846 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 776 LogParam(p.size_in_pixels[i], l); | 847 LogParam(p.size_in_pixels[i], l); |
| 777 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) | 848 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) |
| 778 l->append(", "); | 849 l->append(", "); |
| 779 } | 850 } |
| 780 l->append("])"); | 851 l->append("])"); |
| 781 } | 852 } |
| 782 | 853 |
| 854 void ParamTraits<cc::TextureDrawQuad::OverlayResources>::GetSize( |
| 855 base::PickleSizer* s, const param_type& p) { |
| 856 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 857 GetParamSize(s, p.size_in_pixels[i]); |
| 858 } |
| 859 } |
| 860 |
| 783 void ParamTraits<cc::TextureDrawQuad::OverlayResources>::Write( | 861 void ParamTraits<cc::TextureDrawQuad::OverlayResources>::Write( |
| 784 base::Pickle* m, | 862 base::Pickle* m, |
| 785 const param_type& p) { | 863 const param_type& p) { |
| 786 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 864 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 787 WriteParam(m, p.size_in_pixels[i]); | 865 WriteParam(m, p.size_in_pixels[i]); |
| 788 } | 866 } |
| 789 } | 867 } |
| 790 | 868 |
| 791 bool ParamTraits<cc::TextureDrawQuad::OverlayResources>::Read( | 869 bool ParamTraits<cc::TextureDrawQuad::OverlayResources>::Read( |
| 792 const base::Pickle* m, | 870 const base::Pickle* m, |
| (...skipping 12 matching lines...) Expand all Loading... |
| 805 l->append("TextureDrawQuad::OverlayResources(["); | 883 l->append("TextureDrawQuad::OverlayResources(["); |
| 806 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 884 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
| 807 LogParam(p.size_in_pixels[i], l); | 885 LogParam(p.size_in_pixels[i], l); |
| 808 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) | 886 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) |
| 809 l->append(", "); | 887 l->append(", "); |
| 810 } | 888 } |
| 811 l->append("])"); | 889 l->append("])"); |
| 812 } | 890 } |
| 813 | 891 |
| 814 } // namespace IPC | 892 } // namespace IPC |
| OLD | NEW |