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 #ifndef UI_COMPOSITOR_LAYER_H_ | 5 #ifndef UI_COMPOSITOR_LAYER_H_ |
6 #define UI_COMPOSITOR_LAYER_H_ | 6 #define UI_COMPOSITOR_LAYER_H_ |
7 | 7 |
8 #include <string> | 8 #include <string> |
9 #include <vector> | 9 #include <vector> |
10 | 10 |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 // texture (resulting alpha = opacity * alpha). | 129 // texture (resulting alpha = opacity * alpha). |
130 float opacity() const { return opacity_; } | 130 float opacity() const { return opacity_; } |
131 void SetOpacity(float opacity); | 131 void SetOpacity(float opacity); |
132 | 132 |
133 // Blur pixels by this amount in anything below the layer and visible through | 133 // Blur pixels by this amount in anything below the layer and visible through |
134 // the layer. | 134 // the layer. |
135 int background_blur() const { return background_blur_radius_; } | 135 int background_blur() const { return background_blur_radius_; } |
136 void SetBackgroundBlur(int blur_radius); | 136 void SetBackgroundBlur(int blur_radius); |
137 | 137 |
138 // Saturate all pixels of this layer by this amount. | 138 // Saturate all pixels of this layer by this amount. |
139 // This effect will get "combined" with the inverted and brightness setting. | 139 // This effect will get "combined" with the inverted, |
| 140 // brightness and grayscale setting. |
140 float layer_saturation() const { return layer_saturation_; } | 141 float layer_saturation() const { return layer_saturation_; } |
141 void SetLayerSaturation(float saturation); | 142 void SetLayerSaturation(float saturation); |
142 | 143 |
143 // Change the brightness of all pixels from this layer by this amount. | 144 // Change the brightness of all pixels from this layer by this amount. |
144 // This effect will get "combined" with the inverted and saturate setting. | 145 // This effect will get "combined" with the inverted, saturate |
| 146 // and grayscale setting. |
145 float layer_brightness() const { return layer_brightness_; } | 147 float layer_brightness() const { return layer_brightness_; } |
146 void SetLayerBrightness(float brightness); | 148 void SetLayerBrightness(float brightness); |
147 | 149 |
| 150 // Return the target brightness if animator is running, or the current |
| 151 // brightness otherwise. |
| 152 float GetTargetBrightness() const; |
| 153 |
| 154 // Change the grayscale of all pixels from this layer by this amount. |
| 155 // This effect will get "combined" with the inverted, saturate |
| 156 // and brightness setting. |
| 157 float layer_grayscale() const { return layer_grayscale_; } |
| 158 void SetLayerGrayscale(float grayscale); |
| 159 |
| 160 // Return the target grayscale if animator is running, or the current |
| 161 // grayscale otherwise. |
| 162 float GetTargetGrayscale() const; |
| 163 |
148 // Invert the layer. | 164 // Invert the layer. |
149 bool layer_inverted() const { return layer_inverted_; } | 165 bool layer_inverted() const { return layer_inverted_; } |
150 void SetLayerInverted(bool inverted); | 166 void SetLayerInverted(bool inverted); |
151 | 167 |
152 // Return the target opacity if animator is running, or the current opacity | 168 // Return the target opacity if animator is running, or the current opacity |
153 // otherwise. | 169 // otherwise. |
154 float GetTargetOpacity() const; | 170 float GetTargetOpacity() const; |
155 | 171 |
156 // Set a layer mask for a layer. | 172 // Set a layer mask for a layer. |
157 // Note the provided layer mask can neither have a layer mask itself nor can | 173 // Note the provided layer mask can neither have a layer mask itself nor can |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
279 // WebKit and WebKit does not produce valid alpha values. All other layers | 295 // WebKit and WebKit does not produce valid alpha values. All other layers |
280 // should have valid alpha. | 296 // should have valid alpha. |
281 bool has_valid_alpha_channel() const { return !layer_updated_externally_; } | 297 bool has_valid_alpha_channel() const { return !layer_updated_externally_; } |
282 | 298 |
283 // Following are invoked from the animation or if no animation exists to | 299 // Following are invoked from the animation or if no animation exists to |
284 // update the values immediately. | 300 // update the values immediately. |
285 void SetBoundsImmediately(const gfx::Rect& bounds); | 301 void SetBoundsImmediately(const gfx::Rect& bounds); |
286 void SetTransformImmediately(const ui::Transform& transform); | 302 void SetTransformImmediately(const ui::Transform& transform); |
287 void SetOpacityImmediately(float opacity); | 303 void SetOpacityImmediately(float opacity); |
288 void SetVisibilityImmediately(bool visibility); | 304 void SetVisibilityImmediately(bool visibility); |
| 305 void SetBrightnessImmediately(float brightness); |
| 306 void SetGrayscaleImmediately(float grayscale); |
289 | 307 |
290 // Implementation of LayerAnimatorDelegate | 308 // Implementation of LayerAnimatorDelegate |
291 virtual void SetBoundsFromAnimation(const gfx::Rect& bounds) OVERRIDE; | 309 virtual void SetBoundsFromAnimation(const gfx::Rect& bounds) OVERRIDE; |
292 virtual void SetTransformFromAnimation(const Transform& transform) OVERRIDE; | 310 virtual void SetTransformFromAnimation(const Transform& transform) OVERRIDE; |
293 virtual void SetOpacityFromAnimation(float opacity) OVERRIDE; | 311 virtual void SetOpacityFromAnimation(float opacity) OVERRIDE; |
294 virtual void SetVisibilityFromAnimation(bool visibility) OVERRIDE; | 312 virtual void SetVisibilityFromAnimation(bool visibility) OVERRIDE; |
| 313 virtual void SetBrightnessFromAnimation(float brightness) OVERRIDE; |
| 314 virtual void SetGrayscaleFromAnimation(float grayscale) OVERRIDE; |
295 virtual void ScheduleDrawForAnimation() OVERRIDE; | 315 virtual void ScheduleDrawForAnimation() OVERRIDE; |
296 virtual const gfx::Rect& GetBoundsForAnimation() const OVERRIDE; | 316 virtual const gfx::Rect& GetBoundsForAnimation() const OVERRIDE; |
297 virtual const Transform& GetTransformForAnimation() const OVERRIDE; | 317 virtual const Transform& GetTransformForAnimation() const OVERRIDE; |
298 virtual float GetOpacityForAnimation() const OVERRIDE; | 318 virtual float GetOpacityForAnimation() const OVERRIDE; |
299 virtual bool GetVisibilityForAnimation() const OVERRIDE; | 319 virtual bool GetVisibilityForAnimation() const OVERRIDE; |
| 320 virtual float GetBrightnessForAnimation() const OVERRIDE; |
| 321 virtual float GetGrayscaleForAnimation() const OVERRIDE; |
300 | 322 |
301 void CreateWebLayer(); | 323 void CreateWebLayer(); |
302 void RecomputeTransform(); | 324 void RecomputeTransform(); |
303 void RecomputeDrawsContentAndUVRect(); | 325 void RecomputeDrawsContentAndUVRect(); |
304 void RecomputeDebugBorderColor(); | 326 void RecomputeDebugBorderColor(); |
305 | 327 |
306 // Set all filters which got applied to the layer. | 328 // Set all filters which got applied to the layer. |
307 void SetLayerFilters(); | 329 void SetLayerFilters(); |
308 | 330 |
309 const LayerType type_; | 331 const LayerType type_; |
(...skipping 25 matching lines...) Expand all Loading... |
335 // compositor is ready to paint the content. | 357 // compositor is ready to paint the content. |
336 SkRegion damaged_region_; | 358 SkRegion damaged_region_; |
337 | 359 |
338 float opacity_; | 360 float opacity_; |
339 int background_blur_radius_; | 361 int background_blur_radius_; |
340 | 362 |
341 // Several variables which will change the visible representation of | 363 // Several variables which will change the visible representation of |
342 // the layer. | 364 // the layer. |
343 float layer_saturation_; | 365 float layer_saturation_; |
344 float layer_brightness_; | 366 float layer_brightness_; |
| 367 float layer_grayscale_; |
345 bool layer_inverted_; | 368 bool layer_inverted_; |
346 | 369 |
347 // The associated mask layer with this layer. | 370 // The associated mask layer with this layer. |
348 Layer* layer_mask_; | 371 Layer* layer_mask_; |
349 // The back link from the mask layer to it's associated masked layer. | 372 // The back link from the mask layer to it's associated masked layer. |
350 // We keep this reference for the case that if the mask layer gets deleted | 373 // We keep this reference for the case that if the mask layer gets deleted |
351 // while attached to the main layer before the main layer is deleted. | 374 // while attached to the main layer before the main layer is deleted. |
352 Layer* layer_mask_back_link_; | 375 Layer* layer_mask_back_link_; |
353 | 376 |
354 std::string name_; | 377 std::string name_; |
(...skipping 12 matching lines...) Expand all Loading... |
367 | 390 |
368 // A cached copy of |Compositor::device_scale_factor()|. | 391 // A cached copy of |Compositor::device_scale_factor()|. |
369 float device_scale_factor_; | 392 float device_scale_factor_; |
370 | 393 |
371 DISALLOW_COPY_AND_ASSIGN(Layer); | 394 DISALLOW_COPY_AND_ASSIGN(Layer); |
372 }; | 395 }; |
373 | 396 |
374 } // namespace ui | 397 } // namespace ui |
375 | 398 |
376 #endif // UI_COMPOSITOR_LAYER_H_ | 399 #endif // UI_COMPOSITOR_LAYER_H_ |
OLD | NEW |