| 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 |