OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/compositor/layer.h" | 5 #include "ui/compositor/layer.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
53 fills_bounds_opaquely_(true), | 53 fills_bounds_opaquely_(true), |
54 layer_updated_externally_(false), | 54 layer_updated_externally_(false), |
55 opacity_(1.0f), | 55 opacity_(1.0f), |
56 background_blur_radius_(0), | 56 background_blur_radius_(0), |
57 layer_saturation_(0.0f), | 57 layer_saturation_(0.0f), |
58 layer_brightness_(0.0f), | 58 layer_brightness_(0.0f), |
59 layer_grayscale_(0.0f), | 59 layer_grayscale_(0.0f), |
60 layer_inverted_(false), | 60 layer_inverted_(false), |
61 layer_mask_(NULL), | 61 layer_mask_(NULL), |
62 layer_mask_back_link_(NULL), | 62 layer_mask_back_link_(NULL), |
63 zoom_x_offset_(0), | |
64 zoom_y_offset_(0), | |
65 zoom_(1), | |
63 delegate_(NULL), | 66 delegate_(NULL), |
64 web_layer_(NULL), | 67 web_layer_(NULL), |
65 scale_content_(true), | 68 scale_content_(true), |
66 device_scale_factor_(1.0f) { | 69 device_scale_factor_(1.0f) { |
67 CreateWebLayer(); | 70 CreateWebLayer(); |
68 } | 71 } |
69 | 72 |
70 Layer::Layer(LayerType type) | 73 Layer::Layer(LayerType type) |
71 : type_(type), | 74 : type_(type), |
72 compositor_(NULL), | 75 compositor_(NULL), |
73 parent_(NULL), | 76 parent_(NULL), |
74 visible_(true), | 77 visible_(true), |
75 force_render_surface_(false), | 78 force_render_surface_(false), |
76 fills_bounds_opaquely_(true), | 79 fills_bounds_opaquely_(true), |
77 layer_updated_externally_(false), | 80 layer_updated_externally_(false), |
78 opacity_(1.0f), | 81 opacity_(1.0f), |
79 background_blur_radius_(0), | 82 background_blur_radius_(0), |
80 layer_saturation_(0.0f), | 83 layer_saturation_(0.0f), |
81 layer_brightness_(0.0f), | 84 layer_brightness_(0.0f), |
82 layer_grayscale_(0.0f), | 85 layer_grayscale_(0.0f), |
83 layer_inverted_(false), | 86 layer_inverted_(false), |
84 layer_mask_(NULL), | 87 layer_mask_(NULL), |
85 layer_mask_back_link_(NULL), | 88 layer_mask_back_link_(NULL), |
89 zoom_x_offset_(0), | |
90 zoom_y_offset_(0), | |
91 zoom_(1), | |
86 delegate_(NULL), | 92 delegate_(NULL), |
87 scale_content_(true), | 93 scale_content_(true), |
88 device_scale_factor_(1.0f) { | 94 device_scale_factor_(1.0f) { |
89 CreateWebLayer(); | 95 CreateWebLayer(); |
90 } | 96 } |
91 | 97 |
92 Layer::~Layer() { | 98 Layer::~Layer() { |
93 // Destroying the animator may cause observers to use the layer (and | 99 // Destroying the animator may cause observers to use the layer (and |
94 // indirectly the WebLayer). Destroy the animator first so that the WebLayer | 100 // indirectly the WebLayer). Destroy the animator first so that the WebLayer |
95 // is still around. | 101 // is still around. |
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
287 layer_mask_->layer_mask_back_link_ = NULL; | 293 layer_mask_->layer_mask_back_link_ = NULL; |
288 layer_mask_ = layer_mask; | 294 layer_mask_ = layer_mask; |
289 web_layer_->setMaskLayer( | 295 web_layer_->setMaskLayer( |
290 layer_mask ? layer_mask->web_layer() : NULL); | 296 layer_mask ? layer_mask->web_layer() : NULL); |
291 // We need to reference the linked object so that it can properly break the | 297 // We need to reference the linked object so that it can properly break the |
292 // link to us when it gets deleted. | 298 // link to us when it gets deleted. |
293 if (layer_mask) | 299 if (layer_mask) |
294 layer_mask->layer_mask_back_link_ = this; | 300 layer_mask->layer_mask_back_link_ = this; |
295 } | 301 } |
296 | 302 |
303 void Layer::SetBackgroundZoom(float x_offset, float y_offset, float zoom) { | |
304 zoom_x_offset_ = x_offset; | |
sky
2012/09/07 16:06:59
These values aren't used locally, only passed to w
Zachary Kuznia
2012/09/13 11:49:02
Done.
| |
305 zoom_y_offset_ = y_offset; | |
306 zoom_ = zoom; | |
307 | |
308 WebKit::WebFilterOperations filters; | |
309 if (zoom_ != 1) { | |
310 filters.append(WebKit::WebFilterOperation::createZoomFilter( | |
311 WebKit::WebRect(zoom_x_offset_, zoom_y_offset_, | |
312 (bounds().width() / zoom_), | |
piman
2012/09/07 21:38:56
is bounds() what you want, if the layer is animate
Zachary Kuznia
2012/09/13 11:49:02
Done.
| |
313 (bounds().height() / zoom_)), 16)); | |
piman
2012/09/07 21:38:56
16 looks very magic. Should it be passed as a para
Zachary Kuznia
2012/09/13 11:49:02
Done.
| |
314 } | |
315 web_layer_->setBackgroundFilters(filters); | |
piman
2012/09/07 21:38:56
This overrides the SetBackgroundBlur setting and v
Zachary Kuznia
2012/09/13 11:49:02
Done.
| |
316 } | |
317 | |
297 void Layer::SetLayerFilters() { | 318 void Layer::SetLayerFilters() { |
298 WebKit::WebFilterOperations filters; | 319 WebKit::WebFilterOperations filters; |
299 if (layer_saturation_) { | 320 if (layer_saturation_) { |
300 filters.append(WebKit::WebFilterOperation::createSaturateFilter( | 321 filters.append(WebKit::WebFilterOperation::createSaturateFilter( |
301 layer_saturation_)); | 322 layer_saturation_)); |
302 } | 323 } |
303 if (layer_grayscale_) { | 324 if (layer_grayscale_) { |
304 filters.append(WebKit::WebFilterOperation::createGrayscaleFilter( | 325 filters.append(WebKit::WebFilterOperation::createGrayscaleFilter( |
305 layer_grayscale_)); | 326 layer_grayscale_)); |
306 } | 327 } |
(...skipping 459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
766 return; | 787 return; |
767 unsigned int color = 0xFF000000; | 788 unsigned int color = 0xFF000000; |
768 color |= web_layer_is_accelerated_ ? 0x0000FF00 : 0x00FF0000; | 789 color |= web_layer_is_accelerated_ ? 0x0000FF00 : 0x00FF0000; |
769 bool opaque = fills_bounds_opaquely_ && (GetCombinedOpacity() == 1.f); | 790 bool opaque = fills_bounds_opaquely_ && (GetCombinedOpacity() == 1.f); |
770 if (!opaque) | 791 if (!opaque) |
771 color |= 0xFF; | 792 color |= 0xFF; |
772 web_layer_->setDebugBorderColor(color); | 793 web_layer_->setDebugBorderColor(color); |
773 } | 794 } |
774 | 795 |
775 } // namespace ui | 796 } // namespace ui |
OLD | NEW |