Home | History | Annotate | Download | only in compositor_bindings
      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