1 // Copyright 2012 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_image_layer_impl.h" 6 7 #include "base/command_line.h" 8 #include "cc/base/switches.h" 9 #include "cc/layers/image_layer.h" 10 #include "cc/layers/picture_image_layer.h" 11 #include "webkit/renderer/compositor_bindings/web_layer_impl.h" 12 #include "webkit/renderer/compositor_bindings/web_layer_impl_fixed_bounds.h" 13 14 static bool usingPictureLayer() { 15 return cc::switches::IsImplSidePaintingEnabled(); 16 } 17 18 namespace webkit { 19 20 WebImageLayerImpl::WebImageLayerImpl() { 21 if (usingPictureLayer()) 22 layer_.reset(new WebLayerImplFixedBounds(cc::PictureImageLayer::Create())); 23 else 24 layer_.reset(new WebLayerImpl(cc::ImageLayer::Create())); 25 } 26 27 WebImageLayerImpl::~WebImageLayerImpl() {} 28 29 WebKit::WebLayer* WebImageLayerImpl::layer() { return layer_.get(); } 30 31 void WebImageLayerImpl::setBitmap(SkBitmap bitmap) { 32 if (usingPictureLayer()) { 33 static_cast<cc::PictureImageLayer*>(layer_->layer())->SetBitmap(bitmap); 34 static_cast<WebLayerImplFixedBounds*>(layer_.get())->SetFixedBounds( 35 gfx::Size(bitmap.width(), bitmap.height())); 36 } else { 37 static_cast<cc::ImageLayer*>(layer_->layer())->SetBitmap(bitmap); 38 } 39 } 40 41 } // namespace webkit 42