OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "ui/gfx/ipc/skia/gfx_skia_param_traits.h" | 5 #include "ui/gfx/ipc/skia/gfx_skia_param_traits.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/pickle.h" | 9 #include "base/pickle.h" |
10 #include "third_party/skia/include/core/SkBitmap.h" | 10 #include "third_party/skia/include/core/SkBitmap.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 return false; | 45 return false; |
46 memcpy(bitmap->getPixels(), pixels, pixels_size); | 46 memcpy(bitmap->getPixels(), pixels, pixels_size); |
47 return true; | 47 return true; |
48 } | 48 } |
49 }; | 49 }; |
50 | 50 |
51 } // namespace | 51 } // namespace |
52 | 52 |
53 namespace IPC { | 53 namespace IPC { |
54 | 54 |
| 55 void ParamTraits<SkBitmap>::GetSize(base::PickleSizer* s, const param_type& p) { |
| 56 s->AddData(sizeof(SkBitmap_Data)); |
| 57 s->AddData(static_cast<int>(p.getSize())); |
| 58 } |
| 59 |
55 void ParamTraits<SkBitmap>::Write(base::Pickle* m, const SkBitmap& p) { | 60 void ParamTraits<SkBitmap>::Write(base::Pickle* m, const SkBitmap& p) { |
56 size_t fixed_size = sizeof(SkBitmap_Data); | 61 size_t fixed_size = sizeof(SkBitmap_Data); |
57 SkBitmap_Data bmp_data; | 62 SkBitmap_Data bmp_data; |
58 bmp_data.InitSkBitmapDataForTransfer(p); | 63 bmp_data.InitSkBitmapDataForTransfer(p); |
59 m->WriteData(reinterpret_cast<const char*>(&bmp_data), | 64 m->WriteData(reinterpret_cast<const char*>(&bmp_data), |
60 static_cast<int>(fixed_size)); | 65 static_cast<int>(fixed_size)); |
61 size_t pixel_size = p.getSize(); | 66 size_t pixel_size = p.getSize(); |
62 SkAutoLockPixels p_lock(p); | 67 SkAutoLockPixels p_lock(p); |
63 m->WriteData(reinterpret_cast<const char*>(p.getPixels()), | 68 m->WriteData(reinterpret_cast<const char*>(p.getPixels()), |
64 static_cast<int>(pixel_size)); | 69 static_cast<int>(pixel_size)); |
(...skipping 19 matching lines...) Expand all Loading... |
84 } | 89 } |
85 const SkBitmap_Data* bmp_data = | 90 const SkBitmap_Data* bmp_data = |
86 reinterpret_cast<const SkBitmap_Data*>(fixed_data); | 91 reinterpret_cast<const SkBitmap_Data*>(fixed_data); |
87 return bmp_data->InitSkBitmapFromData(r, variable_data, variable_data_size); | 92 return bmp_data->InitSkBitmapFromData(r, variable_data, variable_data_size); |
88 } | 93 } |
89 | 94 |
90 void ParamTraits<SkBitmap>::Log(const SkBitmap& p, std::string* l) { | 95 void ParamTraits<SkBitmap>::Log(const SkBitmap& p, std::string* l) { |
91 l->append("<SkBitmap>"); | 96 l->append("<SkBitmap>"); |
92 } | 97 } |
93 | 98 |
| 99 void ParamTraits<gfx::Transform>::GetSize(base::PickleSizer* s, |
| 100 const param_type& p) { |
| 101 s->AddBytes(sizeof(SkMScalar) * 16); |
| 102 } |
| 103 |
94 void ParamTraits<gfx::Transform>::Write(base::Pickle* m, const param_type& p) { | 104 void ParamTraits<gfx::Transform>::Write(base::Pickle* m, const param_type& p) { |
95 #ifdef SK_MSCALAR_IS_FLOAT | 105 #ifdef SK_MSCALAR_IS_FLOAT |
96 float column_major_data[16]; | 106 float column_major_data[16]; |
97 p.matrix().asColMajorf(column_major_data); | 107 p.matrix().asColMajorf(column_major_data); |
98 #else | 108 #else |
99 double column_major_data[16]; | 109 double column_major_data[16]; |
100 p.matrix().asColMajord(column_major_data); | 110 p.matrix().asColMajord(column_major_data); |
101 #endif | 111 #endif |
102 // We do this in a single write for performance reasons. | 112 // We do this in a single write for performance reasons. |
103 m->WriteBytes(&column_major_data, sizeof(SkMScalar) * 16); | 113 m->WriteBytes(&column_major_data, sizeof(SkMScalar) * 16); |
(...skipping 22 matching lines...) Expand all Loading... |
126 l->append("("); | 136 l->append("("); |
127 for (int i = 0; i < 16; ++i) { | 137 for (int i = 0; i < 16; ++i) { |
128 if (i > 0) | 138 if (i > 0) |
129 l->append(", "); | 139 l->append(", "); |
130 LogParam(row_major_data[i], l); | 140 LogParam(row_major_data[i], l); |
131 } | 141 } |
132 l->append(") "); | 142 l->append(") "); |
133 } | 143 } |
134 | 144 |
135 } // namespace IPC | 145 } // namespace IPC |
OLD | NEW |