Index: content/common/cc_messages.cc |
diff --git a/content/common/cc_messages.cc b/content/common/cc_messages.cc |
index dc389a65f629789cba010d8cb3c4265568493684..d27446af9594bdfd1b6cca81e3ed0338f2b542e4 100644 |
--- a/content/common/cc_messages.cc |
+++ b/content/common/cc_messages.cc |
@@ -242,106 +242,41 @@ void ParamTraits<skia::RefPtr<SkImageFilter> >::Log( |
void ParamTraits<gfx::Transform>::Write( |
Message* m, const param_type& p) { |
- WriteParam(m, p.matrix().get(0, 0)); |
- WriteParam(m, p.matrix().get(1, 0)); |
- WriteParam(m, p.matrix().get(2, 0)); |
- WriteParam(m, p.matrix().get(3, 0)); |
- WriteParam(m, p.matrix().get(0, 1)); |
- WriteParam(m, p.matrix().get(1, 1)); |
- WriteParam(m, p.matrix().get(2, 1)); |
- WriteParam(m, p.matrix().get(3, 1)); |
- WriteParam(m, p.matrix().get(0, 2)); |
- WriteParam(m, p.matrix().get(1, 2)); |
- WriteParam(m, p.matrix().get(2, 2)); |
- WriteParam(m, p.matrix().get(3, 2)); |
- WriteParam(m, p.matrix().get(0, 3)); |
- WriteParam(m, p.matrix().get(1, 3)); |
- WriteParam(m, p.matrix().get(2, 3)); |
- WriteParam(m, p.matrix().get(3, 3)); |
+#ifdef SK_MSCALAR_IS_FLOAT |
+ float column_major_data[16]; |
+ p.matrix().asColMajorf(column_major_data); |
+#else |
+ double column_major_data[16]; |
+ p.matrix().asColMajord(column_major_data); |
+#endif |
+ m->WriteBytes(&column_major_data, sizeof(SkMScalar) * 16); |
} |
bool ParamTraits<gfx::Transform>::Read( |
const Message* m, PickleIterator* iter, param_type* r) { |
- // Note: In this function, "m12" means 1st row, 2nd column of the matrix. |
- // This is consistent with Skia's row-column notation, but backwards from |
- // WebCore's column-row notation. |
- SkMScalar m11, m12, m13, m14, m21, m22, m23, m24, m31, m32, m33, m34, m41, |
- m42, m43, m44; |
- |
- bool success = |
- ReadParam(m, iter, &m11) && |
- ReadParam(m, iter, &m21) && |
- ReadParam(m, iter, &m31) && |
- ReadParam(m, iter, &m41) && |
- ReadParam(m, iter, &m12) && |
- ReadParam(m, iter, &m22) && |
- ReadParam(m, iter, &m32) && |
- ReadParam(m, iter, &m42) && |
- ReadParam(m, iter, &m13) && |
- ReadParam(m, iter, &m23) && |
- ReadParam(m, iter, &m33) && |
- ReadParam(m, iter, &m43) && |
- ReadParam(m, iter, &m14) && |
- ReadParam(m, iter, &m24) && |
- ReadParam(m, iter, &m34) && |
- ReadParam(m, iter, &m44); |
- |
- if (success) { |
- r->matrix().set(0, 0, m11); |
- r->matrix().set(1, 0, m21); |
- r->matrix().set(2, 0, m31); |
- r->matrix().set(3, 0, m41); |
- r->matrix().set(0, 1, m12); |
- r->matrix().set(1, 1, m22); |
- r->matrix().set(2, 1, m32); |
- r->matrix().set(3, 1, m42); |
- r->matrix().set(0, 2, m13); |
- r->matrix().set(1, 2, m23); |
- r->matrix().set(2, 2, m33); |
- r->matrix().set(3, 2, m43); |
- r->matrix().set(0, 3, m14); |
- r->matrix().set(1, 3, m24); |
- r->matrix().set(2, 3, m34); |
- r->matrix().set(3, 3, m44); |
- } |
- |
- return success; |
+ const char* column_major_data; |
+ if (!m->ReadBytes(iter, &column_major_data, sizeof(SkMScalar) * 16)) |
+ return false; |
+ r->matrix().setColMajor( |
+ reinterpret_cast<const SkMScalar*>(column_major_data)); |
+ return true; |
} |
void ParamTraits<gfx::Transform>::Log( |
const param_type& p, std::string* l) { |
+#ifdef SK_MSCALAR_IS_FLOAT |
+ float row_major_data[16]; |
+ p.matrix().asRowMajorf(row_major_data); |
+#else |
+ double row_major_data[16]; |
+ p.matrix().asRowMajord(row_major_data); |
+#endif |
l->append("("); |
- LogParam(p.matrix().get(0, 0), l); |
- l->append(", "); |
- LogParam(p.matrix().get(1, 0), l); |
- l->append(", "); |
- LogParam(p.matrix().get(2, 0), l); |
- l->append(", "); |
- LogParam(p.matrix().get(3, 0), l); |
- l->append(", "); |
- LogParam(p.matrix().get(0, 1), l); |
- l->append(", "); |
- LogParam(p.matrix().get(1, 1), l); |
- l->append(", "); |
- LogParam(p.matrix().get(2, 1), l); |
- l->append(", "); |
- LogParam(p.matrix().get(3, 1), l); |
- l->append(", "); |
- LogParam(p.matrix().get(0, 2), l); |
- l->append(", "); |
- LogParam(p.matrix().get(1, 2), l); |
- l->append(", "); |
- LogParam(p.matrix().get(2, 2), l); |
- l->append(", "); |
- LogParam(p.matrix().get(3, 2), l); |
- l->append(", "); |
- LogParam(p.matrix().get(0, 3), l); |
- l->append(", "); |
- LogParam(p.matrix().get(1, 3), l); |
- l->append(", "); |
- LogParam(p.matrix().get(2, 3), l); |
- l->append(", "); |
- LogParam(p.matrix().get(3, 3), l); |
+ for (int i = 0; i < 16; ++i) { |
+ if (i > 0) |
+ l->append(", "); |
+ LogParam(row_major_data[i], l); |
+ } |
l->append(") "); |
} |