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 "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "cc/output/compositor_frame.h" | 8 #include "cc/output/compositor_frame.h" |
9 #include "cc/output/filter_operations.h" | 9 #include "cc/output/filter_operations.h" |
10 #include "content/public/common/common_param_traits.h" | 10 #include "content/public/common/common_param_traits.h" |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
235 | 235 |
236 void ParamTraits<skia::RefPtr<SkImageFilter> >::Log( | 236 void ParamTraits<skia::RefPtr<SkImageFilter> >::Log( |
237 const param_type& p, std::string* l) { | 237 const param_type& p, std::string* l) { |
238 l->append("("); | 238 l->append("("); |
239 LogParam(p.get() ? p->countInputs() : 0, l); | 239 LogParam(p.get() ? p->countInputs() : 0, l); |
240 l->append(")"); | 240 l->append(")"); |
241 } | 241 } |
242 | 242 |
243 void ParamTraits<gfx::Transform>::Write( | 243 void ParamTraits<gfx::Transform>::Write( |
244 Message* m, const param_type& p) { | 244 Message* m, const param_type& p) { |
245 WriteParam(m, p.matrix().get(0, 0)); | 245 #ifdef SK_MSCALAR_IS_FLOAT |
246 WriteParam(m, p.matrix().get(1, 0)); | 246 float column_major_data[16]; |
247 WriteParam(m, p.matrix().get(2, 0)); | 247 p.matrix().asColMajorf(column_major_data); |
248 WriteParam(m, p.matrix().get(3, 0)); | 248 #else |
249 WriteParam(m, p.matrix().get(0, 1)); | 249 double column_major_data[16]; |
250 WriteParam(m, p.matrix().get(1, 1)); | 250 p.matrix().asColMajord(column_major_data); |
251 WriteParam(m, p.matrix().get(2, 1)); | 251 #endif |
252 WriteParam(m, p.matrix().get(3, 1)); | 252 m->WriteBytes(&column_major_data, sizeof(SkMScalar) * 16); |
253 WriteParam(m, p.matrix().get(0, 2)); | |
254 WriteParam(m, p.matrix().get(1, 2)); | |
255 WriteParam(m, p.matrix().get(2, 2)); | |
256 WriteParam(m, p.matrix().get(3, 2)); | |
257 WriteParam(m, p.matrix().get(0, 3)); | |
258 WriteParam(m, p.matrix().get(1, 3)); | |
259 WriteParam(m, p.matrix().get(2, 3)); | |
260 WriteParam(m, p.matrix().get(3, 3)); | |
261 } | 253 } |
262 | 254 |
263 bool ParamTraits<gfx::Transform>::Read( | 255 bool ParamTraits<gfx::Transform>::Read( |
264 const Message* m, PickleIterator* iter, param_type* r) { | 256 const Message* m, PickleIterator* iter, param_type* r) { |
265 // Note: In this function, "m12" means 1st row, 2nd column of the matrix. | 257 const char* column_major_data; |
266 // This is consistent with Skia's row-column notation, but backwards from | 258 if (!m->ReadBytes(iter, &column_major_data, sizeof(SkMScalar) * 16)) |
267 // WebCore's column-row notation. | 259 return false; |
268 SkMScalar m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, | 260 r->matrix().setColMajor( |
269 m42, m43, m44; | 261 reinterpret_cast<const SkMScalar*>(column_major_data)); |
270 | 262 return true; |
271 bool success = | |
272 ReadParam(m, iter, &m11) && | |
273 ReadParam(m, iter, &m21) && | |
274 ReadParam(m, iter, &m31) && | |
275 ReadParam(m, iter, &m41) && | |
276 ReadParam(m, iter, &m12) && | |
277 ReadParam(m, iter, &m22) && | |
278 ReadParam(m, iter, &m32) && | |
279 ReadParam(m, iter, &m42) && | |
280 ReadParam(m, iter, &m13) && | |
281 ReadParam(m, iter, &m23) && | |
282 ReadParam(m, iter, &m33) && | |
283 ReadParam(m, iter, &m43) && | |
284 ReadParam(m, iter, &m14) && | |
285 ReadParam(m, iter, &m24) && | |
286 ReadParam(m, iter, &m34) && | |
287 ReadParam(m, iter, &m44); | |
288 | |
289 if (success) { | |
290 r->matrix().set(0, 0, m11); | |
291 r->matrix().set(1, 0, m21); | |
292 r->matrix().set(2, 0, m31); | |
293 r->matrix().set(3, 0, m41); | |
294 r->matrix().set(0, 1, m12); | |
295 r->matrix().set(1, 1, m22); | |
296 r->matrix().set(2, 1, m32); | |
297 r->matrix().set(3, 1, m42); | |
298 r->matrix().set(0, 2, m13); | |
299 r->matrix().set(1, 2, m23); | |
300 r->matrix().set(2, 2, m33); | |
301 r->matrix().set(3, 2, m43); | |
302 r->matrix().set(0, 3, m14); | |
303 r->matrix().set(1, 3, m24); | |
304 r->matrix().set(2, 3, m34); | |
305 r->matrix().set(3, 3, m44); | |
306 } | |
307 | |
308 return success; | |
309 } | 263 } |
310 | 264 |
311 void ParamTraits<gfx::Transform>::Log( | 265 void ParamTraits<gfx::Transform>::Log( |
312 const param_type& p, std::string* l) { | 266 const param_type& p, std::string* l) { |
| 267 #ifdef SK_MSCALAR_IS_FLOAT |
| 268 float row_major_data[16]; |
| 269 p.matrix().asRowMajorf(row_major_data); |
| 270 #else |
| 271 double row_major_data[16]; |
| 272 p.matrix().asRowMajord(row_major_data); |
| 273 #endif |
313 l->append("("); | 274 l->append("("); |
314 LogParam(p.matrix().get(0, 0), l); | 275 for (int i = 0; i < 16; ++i) { |
315 l->append(", "); | 276 if (i > 0) |
316 LogParam(p.matrix().get(1, 0), l); | 277 l->append(", "); |
317 l->append(", "); | 278 LogParam(row_major_data[i], l); |
318 LogParam(p.matrix().get(2, 0), l); | 279 } |
319 l->append(", "); | |
320 LogParam(p.matrix().get(3, 0), l); | |
321 l->append(", "); | |
322 LogParam(p.matrix().get(0, 1), l); | |
323 l->append(", "); | |
324 LogParam(p.matrix().get(1, 1), l); | |
325 l->append(", "); | |
326 LogParam(p.matrix().get(2, 1), l); | |
327 l->append(", "); | |
328 LogParam(p.matrix().get(3, 1), l); | |
329 l->append(", "); | |
330 LogParam(p.matrix().get(0, 2), l); | |
331 l->append(", "); | |
332 LogParam(p.matrix().get(1, 2), l); | |
333 l->append(", "); | |
334 LogParam(p.matrix().get(2, 2), l); | |
335 l->append(", "); | |
336 LogParam(p.matrix().get(3, 2), l); | |
337 l->append(", "); | |
338 LogParam(p.matrix().get(0, 3), l); | |
339 l->append(", "); | |
340 LogParam(p.matrix().get(1, 3), l); | |
341 l->append(", "); | |
342 LogParam(p.matrix().get(2, 3), l); | |
343 l->append(", "); | |
344 LogParam(p.matrix().get(3, 3), l); | |
345 l->append(") "); | 280 l->append(") "); |
346 } | 281 } |
347 | 282 |
348 void ParamTraits<cc::RenderPass>::Write( | 283 void ParamTraits<cc::RenderPass>::Write( |
349 Message* m, const param_type& p) { | 284 Message* m, const param_type& p) { |
350 WriteParam(m, p.id); | 285 WriteParam(m, p.id); |
351 WriteParam(m, p.output_rect); | 286 WriteParam(m, p.output_rect); |
352 WriteParam(m, p.damage_rect); | 287 WriteParam(m, p.damage_rect); |
353 WriteParam(m, p.transform_to_root_target); | 288 WriteParam(m, p.transform_to_root_target); |
354 WriteParam(m, p.has_transparent_background); | 289 WriteParam(m, p.has_transparent_background); |
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
777 l->append(", ["); | 712 l->append(", ["); |
778 for (size_t i = 0; i < p.render_pass_list.size(); ++i) { | 713 for (size_t i = 0; i < p.render_pass_list.size(); ++i) { |
779 if (i) | 714 if (i) |
780 l->append(", "); | 715 l->append(", "); |
781 LogParam(*p.render_pass_list[i], l); | 716 LogParam(*p.render_pass_list[i], l); |
782 } | 717 } |
783 l->append("])"); | 718 l->append("])"); |
784 } | 719 } |
785 | 720 |
786 } // namespace IPC | 721 } // namespace IPC |
OLD | NEW |