1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
503b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "cc/blink/web_image_layer_impl.h"
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
703b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "cc/blink/web_layer_impl.h"
803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)#include "cc/blink/web_layer_impl_fixed_bounds.h"
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/layers/image_layer.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "cc/layers/picture_image_layer.h"
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
1203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)namespace cc_blink {
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)WebImageLayerImpl::WebImageLayerImpl() {
155d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  if (WebLayerImpl::UsingPictureLayer())
162a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    layer_.reset(new WebLayerImplFixedBounds(cc::PictureImageLayer::Create()));
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  else
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    layer_.reset(new WebLayerImpl(cc::ImageLayer::Create()));
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
21f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)WebImageLayerImpl::~WebImageLayerImpl() {
22f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)blink::WebLayer* WebImageLayerImpl::layer() {
25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)  return layer_.get();
26f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)}
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccivoid WebImageLayerImpl::setImageBitmap(const SkBitmap& bitmap) {
295d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  if (WebLayerImpl::UsingPictureLayer()) {
302a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    static_cast<cc::PictureImageLayer*>(layer_->layer())->SetBitmap(bitmap);
3103b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)    static_cast<WebLayerImplFixedBounds*>(layer_.get())
3203b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)        ->SetFixedBounds(gfx::Size(bitmap.width(), bitmap.height()));
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  } else {
342a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    static_cast<cc::ImageLayer*>(layer_->layer())->SetBitmap(bitmap);
352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  }
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
3803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles)}  // namespace cc_blink
39