Home | History | Annotate | Download | only in compositor_bindings
      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 "content/renderer/compositor_bindings/web_image_layer_impl.h"
      6 
      7 #include "cc/layers/image_layer.h"
      8 #include "cc/layers/picture_image_layer.h"
      9 #include "content/renderer/compositor_bindings/web_layer_impl.h"
     10 #include "content/renderer/compositor_bindings/web_layer_impl_fixed_bounds.h"
     11 
     12 namespace content {
     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::setBitmap(SkBitmap bitmap) {
     29   if (WebLayerImpl::UsingPictureLayer()) {
     30     static_cast<cc::PictureImageLayer*>(layer_->layer())->SetBitmap(bitmap);
     31     static_cast<WebLayerImplFixedBounds*>(layer_.get())->SetFixedBounds(
     32         gfx::Size(bitmap.width(), bitmap.height()));
     33   } else {
     34     static_cast<cc::ImageLayer*>(layer_->layer())->SetBitmap(bitmap);
     35   }
     36 }
     37 
     38 }  // namespace content
     39 
     40