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