OLD | NEW |
| (Empty) |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "content/renderer/compositor_bindings/web_external_bitmap_impl.h" | |
6 | |
7 #include "base/memory/shared_memory.h" | |
8 | |
9 namespace content { | |
10 | |
11 namespace { | |
12 | |
13 SharedMemoryAllocationFunction g_memory_allocator; | |
14 | |
15 } // namespace | |
16 | |
17 void SetSharedMemoryAllocationFunction( | |
18 SharedMemoryAllocationFunction allocator) { | |
19 g_memory_allocator = allocator; | |
20 } | |
21 | |
22 WebExternalBitmapImpl::WebExternalBitmapImpl() { | |
23 } | |
24 | |
25 WebExternalBitmapImpl::~WebExternalBitmapImpl() { | |
26 } | |
27 | |
28 void WebExternalBitmapImpl::setSize(blink::WebSize size) { | |
29 if (size != size_) { | |
30 size_t byte_size = size.width * size.height * 4; | |
31 shared_memory_ = g_memory_allocator(byte_size); | |
32 if (shared_memory_) | |
33 shared_memory_->Map(byte_size); | |
34 size_ = size; | |
35 } | |
36 } | |
37 | |
38 blink::WebSize WebExternalBitmapImpl::size() { | |
39 return size_; | |
40 } | |
41 | |
42 uint8* WebExternalBitmapImpl::pixels() { | |
43 return static_cast<uint8*>(shared_memory_->memory()); | |
44 } | |
45 | |
46 } // namespace content | |
47 | |
OLD | NEW |