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)) |