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 "skia/public/interfaces/bitmap_skbitmap_struct_traits.h" | 5 #include "skia/public/interfaces/bitmap_skbitmap_struct_traits.h" |
6 | 6 |
7 namespace mojo { | 7 namespace mojo { |
8 | 8 |
9 namespace { | 9 namespace { |
10 | 10 |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 | 100 |
101 skia::mojom::ColorProfileType SkColorSpaceToMojo(SkColorSpace* cs) { | 101 skia::mojom::ColorProfileType SkColorSpaceToMojo(SkColorSpace* cs) { |
102 if (cs && cs->gammaCloseToSRGB()) | 102 if (cs && cs->gammaCloseToSRGB()) |
103 return skia::mojom::ColorProfileType::SRGB; | 103 return skia::mojom::ColorProfileType::SRGB; |
104 return skia::mojom::ColorProfileType::LINEAR; | 104 return skia::mojom::ColorProfileType::LINEAR; |
105 } | 105 } |
106 | 106 |
107 } // namespace | 107 } // namespace |
108 | 108 |
109 // static | 109 // static |
110 bool StructTraits<skia::mojom::Bitmap, SkBitmap>::IsNull(const SkBitmap& b) { | 110 bool StructTraits<skia::mojom::BitmapDataView, SkBitmap>::IsNull( |
| 111 const SkBitmap& b) { |
111 return b.isNull(); | 112 return b.isNull(); |
112 } | 113 } |
113 | 114 |
114 // static | 115 // static |
115 void StructTraits<skia::mojom::Bitmap, SkBitmap>::SetToNull(SkBitmap* b) { | 116 void StructTraits<skia::mojom::BitmapDataView, SkBitmap>::SetToNull( |
| 117 SkBitmap* b) { |
116 b->reset(); | 118 b->reset(); |
117 } | 119 } |
118 | 120 |
119 // static | 121 // static |
120 skia::mojom::ColorType StructTraits<skia::mojom::Bitmap, SkBitmap>::color_type( | 122 skia::mojom::ColorType StructTraits<skia::mojom::BitmapDataView, |
121 const SkBitmap& b) { | 123 SkBitmap>::color_type(const SkBitmap& b) { |
122 return SkColorTypeToMojo(b.colorType()); | 124 return SkColorTypeToMojo(b.colorType()); |
123 } | 125 } |
124 | 126 |
125 // static | 127 // static |
126 skia::mojom::AlphaType StructTraits<skia::mojom::Bitmap, SkBitmap>::alpha_type( | 128 skia::mojom::AlphaType StructTraits<skia::mojom::BitmapDataView, |
127 const SkBitmap& b) { | 129 SkBitmap>::alpha_type(const SkBitmap& b) { |
128 return SkAlphaTypeToMojo(b.alphaType()); | 130 return SkAlphaTypeToMojo(b.alphaType()); |
129 } | 131 } |
130 | 132 |
131 // static | 133 // static |
132 skia::mojom::ColorProfileType | 134 skia::mojom::ColorProfileType |
133 StructTraits<skia::mojom::Bitmap, SkBitmap>::profile_type(const SkBitmap& b) { | 135 StructTraits<skia::mojom::BitmapDataView, SkBitmap>::profile_type( |
| 136 const SkBitmap& b) { |
134 return SkColorSpaceToMojo(b.colorSpace()); | 137 return SkColorSpaceToMojo(b.colorSpace()); |
135 } | 138 } |
136 | 139 |
137 // static | 140 // static |
138 uint32_t StructTraits<skia::mojom::Bitmap, SkBitmap>::width(const SkBitmap& b) { | 141 uint32_t StructTraits<skia::mojom::BitmapDataView, SkBitmap>::width( |
| 142 const SkBitmap& b) { |
139 return b.width() < 0 ? 0 : static_cast<uint32_t>(b.width()); | 143 return b.width() < 0 ? 0 : static_cast<uint32_t>(b.width()); |
140 } | 144 } |
141 | 145 |
142 // static | 146 // static |
143 uint32_t StructTraits<skia::mojom::Bitmap, SkBitmap>::height( | 147 uint32_t StructTraits<skia::mojom::BitmapDataView, SkBitmap>::height( |
144 const SkBitmap& b) { | 148 const SkBitmap& b) { |
145 return b.height() < 0 ? 0 : static_cast<uint32_t>(b.height()); | 149 return b.height() < 0 ? 0 : static_cast<uint32_t>(b.height()); |
146 } | 150 } |
147 | 151 |
148 // static | 152 // static |
149 BitmapBuffer StructTraits<skia::mojom::Bitmap, SkBitmap>::pixel_data( | 153 BitmapBuffer StructTraits<skia::mojom::BitmapDataView, SkBitmap>::pixel_data( |
150 const SkBitmap& b) { | 154 const SkBitmap& b) { |
151 return {b.getSize(), b.getSize(), static_cast<uint8_t*>(b.getPixels())}; | 155 return {b.getSize(), b.getSize(), static_cast<uint8_t*>(b.getPixels())}; |
152 } | 156 } |
153 | 157 |
154 // static | 158 // static |
155 bool StructTraits<skia::mojom::Bitmap, SkBitmap>::Read( | 159 bool StructTraits<skia::mojom::BitmapDataView, SkBitmap>::Read( |
156 skia::mojom::BitmapDataView data, | 160 skia::mojom::BitmapDataView data, |
157 SkBitmap* b) { | 161 SkBitmap* b) { |
158 // TODO: Ensure width and height are reasonable, eg. <= kMaxBitmapSize? | 162 // TODO: Ensure width and height are reasonable, eg. <= kMaxBitmapSize? |
159 *b = SkBitmap(); | 163 *b = SkBitmap(); |
160 if (!b->tryAllocPixels(SkImageInfo::Make( | 164 if (!b->tryAllocPixels(SkImageInfo::Make( |
161 data.width(), data.height(), MojoColorTypeToSk(data.color_type()), | 165 data.width(), data.height(), MojoColorTypeToSk(data.color_type()), |
162 MojoAlphaTypeToSk(data.alpha_type()), | 166 MojoAlphaTypeToSk(data.alpha_type()), |
163 MojoProfileTypeToSk(data.profile_type())))) { | 167 MojoProfileTypeToSk(data.profile_type())))) { |
164 return false; | 168 return false; |
165 } | 169 } |
(...skipping 13 matching lines...) Expand all Loading... |
179 BitmapBuffer bitmap_buffer = {0, b->getSize(), | 183 BitmapBuffer bitmap_buffer = {0, b->getSize(), |
180 static_cast<uint8_t*>(b->getPixels())}; | 184 static_cast<uint8_t*>(b->getPixels())}; |
181 if (!data.ReadPixelData(&bitmap_buffer) || bitmap_buffer.size != b->getSize()) | 185 if (!data.ReadPixelData(&bitmap_buffer) || bitmap_buffer.size != b->getSize()) |
182 return false; | 186 return false; |
183 | 187 |
184 b->notifyPixelsChanged(); | 188 b->notifyPixelsChanged(); |
185 return true; | 189 return true; |
186 } | 190 } |
187 | 191 |
188 // static | 192 // static |
189 void* StructTraits<skia::mojom::Bitmap, SkBitmap>::SetUpContext( | 193 void* StructTraits<skia::mojom::BitmapDataView, SkBitmap>::SetUpContext( |
190 const SkBitmap& b) { | 194 const SkBitmap& b) { |
191 b.lockPixels(); | 195 b.lockPixels(); |
192 return nullptr; | 196 return nullptr; |
193 } | 197 } |
194 | 198 |
195 // static | 199 // static |
196 void StructTraits<skia::mojom::Bitmap, SkBitmap>::TearDownContext( | 200 void StructTraits<skia::mojom::BitmapDataView, SkBitmap>::TearDownContext( |
197 const SkBitmap& b, | 201 const SkBitmap& b, |
198 void* context) { | 202 void* context) { |
199 b.unlockPixels(); | 203 b.unlockPixels(); |
200 } | 204 } |
201 | 205 |
202 } // namespace mojo | 206 } // namespace mojo |
OLD | NEW |