1 // Copyright 2013 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 "webkit/renderer/compositor_bindings/web_external_bitmap_impl.h" 6 7 #include "base/memory/shared_memory.h" 8 9 namespace webkit { 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 WebExternalBitmapImpl::~WebExternalBitmapImpl() {} 25 26 void WebExternalBitmapImpl::setSize(WebKit::WebSize size) { 27 if (size != size_) { 28 size_t byte_size = size.width * size.height * 4; 29 shared_memory_ = g_memory_allocator(byte_size); 30 if (shared_memory_) 31 shared_memory_->Map(byte_size); 32 size_ = size; 33 } 34 } 35 36 WebKit::WebSize WebExternalBitmapImpl::size() { 37 return size_; 38 } 39 40 uint8* WebExternalBitmapImpl::pixels() { 41 return static_cast<uint8*>(shared_memory_->memory()); 42 } 43 44 } // namespace webkit 45