| Index: ui/compositor/layer.cc
|
| diff --git a/ui/compositor/layer.cc b/ui/compositor/layer.cc
|
| index bbca75ab9628ca599cd35c36740f9d8af19a39bb..46089b7c9bf678269233161370d6932190642020 100644
|
| --- a/ui/compositor/layer.cc
|
| +++ b/ui/compositor/layer.cc
|
| @@ -62,6 +62,10 @@ Layer::Layer()
|
| layer_inverted_(false),
|
| layer_mask_(NULL),
|
| layer_mask_back_link_(NULL),
|
| + zoom_x_offset_(0),
|
| + zoom_y_offset_(0),
|
| + zoom_(1),
|
| + zoom_inset_(0),
|
| delegate_(NULL),
|
| web_layer_(NULL),
|
| scale_content_(true),
|
| @@ -85,6 +89,10 @@ Layer::Layer(LayerType type)
|
| layer_inverted_(false),
|
| layer_mask_(NULL),
|
| layer_mask_back_link_(NULL),
|
| + zoom_x_offset_(0),
|
| + zoom_y_offset_(0),
|
| + zoom_(1),
|
| + zoom_inset_(0),
|
| delegate_(NULL),
|
| scale_content_(true),
|
| device_scale_factor_(1.0f) {
|
| @@ -234,12 +242,7 @@ float Layer::GetCombinedOpacity() const {
|
| void Layer::SetBackgroundBlur(int blur_radius) {
|
| background_blur_radius_ = blur_radius;
|
|
|
| - WebKit::WebFilterOperations filters;
|
| - if (background_blur_radius_) {
|
| - filters.append(WebKit::WebFilterOperation::createBlurFilter(
|
| - background_blur_radius_));
|
| - }
|
| - web_layer_->setBackgroundFilters(filters);
|
| + SetLayerBackgroundFilters();
|
| }
|
|
|
| void Layer::SetLayerSaturation(float saturation) {
|
| @@ -298,6 +301,16 @@ void Layer::SetMaskLayer(Layer* layer_mask) {
|
| layer_mask->layer_mask_back_link_ = this;
|
| }
|
|
|
| +void Layer::SetBackgroundZoom(float x_offset, float y_offset, float zoom,
|
| + int inset) {
|
| + zoom_x_offset_ = x_offset;
|
| + zoom_y_offset_ = y_offset;
|
| + zoom_ = zoom;
|
| + zoom_inset_ = inset;
|
| +
|
| + SetLayerBackgroundFilters();
|
| +}
|
| +
|
| void Layer::SetLayerFilters() {
|
| WebKit::WebFilterOperations filters;
|
| if (layer_saturation_) {
|
| @@ -321,6 +334,24 @@ void Layer::SetLayerFilters() {
|
| web_layer_->setFilters(filters);
|
| }
|
|
|
| +void Layer::SetLayerBackgroundFilters() {
|
| + WebKit::WebFilterOperations filters;
|
| + if (zoom_ != 1) {
|
| + filters.append(WebKit::WebFilterOperation::createZoomFilter(
|
| + WebKit::WebRect(zoom_x_offset_, zoom_y_offset_,
|
| + (GetTargetBounds().width() / zoom_),
|
| + (GetTargetBounds().height() / zoom_)),
|
| + zoom_inset_));
|
| + }
|
| +
|
| + if (background_blur_radius_) {
|
| + filters.append(WebKit::WebFilterOperation::createBlurFilter(
|
| + background_blur_radius_));
|
| + }
|
| +
|
| + web_layer_->setBackgroundFilters(filters);
|
| +}
|
| +
|
| float Layer::GetTargetOpacity() const {
|
| if (animator_.get() && animator_->IsAnimatingProperty(
|
| LayerAnimationElement::OPACITY))
|
|
|