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/renderer/pepper/ppb_image_data_impl.h" | 5 #include "content/renderer/pepper/ppb_image_data_impl.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <limits> | 8 #include <limits> |
9 | 9 |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 desc->size.width = width_; | 98 desc->size.width = width_; |
99 desc->size.height = height_; | 99 desc->size.height = height_; |
100 desc->stride = width_ * 4; | 100 desc->stride = width_ * 4; |
101 return PP_TRUE; | 101 return PP_TRUE; |
102 } | 102 } |
103 | 103 |
104 void* PPB_ImageData_Impl::Map() { return backend_->Map(); } | 104 void* PPB_ImageData_Impl::Map() { return backend_->Map(); } |
105 | 105 |
106 void PPB_ImageData_Impl::Unmap() { backend_->Unmap(); } | 106 void PPB_ImageData_Impl::Unmap() { backend_->Unmap(); } |
107 | 107 |
108 int32_t PPB_ImageData_Impl::GetSharedMemory(int* handle, uint32_t* byte_count) { | 108 int32_t PPB_ImageData_Impl::GetSharedMemory(base::SharedMemoryHandle* handle, |
| 109 uint32_t* byte_count) { |
109 return backend_->GetSharedMemory(handle, byte_count); | 110 return backend_->GetSharedMemory(handle, byte_count); |
110 } | 111 } |
111 | 112 |
112 skia::PlatformCanvas* PPB_ImageData_Impl::GetPlatformCanvas() { | 113 skia::PlatformCanvas* PPB_ImageData_Impl::GetPlatformCanvas() { |
113 return backend_->GetPlatformCanvas(); | 114 return backend_->GetPlatformCanvas(); |
114 } | 115 } |
115 | 116 |
116 SkCanvas* PPB_ImageData_Impl::GetCanvas() { return backend_->GetCanvas(); } | 117 SkCanvas* PPB_ImageData_Impl::GetCanvas() { return backend_->GetCanvas(); } |
117 | 118 |
118 void PPB_ImageData_Impl::SetIsCandidateForReuse() { | 119 void PPB_ImageData_Impl::SetIsCandidateForReuse() { |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
180 return bitmap.getAddr32(0, 0); | 181 return bitmap.getAddr32(0, 0); |
181 } | 182 } |
182 | 183 |
183 void ImageDataPlatformBackend::Unmap() { | 184 void ImageDataPlatformBackend::Unmap() { |
184 // This is currently unimplemented, which is OK. The data will just always | 185 // This is currently unimplemented, which is OK. The data will just always |
185 // be around once it's mapped. Chrome's TransportDIB isn't currently | 186 // be around once it's mapped. Chrome's TransportDIB isn't currently |
186 // unmappable without freeing it, but this may be something we want to support | 187 // unmappable without freeing it, but this may be something we want to support |
187 // in the future to save some memory. | 188 // in the future to save some memory. |
188 } | 189 } |
189 | 190 |
190 int32_t ImageDataPlatformBackend::GetSharedMemory(int* handle, | 191 int32_t ImageDataPlatformBackend::GetSharedMemory( |
191 uint32_t* byte_count) { | 192 base::SharedMemoryHandle* handle, |
| 193 uint32_t* byte_count) { |
192 *byte_count = dib_->size(); | 194 *byte_count = dib_->size(); |
193 *handle = reinterpret_cast<int>(PlatformFileFromSharedMemoryHandle( | 195 *handle = dib_->handle(); |
194 dib_->handle())); | |
195 return PP_OK; | 196 return PP_OK; |
196 } | 197 } |
197 | 198 |
198 skia::PlatformCanvas* ImageDataPlatformBackend::GetPlatformCanvas() { | 199 skia::PlatformCanvas* ImageDataPlatformBackend::GetPlatformCanvas() { |
199 return mapped_canvas_.get(); | 200 return mapped_canvas_.get(); |
200 } | 201 } |
201 | 202 |
202 SkCanvas* ImageDataPlatformBackend::GetCanvas() { return mapped_canvas_.get(); } | 203 SkCanvas* ImageDataPlatformBackend::GetCanvas() { return mapped_canvas_.get(); } |
203 | 204 |
204 const SkBitmap* ImageDataPlatformBackend::GetMappedBitmap() const { | 205 const SkBitmap* ImageDataPlatformBackend::GetMappedBitmap() const { |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 return skia_bitmap_.getAddr32(0, 0); | 243 return skia_bitmap_.getAddr32(0, 0); |
243 } | 244 } |
244 return shared_memory_->memory(); | 245 return shared_memory_->memory(); |
245 } | 246 } |
246 | 247 |
247 void ImageDataSimpleBackend::Unmap() { | 248 void ImageDataSimpleBackend::Unmap() { |
248 if (--map_count_ == 0) | 249 if (--map_count_ == 0) |
249 shared_memory_->Unmap(); | 250 shared_memory_->Unmap(); |
250 } | 251 } |
251 | 252 |
252 int32_t ImageDataSimpleBackend::GetSharedMemory(int* handle, | 253 int32_t ImageDataSimpleBackend::GetSharedMemory( |
253 uint32_t* byte_count) { | 254 base::SharedMemoryHandle* handle, |
| 255 uint32_t* byte_count) { |
254 *byte_count = skia_bitmap_.getSize(); | 256 *byte_count = skia_bitmap_.getSize(); |
255 *handle = reinterpret_cast<int>(PlatformFileFromSharedMemoryHandle( | 257 *handle = shared_memory_->handle(); |
256 shared_memory_->handle())); | |
257 return PP_OK; | 258 return PP_OK; |
258 } | 259 } |
259 | 260 |
260 skia::PlatformCanvas* ImageDataSimpleBackend::GetPlatformCanvas() { | 261 skia::PlatformCanvas* ImageDataSimpleBackend::GetPlatformCanvas() { |
261 return NULL; | 262 return NULL; |
262 } | 263 } |
263 | 264 |
264 SkCanvas* ImageDataSimpleBackend::GetCanvas() { | 265 SkCanvas* ImageDataSimpleBackend::GetCanvas() { |
265 if (!IsMapped()) | 266 if (!IsMapped()) |
266 return NULL; | 267 return NULL; |
267 return skia_canvas_.get(); | 268 return skia_canvas_.get(); |
268 } | 269 } |
269 | 270 |
270 const SkBitmap* ImageDataSimpleBackend::GetMappedBitmap() const { | 271 const SkBitmap* ImageDataSimpleBackend::GetMappedBitmap() const { |
271 if (!IsMapped()) | 272 if (!IsMapped()) |
272 return NULL; | 273 return NULL; |
273 return &skia_bitmap_; | 274 return &skia_bitmap_; |
274 } | 275 } |
275 | 276 |
276 } // namespace content | 277 } // namespace content |
OLD | NEW |