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_image_layer_impl.h" 6 7 #include "cc/blink/web_layer_impl.h" 8 #include "cc/blink/web_layer_impl_fixed_bounds.h" 9 #include "cc/layers/image_layer.h" 10 #include "cc/layers/picture_image_layer.h" 11 12 namespace cc_blink { 13 14 WebImageLayerImpl::WebImageLayerImpl() { 15 if (WebLayerImpl::UsingPictureLayer()) 16 layer_.reset(new WebLayerImplFixedBounds(cc::PictureImageLayer::Create())); 17 else 18 layer_.reset(new WebLayerImpl(cc::ImageLayer::Create())); 19 } 20 21 WebImageLayerImpl::~WebImageLayerImpl() { 22 } 23 24 blink::WebLayer* WebImageLayerImpl::layer() { 25 return layer_.get(); 26 } 27 28 void WebImageLayerImpl::setImageBitmap(const SkBitmap& bitmap) { 29 if (WebLayerImpl::UsingPictureLayer()) { 30 static_cast<cc::PictureImageLayer*>(layer_->layer())->SetBitmap(bitmap); 31 static_cast<WebLayerImplFixedBounds*>(layer_.get()) 32 ->SetFixedBounds(gfx::Size(bitmap.width(), bitmap.height())); 33 } else { 34 static_cast<cc::ImageLayer*>(layer_->layer())->SetBitmap(bitmap); 35 } 36 } 37 38 } // namespace cc_blink 39