// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "cc/blink/web_external_bitmap_impl.h" #include #include "cc/resources/shared_bitmap.h" namespace cc_blink { namespace { SharedBitmapAllocationFunction g_memory_allocator; } // namespace void SetSharedBitmapAllocationFunction( SharedBitmapAllocationFunction allocator) { g_memory_allocator = allocator; } WebExternalBitmapImpl::WebExternalBitmapImpl() { } WebExternalBitmapImpl::~WebExternalBitmapImpl() { } void WebExternalBitmapImpl::setSize(blink::WebSize size) { if (size != size_) { shared_bitmap_ = g_memory_allocator(gfx::Size(size)); size_ = size; } } blink::WebSize WebExternalBitmapImpl::size() { return size_; } uint8_t* WebExternalBitmapImpl::pixels() { if (!shared_bitmap_) { // crbug.com/520417: not sure why a non-null WebExternalBitmap is // being passed to prepareMailbox when the shared_bitmap_ is null. // Best hypothesis is that the bitmap is zero-sized. DCHECK(size_.isEmpty()); return nullptr; } return shared_bitmap_->pixels(); } } // namespace cc_blink