OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 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 CC_QUADS_SHARED_QUAD_STATE_H_ | 5 #ifndef CC_QUADS_SHARED_QUAD_STATE_H_ |
6 #define CC_QUADS_SHARED_QUAD_STATE_H_ | 6 #define CC_QUADS_SHARED_QUAD_STATE_H_ |
7 | 7 |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "cc/base/cc_export.h" | 9 #include "cc/base/cc_export.h" |
10 #include "third_party/skia/include/core/SkXfermode.h" | 10 #include "third_party/skia/include/core/SkXfermode.h" |
11 #include "ui/gfx/rect.h" | 11 #include "ui/gfx/rect.h" |
12 #include "ui/gfx/transform.h" | 12 #include "ui/gfx/transform.h" |
13 | 13 |
14 namespace base { | 14 namespace base { |
15 namespace debug { | |
16 class TracedValue; | |
17 } | |
18 class Value; | 15 class Value; |
19 } | 16 } |
20 | 17 |
21 namespace cc { | 18 namespace cc { |
22 | 19 |
23 // SharedQuadState holds a set of properties that are common across multiple | 20 // SharedQuadState holds a set of properties that are common across multiple |
24 // DrawQuads. It's purely an optimization - the properties behave in exactly the | 21 // DrawQuads. It's purely an optimization - the properties behave in exactly the |
25 // same way as if they were replicated on each DrawQuad. A given SharedQuadState | 22 // same way as if they were replicated on each DrawQuad. A given SharedQuadState |
26 // can only be shared by DrawQuads that are adjacent in their RenderPass' | 23 // can only be shared by DrawQuads that are adjacent in their RenderPass' |
27 // QuadList. | 24 // QuadList. |
28 class CC_EXPORT SharedQuadState { | 25 class CC_EXPORT SharedQuadState { |
29 public: | 26 public: |
30 SharedQuadState(); | 27 SharedQuadState(); |
31 ~SharedQuadState(); | 28 ~SharedQuadState(); |
32 | 29 |
33 void CopyFrom(const SharedQuadState* other); | 30 void CopyFrom(const SharedQuadState* other); |
34 | 31 |
35 void SetAll(const gfx::Transform& content_to_target_transform, | 32 void SetAll(const gfx::Transform& content_to_target_transform, |
36 const gfx::Size& content_bounds, | 33 const gfx::Size& content_bounds, |
37 const gfx::Rect& visible_content_rect, | 34 const gfx::Rect& visible_content_rect, |
38 const gfx::Rect& clip_rect, | 35 const gfx::Rect& clip_rect, |
39 bool is_clipped, | 36 bool is_clipped, |
40 float opacity, | 37 float opacity, |
41 SkXfermode::Mode blend_mode, | 38 SkXfermode::Mode blend_mode, |
42 int sorting_context_id); | 39 int sorting_context_id); |
43 void AsValueInto(base::debug::TracedValue* dict) const; | 40 scoped_ptr<base::Value> AsValue() const; |
44 | 41 |
45 // Transforms from quad's original content space to its target content space. | 42 // Transforms from quad's original content space to its target content space. |
46 gfx::Transform content_to_target_transform; | 43 gfx::Transform content_to_target_transform; |
47 // This size lives in the content space for the quad's originating layer. | 44 // This size lives in the content space for the quad's originating layer. |
48 gfx::Size content_bounds; | 45 gfx::Size content_bounds; |
49 // This rect lives in the content space for the quad's originating layer. | 46 // This rect lives in the content space for the quad's originating layer. |
50 gfx::Rect visible_content_rect; | 47 gfx::Rect visible_content_rect; |
51 // This rect lives in the target content space. | 48 // This rect lives in the target content space. |
52 gfx::Rect clip_rect; | 49 gfx::Rect clip_rect; |
53 bool is_clipped; | 50 bool is_clipped; |
54 float opacity; | 51 float opacity; |
55 SkXfermode::Mode blend_mode; | 52 SkXfermode::Mode blend_mode; |
56 int sorting_context_id; | 53 int sorting_context_id; |
57 }; | 54 }; |
58 | 55 |
59 } // namespace cc | 56 } // namespace cc |
60 | 57 |
61 #endif // CC_QUADS_SHARED_QUAD_STATE_H_ | 58 #endif // CC_QUADS_SHARED_QUAD_STATE_H_ |
OLD | NEW |