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 WebNinePatchLayerImpl()16WebNinePatchLayerImpl::WebNinePatchLayerImpl() { 17 layer_.reset(new WebLayerImpl(cc::NinePatchLayer::Create())); 18 } 19 ~WebNinePatchLayerImpl()20WebNinePatchLayerImpl::~WebNinePatchLayerImpl() { 21 } 22 layer()23blink::WebLayer* WebNinePatchLayerImpl::layer() { 24 return layer_.get(); 25 } 26 setBitmap(SkBitmap bitmap,const blink::WebRect & aperture)27void 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 setBitmap(SkBitmap bitmap)37void WebNinePatchLayerImpl::setBitmap(SkBitmap bitmap) { 38 cc::NinePatchLayer* nine_patch = 39 static_cast<cc::NinePatchLayer*>(layer_->layer()); 40 nine_patch->SetBitmap(bitmap); 41 } 42 setAperture(const blink::WebRect & aperture)43void 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 setBorder(const blink::WebRect & border)49void 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 setFillCenter(bool fill_center)55void 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