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.
5 #include "cc/blink/web_nine_patch_layer_impl.h"
7 #include "base/command_line.h"
8 #include "cc/base/switches.h"
9 #include "cc/blink/web_layer_impl.h"
10 #include "cc/blink/web_layer_impl_fixed_bounds.h"
11 #include "cc/layers/nine_patch_layer.h"
12 #include "cc/layers/picture_image_layer.h"
16 WebNinePatchLayerImpl::WebNinePatchLayerImpl() {
17 layer_
.reset(new WebLayerImpl(cc::NinePatchLayer::Create()));
20 WebNinePatchLayerImpl::~WebNinePatchLayerImpl() {
23 blink::WebLayer
* WebNinePatchLayerImpl::layer() {
27 void WebNinePatchLayerImpl::setBitmap(SkBitmap bitmap
,
28 const blink::WebRect
& aperture
) {
30 setAperture(aperture
);
31 setBorder(blink::WebRect(aperture
.x
,
33 bitmap
.width() - aperture
.width
,
34 bitmap
.height() - aperture
.height
));
37 void WebNinePatchLayerImpl::setBitmap(SkBitmap bitmap
) {
38 cc::NinePatchLayer
* nine_patch
=
39 static_cast<cc::NinePatchLayer
*>(layer_
->layer());
40 nine_patch
->SetBitmap(bitmap
);
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
));
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
));
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
);
61 } // namespace cc_blink