Chromium Code Reviews| 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_DRAW_QUAD_H_ | 5 #ifndef CC_DRAW_QUAD_H_ |
| 6 #define CC_DRAW_QUAD_H_ | 6 #define CC_DRAW_QUAD_H_ |
| 7 | 7 |
| 8 #include "cc/cc_export.h" | 8 #include "cc/cc_export.h" |
| 9 #include "cc/shared_quad_state.h" | 9 #include "cc/shared_quad_state.h" |
| 10 | 10 |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 21 CHECKERBOARD, | 21 CHECKERBOARD, |
| 22 DEBUG_BORDER, | 22 DEBUG_BORDER, |
| 23 IO_SURFACE_CONTENT, | 23 IO_SURFACE_CONTENT, |
| 24 RENDER_PASS, | 24 RENDER_PASS, |
| 25 TEXTURE_CONTENT, | 25 TEXTURE_CONTENT, |
| 26 SOLID_COLOR, | 26 SOLID_COLOR, |
| 27 TILED_CONTENT, | 27 TILED_CONTENT, |
| 28 YUV_VIDEO_CONTENT, | 28 YUV_VIDEO_CONTENT, |
| 29 STREAM_VIDEO_CONTENT, | 29 STREAM_VIDEO_CONTENT, |
| 30 }; | 30 }; |
| 31 struct AntiAliasing { | |
|
danakj
2013/01/08 22:30:46
Should this instead be "Layer Edgeness" or somethi
reveman
2013/01/09 14:20:05
Yea, this is not the full anti-aliasing decision.
| |
| 32 AntiAliasing() : | |
| 33 left_edge(false), | |
| 34 top_edge(false), | |
| 35 right_edge(false), | |
| 36 bottom_edge(false) {} | |
| 37 AntiAliasing(bool left_edge, | |
|
danakj
2013/01/08 22:34:16
I'm also wondering what is the benefit of this str
reveman
2013/01/09 14:20:05
Maybe. The default constructor is somewhat useful
| |
| 38 bool top_edge, | |
| 39 bool right_edge, | |
| 40 bool bottom_edge) : | |
| 41 left_edge(left_edge), | |
| 42 top_edge(top_edge), | |
| 43 right_edge(right_edge), | |
| 44 bottom_edge(bottom_edge) {} | |
| 45 | |
| 46 bool left_edge; | |
| 47 bool top_edge; | |
| 48 bool right_edge; | |
| 49 bool bottom_edge; | |
| 50 }; | |
| 31 | 51 |
| 32 virtual ~DrawQuad(); | 52 virtual ~DrawQuad(); |
| 33 | 53 |
| 34 scoped_ptr<DrawQuad> Copy( | 54 scoped_ptr<DrawQuad> Copy( |
| 35 const SharedQuadState* copied_shared_quad_state) const; | 55 const SharedQuadState* copied_shared_quad_state) const; |
| 36 | 56 |
| 37 // TODO(danakj): Chromify or remove these SharedQuadState helpers. | 57 // TODO(danakj): Chromify or remove these SharedQuadState helpers. |
| 38 const gfx::Transform& quadTransform() const { return shared_quad_state->conten t_to_target_transform; } | 58 const gfx::Transform& quadTransform() const { return shared_quad_state->conten t_to_target_transform; } |
| 39 gfx::Rect visibleContentRect() const { return shared_quad_state->visible_conte nt_rect; } | 59 gfx::Rect visibleContentRect() const { return shared_quad_state->visible_conte nt_rect; } |
| 40 gfx::Rect clippedRectInTarget() const { return shared_quad_state->clipped_rect _in_target; } | 60 gfx::Rect clippedRectInTarget() const { return shared_quad_state->clipped_rect _in_target; } |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 53 | 73 |
| 54 // Allows changing the rect that gets drawn to make it smaller. This value | 74 // Allows changing the rect that gets drawn to make it smaller. This value |
| 55 // should be clipped to quadRect. | 75 // should be clipped to quadRect. |
| 56 gfx::Rect visible_rect; | 76 gfx::Rect visible_rect; |
| 57 | 77 |
| 58 // By default blending is used when some part of the quad is not opaque. | 78 // By default blending is used when some part of the quad is not opaque. |
| 59 // With this setting, it is possible to force blending on regardless of the | 79 // With this setting, it is possible to force blending on regardless of the |
| 60 // opaque area. | 80 // opaque area. |
| 61 bool needs_blending; | 81 bool needs_blending; |
| 62 | 82 |
| 83 // By default anti-aliasing is not used. With this setting, it is possible | |
| 84 // to enable anti-aliasing for specific edges. | |
| 85 AntiAliasing anti_aliasing; | |
| 86 | |
| 63 // Stores state common to a large bundle of quads; kept separate for memory | 87 // Stores state common to a large bundle of quads; kept separate for memory |
| 64 // efficiency. There is special treatment to reconstruct these pointers | 88 // efficiency. There is special treatment to reconstruct these pointers |
| 65 // during serialization. | 89 // during serialization. |
| 66 const SharedQuadState* shared_quad_state; | 90 const SharedQuadState* shared_quad_state; |
| 67 | 91 |
| 68 bool IsDebugQuad() const { return material == DEBUG_BORDER; } | 92 bool IsDebugQuad() const { return material == DEBUG_BORDER; } |
| 69 bool ShouldDrawWithBlending() const { | 93 bool ShouldDrawWithBlending() const { |
| 70 return needs_blending || shared_quad_state->opacity < 1.0f || | 94 return needs_blending || shared_quad_state->opacity < 1.0f || |
| 71 !opaque_rect.Contains(visible_rect); | 95 !opaque_rect.Contains(visible_rect); |
| 72 } | 96 } |
| 97 bool IsAntialiased() const { | |
| 98 return | |
| 99 anti_aliasing.left_edge || | |
| 100 anti_aliasing.top_edge || | |
| 101 anti_aliasing.right_edge || | |
| 102 anti_aliasing.bottom_edge; | |
| 103 } | |
| 73 | 104 |
| 74 protected: | 105 protected: |
| 75 DrawQuad(); | 106 DrawQuad(); |
| 76 | 107 |
| 77 void SetAll(const SharedQuadState* shared_quad_state, | 108 void SetAll(const SharedQuadState* shared_quad_state, |
| 78 Material material, | 109 Material material, |
| 79 gfx::Rect rect, | 110 gfx::Rect rect, |
| 80 gfx::Rect opaque_rect, | 111 gfx::Rect opaque_rect, |
| 81 gfx::Rect visible_rect, | 112 gfx::Rect visible_rect, |
| 82 bool needs_blending); | 113 bool needs_blending, |
| 114 AntiAliasing anti_aliasing); | |
| 83 }; | 115 }; |
| 84 | 116 |
| 85 } | 117 } |
| 86 | 118 |
| 87 #endif // CC_DRAW_QUAD_H_ | 119 #endif // CC_DRAW_QUAD_H_ |
| OLD | NEW |