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_nine_patch_layer_impl.h"
      6 
      7 #include "base/command_line.h"
      8 #include "cc/base/switches.h"
      9 #include "cc/layers/nine_patch_layer.h"
     10 #include "cc/layers/picture_image_layer.h"
     11 #include "content/renderer/compositor_bindings/web_layer_impl.h"
     12 #include "content/renderer/compositor_bindings/web_layer_impl_fixed_bounds.h"
     13 
     14 namespace content {
     15 
     16 WebNinePatchLayerImpl::WebNinePatchLayerImpl() {
     17   layer_.reset(new WebLayerImpl(cc::NinePatchLayer::Create()));
     18 }
     19 
     20 WebNinePatchLayerImpl::~WebNinePatchLayerImpl() {
     21 }
     22 
     23 blink::WebLayer* WebNinePatchLayerImpl::layer() {
     24   return layer_.get();
     25 }
     26 
     27 void WebNinePatchLayerImpl::setBitmap(SkBitmap bitmap,
     28                                       const blink::WebRect& aperture) {
     29   setBitmap(bitmap);
     30   setAperture(aperture);
     31   setBorder(blink::WebRect(aperture.x,
     32                            aperture.y,
     33                            bitmap.width() - aperture.width,
     34                            bitmap.height() - aperture.height));
     35 }
     36 
     37 void WebNinePatchLayerImpl::setBitmap(SkBitmap bitmap) {
     38   cc::NinePatchLayer* nine_patch =
     39       static_cast<cc::NinePatchLayer*>(layer_->layer());
     40   nine_patch->SetBitmap(bitmap);
     41 }
     42 
     43 void WebNinePatchLayerImpl::setAperture(const blink::WebRect& aperture) {
     44   cc::NinePatchLayer* nine_patch =
     45       static_cast<cc::NinePatchLayer*>(layer_->layer());
     46   nine_patch->SetAperture(gfx::Rect(aperture));
     47 }
     48 
     49 void WebNinePatchLayerImpl::setBorder(const blink::WebRect& border) {
     50   cc::NinePatchLayer* nine_patch =
     51       static_cast<cc::NinePatchLayer*>(layer_->layer());
     52   nine_patch->SetBorder(gfx::Rect(border));
     53 }
     54 
     55 void WebNinePatchLayerImpl::setFillCenter(bool fill_center) {
     56   cc::NinePatchLayer* nine_patch =
     57       static_cast<cc::NinePatchLayer*>(layer_->layer());
     58   nine_patch->SetFillCenter(fill_center);
     59 }
     60 
     61 }  // namespace content
     62 
     63