Chromium Code Reviews| 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, |
|
sky
2012/10/11 17:00:49
When you wrap one arg, wrap them all.
Zachary Kuznia
2012/10/12 08:41:35
Done.
|
| + 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)) |