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 "ui/gfx/transform.h" | |
20 | 19 |
21 namespace IPC { | 20 namespace IPC { |
22 | 21 |
23 void ParamTraits<cc::FilterOperation>::Write(base::Pickle* m, | 22 void ParamTraits<cc::FilterOperation>::Write(base::Pickle* m, |
24 const param_type& p) { | 23 const param_type& p) { |
25 WriteParam(m, p.type()); | 24 WriteParam(m, p.type()); |
26 switch (p.type()) { | 25 switch (p.type()) { |
27 case cc::FilterOperation::GRAYSCALE: | 26 case cc::FilterOperation::GRAYSCALE: |
28 case cc::FilterOperation::SEPIA: | 27 case cc::FilterOperation::SEPIA: |
29 case cc::FilterOperation::SATURATE: | 28 case cc::FilterOperation::SATURATE: |
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 return true; | 248 return true; |
250 } | 249 } |
251 | 250 |
252 void ParamTraits<skia::RefPtr<SkImageFilter> >::Log( | 251 void ParamTraits<skia::RefPtr<SkImageFilter> >::Log( |
253 const param_type& p, std::string* l) { | 252 const param_type& p, std::string* l) { |
254 l->append("("); | 253 l->append("("); |
255 LogParam(p.get() ? p->countInputs() : 0, l); | 254 LogParam(p.get() ? p->countInputs() : 0, l); |
256 l->append(")"); | 255 l->append(")"); |
257 } | 256 } |
258 | 257 |
259 void ParamTraits<gfx::Transform>::Write(base::Pickle* m, const param_type& p) { | |
260 #ifdef SK_MSCALAR_IS_FLOAT | |
261 float column_major_data[16]; | |
262 p.matrix().asColMajorf(column_major_data); | |
263 #else | |
264 double column_major_data[16]; | |
265 p.matrix().asColMajord(column_major_data); | |
266 #endif | |
267 m->WriteBytes(&column_major_data, sizeof(SkMScalar) * 16); | |
268 } | |
269 | |
270 bool ParamTraits<gfx::Transform>::Read(const base::Pickle* m, | |
271 base::PickleIterator* iter, | |
272 param_type* r) { | |
273 const char* column_major_data; | |
274 if (!iter->ReadBytes(&column_major_data, sizeof(SkMScalar) * 16)) | |
275 return false; | |
276 r->matrix().setColMajor( | |
277 reinterpret_cast<const SkMScalar*>(column_major_data)); | |
278 return true; | |
279 } | |
280 | |
281 void ParamTraits<gfx::Transform>::Log( | |
282 const param_type& p, std::string* l) { | |
283 #ifdef SK_MSCALAR_IS_FLOAT | |
284 float row_major_data[16]; | |
285 p.matrix().asRowMajorf(row_major_data); | |
286 #else | |
287 double row_major_data[16]; | |
288 p.matrix().asRowMajord(row_major_data); | |
289 #endif | |
290 l->append("("); | |
291 for (int i = 0; i < 16; ++i) { | |
292 if (i > 0) | |
293 l->append(", "); | |
294 LogParam(row_major_data[i], l); | |
295 } | |
296 l->append(") "); | |
297 } | |
298 | |
299 void ParamTraits<cc::RenderPass>::Write(base::Pickle* m, const param_type& p) { | 258 void ParamTraits<cc::RenderPass>::Write(base::Pickle* m, const param_type& p) { |
300 WriteParam(m, p.id); | 259 WriteParam(m, p.id); |
301 WriteParam(m, p.output_rect); | 260 WriteParam(m, p.output_rect); |
302 WriteParam(m, p.damage_rect); | 261 WriteParam(m, p.damage_rect); |
303 WriteParam(m, p.transform_to_root_target); | 262 WriteParam(m, p.transform_to_root_target); |
304 WriteParam(m, p.has_transparent_background); | 263 WriteParam(m, p.has_transparent_background); |
305 WriteParam(m, base::checked_cast<uint32_t>(p.quad_list.size())); | 264 WriteParam(m, base::checked_cast<uint32_t>(p.quad_list.size())); |
306 | 265 |
307 cc::SharedQuadStateList::ConstIterator shared_quad_state_iter = | 266 cc::SharedQuadStateList::ConstIterator shared_quad_state_iter = |
308 p.shared_quad_state_list.begin(); | 267 p.shared_quad_state_list.begin(); |
(...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
846 l->append("TextureDrawQuad::OverlayResources(["); | 805 l->append("TextureDrawQuad::OverlayResources(["); |
847 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { | 806 for (size_t i = 0; i < cc::DrawQuad::Resources::kMaxResourceIdCount; ++i) { |
848 LogParam(p.size_in_pixels[i], l); | 807 LogParam(p.size_in_pixels[i], l); |
849 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) | 808 if (i < (cc::DrawQuad::Resources::kMaxResourceIdCount - 1)) |
850 l->append(", "); | 809 l->append(", "); |
851 } | 810 } |
852 l->append("])"); | 811 l->append("])"); |
853 } | 812 } |
854 | 813 |
855 } // namespace IPC | 814 } // namespace IPC |
OLD | NEW |