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_DRAW_QUAD_H_ | 5 #ifndef CC_QUADS_DRAW_QUAD_H_ |
6 #define CC_QUADS_DRAW_QUAD_H_ | 6 #define CC_QUADS_DRAW_QUAD_H_ |
7 | 7 |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "cc/base/cc_export.h" | |
10 #include "cc/quads/shared_quad_state.h" | 9 #include "cc/quads/shared_quad_state.h" |
11 #include "cc/resources/resource_provider.h" | 10 #include "cc/resources/resource_provider.h" |
12 | 11 |
13 namespace base { | 12 namespace base { |
14 namespace trace_event { | 13 namespace trace_event { |
15 class TracedValue; | 14 class TracedValue; |
16 } | 15 } |
17 class Value; | 16 class Value; |
18 class DictionaryValue; | 17 class DictionaryValue; |
19 } | 18 } |
20 | 19 |
21 namespace cc { | 20 namespace cc { |
22 | 21 |
23 // DrawQuad is a bag of data used for drawing a quad. Because different | 22 // DrawQuad is a bag of data used for drawing a quad. Because different |
24 // materials need different bits of per-quad data to render, classes that derive | 23 // materials need different bits of per-quad data to render, classes that derive |
25 // from DrawQuad store additional data in their derived instance. The Material | 24 // from DrawQuad store additional data in their derived instance. The Material |
26 // enum is used to "safely" downcast to the derived class. | 25 // enum is used to "safely" downcast to the derived class. |
27 // Note: quads contain rects and sizes, which live in different spaces. There is | 26 // Note: quads contain rects and sizes, which live in different spaces. There is |
28 // the "content space", which is the arbitrary space in which the quad's | 27 // the "content space", which is the arbitrary space in which the quad's |
29 // geometry is defined (generally related to the layer that produced the quad, | 28 // geometry is defined (generally related to the layer that produced the quad, |
30 // e.g. the content space for TiledLayerImpls, or the geometry space for | 29 // e.g. the content space for TiledLayerImpls, or the geometry space for |
31 // PictureLayerImpls). There is also the "target space", which is the space, in | 30 // PictureLayerImpls). There is also the "target space", which is the space, in |
32 // "physical" pixels, of the render target where the quads is drawn. The quad's | 31 // "physical" pixels, of the render target where the quads is drawn. The quad's |
33 // transform maps the content space to the target space. | 32 // transform maps the content space to the target space. |
34 class CC_EXPORT DrawQuad { | 33 class DrawQuad { |
35 public: | 34 public: |
36 enum Material { | 35 enum Material { |
37 INVALID, | 36 INVALID, |
38 CHECKERBOARD, | 37 CHECKERBOARD, |
39 DEBUG_BORDER, | 38 DEBUG_BORDER, |
40 IO_SURFACE_CONTENT, | 39 IO_SURFACE_CONTENT, |
41 PICTURE_CONTENT, | 40 UNUSED_SPACE_FOR_PICTURE_CONTENT, |
42 RENDER_PASS, | 41 RENDER_PASS, |
43 SOLID_COLOR, | 42 SOLID_COLOR, |
44 STREAM_VIDEO_CONTENT, | 43 STREAM_VIDEO_CONTENT, |
45 SURFACE_CONTENT, | 44 SURFACE_CONTENT, |
46 TEXTURE_CONTENT, | 45 TEXTURE_CONTENT, |
47 TILED_CONTENT, | 46 TILED_CONTENT, |
48 YUV_VIDEO_CONTENT, | 47 YUV_VIDEO_CONTENT, |
49 MATERIAL_LAST = YUV_VIDEO_CONTENT | 48 MATERIAL_LAST = YUV_VIDEO_CONTENT |
50 }; | 49 }; |
51 | 50 |
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
136 const gfx::Rect& rect, | 135 const gfx::Rect& rect, |
137 const gfx::Rect& opaque_rect, | 136 const gfx::Rect& opaque_rect, |
138 const gfx::Rect& visible_rect, | 137 const gfx::Rect& visible_rect, |
139 bool needs_blending); | 138 bool needs_blending); |
140 virtual void ExtendValue(base::trace_event::TracedValue* value) const = 0; | 139 virtual void ExtendValue(base::trace_event::TracedValue* value) const = 0; |
141 }; | 140 }; |
142 | 141 |
143 } // namespace cc | 142 } // namespace cc |
144 | 143 |
145 #endif // CC_QUADS_DRAW_QUAD_H_ | 144 #endif // CC_QUADS_DRAW_QUAD_H_ |
OLD | NEW |