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 "cc/blink/web_external_bitmap_impl.h" 6 7 #include "base/memory/shared_memory.h" 8 9 namespace cc_blink { 10 11 namespace { 12 13 SharedMemoryAllocationFunction g_memory_allocator; 14 15 } // namespace 16 SetSharedMemoryAllocationFunction(SharedMemoryAllocationFunction allocator)17void SetSharedMemoryAllocationFunction( 18 SharedMemoryAllocationFunction allocator) { 19 g_memory_allocator = allocator; 20 } 21 WebExternalBitmapImpl()22WebExternalBitmapImpl::WebExternalBitmapImpl() { 23 } 24 ~WebExternalBitmapImpl()25WebExternalBitmapImpl::~WebExternalBitmapImpl() { 26 } 27 setSize(blink::WebSize size)28void 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 size()38blink::WebSize WebExternalBitmapImpl::size() { 39 return size_; 40 } 41 pixels()42uint8* WebExternalBitmapImpl::pixels() { 43 return static_cast<uint8*>(shared_memory_->memory()); 44 } 45 46 } // namespace cc_blink 47