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