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 #include "cc/quads/render_pass.h" | 5 #include "cc/quads/render_pass.h" |
6 | 6 |
7 #include "cc/base/math_util.h" | 7 #include "cc/base/math_util.h" |
8 #include "cc/base/scoped_ptr_vector.h" | 8 #include "cc/base/scoped_ptr_vector.h" |
9 #include "cc/output/copy_output_request.h" | 9 #include "cc/output/copy_output_request.h" |
10 #include "cc/quads/checkerboard_draw_quad.h" | 10 #include "cc/quads/checkerboard_draw_quad.h" |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 gfx::Size(), | 85 gfx::Size(), |
86 gfx::Rect(), | 86 gfx::Rect(), |
87 gfx::Rect(), | 87 gfx::Rect(), |
88 false, | 88 false, |
89 1, | 89 1, |
90 SkXfermode::kSrcOver_Mode, | 90 SkXfermode::kSrcOver_Mode, |
91 0); | 91 0); |
92 | 92 |
93 CheckerboardDrawQuad* checkerboard_quad = | 93 CheckerboardDrawQuad* checkerboard_quad = |
94 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 94 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
95 checkerboard_quad->SetNew( | 95 checkerboard_quad->SetNew(pass->shared_quad_state_list.back(), gfx::Rect(), |
96 pass->shared_quad_state_list.back(), gfx::Rect(), gfx::Rect(), SkColor()); | 96 gfx::Rect(), SkColor(), 1.f); |
97 | 97 |
98 RenderPassId new_id(63, 4); | 98 RenderPassId new_id(63, 4); |
99 | 99 |
100 scoped_ptr<RenderPass> copy = pass->Copy(new_id); | 100 scoped_ptr<RenderPass> copy = pass->Copy(new_id); |
101 EXPECT_EQ(new_id, copy->id); | 101 EXPECT_EQ(new_id, copy->id); |
102 EXPECT_EQ(pass->output_rect, copy->output_rect); | 102 EXPECT_EQ(pass->output_rect, copy->output_rect); |
103 EXPECT_EQ(pass->transform_to_root_target, copy->transform_to_root_target); | 103 EXPECT_EQ(pass->transform_to_root_target, copy->transform_to_root_target); |
104 EXPECT_EQ(pass->damage_rect, copy->damage_rect); | 104 EXPECT_EQ(pass->damage_rect, copy->damage_rect); |
105 EXPECT_EQ(pass->has_transparent_background, copy->has_transparent_background); | 105 EXPECT_EQ(pass->has_transparent_background, copy->has_transparent_background); |
106 EXPECT_EQ(0u, copy->quad_list.size()); | 106 EXPECT_EQ(0u, copy->quad_list.size()); |
(...skipping 29 matching lines...) Expand all Loading... |
136 gfx::Rect(), | 136 gfx::Rect(), |
137 gfx::Rect(), | 137 gfx::Rect(), |
138 false, | 138 false, |
139 1, | 139 1, |
140 SkXfermode::kSrcOver_Mode, | 140 SkXfermode::kSrcOver_Mode, |
141 0); | 141 0); |
142 | 142 |
143 CheckerboardDrawQuad* checkerboard_quad1 = | 143 CheckerboardDrawQuad* checkerboard_quad1 = |
144 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 144 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
145 checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(), | 145 checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(), |
146 gfx::Rect(1, 1, 1, 1), | 146 gfx::Rect(1, 1, 1, 1), gfx::Rect(1, 1, 1, 1), |
147 gfx::Rect(1, 1, 1, 1), | 147 SkColor(), 1.f); |
148 SkColor()); | |
149 | 148 |
150 CheckerboardDrawQuad* checkerboard_quad2 = | 149 CheckerboardDrawQuad* checkerboard_quad2 = |
151 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 150 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
152 checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(), | 151 checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(), |
153 gfx::Rect(2, 2, 2, 2), | 152 gfx::Rect(2, 2, 2, 2), gfx::Rect(2, 2, 2, 2), |
154 gfx::Rect(2, 2, 2, 2), | 153 SkColor(), 1.f); |
155 SkColor()); | |
156 | 154 |
157 // And two quads using another shared state. | 155 // And two quads using another shared state. |
158 SharedQuadState* shared_state2 = pass->CreateAndAppendSharedQuadState(); | 156 SharedQuadState* shared_state2 = pass->CreateAndAppendSharedQuadState(); |
159 shared_state2->SetAll(gfx::Transform(), | 157 shared_state2->SetAll(gfx::Transform(), |
160 gfx::Size(2, 2), | 158 gfx::Size(2, 2), |
161 gfx::Rect(), | 159 gfx::Rect(), |
162 gfx::Rect(), | 160 gfx::Rect(), |
163 false, | 161 false, |
164 1, | 162 1, |
165 SkXfermode::kSrcOver_Mode, | 163 SkXfermode::kSrcOver_Mode, |
166 0); | 164 0); |
167 | 165 |
168 CheckerboardDrawQuad* checkerboard_quad3 = | 166 CheckerboardDrawQuad* checkerboard_quad3 = |
169 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 167 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
170 checkerboard_quad3->SetNew(pass->shared_quad_state_list.back(), | 168 checkerboard_quad3->SetNew(pass->shared_quad_state_list.back(), |
171 gfx::Rect(3, 3, 3, 3), | 169 gfx::Rect(3, 3, 3, 3), gfx::Rect(3, 3, 3, 3), |
172 gfx::Rect(3, 3, 3, 3), | 170 SkColor(), 1.f); |
173 SkColor()); | |
174 | 171 |
175 CheckerboardDrawQuad* checkerboard_quad4 = | 172 CheckerboardDrawQuad* checkerboard_quad4 = |
176 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 173 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
177 checkerboard_quad4->SetNew(pass->shared_quad_state_list.back(), | 174 checkerboard_quad4->SetNew(pass->shared_quad_state_list.back(), |
178 gfx::Rect(4, 4, 4, 4), | 175 gfx::Rect(4, 4, 4, 4), gfx::Rect(4, 4, 4, 4), |
179 gfx::Rect(4, 4, 4, 4), | 176 SkColor(), 1.f); |
180 SkColor()); | |
181 | 177 |
182 // A second render pass with a quad. | 178 // A second render pass with a quad. |
183 RenderPassId contrib_id(4, 1); | 179 RenderPassId contrib_id(4, 1); |
184 gfx::Rect contrib_output_rect(10, 15, 12, 17); | 180 gfx::Rect contrib_output_rect(10, 15, 12, 17); |
185 gfx::Transform contrib_transform_to_root = | 181 gfx::Transform contrib_transform_to_root = |
186 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); | 182 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); |
187 gfx::Rect contrib_damage_rect(11, 16, 10, 15); | 183 gfx::Rect contrib_damage_rect(11, 16, 10, 15); |
188 bool contrib_has_transparent_background = true; | 184 bool contrib_has_transparent_background = true; |
189 | 185 |
190 scoped_ptr<TestRenderPass> contrib = TestRenderPass::Create(); | 186 scoped_ptr<TestRenderPass> contrib = TestRenderPass::Create(); |
(...skipping 10 matching lines...) Expand all Loading... |
201 gfx::Rect(), | 197 gfx::Rect(), |
202 gfx::Rect(), | 198 gfx::Rect(), |
203 false, | 199 false, |
204 1, | 200 1, |
205 SkXfermode::kSrcOver_Mode, | 201 SkXfermode::kSrcOver_Mode, |
206 0); | 202 0); |
207 | 203 |
208 CheckerboardDrawQuad* contrib_quad = | 204 CheckerboardDrawQuad* contrib_quad = |
209 contrib->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 205 contrib->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
210 contrib_quad->SetNew(contrib->shared_quad_state_list.back(), | 206 contrib_quad->SetNew(contrib->shared_quad_state_list.back(), |
211 gfx::Rect(3, 3, 3, 3), | 207 gfx::Rect(3, 3, 3, 3), gfx::Rect(3, 3, 3, 3), SkColor(), |
212 gfx::Rect(3, 3, 3, 3), | 208 1.f); |
213 SkColor()); | |
214 | 209 |
215 // And a RenderPassDrawQuad for the contributing pass. | 210 // And a RenderPassDrawQuad for the contributing pass. |
216 scoped_ptr<RenderPassDrawQuad> pass_quad = | 211 scoped_ptr<RenderPassDrawQuad> pass_quad = |
217 make_scoped_ptr(new RenderPassDrawQuad); | 212 make_scoped_ptr(new RenderPassDrawQuad); |
218 pass_quad->SetNew(pass->shared_quad_state_list.back(), | 213 pass_quad->SetNew(pass->shared_quad_state_list.back(), |
219 contrib_output_rect, | 214 contrib_output_rect, |
220 contrib_output_rect, | 215 contrib_output_rect, |
221 contrib_id, | 216 contrib_id, |
222 0, | 217 0, |
223 gfx::Vector2dF(), | 218 gfx::Vector2dF(), |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
260 gfx::Rect(), | 255 gfx::Rect(), |
261 gfx::Rect(), | 256 gfx::Rect(), |
262 false, | 257 false, |
263 1, | 258 1, |
264 SkXfermode::kSrcOver_Mode, | 259 SkXfermode::kSrcOver_Mode, |
265 0); | 260 0); |
266 | 261 |
267 CheckerboardDrawQuad* checkerboard_quad1 = | 262 CheckerboardDrawQuad* checkerboard_quad1 = |
268 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 263 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
269 checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(), | 264 checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(), |
270 gfx::Rect(1, 1, 1, 1), | 265 gfx::Rect(1, 1, 1, 1), gfx::Rect(1, 1, 1, 1), |
271 gfx::Rect(1, 1, 1, 1), | 266 SkColor(), 1.f); |
272 SkColor()); | |
273 | 267 |
274 // A shared state with no quads, they were culled. | 268 // A shared state with no quads, they were culled. |
275 SharedQuadState* shared_state2 = pass->CreateAndAppendSharedQuadState(); | 269 SharedQuadState* shared_state2 = pass->CreateAndAppendSharedQuadState(); |
276 shared_state2->SetAll(gfx::Transform(), | 270 shared_state2->SetAll(gfx::Transform(), |
277 gfx::Size(2, 2), | 271 gfx::Size(2, 2), |
278 gfx::Rect(), | 272 gfx::Rect(), |
279 gfx::Rect(), | 273 gfx::Rect(), |
280 false, | 274 false, |
281 1, | 275 1, |
282 SkXfermode::kSrcOver_Mode, | 276 SkXfermode::kSrcOver_Mode, |
(...skipping 17 matching lines...) Expand all Loading... |
300 gfx::Rect(), | 294 gfx::Rect(), |
301 gfx::Rect(), | 295 gfx::Rect(), |
302 false, | 296 false, |
303 1, | 297 1, |
304 SkXfermode::kSrcOver_Mode, | 298 SkXfermode::kSrcOver_Mode, |
305 0); | 299 0); |
306 | 300 |
307 CheckerboardDrawQuad* checkerboard_quad2 = | 301 CheckerboardDrawQuad* checkerboard_quad2 = |
308 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); | 302 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); |
309 checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(), | 303 checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(), |
310 gfx::Rect(3, 3, 3, 3), | 304 gfx::Rect(3, 3, 3, 3), gfx::Rect(3, 3, 3, 3), |
311 gfx::Rect(3, 3, 3, 3), | 305 SkColor(), 1.f); |
312 SkColor()); | |
313 | 306 |
314 pass_list.push_back(pass.Pass()); | 307 pass_list.push_back(pass.Pass()); |
315 | 308 |
316 // Make a copy with CopyAll(). | 309 // Make a copy with CopyAll(). |
317 RenderPassList copy_list; | 310 RenderPassList copy_list; |
318 RenderPass::CopyAll(pass_list, ©_list); | 311 RenderPass::CopyAll(pass_list, ©_list); |
319 | 312 |
320 CompareRenderPassLists(pass_list, copy_list); | 313 CompareRenderPassLists(pass_list, copy_list); |
321 } | 314 } |
322 | 315 |
323 } // namespace | 316 } // namespace |
324 } // namespace cc | 317 } // namespace cc |
OLD | NEW |