1 // Copyright 2013 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.
5 #include "webkit/renderer/compositor_bindings/web_nine_patch_layer_impl.h"
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 "webkit/renderer/compositor_bindings/web_layer_impl.h"
12 #include "webkit/renderer/compositor_bindings/web_layer_impl_fixed_bounds.h"
16 WebNinePatchLayerImpl::WebNinePatchLayerImpl() {
17 layer_
.reset(new WebLayerImpl(cc::NinePatchLayer::Create()));
20 WebNinePatchLayerImpl::~WebNinePatchLayerImpl() {}
22 blink::WebLayer
* WebNinePatchLayerImpl::layer() { return layer_
.get(); }
24 void WebNinePatchLayerImpl::setBitmap(SkBitmap bitmap
,
25 const blink::WebRect
& aperture
) {
27 setAperture(aperture
);
28 setBorder(blink::WebRect(aperture
.x
, aperture
.y
,
29 bitmap
.width() - aperture
.width
,
30 bitmap
.height() - aperture
.height
));
33 void WebNinePatchLayerImpl::setBitmap(SkBitmap bitmap
) {
34 cc::NinePatchLayer
* nine_patch
=
35 static_cast<cc::NinePatchLayer
*>(layer_
->layer());
36 nine_patch
->SetBitmap(bitmap
);
39 void WebNinePatchLayerImpl::setAperture(const blink::WebRect
& aperture
) {
40 cc::NinePatchLayer
* nine_patch
=
41 static_cast<cc::NinePatchLayer
*>(layer_
->layer());
42 nine_patch
->SetAperture(gfx::Rect(aperture
));
45 void WebNinePatchLayerImpl::setBorder(const blink::WebRect
& border
) {
46 cc::NinePatchLayer
* nine_patch
=
47 static_cast<cc::NinePatchLayer
*>(layer_
->layer());
48 nine_patch
->SetBorder(gfx::Rect(border
));
51 void WebNinePatchLayerImpl::setFillCenter(bool fill_center
) {
52 cc::NinePatchLayer
* nine_patch
=
53 static_cast<cc::NinePatchLayer
*>(layer_
->layer());
54 nine_patch
->SetFillCenter(fill_center
);