OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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_COMPOSITING_RECORDER_H_ | 5 #ifndef UI_COMPOSITOR_COMPOSITING_RECORDER_H_ |
6 #define UI_COMPOSITOR_COMPOSITING_RECORDER_H_ | 6 #define UI_COMPOSITOR_COMPOSITING_RECORDER_H_ |
7 | 7 |
8 #include "base/basictypes.h" | 8 #include "base/basictypes.h" |
9 #include "base/macros.h" | 9 #include "base/macros.h" |
10 #include "ui/compositor/compositor_export.h" | 10 #include "ui/compositor/compositor_export.h" |
11 #include "ui/gfx/geometry/rect.h" | 11 #include "ui/gfx/geometry/rect.h" |
12 | 12 |
13 namespace gfx { | 13 namespace gfx { |
14 class Size; | 14 class Size; |
15 } | 15 } |
16 | 16 |
17 namespace ui { | 17 namespace ui { |
18 class PaintContext; | 18 class PaintContext; |
19 | 19 |
20 // A class to provide scoped compositing filters (eg opacity) of painting to a | 20 // A class to provide scoped compositing filters (eg opacity) of painting to a |
21 // DisplayItemList. The filters provided will be applied to any | 21 // DisplayItemList. The filters provided will be applied to any |
22 // DisplayItems added to the DisplayItemList while this object is alive. In | 22 // DisplayItems added to the DisplayItemList while this object is alive. In |
23 // other words, any nested PaintRecorders or other such Recorders will | 23 // other words, any nested PaintRecorders or other such Recorders will |
24 // be filtered by the effect. | 24 // be filtered by the effect. |
25 class COMPOSITOR_EXPORT CompositingRecorder { | 25 class COMPOSITOR_EXPORT CompositingRecorder { |
26 public: | 26 public: |
27 // |alpha| is a value between 0 and 255, where 0 is transparent and 255 is | 27 // |alpha| is a value between 0 and 255, where 0 is transparent and 255 is |
28 // opaque. |size_in_context| is the size in the |context|'s space surrounding | 28 // opaque. |size_in_context| is the size in the |context|'s space surrounding |
29 // everything that's visible. | 29 // everything that's visible. |lcd_text_requires_opaque_layer| should |
| 30 // normally be true; if this is false, Skia will respect text rendering |
| 31 // requests for LCD AA even if they occur on non-opaque layers. This should |
| 32 // only be used in cases where the text is known to be rendered opaquely on an |
| 33 // opaque background before compositing. |
30 CompositingRecorder(const PaintContext& context, | 34 CompositingRecorder(const PaintContext& context, |
31 const gfx::Size& size_in_context, | 35 const gfx::Size& size_in_context, |
32 uint8_t alpha); | 36 uint8_t alpha, |
| 37 bool lcd_text_requires_opaque_layer); |
33 ~CompositingRecorder(); | 38 ~CompositingRecorder(); |
34 | 39 |
35 private: | 40 private: |
36 const PaintContext& context_; | 41 const PaintContext& context_; |
37 const gfx::Rect bounds_in_layer_; | 42 const gfx::Rect bounds_in_layer_; |
38 bool saved_; | 43 bool saved_; |
39 | 44 |
40 DISALLOW_COPY_AND_ASSIGN(CompositingRecorder); | 45 DISALLOW_COPY_AND_ASSIGN(CompositingRecorder); |
41 }; | 46 }; |
42 | 47 |
43 } // namespace ui | 48 } // namespace ui |
44 | 49 |
45 #endif // UI_COMPOSITOR_CLIP_TRANSFORM_RECORDER_H_ | 50 #endif // UI_COMPOSITOR_CLIP_TRANSFORM_RECORDER_H_ |
OLD | NEW |