Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(992)

Side by Side Diff: cc/quads/render_pass.h

Issue 208213003: Plumb overlay processing into DirectRenderer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase, Build Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/output/overlay_unittest.cc ('k') | cc/quads/render_pass.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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_RENDER_PASS_H_ 5 #ifndef CC_QUADS_RENDER_PASS_H_
6 #define CC_QUADS_RENDER_PASS_H_ 6 #define CC_QUADS_RENDER_PASS_H_
7 7
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
55 } 55 }
56 bool operator!=(const Id& other) const { 56 bool operator!=(const Id& other) const {
57 return !(*this == other); 57 return !(*this == other);
58 } 58 }
59 bool operator<(const Id& other) const { 59 bool operator<(const Id& other) const {
60 return layer_id < other.layer_id || 60 return layer_id < other.layer_id ||
61 (layer_id == other.layer_id && index < other.index); 61 (layer_id == other.layer_id && index < other.index);
62 } 62 }
63 }; 63 };
64 64
65 // Specifies whether the pass is going into an overlay, needs to be rendered
66 // into a buffer before it can be presented to overlay hardware or a quad
67 // inside it is presented as is.
68 enum OverlayState { NO_OVERLAY, RENDER_AND_OVERLAY, SIMPLE_OVERLAY, };
69
70 ~RenderPass(); 65 ~RenderPass();
71 66
72 static scoped_ptr<RenderPass> Create(); 67 static scoped_ptr<RenderPass> Create();
73 static scoped_ptr<RenderPass> Create(size_t num_layers); 68 static scoped_ptr<RenderPass> Create(size_t num_layers);
74 69
75 // A shallow copy of the render pass, which does not include its quads or copy 70 // A shallow copy of the render pass, which does not include its quads or copy
76 // requests. 71 // requests.
77 scoped_ptr<RenderPass> Copy(Id new_id) const; 72 scoped_ptr<RenderPass> Copy(Id new_id) const;
78 73
79 // A deep copy of the render passes in the list including the quads. 74 // A deep copy of the render passes in the list including the quads.
80 static void CopyAll(const ScopedPtrVector<RenderPass>& in, 75 static void CopyAll(const ScopedPtrVector<RenderPass>& in,
81 ScopedPtrVector<RenderPass>* out); 76 ScopedPtrVector<RenderPass>* out);
82 77
83 void SetNew(Id id, 78 void SetNew(Id id,
84 const gfx::Rect& output_rect, 79 const gfx::Rect& output_rect,
85 const gfx::RectF& damage_rect, 80 const gfx::RectF& damage_rect,
86 const gfx::Transform& transform_to_root_target); 81 const gfx::Transform& transform_to_root_target);
87 82
88 void SetAll(Id id, 83 void SetAll(Id id,
89 const gfx::Rect& output_rect, 84 const gfx::Rect& output_rect,
90 const gfx::RectF& damage_rect, 85 const gfx::RectF& damage_rect,
91 const gfx::Transform& transform_to_root_target, 86 const gfx::Transform& transform_to_root_target,
92 bool has_transparent_background, 87 bool has_transparent_background);
93 OverlayState overlay_state);
94 88
95 scoped_ptr<base::Value> AsValue() const; 89 scoped_ptr<base::Value> AsValue() const;
96 90
97 // Uniquely identifies the render pass in the compositor's current frame. 91 // Uniquely identifies the render pass in the compositor's current frame.
98 Id id; 92 Id id;
99 93
100 // These are in the space of the render pass' physical pixels. 94 // These are in the space of the render pass' physical pixels.
101 gfx::Rect output_rect; 95 gfx::Rect output_rect;
102 gfx::RectF damage_rect; 96 gfx::RectF damage_rect;
103 97
104 // Transforms from the origin of the |output_rect| to the origin of the root 98 // Transforms from the origin of the |output_rect| to the origin of the root
105 // render pass' |output_rect|. 99 // render pass' |output_rect|.
106 gfx::Transform transform_to_root_target; 100 gfx::Transform transform_to_root_target;
107 101
108 // If false, the pixels in the render pass' texture are all opaque. 102 // If false, the pixels in the render pass' texture are all opaque.
109 bool has_transparent_background; 103 bool has_transparent_background;
110 104
111 // If non-empty, the renderer should produce a copy of the render pass' 105 // If non-empty, the renderer should produce a copy of the render pass'
112 // contents as a bitmap, and give a copy of the bitmap to each callback in 106 // contents as a bitmap, and give a copy of the bitmap to each callback in
113 // this list. This property should not be serialized between compositors, as 107 // this list. This property should not be serialized between compositors, as
114 // it only makes sense in the root compositor. 108 // it only makes sense in the root compositor.
115 ScopedPtrVector<CopyOutputRequest> copy_requests; 109 ScopedPtrVector<CopyOutputRequest> copy_requests;
116 110
117 QuadList quad_list; 111 QuadList quad_list;
118 SharedQuadStateList shared_quad_state_list; 112 SharedQuadStateList shared_quad_state_list;
119 113
120 OverlayState overlay_state;
121
122 protected: 114 protected:
123 explicit RenderPass(size_t num_layers); 115 explicit RenderPass(size_t num_layers);
124 RenderPass(); 116 RenderPass();
125 117
126 private: 118 private:
127 DISALLOW_COPY_AND_ASSIGN(RenderPass); 119 DISALLOW_COPY_AND_ASSIGN(RenderPass);
128 }; 120 };
129 121
130 } // namespace cc 122 } // namespace cc
131 123
(...skipping 13 matching lines...) Expand all
145 #error define a hash function for your compiler 137 #error define a hash function for your compiler
146 #endif // COMPILER 138 #endif // COMPILER
147 } // namespace BASE_HASH_NAMESPACE 139 } // namespace BASE_HASH_NAMESPACE
148 140
149 namespace cc { 141 namespace cc {
150 typedef ScopedPtrVector<RenderPass> RenderPassList; 142 typedef ScopedPtrVector<RenderPass> RenderPassList;
151 typedef base::hash_map<RenderPass::Id, RenderPass*> RenderPassIdHashMap; 143 typedef base::hash_map<RenderPass::Id, RenderPass*> RenderPassIdHashMap;
152 } // namespace cc 144 } // namespace cc
153 145
154 #endif // CC_QUADS_RENDER_PASS_H_ 146 #endif // CC_QUADS_RENDER_PASS_H_
OLDNEW
« no previous file with comments | « cc/output/overlay_unittest.cc ('k') | cc/quads/render_pass.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698