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

Side by Side Diff: cc/quads/render_pass_unittest.cc

Issue 368403003: Use RenderPass to create DrawQuad in unittests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@layerrawptrDQ
Patch Set: address review comments Created 6 years, 5 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
OLDNEW
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 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState(); 82 SharedQuadState* shared_state = pass->CreateAndAppendSharedQuadState();
83 shared_state->SetAll(gfx::Transform(), 83 shared_state->SetAll(gfx::Transform(),
84 gfx::Size(), 84 gfx::Size(),
85 gfx::Rect(), 85 gfx::Rect(),
86 gfx::Rect(), 86 gfx::Rect(),
87 false, 87 false,
88 1, 88 1,
89 SkXfermode::kSrcOver_Mode, 89 SkXfermode::kSrcOver_Mode,
90 0); 90 0);
91 91
92 scoped_ptr<CheckerboardDrawQuad> checkerboard_quad = 92 CheckerboardDrawQuad* checkerboard_quad =
93 CheckerboardDrawQuad::Create(); 93 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>();
94 checkerboard_quad->SetNew( 94 checkerboard_quad->SetNew(
95 pass->shared_quad_state_list.back(), gfx::Rect(), gfx::Rect(), SkColor()); 95 pass->shared_quad_state_list.back(), gfx::Rect(), gfx::Rect(), SkColor());
96 pass->quad_list.push_back(checkerboard_quad.PassAs<DrawQuad>());
97 96
98 RenderPass::Id new_id(63, 4); 97 RenderPass::Id new_id(63, 4);
99 98
100 scoped_ptr<RenderPass> copy = pass->Copy(new_id); 99 scoped_ptr<RenderPass> copy = pass->Copy(new_id);
101 EXPECT_EQ(new_id, copy->id); 100 EXPECT_EQ(new_id, copy->id);
102 EXPECT_RECT_EQ(pass->output_rect, copy->output_rect); 101 EXPECT_RECT_EQ(pass->output_rect, copy->output_rect);
103 EXPECT_EQ(pass->transform_to_root_target, copy->transform_to_root_target); 102 EXPECT_EQ(pass->transform_to_root_target, copy->transform_to_root_target);
104 EXPECT_RECT_EQ(pass->damage_rect, copy->damage_rect); 103 EXPECT_RECT_EQ(pass->damage_rect, copy->damage_rect);
105 EXPECT_EQ(pass->has_transparent_background, copy->has_transparent_background); 104 EXPECT_EQ(pass->has_transparent_background, copy->has_transparent_background);
106 EXPECT_EQ(0u, copy->quad_list.size()); 105 EXPECT_EQ(0u, copy->quad_list.size());
(...skipping 26 matching lines...) Expand all
133 SharedQuadState* shared_state1 = pass->CreateAndAppendSharedQuadState(); 132 SharedQuadState* shared_state1 = pass->CreateAndAppendSharedQuadState();
134 shared_state1->SetAll(gfx::Transform(), 133 shared_state1->SetAll(gfx::Transform(),
135 gfx::Size(1, 1), 134 gfx::Size(1, 1),
136 gfx::Rect(), 135 gfx::Rect(),
137 gfx::Rect(), 136 gfx::Rect(),
138 false, 137 false,
139 1, 138 1,
140 SkXfermode::kSrcOver_Mode, 139 SkXfermode::kSrcOver_Mode,
141 0); 140 0);
142 141
143 scoped_ptr<CheckerboardDrawQuad> checkerboard_quad1 = 142 CheckerboardDrawQuad* checkerboard_quad1 =
144 CheckerboardDrawQuad::Create(); 143 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>();
145 checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(), 144 checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(),
146 gfx::Rect(1, 1, 1, 1), 145 gfx::Rect(1, 1, 1, 1),
147 gfx::Rect(1, 1, 1, 1), 146 gfx::Rect(1, 1, 1, 1),
148 SkColor()); 147 SkColor());
149 pass->quad_list.push_back(checkerboard_quad1.PassAs<DrawQuad>());
150 148
151 scoped_ptr<CheckerboardDrawQuad> checkerboard_quad2 = 149 CheckerboardDrawQuad* checkerboard_quad2 =
152 CheckerboardDrawQuad::Create(); 150 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>();
153 checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(), 151 checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(),
154 gfx::Rect(2, 2, 2, 2), 152 gfx::Rect(2, 2, 2, 2),
155 gfx::Rect(2, 2, 2, 2), 153 gfx::Rect(2, 2, 2, 2),
156 SkColor()); 154 SkColor());
157 pass->quad_list.push_back(checkerboard_quad2.PassAs<DrawQuad>());
158 155
159 // And two quads using another shared state. 156 // And two quads using another shared state.
160 SharedQuadState* shared_state2 = pass->CreateAndAppendSharedQuadState(); 157 SharedQuadState* shared_state2 = pass->CreateAndAppendSharedQuadState();
161 shared_state2->SetAll(gfx::Transform(), 158 shared_state2->SetAll(gfx::Transform(),
162 gfx::Size(2, 2), 159 gfx::Size(2, 2),
163 gfx::Rect(), 160 gfx::Rect(),
164 gfx::Rect(), 161 gfx::Rect(),
165 false, 162 false,
166 1, 163 1,
167 SkXfermode::kSrcOver_Mode, 164 SkXfermode::kSrcOver_Mode,
168 0); 165 0);
169 166
170 scoped_ptr<CheckerboardDrawQuad> checkerboard_quad3 = 167 CheckerboardDrawQuad* checkerboard_quad3 =
171 CheckerboardDrawQuad::Create(); 168 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>();
172 checkerboard_quad3->SetNew(pass->shared_quad_state_list.back(), 169 checkerboard_quad3->SetNew(pass->shared_quad_state_list.back(),
173 gfx::Rect(3, 3, 3, 3), 170 gfx::Rect(3, 3, 3, 3),
174 gfx::Rect(3, 3, 3, 3), 171 gfx::Rect(3, 3, 3, 3),
175 SkColor()); 172 SkColor());
176 pass->quad_list.push_back(checkerboard_quad3.PassAs<DrawQuad>());
177 173
178 scoped_ptr<CheckerboardDrawQuad> checkerboard_quad4 = 174 CheckerboardDrawQuad* checkerboard_quad4 =
179 CheckerboardDrawQuad::Create(); 175 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>();
180 checkerboard_quad4->SetNew(pass->shared_quad_state_list.back(), 176 checkerboard_quad4->SetNew(pass->shared_quad_state_list.back(),
181 gfx::Rect(4, 4, 4, 4), 177 gfx::Rect(4, 4, 4, 4),
182 gfx::Rect(4, 4, 4, 4), 178 gfx::Rect(4, 4, 4, 4),
183 SkColor()); 179 SkColor());
184 pass->quad_list.push_back(checkerboard_quad4.PassAs<DrawQuad>());
185 180
186 // A second render pass with a quad. 181 // A second render pass with a quad.
187 RenderPass::Id contrib_id(4, 1); 182 RenderPass::Id contrib_id(4, 1);
188 gfx::Rect contrib_output_rect(10, 15, 12, 17); 183 gfx::Rect contrib_output_rect(10, 15, 12, 17);
189 gfx::Transform contrib_transform_to_root = 184 gfx::Transform contrib_transform_to_root =
190 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0); 185 gfx::Transform(1.0, 0.5, 0.5, -0.5, -1.0, 0.0);
191 gfx::Rect contrib_damage_rect(11, 16, 10, 15); 186 gfx::Rect contrib_damage_rect(11, 16, 10, 15);
192 bool contrib_has_transparent_background = true; 187 bool contrib_has_transparent_background = true;
193 188
194 scoped_ptr<TestRenderPass> contrib = TestRenderPass::Create(); 189 scoped_ptr<TestRenderPass> contrib = TestRenderPass::Create();
195 contrib->SetAll(contrib_id, 190 contrib->SetAll(contrib_id,
196 contrib_output_rect, 191 contrib_output_rect,
197 contrib_damage_rect, 192 contrib_damage_rect,
198 contrib_transform_to_root, 193 contrib_transform_to_root,
199 contrib_has_transparent_background); 194 contrib_has_transparent_background);
200 195
201 SharedQuadState* contrib_shared_state = 196 SharedQuadState* contrib_shared_state =
202 contrib->CreateAndAppendSharedQuadState(); 197 contrib->CreateAndAppendSharedQuadState();
203 contrib_shared_state->SetAll(gfx::Transform(), 198 contrib_shared_state->SetAll(gfx::Transform(),
204 gfx::Size(2, 2), 199 gfx::Size(2, 2),
205 gfx::Rect(), 200 gfx::Rect(),
206 gfx::Rect(), 201 gfx::Rect(),
207 false, 202 false,
208 1, 203 1,
209 SkXfermode::kSrcOver_Mode, 204 SkXfermode::kSrcOver_Mode,
210 0); 205 0);
211 206
212 scoped_ptr<CheckerboardDrawQuad> contrib_quad = 207 CheckerboardDrawQuad* contrib_quad =
213 CheckerboardDrawQuad::Create(); 208 contrib->CreateAndAppendDrawQuad<CheckerboardDrawQuad>();
214 contrib_quad->SetNew(contrib->shared_quad_state_list.back(), 209 contrib_quad->SetNew(contrib->shared_quad_state_list.back(),
215 gfx::Rect(3, 3, 3, 3), 210 gfx::Rect(3, 3, 3, 3),
216 gfx::Rect(3, 3, 3, 3), 211 gfx::Rect(3, 3, 3, 3),
217 SkColor()); 212 SkColor());
218 contrib->quad_list.push_back(contrib_quad.PassAs<DrawQuad>());
219 213
220 // And a RenderPassDrawQuad for the contributing pass. 214 // And a RenderPassDrawQuad for the contributing pass.
221 scoped_ptr<RenderPassDrawQuad> pass_quad = RenderPassDrawQuad::Create(); 215 scoped_ptr<RenderPassDrawQuad> pass_quad = RenderPassDrawQuad::Create();
222 pass_quad->SetNew(pass->shared_quad_state_list.back(), 216 pass_quad->SetNew(pass->shared_quad_state_list.back(),
223 contrib_output_rect, 217 contrib_output_rect,
224 contrib_output_rect, 218 contrib_output_rect,
225 contrib_id, 219 contrib_id,
226 false, // is_replica 220 false, // is_replica
227 0, // mask_resource_id 221 0, // mask_resource_id
228 contrib_damage_rect, 222 contrib_damage_rect,
229 gfx::RectF(), // mask_uv_rect 223 gfx::RectF(), // mask_uv_rect
230 FilterOperations(), 224 FilterOperations(),
231 FilterOperations()); 225 FilterOperations());
232 pass->quad_list.push_back(pass_quad.PassAs<DrawQuad>());
233 226
234 pass_list.push_back(pass.PassAs<RenderPass>()); 227 pass_list.push_back(pass.PassAs<RenderPass>());
235 pass_list.push_back(contrib.PassAs<RenderPass>()); 228 pass_list.push_back(contrib.PassAs<RenderPass>());
236 229
237 // Make a copy with CopyAll(). 230 // Make a copy with CopyAll().
238 RenderPassList copy_list; 231 RenderPassList copy_list;
239 RenderPass::CopyAll(pass_list, &copy_list); 232 RenderPass::CopyAll(pass_list, &copy_list);
240 233
241 CompareRenderPassLists(pass_list, copy_list); 234 CompareRenderPassLists(pass_list, copy_list);
242 } 235 }
(...skipping 19 matching lines...) Expand all
262 SharedQuadState* shared_state1 = pass->CreateAndAppendSharedQuadState(); 255 SharedQuadState* shared_state1 = pass->CreateAndAppendSharedQuadState();
263 shared_state1->SetAll(gfx::Transform(), 256 shared_state1->SetAll(gfx::Transform(),
264 gfx::Size(1, 1), 257 gfx::Size(1, 1),
265 gfx::Rect(), 258 gfx::Rect(),
266 gfx::Rect(), 259 gfx::Rect(),
267 false, 260 false,
268 1, 261 1,
269 SkXfermode::kSrcOver_Mode, 262 SkXfermode::kSrcOver_Mode,
270 0); 263 0);
271 264
272 scoped_ptr<CheckerboardDrawQuad> checkerboard_quad1 = 265 CheckerboardDrawQuad* checkerboard_quad1 =
273 CheckerboardDrawQuad::Create(); 266 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>();
274 checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(), 267 checkerboard_quad1->SetNew(pass->shared_quad_state_list.back(),
275 gfx::Rect(1, 1, 1, 1), 268 gfx::Rect(1, 1, 1, 1),
276 gfx::Rect(1, 1, 1, 1), 269 gfx::Rect(1, 1, 1, 1),
277 SkColor()); 270 SkColor());
278 pass->quad_list.push_back(checkerboard_quad1.PassAs<DrawQuad>());
279 271
280 // A shared state with no quads, they were culled. 272 // A shared state with no quads, they were culled.
281 SharedQuadState* shared_state2 = pass->CreateAndAppendSharedQuadState(); 273 SharedQuadState* shared_state2 = pass->CreateAndAppendSharedQuadState();
282 shared_state2->SetAll(gfx::Transform(), 274 shared_state2->SetAll(gfx::Transform(),
283 gfx::Size(2, 2), 275 gfx::Size(2, 2),
284 gfx::Rect(), 276 gfx::Rect(),
285 gfx::Rect(), 277 gfx::Rect(),
286 false, 278 false,
287 1, 279 1,
288 SkXfermode::kSrcOver_Mode, 280 SkXfermode::kSrcOver_Mode,
(...skipping 14 matching lines...) Expand all
303 SharedQuadState* shared_state4 = pass->CreateAndAppendSharedQuadState(); 295 SharedQuadState* shared_state4 = pass->CreateAndAppendSharedQuadState();
304 shared_state4->SetAll(gfx::Transform(), 296 shared_state4->SetAll(gfx::Transform(),
305 gfx::Size(2, 2), 297 gfx::Size(2, 2),
306 gfx::Rect(), 298 gfx::Rect(),
307 gfx::Rect(), 299 gfx::Rect(),
308 false, 300 false,
309 1, 301 1,
310 SkXfermode::kSrcOver_Mode, 302 SkXfermode::kSrcOver_Mode,
311 0); 303 0);
312 304
313 scoped_ptr<CheckerboardDrawQuad> checkerboard_quad2 = 305 CheckerboardDrawQuad* checkerboard_quad2 =
314 CheckerboardDrawQuad::Create(); 306 pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>();
315 checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(), 307 checkerboard_quad2->SetNew(pass->shared_quad_state_list.back(),
316 gfx::Rect(3, 3, 3, 3), 308 gfx::Rect(3, 3, 3, 3),
317 gfx::Rect(3, 3, 3, 3), 309 gfx::Rect(3, 3, 3, 3),
318 SkColor()); 310 SkColor());
319 pass->quad_list.push_back(checkerboard_quad2.PassAs<DrawQuad>());
320 311
321 pass_list.push_back(pass.PassAs<RenderPass>()); 312 pass_list.push_back(pass.PassAs<RenderPass>());
322 313
323 // Make a copy with CopyAll(). 314 // Make a copy with CopyAll().
324 RenderPassList copy_list; 315 RenderPassList copy_list;
325 RenderPass::CopyAll(pass_list, &copy_list); 316 RenderPass::CopyAll(pass_list, &copy_list);
326 317
327 CompareRenderPassLists(pass_list, copy_list); 318 CompareRenderPassLists(pass_list, copy_list);
328 } 319 }
329 320
330 } // namespace 321 } // namespace
331 } // namespace cc 322 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698