• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
WebImageLayerImpl()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 
~WebImageLayerImpl()21 WebImageLayerImpl::~WebImageLayerImpl() {
22 }
23 
layer()24 blink::WebLayer* WebImageLayerImpl::layer() {
25   return layer_.get();
26 }
27 
setBitmap(SkBitmap bitmap)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