| // Copyright 2012 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 "webkit/renderer/compositor_bindings/web_image_layer_impl.h" |
| |
| #include "base/command_line.h" |
| #include "cc/base/switches.h" |
| #include "cc/layers/image_layer.h" |
| #include "cc/layers/picture_image_layer.h" |
| #include "webkit/renderer/compositor_bindings/web_layer_impl.h" |
| #include "webkit/renderer/compositor_bindings/web_layer_impl_fixed_bounds.h" |
| |
| static bool usingPictureLayer() { |
| return cc::switches::IsImplSidePaintingEnabled(); |
| } |
| |
| namespace webkit { |
| |
| WebImageLayerImpl::WebImageLayerImpl() { |
| if (usingPictureLayer()) |
| layer_.reset(new WebLayerImplFixedBounds(cc::PictureImageLayer::Create())); |
| else |
| layer_.reset(new WebLayerImpl(cc::ImageLayer::Create())); |
| } |
| |
| WebImageLayerImpl::~WebImageLayerImpl() {} |
| |
| blink::WebLayer* WebImageLayerImpl::layer() { return layer_.get(); } |
| |
| void WebImageLayerImpl::setBitmap(SkBitmap bitmap) { |
| if (usingPictureLayer()) { |
| static_cast<cc::PictureImageLayer*>(layer_->layer())->SetBitmap(bitmap); |
| static_cast<WebLayerImplFixedBounds*>(layer_.get())->SetFixedBounds( |
| gfx::Size(bitmap.width(), bitmap.height())); |
| } else { |
| static_cast<cc::ImageLayer*>(layer_->layer())->SetBitmap(bitmap); |
| } |
| } |
| |
| } // namespace webkit |