OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 #include "cc/trees/layer_tree_host.h" | 5 #include "cc/trees/layer_tree_host.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/location.h" | 10 #include "base/location.h" |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
107 gfx::Rect visible_rect = root_output_rect; | 107 gfx::Rect visible_rect = root_output_rect; |
108 // An invalid resource id! The resource isn't part of the frame. | 108 // An invalid resource id! The resource isn't part of the frame. |
109 unsigned resource_id = 5; | 109 unsigned resource_id = 5; |
110 bool premultiplied_alpha = false; | 110 bool premultiplied_alpha = false; |
111 gfx::PointF uv_top_left = gfx::PointF(0.f, 0.f); | 111 gfx::PointF uv_top_left = gfx::PointF(0.f, 0.f); |
112 gfx::PointF uv_bottom_right = gfx::PointF(1.f, 1.f); | 112 gfx::PointF uv_bottom_right = gfx::PointF(1.f, 1.f); |
113 SkColor background_color = 0; | 113 SkColor background_color = 0; |
114 float vertex_opacity[4] = {1.f, 1.f, 1.f, 1.f}; | 114 float vertex_opacity[4] = {1.f, 1.f, 1.f, 1.f}; |
115 bool flipped = false; | 115 bool flipped = false; |
116 | 116 |
117 scoped_ptr<TextureDrawQuad> invalid_draw_quad = TextureDrawQuad::Create(); | 117 TextureDrawQuad* invalid_draw_quad = |
118 root_pass->CreateAndAppendDrawQuad<TextureDrawQuad>(); | |
118 invalid_draw_quad->SetNew(shared_quad_state, | 119 invalid_draw_quad->SetNew(shared_quad_state, |
119 rect, | 120 rect, |
120 opaque_rect, | 121 opaque_rect, |
121 visible_rect, | 122 visible_rect, |
122 resource_id, | 123 resource_id, |
123 premultiplied_alpha, | 124 premultiplied_alpha, |
124 uv_top_left, | 125 uv_top_left, |
125 uv_bottom_right, | 126 uv_bottom_right, |
126 background_color, | 127 background_color, |
127 vertex_opacity, | 128 vertex_opacity, |
128 flipped); | 129 flipped); |
129 root_pass->quad_list.push_back(invalid_draw_quad.PassAs<DrawQuad>()); | |
130 | 130 |
131 frame->render_pass_list.push_back(root_pass.Pass()); | 131 frame->render_pass_list.push_back(root_pass.Pass()); |
132 return frame.Pass(); | 132 return frame.Pass(); |
133 } | 133 } |
134 | 134 |
135 void AddTransferableResource(DelegatedFrameData* frame, | 135 void AddTransferableResource(DelegatedFrameData* frame, |
136 ResourceProvider::ResourceId resource_id) { | 136 ResourceProvider::ResourceId resource_id) { |
137 TransferableResource resource; | 137 TransferableResource resource; |
138 resource.id = resource_id; | 138 resource.id = resource_id; |
139 resource.mailbox_holder.texture_target = GL_TEXTURE_2D; | 139 resource.mailbox_holder.texture_target = GL_TEXTURE_2D; |
140 GLbyte arbitrary_mailbox[GL_MAILBOX_SIZE_CHROMIUM] = { | 140 GLbyte arbitrary_mailbox[GL_MAILBOX_SIZE_CHROMIUM] = { |
141 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, | 141 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, |
142 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, | 142 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, |
143 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4}; | 143 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4}; |
144 resource.mailbox_holder.mailbox.SetName(arbitrary_mailbox); | 144 resource.mailbox_holder.mailbox.SetName(arbitrary_mailbox); |
145 frame->resource_list.push_back(resource); | 145 frame->resource_list.push_back(resource); |
146 } | 146 } |
147 | 147 |
148 void AddTextureQuad(DelegatedFrameData* frame, | 148 void AddTextureQuad(DelegatedFrameData* frame, |
149 ResourceProvider::ResourceId resource_id) { | 149 ResourceProvider::ResourceId resource_id) { |
150 SharedQuadState* sqs = | 150 SharedQuadState* sqs = |
151 frame->render_pass_list[0]->CreateAndAppendSharedQuadState(); | 151 frame->render_pass_list[0]->CreateAndAppendSharedQuadState(); |
152 scoped_ptr<TextureDrawQuad> quad = TextureDrawQuad::Create(); | 152 TextureDrawQuad* quad = |
153 frame->render_pass_list[0]->CreateAndAppendDrawQuad<TextureDrawQuad>(); | |
153 float vertex_opacity[4] = { 1.f, 1.f, 1.f, 1.f }; | 154 float vertex_opacity[4] = { 1.f, 1.f, 1.f, 1.f }; |
154 quad->SetNew(sqs, | 155 quad->SetNew(sqs, |
155 gfx::Rect(0, 0, 10, 10), | 156 gfx::Rect(0, 0, 10, 10), |
156 gfx::Rect(0, 0, 10, 10), | 157 gfx::Rect(0, 0, 10, 10), |
157 gfx::Rect(0, 0, 10, 10), | 158 gfx::Rect(0, 0, 10, 10), |
158 resource_id, | 159 resource_id, |
159 false, | 160 false, |
160 gfx::PointF(0.f, 0.f), | 161 gfx::PointF(0.f, 0.f), |
161 gfx::PointF(1.f, 1.f), | 162 gfx::PointF(1.f, 1.f), |
162 SK_ColorTRANSPARENT, | 163 SK_ColorTRANSPARENT, |
163 vertex_opacity, | 164 vertex_opacity, |
164 false); | 165 false); |
165 frame->render_pass_list[0]->quad_list.push_back(quad.PassAs<DrawQuad>()); | |
166 } | 166 } |
167 | 167 |
168 void AddRenderPass(DelegatedFrameData* frame, | 168 void AddRenderPass(DelegatedFrameData* frame, |
169 RenderPass::Id id, | 169 RenderPass::Id id, |
170 const gfx::Rect& output_rect, | 170 const gfx::Rect& output_rect, |
171 const gfx::Rect& damage_rect, | 171 const gfx::Rect& damage_rect, |
172 const FilterOperations& filters, | 172 const FilterOperations& filters, |
173 const FilterOperations& background_filters) { | 173 const FilterOperations& background_filters) { |
174 for (size_t i = 0; i < frame->render_pass_list.size(); ++i) | 174 for (size_t i = 0; i < frame->render_pass_list.size(); ++i) |
175 DCHECK(id != frame->render_pass_list[i]->id); | 175 DCHECK(id != frame->render_pass_list[i]->id); |
176 | 176 |
177 scoped_ptr<RenderPass> pass(RenderPass::Create()); | 177 scoped_ptr<RenderPass> pass(RenderPass::Create()); |
178 pass->SetNew(id, | 178 pass->SetNew(id, |
179 output_rect, | 179 output_rect, |
180 damage_rect, | 180 damage_rect, |
181 gfx::Transform()); | 181 gfx::Transform()); |
182 frame->render_pass_list.push_back(pass.Pass()); | 182 frame->render_pass_list.push_back(pass.Pass()); |
183 | 183 |
184 SharedQuadState* sqs = | 184 SharedQuadState* sqs = |
185 frame->render_pass_list[0]->CreateAndAppendSharedQuadState(); | 185 frame->render_pass_list[0]->CreateAndAppendSharedQuadState(); |
186 scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create(); | 186 RenderPassDrawQuad* quad = |
187 frame->render_pass_list[0] | |
danakj
2014/07/07 22:30:15
Can you put this RenderPass in a temp var for bett
weiliangc
2014/07/08 21:54:38
Done.
| |
188 ->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); | |
187 | 189 |
188 quad->SetNew(sqs, | 190 quad->SetNew(sqs, |
189 output_rect, | 191 output_rect, |
190 output_rect, | 192 output_rect, |
191 id, | 193 id, |
192 false, // is_replica | 194 false, // is_replica |
193 0, // mask_resource_id | 195 0, // mask_resource_id |
194 damage_rect, | 196 damage_rect, |
195 gfx::Rect(0, 0, 1, 1), // mask_uv_rect | 197 gfx::Rect(0, 0, 1, 1), // mask_uv_rect |
196 filters, | 198 filters, |
197 background_filters); | 199 background_filters); |
198 frame->render_pass_list[0]->quad_list.push_back(quad.PassAs<DrawQuad>()); | |
199 } | 200 } |
200 | 201 |
201 static ResourceProvider::ResourceId AppendResourceId( | 202 static ResourceProvider::ResourceId AppendResourceId( |
202 std::vector<ResourceProvider::ResourceId>* resources_in_last_sent_frame, | 203 std::vector<ResourceProvider::ResourceId>* resources_in_last_sent_frame, |
203 ResourceProvider::ResourceId resource_id) { | 204 ResourceProvider::ResourceId resource_id) { |
204 resources_in_last_sent_frame->push_back(resource_id); | 205 resources_in_last_sent_frame->push_back(resource_id); |
205 return resource_id; | 206 return resource_id; |
206 } | 207 } |
207 | 208 |
208 void ReturnUnusedResourcesFromParent(LayerTreeHostImpl* host_impl) { | 209 void ReturnUnusedResourcesFromParent(LayerTreeHostImpl* host_impl) { |
(...skipping 1984 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
2193 } | 2194 } |
2194 | 2195 |
2195 scoped_refptr<DelegatedRendererLayer> delegated_thief_; | 2196 scoped_refptr<DelegatedRendererLayer> delegated_thief_; |
2196 }; | 2197 }; |
2197 | 2198 |
2198 SINGLE_AND_MULTI_THREAD_TEST_F( | 2199 SINGLE_AND_MULTI_THREAD_TEST_F( |
2199 LayerTreeHostDelegatedTestRemoveAndChangeResources); | 2200 LayerTreeHostDelegatedTestRemoveAndChangeResources); |
2200 | 2201 |
2201 } // namespace | 2202 } // namespace |
2202 } // namespace cc | 2203 } // namespace cc |
OLD | NEW |