- add sources.
[platform/framework/web/crosswalk.git] / src / webkit / renderer / compositor_bindings / web_image_layer_impl.cc
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