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

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

Issue 2919863004: Add flag to signal that video frame must be drawn using an overlay. (Closed)
Patch Set: cleanup Created 3 years, 6 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/draw_quad.h" 5 #include "cc/quads/draw_quad.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
118 CompareDrawQuad(quad_new, copy_new, copy_shared_state); \ 118 CompareDrawQuad(quad_new, copy_new, copy_shared_state); \
119 const Type* copy_quad = Type::MaterialCast(copy_new); \ 119 const Type* copy_quad = Type::MaterialCast(copy_new); \
120 ALLOW_UNUSED_LOCAL(copy_quad); 120 ALLOW_UNUSED_LOCAL(copy_quad);
121 121
122 #define SETUP_AND_COPY_QUAD_ALL_RP(Type, quad, a) \ 122 #define SETUP_AND_COPY_QUAD_ALL_RP(Type, quad, a) \
123 DrawQuad* copy_all = render_pass->CopyFromAndAppendRenderPassDrawQuad( \ 123 DrawQuad* copy_all = render_pass->CopyFromAndAppendRenderPassDrawQuad( \
124 quad_all, copy_shared_state, a); \ 124 quad_all, copy_shared_state, a); \
125 CompareDrawQuad(quad_all, copy_all, copy_shared_state); \ 125 CompareDrawQuad(quad_all, copy_all, copy_shared_state); \
126 copy_quad = Type::MaterialCast(copy_all); 126 copy_quad = Type::MaterialCast(copy_all);
127 127
128 #define CREATE_QUAD_1_NEW(Type, a) \ 128 #define CREATE_QUAD_ALL(Type, ...) \
129 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ 129 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
130 { QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a); } \ 130 { \
131 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); 131 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \
132 132 quad_visible_rect, needs_blending, \
133 #define CREATE_QUAD_1_ALL(Type, a) \ 133 __VA_ARGS__); \
134 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ 134 } \
135 { \
136 QUAD_DATA quad_all->SetAll(shared_state, \
137 quad_rect, \
138 quad_opaque_rect, \
139 quad_visible_rect, \
140 needs_blending, \
141 a); \
142 } \
143 SETUP_AND_COPY_QUAD_ALL(Type, quad_all); 135 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
144 136
145 #define CREATE_QUAD_2_NEW(Type, a, b) \ 137 #define CREATE_QUAD_NEW(Type, ...) \
146 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ 138 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
147 { QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b); } \ 139 { QUAD_DATA quad_new->SetNew(shared_state, quad_rect, __VA_ARGS__); } \
148 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
149
150 #define CREATE_QUAD_2_ALL(Type, a, b) \
151 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
152 { \
153 QUAD_DATA quad_all->SetAll(shared_state, \
154 quad_rect, \
155 quad_opaque_rect, \
156 quad_visible_rect, \
157 needs_blending, \
158 a, \
159 b); \
160 } \
161 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
162
163 #define CREATE_QUAD_3_NEW(Type, a, b, c) \
164 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
165 { QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c); } \
166 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
167
168 #define CREATE_QUAD_3_ALL(Type, a, b, c) \
169 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
170 { \
171 QUAD_DATA quad_all->SetAll(shared_state, \
172 quad_rect, \
173 quad_opaque_rect, \
174 quad_visible_rect, \
175 needs_blending, \
176 a, \
177 b, \
178 c); \
179 } \
180 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
181
182 #define CREATE_QUAD_4_NEW(Type, a, b, c, d) \
183 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
184 { QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d); } \
185 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
186
187 #define CREATE_QUAD_4_ALL(Type, a, b, c, d) \
188 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
189 { \
190 QUAD_DATA quad_all->SetAll(shared_state, \
191 quad_rect, \
192 quad_opaque_rect, \
193 quad_visible_rect, \
194 needs_blending, \
195 a, \
196 b, \
197 c, \
198 d); \
199 } \
200 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
201
202 #define CREATE_QUAD_5_NEW(Type, a, b, c, d, e) \
203 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
204 { QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e); } \
205 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
206
207 #define CREATE_QUAD_5_ALL(Type, a, b, c, d, e) \
208 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
209 { \
210 QUAD_DATA quad_all->SetAll(shared_state, \
211 quad_rect, \
212 quad_opaque_rect, \
213 quad_visible_rect, \
214 needs_blending, \
215 a, \
216 b, \
217 c, \
218 d, \
219 e); \
220 } \
221 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
222
223 #define CREATE_QUAD_6_NEW(Type, a, b, c, d, e, f) \
224 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
225 { QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f); } \
226 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
227
228 #define CREATE_QUAD_6_ALL(Type, a, b, c, d, e, f) \
229 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
230 { \
231 QUAD_DATA quad_all->SetAll(shared_state, \
232 quad_rect, \
233 quad_opaque_rect, \
234 quad_visible_rect, \
235 needs_blending, \
236 a, \
237 b, \
238 c, \
239 d, \
240 e, \
241 f); \
242 } \
243 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
244
245 #define CREATE_QUAD_7_NEW(Type, a, b, c, d, e, f, g) \
246 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
247 { \
248 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g); \
249 } \
250 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
251
252 #define CREATE_QUAD_7_ALL(Type, a, b, c, d, e, f, g) \
253 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
254 { \
255 QUAD_DATA quad_all->SetAll(shared_state, \
256 quad_rect, \
257 quad_opaque_rect, \
258 quad_visible_rect, \
259 needs_blending, \
260 a, \
261 b, \
262 c, \
263 d, \
264 e, \
265 f, \
266 g); \
267 } \
268 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
269
270 #define CREATE_QUAD_8_NEW(Type, a, b, c, d, e, f, g, h) \
271 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
272 { \
273 QUAD_DATA quad_new->SetNew( \
274 shared_state, quad_rect, a, b, c, d, e, f, g, h); \
275 } \
276 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
277
278 #define CREATE_QUAD_8_ALL(Type, a, b, c, d, e, f, g, h) \
279 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
280 { \
281 QUAD_DATA quad_all->SetAll(shared_state, \
282 quad_rect, \
283 quad_opaque_rect, \
284 quad_visible_rect, \
285 needs_blending, \
286 a, \
287 b, \
288 c, \
289 d, \
290 e, \
291 f, \
292 g, \
293 h); \
294 } \
295 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
296
297 #define CREATE_QUAD_9_NEW(Type, a, b, c, d, e, f, g, h, i) \
298 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
299 { \
300 QUAD_DATA quad_new->SetNew( \
301 shared_state, quad_rect, a, b, c, d, e, f, g, h, i); \
302 } \
303 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
304
305 #define CREATE_QUAD_9_ALL(Type, a, b, c, d, e, f, g, h, i) \
306 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
307 { \
308 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \
309 quad_visible_rect, needs_blending, a, b, c, d, \
310 e, f, g, h, i); \
311 } \
312 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
313
314 #define CREATE_QUAD_10_NEW(Type, a, b, c, d, e, f, g, h, i, j) \
315 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
316 { \
317 QUAD_DATA quad_new->SetNew( \
318 shared_state, quad_rect, a, b, c, d, e, f, g, h, i, j); \
319 } \
320 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
321
322 #define CREATE_QUAD_10_ALL(Type, a, b, c, d, e, f, g, h, i, j) \
323 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
324 { \
325 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \
326 quad_visible_rect, needs_blending, a, b, c, d, \
327 e, f, g, h, i, j); \
328 } \
329 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
330
331 #define CREATE_QUAD_11_NEW(Type, a, b, c, d, e, f, g, h, i, j, k) \
332 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
333 { \
334 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \
335 h, i, j, k); \
336 } \
337 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
338
339 #define CREATE_QUAD_11_ALL(Type, a, b, c, d, e, f, g, h, i, j, k) \
340 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
341 { \
342 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \
343 quad_visible_rect, needs_blending, a, b, c, d, \
344 e, f, g, h, i, j, k); \
345 } \
346 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
347
348 #define CREATE_QUAD_12_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l) \
349 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
350 { \
351 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \
352 h, i, j, k, l); \
353 } \
354 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
355
356 #define CREATE_QUAD_12_ALL(Type, a, b, c, d, e, f, g, h, i, j, k, l) \
357 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
358 { \
359 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \
360 quad_visible_rect, needs_blending, a, b, c, d, \
361 e, f, g, h, i, j, k, l); \
362 } \
363 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
364
365 #define CREATE_QUAD_13_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l, m) \
366 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
367 { \
368 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \
369 h, i, j, k, l, m); \
370 } \
371 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
372
373 #define CREATE_QUAD_13_ALL(Type, a, b, c, d, e, f, g, h, i, j, k, l, m) \
374 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
375 { \
376 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \
377 quad_visible_rect, needs_blending, a, b, c, d, \
378 e, f, g, h, i, j, k, l, m); \
379 } \
380 SETUP_AND_COPY_QUAD_ALL(Type, quad_all);
381
382 #define CREATE_QUAD_14_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l, m, n) \
383 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
384 { \
385 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \
386 h, i, j, k, l, m, n); \
387 } \
388 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
389
390 #define CREATE_QUAD_15_NEW(Type, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) \
391 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
392 { \
393 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \
394 h, i, j, k, l, m, n, o); \
395 } \
396 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); 140 SETUP_AND_COPY_QUAD_NEW(Type, quad_new);
397 141
398 #define CREATE_QUAD_ALL_RP(Type, a, b, c, d, e, f, g, copy_a) \ 142 #define CREATE_QUAD_ALL_RP(Type, a, b, c, d, e, f, g, copy_a) \
399 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \ 143 Type* quad_all = render_pass->CreateAndAppendDrawQuad<Type>(); \
400 { \ 144 { \
401 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \ 145 QUAD_DATA quad_all->SetAll(shared_state, quad_rect, quad_opaque_rect, \
402 quad_visible_rect, needs_blending, a, b, c, d, \ 146 quad_visible_rect, needs_blending, a, b, c, d, \
403 e, f, g); \ 147 e, f, g); \
404 } \ 148 } \
405 SETUP_AND_COPY_QUAD_ALL_RP(Type, quad_all, copy_a); 149 SETUP_AND_COPY_QUAD_ALL_RP(Type, quad_all, copy_a);
406 150
407 #define CREATE_QUAD_NEW_RP(Type, a, b, c, d, e, f, g, h, copy_a) \ 151 #define CREATE_QUAD_NEW_RP(Type, a, b, c, d, e, f, g, h, copy_a) \
408 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \ 152 Type* quad_new = render_pass->CreateAndAppendDrawQuad<Type>(); \
409 { \ 153 { \
410 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \ 154 QUAD_DATA quad_new->SetNew(shared_state, quad_rect, a, b, c, d, e, f, g, \
411 h); \ 155 h); \
412 } \ 156 } \
413 SETUP_AND_COPY_QUAD_NEW_RP(Type, quad_new, copy_a); 157 SETUP_AND_COPY_QUAD_NEW_RP(Type, quad_new, copy_a);
414 158
415 TEST(DrawQuadTest, CopyDebugBorderDrawQuad) { 159 TEST(DrawQuadTest, CopyDebugBorderDrawQuad) {
416 gfx::Rect visible_rect(40, 50, 30, 20); 160 gfx::Rect visible_rect(40, 50, 30, 20);
417 SkColor color = 0xfabb0011; 161 SkColor color = 0xfabb0011;
418 int width = 99; 162 int width = 99;
419 CREATE_SHARED_STATE(); 163 CREATE_SHARED_STATE();
420 164
421 CREATE_QUAD_3_NEW(DebugBorderDrawQuad, visible_rect, color, width); 165 CREATE_QUAD_NEW(DebugBorderDrawQuad, visible_rect, color, width);
422 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material); 166 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material);
423 EXPECT_EQ(visible_rect, copy_quad->visible_rect); 167 EXPECT_EQ(visible_rect, copy_quad->visible_rect);
424 EXPECT_EQ(color, copy_quad->color); 168 EXPECT_EQ(color, copy_quad->color);
425 EXPECT_EQ(width, copy_quad->width); 169 EXPECT_EQ(width, copy_quad->width);
426 170
427 CREATE_QUAD_2_ALL(DebugBorderDrawQuad, color, width); 171 CREATE_QUAD_ALL(DebugBorderDrawQuad, color, width);
428 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material); 172 EXPECT_EQ(DrawQuad::DEBUG_BORDER, copy_quad->material);
429 EXPECT_EQ(color, copy_quad->color); 173 EXPECT_EQ(color, copy_quad->color);
430 EXPECT_EQ(width, copy_quad->width); 174 EXPECT_EQ(width, copy_quad->width);
431 } 175 }
432 176
433 TEST(DrawQuadTest, CopyRenderPassDrawQuad) { 177 TEST(DrawQuadTest, CopyRenderPassDrawQuad) {
434 gfx::Rect visible_rect(40, 50, 30, 20); 178 gfx::Rect visible_rect(40, 50, 30, 20);
435 int render_pass_id = 61; 179 int render_pass_id = 61;
436 ResourceId mask_resource_id = 78; 180 ResourceId mask_resource_id = 78;
437 gfx::RectF mask_uv_rect(0, 0, 33.f, 19.f); 181 gfx::RectF mask_uv_rect(0, 0, 33.f, 19.f);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 EXPECT_EQ(filters_origin, copy_quad->filters_origin); 215 EXPECT_EQ(filters_origin, copy_quad->filters_origin);
472 EXPECT_EQ(tex_coord_rect.ToString(), copy_quad->tex_coord_rect.ToString()); 216 EXPECT_EQ(tex_coord_rect.ToString(), copy_quad->tex_coord_rect.ToString());
473 } 217 }
474 218
475 TEST(DrawQuadTest, CopySolidColorDrawQuad) { 219 TEST(DrawQuadTest, CopySolidColorDrawQuad) {
476 gfx::Rect visible_rect(40, 50, 30, 20); 220 gfx::Rect visible_rect(40, 50, 30, 20);
477 SkColor color = 0x49494949; 221 SkColor color = 0x49494949;
478 bool force_anti_aliasing_off = false; 222 bool force_anti_aliasing_off = false;
479 CREATE_SHARED_STATE(); 223 CREATE_SHARED_STATE();
480 224
481 CREATE_QUAD_3_NEW( 225 CREATE_QUAD_NEW(SolidColorDrawQuad, visible_rect, color,
482 SolidColorDrawQuad, visible_rect, color, force_anti_aliasing_off); 226 force_anti_aliasing_off);
483 EXPECT_EQ(DrawQuad::SOLID_COLOR, copy_quad->material); 227 EXPECT_EQ(DrawQuad::SOLID_COLOR, copy_quad->material);
484 EXPECT_EQ(visible_rect, copy_quad->visible_rect); 228 EXPECT_EQ(visible_rect, copy_quad->visible_rect);
485 EXPECT_EQ(color, copy_quad->color); 229 EXPECT_EQ(color, copy_quad->color);
486 EXPECT_EQ(force_anti_aliasing_off, copy_quad->force_anti_aliasing_off); 230 EXPECT_EQ(force_anti_aliasing_off, copy_quad->force_anti_aliasing_off);
487 231
488 CREATE_QUAD_2_ALL(SolidColorDrawQuad, color, force_anti_aliasing_off); 232 CREATE_QUAD_ALL(SolidColorDrawQuad, color, force_anti_aliasing_off);
489 EXPECT_EQ(DrawQuad::SOLID_COLOR, copy_quad->material); 233 EXPECT_EQ(DrawQuad::SOLID_COLOR, copy_quad->material);
490 EXPECT_EQ(color, copy_quad->color); 234 EXPECT_EQ(color, copy_quad->color);
491 EXPECT_EQ(force_anti_aliasing_off, copy_quad->force_anti_aliasing_off); 235 EXPECT_EQ(force_anti_aliasing_off, copy_quad->force_anti_aliasing_off);
492 } 236 }
493 237
494 TEST(DrawQuadTest, CopyStreamVideoDrawQuad) { 238 TEST(DrawQuadTest, CopyStreamVideoDrawQuad) {
495 gfx::Rect opaque_rect(33, 47, 10, 12); 239 gfx::Rect opaque_rect(33, 47, 10, 12);
496 gfx::Rect visible_rect(40, 50, 30, 20); 240 gfx::Rect visible_rect(40, 50, 30, 20);
497 ResourceId resource_id = 64; 241 ResourceId resource_id = 64;
498 gfx::Size resource_size_in_pixels = gfx::Size(40, 41); 242 gfx::Size resource_size_in_pixels = gfx::Size(40, 41);
499 gfx::Transform matrix = gfx::Transform(0.5, 0.25, 1, 0.75, 0, 1); 243 gfx::Transform matrix = gfx::Transform(0.5, 0.25, 1, 0.75, 0, 1);
500 CREATE_SHARED_STATE(); 244 CREATE_SHARED_STATE();
501 245
502 CREATE_QUAD_5_NEW(StreamVideoDrawQuad, opaque_rect, visible_rect, resource_id, 246 CREATE_QUAD_NEW(StreamVideoDrawQuad, opaque_rect, visible_rect, resource_id,
503 resource_size_in_pixels, matrix); 247 resource_size_in_pixels, matrix);
504 EXPECT_EQ(DrawQuad::STREAM_VIDEO_CONTENT, copy_quad->material); 248 EXPECT_EQ(DrawQuad::STREAM_VIDEO_CONTENT, copy_quad->material);
505 EXPECT_EQ(visible_rect, copy_quad->visible_rect); 249 EXPECT_EQ(visible_rect, copy_quad->visible_rect);
506 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); 250 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect);
507 EXPECT_EQ(resource_id, copy_quad->resource_id()); 251 EXPECT_EQ(resource_id, copy_quad->resource_id());
508 EXPECT_EQ(resource_size_in_pixels, copy_quad->resource_size_in_pixels()); 252 EXPECT_EQ(resource_size_in_pixels, copy_quad->resource_size_in_pixels());
509 EXPECT_EQ(matrix, copy_quad->matrix); 253 EXPECT_EQ(matrix, copy_quad->matrix);
510 254
511 CREATE_QUAD_3_ALL(StreamVideoDrawQuad, resource_id, resource_size_in_pixels, 255 CREATE_QUAD_ALL(StreamVideoDrawQuad, resource_id, resource_size_in_pixels,
512 matrix); 256 matrix);
513 EXPECT_EQ(DrawQuad::STREAM_VIDEO_CONTENT, copy_quad->material); 257 EXPECT_EQ(DrawQuad::STREAM_VIDEO_CONTENT, copy_quad->material);
514 EXPECT_EQ(resource_id, copy_quad->resource_id()); 258 EXPECT_EQ(resource_id, copy_quad->resource_id());
515 EXPECT_EQ(resource_size_in_pixels, copy_quad->resource_size_in_pixels()); 259 EXPECT_EQ(resource_size_in_pixels, copy_quad->resource_size_in_pixels());
516 EXPECT_EQ(matrix, copy_quad->matrix); 260 EXPECT_EQ(matrix, copy_quad->matrix);
517 } 261 }
518 262
519 TEST(DrawQuadTest, CopySurfaceDrawQuad) { 263 TEST(DrawQuadTest, CopySurfaceDrawQuad) {
520 gfx::Rect visible_rect(40, 50, 30, 20); 264 gfx::Rect visible_rect(40, 50, 30, 20);
521 SurfaceId surface_id(kArbitraryFrameSinkId, 265 SurfaceId surface_id(kArbitraryFrameSinkId,
522 LocalSurfaceId(1234, base::UnguessableToken::Create())); 266 LocalSurfaceId(1234, base::UnguessableToken::Create()));
523 CREATE_SHARED_STATE(); 267 CREATE_SHARED_STATE();
524 268
525 CREATE_QUAD_4_NEW(SurfaceDrawQuad, visible_rect, surface_id, 269 CREATE_QUAD_NEW(SurfaceDrawQuad, visible_rect, surface_id,
526 SurfaceDrawQuadType::PRIMARY, nullptr); 270 SurfaceDrawQuadType::PRIMARY, nullptr);
527 EXPECT_EQ(DrawQuad::SURFACE_CONTENT, copy_quad->material); 271 EXPECT_EQ(DrawQuad::SURFACE_CONTENT, copy_quad->material);
528 EXPECT_EQ(visible_rect, copy_quad->visible_rect); 272 EXPECT_EQ(visible_rect, copy_quad->visible_rect);
529 EXPECT_EQ(surface_id, copy_quad->surface_id); 273 EXPECT_EQ(surface_id, copy_quad->surface_id);
530 274
531 CREATE_QUAD_3_ALL(SurfaceDrawQuad, surface_id, SurfaceDrawQuadType::PRIMARY, 275 CREATE_QUAD_ALL(SurfaceDrawQuad, surface_id, SurfaceDrawQuadType::PRIMARY,
532 nullptr); 276 nullptr);
533 EXPECT_EQ(DrawQuad::SURFACE_CONTENT, copy_quad->material); 277 EXPECT_EQ(DrawQuad::SURFACE_CONTENT, copy_quad->material);
534 EXPECT_EQ(surface_id, copy_quad->surface_id); 278 EXPECT_EQ(surface_id, copy_quad->surface_id);
535 } 279 }
536 280
537 281
538 TEST(DrawQuadTest, CopyTextureDrawQuad) { 282 TEST(DrawQuadTest, CopyTextureDrawQuad) {
539 gfx::Rect opaque_rect(33, 47, 10, 12); 283 gfx::Rect opaque_rect(33, 47, 10, 12);
540 gfx::Rect visible_rect(40, 50, 30, 20); 284 gfx::Rect visible_rect(40, 50, 30, 20);
541 unsigned resource_id = 82; 285 unsigned resource_id = 82;
542 gfx::Size resource_size_in_pixels = gfx::Size(40, 41); 286 gfx::Size resource_size_in_pixels = gfx::Size(40, 41);
543 bool premultiplied_alpha = true; 287 bool premultiplied_alpha = true;
544 gfx::PointF uv_top_left(0.5f, 224.f); 288 gfx::PointF uv_top_left(0.5f, 224.f);
545 gfx::PointF uv_bottom_right(51.5f, 260.f); 289 gfx::PointF uv_bottom_right(51.5f, 260.f);
546 const float vertex_opacity[] = { 1.0f, 1.0f, 1.0f, 1.0f }; 290 const float vertex_opacity[] = { 1.0f, 1.0f, 1.0f, 1.0f };
547 bool y_flipped = true; 291 bool y_flipped = true;
548 bool nearest_neighbor = true; 292 bool nearest_neighbor = true;
549 bool secure_output_only = true; 293 bool secure_output_only = true;
550 CREATE_SHARED_STATE(); 294 CREATE_SHARED_STATE();
551 295
552 CREATE_QUAD_11_NEW(TextureDrawQuad, opaque_rect, visible_rect, resource_id, 296 CREATE_QUAD_NEW(TextureDrawQuad, opaque_rect, visible_rect, resource_id,
553 premultiplied_alpha, uv_top_left, uv_bottom_right, 297 premultiplied_alpha, uv_top_left, uv_bottom_right,
554 SK_ColorTRANSPARENT, vertex_opacity, y_flipped, 298 SK_ColorTRANSPARENT, vertex_opacity, y_flipped,
555 nearest_neighbor, secure_output_only); 299 nearest_neighbor, secure_output_only);
556 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copy_quad->material); 300 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copy_quad->material);
557 EXPECT_EQ(visible_rect, copy_quad->visible_rect); 301 EXPECT_EQ(visible_rect, copy_quad->visible_rect);
558 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); 302 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect);
559 EXPECT_EQ(resource_id, copy_quad->resource_id()); 303 EXPECT_EQ(resource_id, copy_quad->resource_id());
560 EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha); 304 EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha);
561 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left); 305 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left);
562 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right); 306 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right);
563 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copy_quad->vertex_opacity, 4); 307 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copy_quad->vertex_opacity, 4);
564 EXPECT_EQ(y_flipped, copy_quad->y_flipped); 308 EXPECT_EQ(y_flipped, copy_quad->y_flipped);
565 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); 309 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor);
566 EXPECT_EQ(secure_output_only, copy_quad->secure_output_only); 310 EXPECT_EQ(secure_output_only, copy_quad->secure_output_only);
567 311
568 CREATE_QUAD_10_ALL(TextureDrawQuad, resource_id, resource_size_in_pixels, 312 CREATE_QUAD_ALL(TextureDrawQuad, resource_id, resource_size_in_pixels,
569 premultiplied_alpha, uv_top_left, uv_bottom_right, 313 premultiplied_alpha, uv_top_left, uv_bottom_right,
570 SK_ColorTRANSPARENT, vertex_opacity, y_flipped, 314 SK_ColorTRANSPARENT, vertex_opacity, y_flipped,
571 nearest_neighbor, secure_output_only); 315 nearest_neighbor, secure_output_only);
572 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copy_quad->material); 316 EXPECT_EQ(DrawQuad::TEXTURE_CONTENT, copy_quad->material);
573 EXPECT_EQ(resource_id, copy_quad->resource_id()); 317 EXPECT_EQ(resource_id, copy_quad->resource_id());
574 EXPECT_EQ(resource_size_in_pixels, copy_quad->resource_size_in_pixels()); 318 EXPECT_EQ(resource_size_in_pixels, copy_quad->resource_size_in_pixels());
575 EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha); 319 EXPECT_EQ(premultiplied_alpha, copy_quad->premultiplied_alpha);
576 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left); 320 EXPECT_EQ(uv_top_left, copy_quad->uv_top_left);
577 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right); 321 EXPECT_EQ(uv_bottom_right, copy_quad->uv_bottom_right);
578 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copy_quad->vertex_opacity, 4); 322 EXPECT_FLOAT_ARRAY_EQ(vertex_opacity, copy_quad->vertex_opacity, 4);
579 EXPECT_EQ(y_flipped, copy_quad->y_flipped); 323 EXPECT_EQ(y_flipped, copy_quad->y_flipped);
580 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); 324 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor);
581 EXPECT_EQ(secure_output_only, copy_quad->secure_output_only); 325 EXPECT_EQ(secure_output_only, copy_quad->secure_output_only);
582 } 326 }
583 327
584 TEST(DrawQuadTest, CopyTileDrawQuad) { 328 TEST(DrawQuadTest, CopyTileDrawQuad) {
585 gfx::Rect opaque_rect(33, 44, 22, 33); 329 gfx::Rect opaque_rect(33, 44, 22, 33);
586 gfx::Rect visible_rect(40, 50, 30, 20); 330 gfx::Rect visible_rect(40, 50, 30, 20);
587 unsigned resource_id = 104; 331 unsigned resource_id = 104;
588 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); 332 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f);
589 gfx::Size texture_size(85, 32); 333 gfx::Size texture_size(85, 32);
590 bool swizzle_contents = true; 334 bool swizzle_contents = true;
591 bool nearest_neighbor = true; 335 bool nearest_neighbor = true;
592 CREATE_SHARED_STATE(); 336 CREATE_SHARED_STATE();
593 337
594 CREATE_QUAD_7_NEW(TileDrawQuad, 338 CREATE_QUAD_NEW(TileDrawQuad, opaque_rect, visible_rect, resource_id,
595 opaque_rect, 339 tex_coord_rect, texture_size, swizzle_contents,
596 visible_rect, 340 nearest_neighbor);
597 resource_id,
598 tex_coord_rect,
599 texture_size,
600 swizzle_contents,
601 nearest_neighbor);
602 EXPECT_EQ(DrawQuad::TILED_CONTENT, copy_quad->material); 341 EXPECT_EQ(DrawQuad::TILED_CONTENT, copy_quad->material);
603 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); 342 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect);
604 EXPECT_EQ(visible_rect, copy_quad->visible_rect); 343 EXPECT_EQ(visible_rect, copy_quad->visible_rect);
605 EXPECT_EQ(resource_id, copy_quad->resource_id()); 344 EXPECT_EQ(resource_id, copy_quad->resource_id());
606 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); 345 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect);
607 EXPECT_EQ(texture_size, copy_quad->texture_size); 346 EXPECT_EQ(texture_size, copy_quad->texture_size);
608 EXPECT_EQ(swizzle_contents, copy_quad->swizzle_contents); 347 EXPECT_EQ(swizzle_contents, copy_quad->swizzle_contents);
609 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); 348 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor);
610 349
611 CREATE_QUAD_5_ALL(TileDrawQuad, 350 CREATE_QUAD_ALL(TileDrawQuad, resource_id, tex_coord_rect, texture_size,
612 resource_id, 351 swizzle_contents, nearest_neighbor);
613 tex_coord_rect,
614 texture_size,
615 swizzle_contents,
616 nearest_neighbor);
617 EXPECT_EQ(DrawQuad::TILED_CONTENT, copy_quad->material); 352 EXPECT_EQ(DrawQuad::TILED_CONTENT, copy_quad->material);
618 EXPECT_EQ(resource_id, copy_quad->resource_id()); 353 EXPECT_EQ(resource_id, copy_quad->resource_id());
619 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); 354 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect);
620 EXPECT_EQ(texture_size, copy_quad->texture_size); 355 EXPECT_EQ(texture_size, copy_quad->texture_size);
621 EXPECT_EQ(swizzle_contents, copy_quad->swizzle_contents); 356 EXPECT_EQ(swizzle_contents, copy_quad->swizzle_contents);
622 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); 357 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor);
623 } 358 }
624 359
625 TEST(DrawQuadTest, CopyYUVVideoDrawQuad) { 360 TEST(DrawQuadTest, CopyYUVVideoDrawQuad) {
626 gfx::Rect opaque_rect(33, 47, 10, 12); 361 gfx::Rect opaque_rect(33, 47, 10, 12);
627 gfx::Rect visible_rect(40, 50, 30, 20); 362 gfx::Rect visible_rect(40, 50, 30, 20);
628 gfx::RectF ya_tex_coord_rect(40, 50, 30, 20); 363 gfx::RectF ya_tex_coord_rect(40, 50, 30, 20);
629 gfx::RectF uv_tex_coord_rect(20, 25, 15, 10); 364 gfx::RectF uv_tex_coord_rect(20, 25, 15, 10);
630 gfx::Size ya_tex_size(32, 68); 365 gfx::Size ya_tex_size(32, 68);
631 gfx::Size uv_tex_size(41, 51); 366 gfx::Size uv_tex_size(41, 51);
632 ResourceId y_plane_resource_id = 45; 367 ResourceId y_plane_resource_id = 45;
633 ResourceId u_plane_resource_id = 532; 368 ResourceId u_plane_resource_id = 532;
634 ResourceId v_plane_resource_id = 4; 369 ResourceId v_plane_resource_id = 4;
635 ResourceId a_plane_resource_id = 63; 370 ResourceId a_plane_resource_id = 63;
636 float resource_offset = 0.5f; 371 float resource_offset = 0.5f;
637 float resource_multiplier = 2.001f; 372 float resource_multiplier = 2.001f;
638 uint32_t bits_per_channel = 5; 373 uint32_t bits_per_channel = 5;
374 bool require_overlay = true;
639 YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG; 375 YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG;
640 gfx::ColorSpace video_color_space = gfx::ColorSpace::CreateJpeg(); 376 gfx::ColorSpace video_color_space = gfx::ColorSpace::CreateJpeg();
641 CREATE_SHARED_STATE(); 377 CREATE_SHARED_STATE();
642 378
643 CREATE_QUAD_15_NEW(YUVVideoDrawQuad, opaque_rect, visible_rect, 379 CREATE_QUAD_NEW(YUVVideoDrawQuad, opaque_rect, visible_rect,
644 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, 380 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size,
645 uv_tex_size, y_plane_resource_id, u_plane_resource_id, 381 uv_tex_size, y_plane_resource_id, u_plane_resource_id,
646 v_plane_resource_id, a_plane_resource_id, color_space, 382 v_plane_resource_id, a_plane_resource_id, color_space,
647 video_color_space, resource_offset, resource_multiplier, 383 video_color_space, resource_offset, resource_multiplier,
648 bits_per_channel); 384 bits_per_channel);
649 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material); 385 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
650 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); 386 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect);
651 EXPECT_EQ(visible_rect, copy_quad->visible_rect); 387 EXPECT_EQ(visible_rect, copy_quad->visible_rect);
652 EXPECT_EQ(ya_tex_coord_rect, copy_quad->ya_tex_coord_rect); 388 EXPECT_EQ(ya_tex_coord_rect, copy_quad->ya_tex_coord_rect);
653 EXPECT_EQ(uv_tex_coord_rect, copy_quad->uv_tex_coord_rect); 389 EXPECT_EQ(uv_tex_coord_rect, copy_quad->uv_tex_coord_rect);
654 EXPECT_EQ(ya_tex_size, copy_quad->ya_tex_size); 390 EXPECT_EQ(ya_tex_size, copy_quad->ya_tex_size);
655 EXPECT_EQ(uv_tex_size, copy_quad->uv_tex_size); 391 EXPECT_EQ(uv_tex_size, copy_quad->uv_tex_size);
656 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id()); 392 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id());
657 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id()); 393 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id());
658 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id()); 394 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id());
659 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id()); 395 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id());
660 EXPECT_EQ(color_space, copy_quad->color_space); 396 EXPECT_EQ(color_space, copy_quad->color_space);
661 EXPECT_EQ(resource_offset, copy_quad->resource_offset); 397 EXPECT_EQ(resource_offset, copy_quad->resource_offset);
662 EXPECT_EQ(resource_multiplier, copy_quad->resource_multiplier); 398 EXPECT_EQ(resource_multiplier, copy_quad->resource_multiplier);
663 EXPECT_EQ(bits_per_channel, copy_quad->bits_per_channel); 399 EXPECT_EQ(bits_per_channel, copy_quad->bits_per_channel);
400 EXPECT_FALSE(copy_quad->require_overlay);
664 401
665 CREATE_QUAD_13_ALL(YUVVideoDrawQuad, ya_tex_coord_rect, uv_tex_coord_rect, 402 CREATE_QUAD_ALL(YUVVideoDrawQuad, ya_tex_coord_rect, uv_tex_coord_rect,
666 ya_tex_size, uv_tex_size, y_plane_resource_id, 403 ya_tex_size, uv_tex_size, y_plane_resource_id,
667 u_plane_resource_id, v_plane_resource_id, 404 u_plane_resource_id, v_plane_resource_id, a_plane_resource_id,
668 a_plane_resource_id, color_space, video_color_space, 405 color_space, video_color_space, resource_offset,
669 resource_offset, resource_multiplier, bits_per_channel); 406 resource_multiplier, bits_per_channel, require_overlay);
670 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material); 407 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
671 EXPECT_EQ(ya_tex_coord_rect, copy_quad->ya_tex_coord_rect); 408 EXPECT_EQ(ya_tex_coord_rect, copy_quad->ya_tex_coord_rect);
672 EXPECT_EQ(uv_tex_coord_rect, copy_quad->uv_tex_coord_rect); 409 EXPECT_EQ(uv_tex_coord_rect, copy_quad->uv_tex_coord_rect);
673 EXPECT_EQ(ya_tex_size, copy_quad->ya_tex_size); 410 EXPECT_EQ(ya_tex_size, copy_quad->ya_tex_size);
674 EXPECT_EQ(uv_tex_size, copy_quad->uv_tex_size); 411 EXPECT_EQ(uv_tex_size, copy_quad->uv_tex_size);
675 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id()); 412 EXPECT_EQ(y_plane_resource_id, copy_quad->y_plane_resource_id());
676 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id()); 413 EXPECT_EQ(u_plane_resource_id, copy_quad->u_plane_resource_id());
677 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id()); 414 EXPECT_EQ(v_plane_resource_id, copy_quad->v_plane_resource_id());
678 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id()); 415 EXPECT_EQ(a_plane_resource_id, copy_quad->a_plane_resource_id());
679 EXPECT_EQ(color_space, copy_quad->color_space); 416 EXPECT_EQ(color_space, copy_quad->color_space);
680 EXPECT_EQ(resource_offset, copy_quad->resource_offset); 417 EXPECT_EQ(resource_offset, copy_quad->resource_offset);
681 EXPECT_EQ(resource_multiplier, copy_quad->resource_multiplier); 418 EXPECT_EQ(resource_multiplier, copy_quad->resource_multiplier);
682 EXPECT_EQ(bits_per_channel, copy_quad->bits_per_channel); 419 EXPECT_EQ(bits_per_channel, copy_quad->bits_per_channel);
420 EXPECT_EQ(require_overlay, copy_quad->require_overlay);
683 } 421 }
684 422
685 TEST(DrawQuadTest, CopyPictureDrawQuad) { 423 TEST(DrawQuadTest, CopyPictureDrawQuad) {
686 gfx::Rect opaque_rect(33, 44, 22, 33); 424 gfx::Rect opaque_rect(33, 44, 22, 33);
687 gfx::Rect visible_rect(40, 50, 30, 20); 425 gfx::Rect visible_rect(40, 50, 30, 20);
688 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); 426 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f);
689 gfx::Size texture_size(85, 32); 427 gfx::Size texture_size(85, 32);
690 bool nearest_neighbor = true; 428 bool nearest_neighbor = true;
691 ResourceFormat texture_format = RGBA_8888; 429 ResourceFormat texture_format = RGBA_8888;
692 gfx::Rect content_rect(30, 40, 20, 30); 430 gfx::Rect content_rect(30, 40, 20, 30);
693 float contents_scale = 3.141592f; 431 float contents_scale = 3.141592f;
694 scoped_refptr<RasterSource> raster_source = 432 scoped_refptr<RasterSource> raster_source =
695 FakeRasterSource::CreateEmpty(gfx::Size(100, 100)); 433 FakeRasterSource::CreateEmpty(gfx::Size(100, 100));
696 CREATE_SHARED_STATE(); 434 CREATE_SHARED_STATE();
697 435
698 CREATE_QUAD_9_NEW(PictureDrawQuad, opaque_rect, visible_rect, tex_coord_rect, 436 CREATE_QUAD_NEW(PictureDrawQuad, opaque_rect, visible_rect, tex_coord_rect,
699 texture_size, nearest_neighbor, texture_format, 437 texture_size, nearest_neighbor, texture_format, content_rect,
700 content_rect, contents_scale, raster_source); 438 contents_scale, raster_source);
701 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, copy_quad->material); 439 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, copy_quad->material);
702 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect); 440 EXPECT_EQ(opaque_rect, copy_quad->opaque_rect);
703 EXPECT_EQ(visible_rect, copy_quad->visible_rect); 441 EXPECT_EQ(visible_rect, copy_quad->visible_rect);
704 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); 442 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect);
705 EXPECT_EQ(texture_size, copy_quad->texture_size); 443 EXPECT_EQ(texture_size, copy_quad->texture_size);
706 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); 444 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor);
707 EXPECT_EQ(texture_format, copy_quad->texture_format); 445 EXPECT_EQ(texture_format, copy_quad->texture_format);
708 EXPECT_EQ(content_rect, copy_quad->content_rect); 446 EXPECT_EQ(content_rect, copy_quad->content_rect);
709 EXPECT_EQ(contents_scale, copy_quad->contents_scale); 447 EXPECT_EQ(contents_scale, copy_quad->contents_scale);
710 EXPECT_EQ(raster_source, copy_quad->raster_source); 448 EXPECT_EQ(raster_source, copy_quad->raster_source);
711 449
712 CREATE_QUAD_7_ALL(PictureDrawQuad, tex_coord_rect, texture_size, 450 CREATE_QUAD_ALL(PictureDrawQuad, tex_coord_rect, texture_size,
713 nearest_neighbor, texture_format, content_rect, 451 nearest_neighbor, texture_format, content_rect,
714 contents_scale, raster_source); 452 contents_scale, raster_source);
715 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, copy_quad->material); 453 EXPECT_EQ(DrawQuad::PICTURE_CONTENT, copy_quad->material);
716 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect); 454 EXPECT_EQ(tex_coord_rect, copy_quad->tex_coord_rect);
717 EXPECT_EQ(texture_size, copy_quad->texture_size); 455 EXPECT_EQ(texture_size, copy_quad->texture_size);
718 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor); 456 EXPECT_EQ(nearest_neighbor, copy_quad->nearest_neighbor);
719 EXPECT_EQ(texture_format, copy_quad->texture_format); 457 EXPECT_EQ(texture_format, copy_quad->texture_format);
720 EXPECT_EQ(content_rect, copy_quad->content_rect); 458 EXPECT_EQ(content_rect, copy_quad->content_rect);
721 EXPECT_EQ(contents_scale, copy_quad->contents_scale); 459 EXPECT_EQ(contents_scale, copy_quad->contents_scale);
722 EXPECT_EQ(raster_source, copy_quad->raster_source); 460 EXPECT_EQ(raster_source, copy_quad->raster_source);
723 } 461 }
724 462
(...skipping 11 matching lines...) Expand all
736 private: 474 private:
737 int num_resources_; 475 int num_resources_;
738 }; 476 };
739 477
740 TEST_F(DrawQuadIteratorTest, DebugBorderDrawQuad) { 478 TEST_F(DrawQuadIteratorTest, DebugBorderDrawQuad) {
741 gfx::Rect visible_rect(40, 50, 30, 20); 479 gfx::Rect visible_rect(40, 50, 30, 20);
742 SkColor color = 0xfabb0011; 480 SkColor color = 0xfabb0011;
743 int width = 99; 481 int width = 99;
744 482
745 CREATE_SHARED_STATE(); 483 CREATE_SHARED_STATE();
746 CREATE_QUAD_3_NEW(DebugBorderDrawQuad, visible_rect, color, width); 484 CREATE_QUAD_NEW(DebugBorderDrawQuad, visible_rect, color, width);
747 EXPECT_EQ(0, IterateAndCount(quad_new)); 485 EXPECT_EQ(0, IterateAndCount(quad_new));
748 } 486 }
749 487
750 TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) { 488 TEST_F(DrawQuadIteratorTest, RenderPassDrawQuad) {
751 gfx::Rect visible_rect(40, 50, 30, 20); 489 gfx::Rect visible_rect(40, 50, 30, 20);
752 int render_pass_id = 61; 490 int render_pass_id = 61;
753 ResourceId mask_resource_id = 78; 491 ResourceId mask_resource_id = 78;
754 gfx::RectF mask_uv_rect(0.f, 0.f, 33.f, 19.f); 492 gfx::RectF mask_uv_rect(0.f, 0.f, 33.f, 19.f);
755 gfx::Size mask_texture_size(128, 134); 493 gfx::Size mask_texture_size(128, 134);
756 gfx::Vector2dF filters_scale(2.f, 3.f); 494 gfx::Vector2dF filters_scale(2.f, 3.f);
(...skipping 19 matching lines...) Expand all
776 EXPECT_EQ(0, IterateAndCount(quad_new)); 514 EXPECT_EQ(0, IterateAndCount(quad_new));
777 EXPECT_EQ(0u, quad_new->mask_resource_id()); 515 EXPECT_EQ(0u, quad_new->mask_resource_id());
778 } 516 }
779 517
780 TEST_F(DrawQuadIteratorTest, SolidColorDrawQuad) { 518 TEST_F(DrawQuadIteratorTest, SolidColorDrawQuad) {
781 gfx::Rect visible_rect(40, 50, 30, 20); 519 gfx::Rect visible_rect(40, 50, 30, 20);
782 SkColor color = 0x49494949; 520 SkColor color = 0x49494949;
783 bool force_anti_aliasing_off = false; 521 bool force_anti_aliasing_off = false;
784 522
785 CREATE_SHARED_STATE(); 523 CREATE_SHARED_STATE();
786 CREATE_QUAD_3_NEW( 524 CREATE_QUAD_NEW(SolidColorDrawQuad, visible_rect, color,
787 SolidColorDrawQuad, visible_rect, color, force_anti_aliasing_off); 525 force_anti_aliasing_off);
788 EXPECT_EQ(0, IterateAndCount(quad_new)); 526 EXPECT_EQ(0, IterateAndCount(quad_new));
789 } 527 }
790 528
791 TEST_F(DrawQuadIteratorTest, StreamVideoDrawQuad) { 529 TEST_F(DrawQuadIteratorTest, StreamVideoDrawQuad) {
792 gfx::Rect opaque_rect(33, 47, 10, 12); 530 gfx::Rect opaque_rect(33, 47, 10, 12);
793 gfx::Rect visible_rect(40, 50, 30, 20); 531 gfx::Rect visible_rect(40, 50, 30, 20);
794 ResourceId resource_id = 64; 532 ResourceId resource_id = 64;
795 gfx::Size resource_size_in_pixels = gfx::Size(40, 41); 533 gfx::Size resource_size_in_pixels = gfx::Size(40, 41);
796 gfx::Transform matrix = gfx::Transform(0.5, 0.25, 1, 0.75, 0, 1); 534 gfx::Transform matrix = gfx::Transform(0.5, 0.25, 1, 0.75, 0, 1);
797 535
798 CREATE_SHARED_STATE(); 536 CREATE_SHARED_STATE();
799 CREATE_QUAD_5_NEW(StreamVideoDrawQuad, opaque_rect, visible_rect, resource_id, 537 CREATE_QUAD_NEW(StreamVideoDrawQuad, opaque_rect, visible_rect, resource_id,
800 resource_size_in_pixels, matrix); 538 resource_size_in_pixels, matrix);
801 EXPECT_EQ(resource_id, quad_new->resource_id()); 539 EXPECT_EQ(resource_id, quad_new->resource_id());
802 EXPECT_EQ(resource_size_in_pixels, quad_new->resource_size_in_pixels()); 540 EXPECT_EQ(resource_size_in_pixels, quad_new->resource_size_in_pixels());
803 EXPECT_EQ(1, IterateAndCount(quad_new)); 541 EXPECT_EQ(1, IterateAndCount(quad_new));
804 EXPECT_EQ(resource_id + 1, quad_new->resource_id()); 542 EXPECT_EQ(resource_id + 1, quad_new->resource_id());
805 } 543 }
806 544
807 TEST_F(DrawQuadIteratorTest, SurfaceDrawQuad) { 545 TEST_F(DrawQuadIteratorTest, SurfaceDrawQuad) {
808 gfx::Rect visible_rect(40, 50, 30, 20); 546 gfx::Rect visible_rect(40, 50, 30, 20);
809 SurfaceId surface_id(kArbitraryFrameSinkId, 547 SurfaceId surface_id(kArbitraryFrameSinkId,
810 LocalSurfaceId(4321, base::UnguessableToken::Create())); 548 LocalSurfaceId(4321, base::UnguessableToken::Create()));
811 549
812 CREATE_SHARED_STATE(); 550 CREATE_SHARED_STATE();
813 CREATE_QUAD_4_NEW(SurfaceDrawQuad, visible_rect, surface_id, 551 CREATE_QUAD_NEW(SurfaceDrawQuad, visible_rect, surface_id,
814 SurfaceDrawQuadType::PRIMARY, nullptr); 552 SurfaceDrawQuadType::PRIMARY, nullptr);
815 EXPECT_EQ(0, IterateAndCount(quad_new)); 553 EXPECT_EQ(0, IterateAndCount(quad_new));
816 } 554 }
817 555
818 TEST_F(DrawQuadIteratorTest, TextureDrawQuad) { 556 TEST_F(DrawQuadIteratorTest, TextureDrawQuad) {
819 gfx::Rect opaque_rect(33, 47, 10, 12); 557 gfx::Rect opaque_rect(33, 47, 10, 12);
820 gfx::Rect visible_rect(40, 50, 30, 20); 558 gfx::Rect visible_rect(40, 50, 30, 20);
821 unsigned resource_id = 82; 559 unsigned resource_id = 82;
822 bool premultiplied_alpha = true; 560 bool premultiplied_alpha = true;
823 gfx::PointF uv_top_left(0.5f, 224.f); 561 gfx::PointF uv_top_left(0.5f, 224.f);
824 gfx::PointF uv_bottom_right(51.5f, 260.f); 562 gfx::PointF uv_bottom_right(51.5f, 260.f);
825 const float vertex_opacity[] = { 1.0f, 1.0f, 1.0f, 1.0f }; 563 const float vertex_opacity[] = { 1.0f, 1.0f, 1.0f, 1.0f };
826 bool y_flipped = true; 564 bool y_flipped = true;
827 bool nearest_neighbor = true; 565 bool nearest_neighbor = true;
828 bool secure_output_only = true; 566 bool secure_output_only = true;
829 567
830 CREATE_SHARED_STATE(); 568 CREATE_SHARED_STATE();
831 CREATE_QUAD_11_NEW(TextureDrawQuad, opaque_rect, visible_rect, resource_id, 569 CREATE_QUAD_NEW(TextureDrawQuad, opaque_rect, visible_rect, resource_id,
832 premultiplied_alpha, uv_top_left, uv_bottom_right, 570 premultiplied_alpha, uv_top_left, uv_bottom_right,
833 SK_ColorTRANSPARENT, vertex_opacity, y_flipped, 571 SK_ColorTRANSPARENT, vertex_opacity, y_flipped,
834 nearest_neighbor, secure_output_only); 572 nearest_neighbor, secure_output_only);
835 EXPECT_EQ(resource_id, quad_new->resource_id()); 573 EXPECT_EQ(resource_id, quad_new->resource_id());
836 EXPECT_EQ(1, IterateAndCount(quad_new)); 574 EXPECT_EQ(1, IterateAndCount(quad_new));
837 EXPECT_EQ(resource_id + 1, quad_new->resource_id()); 575 EXPECT_EQ(resource_id + 1, quad_new->resource_id());
838 } 576 }
839 577
840 TEST_F(DrawQuadIteratorTest, TileDrawQuad) { 578 TEST_F(DrawQuadIteratorTest, TileDrawQuad) {
841 gfx::Rect opaque_rect(33, 44, 22, 33); 579 gfx::Rect opaque_rect(33, 44, 22, 33);
842 gfx::Rect visible_rect(40, 50, 30, 20); 580 gfx::Rect visible_rect(40, 50, 30, 20);
843 unsigned resource_id = 104; 581 unsigned resource_id = 104;
844 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); 582 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f);
845 gfx::Size texture_size(85, 32); 583 gfx::Size texture_size(85, 32);
846 bool swizzle_contents = true; 584 bool swizzle_contents = true;
847 bool nearest_neighbor = true; 585 bool nearest_neighbor = true;
848 586
849 CREATE_SHARED_STATE(); 587 CREATE_SHARED_STATE();
850 CREATE_QUAD_7_NEW(TileDrawQuad, 588 CREATE_QUAD_NEW(TileDrawQuad, opaque_rect, visible_rect, resource_id,
851 opaque_rect, 589 tex_coord_rect, texture_size, swizzle_contents,
852 visible_rect, 590 nearest_neighbor);
853 resource_id,
854 tex_coord_rect,
855 texture_size,
856 swizzle_contents,
857 nearest_neighbor);
858 EXPECT_EQ(resource_id, quad_new->resource_id()); 591 EXPECT_EQ(resource_id, quad_new->resource_id());
859 EXPECT_EQ(1, IterateAndCount(quad_new)); 592 EXPECT_EQ(1, IterateAndCount(quad_new));
860 EXPECT_EQ(resource_id + 1, quad_new->resource_id()); 593 EXPECT_EQ(resource_id + 1, quad_new->resource_id());
861 } 594 }
862 595
863 TEST_F(DrawQuadIteratorTest, YUVVideoDrawQuad) { 596 TEST_F(DrawQuadIteratorTest, YUVVideoDrawQuad) {
864 gfx::Rect opaque_rect(33, 47, 10, 12); 597 gfx::Rect opaque_rect(33, 47, 10, 12);
865 gfx::Rect visible_rect(40, 50, 30, 20); 598 gfx::Rect visible_rect(40, 50, 30, 20);
866 gfx::RectF ya_tex_coord_rect(0.0f, 0.0f, 0.75f, 0.5f); 599 gfx::RectF ya_tex_coord_rect(0.0f, 0.0f, 0.75f, 0.5f);
867 gfx::RectF uv_tex_coord_rect(0.0f, 0.0f, 0.375f, 0.25f); 600 gfx::RectF uv_tex_coord_rect(0.0f, 0.0f, 0.375f, 0.25f);
868 gfx::Size ya_tex_size(32, 68); 601 gfx::Size ya_tex_size(32, 68);
869 gfx::Size uv_tex_size(41, 51); 602 gfx::Size uv_tex_size(41, 51);
870 ResourceId y_plane_resource_id = 45; 603 ResourceId y_plane_resource_id = 45;
871 ResourceId u_plane_resource_id = 532; 604 ResourceId u_plane_resource_id = 532;
872 ResourceId v_plane_resource_id = 4; 605 ResourceId v_plane_resource_id = 4;
873 ResourceId a_plane_resource_id = 63; 606 ResourceId a_plane_resource_id = 63;
874 YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG; 607 YUVVideoDrawQuad::ColorSpace color_space = YUVVideoDrawQuad::JPEG;
875 gfx::ColorSpace video_color_space = gfx::ColorSpace::CreateJpeg(); 608 gfx::ColorSpace video_color_space = gfx::ColorSpace::CreateJpeg();
876 609
877 CREATE_SHARED_STATE(); 610 CREATE_SHARED_STATE();
878 CREATE_QUAD_15_NEW(YUVVideoDrawQuad, opaque_rect, visible_rect, 611 CREATE_QUAD_NEW(YUVVideoDrawQuad, opaque_rect, visible_rect,
879 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size, 612 ya_tex_coord_rect, uv_tex_coord_rect, ya_tex_size,
880 uv_tex_size, y_plane_resource_id, u_plane_resource_id, 613 uv_tex_size, y_plane_resource_id, u_plane_resource_id,
881 v_plane_resource_id, a_plane_resource_id, color_space, 614 v_plane_resource_id, a_plane_resource_id, color_space,
882 video_color_space, 0.0, 1.0, 5); 615 video_color_space, 0.0, 1.0, 5);
883 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material); 616 EXPECT_EQ(DrawQuad::YUV_VIDEO_CONTENT, copy_quad->material);
884 EXPECT_EQ(y_plane_resource_id, quad_new->y_plane_resource_id()); 617 EXPECT_EQ(y_plane_resource_id, quad_new->y_plane_resource_id());
885 EXPECT_EQ(u_plane_resource_id, quad_new->u_plane_resource_id()); 618 EXPECT_EQ(u_plane_resource_id, quad_new->u_plane_resource_id());
886 EXPECT_EQ(v_plane_resource_id, quad_new->v_plane_resource_id()); 619 EXPECT_EQ(v_plane_resource_id, quad_new->v_plane_resource_id());
887 EXPECT_EQ(a_plane_resource_id, quad_new->a_plane_resource_id()); 620 EXPECT_EQ(a_plane_resource_id, quad_new->a_plane_resource_id());
888 EXPECT_EQ(color_space, quad_new->color_space); 621 EXPECT_EQ(color_space, quad_new->color_space);
889 EXPECT_EQ(4, IterateAndCount(quad_new)); 622 EXPECT_EQ(4, IterateAndCount(quad_new));
890 EXPECT_EQ(y_plane_resource_id + 1, quad_new->y_plane_resource_id()); 623 EXPECT_EQ(y_plane_resource_id + 1, quad_new->y_plane_resource_id());
891 EXPECT_EQ(u_plane_resource_id + 1, quad_new->u_plane_resource_id()); 624 EXPECT_EQ(u_plane_resource_id + 1, quad_new->u_plane_resource_id());
892 EXPECT_EQ(v_plane_resource_id + 1, quad_new->v_plane_resource_id()); 625 EXPECT_EQ(v_plane_resource_id + 1, quad_new->v_plane_resource_id());
893 EXPECT_EQ(a_plane_resource_id + 1, quad_new->a_plane_resource_id()); 626 EXPECT_EQ(a_plane_resource_id + 1, quad_new->a_plane_resource_id());
894 } 627 }
895 628
896 // Disabled until picture draw quad is supported for ubercomp: crbug.com/231715 629 // Disabled until picture draw quad is supported for ubercomp: crbug.com/231715
897 TEST_F(DrawQuadIteratorTest, DISABLED_PictureDrawQuad) { 630 TEST_F(DrawQuadIteratorTest, DISABLED_PictureDrawQuad) {
898 gfx::Rect opaque_rect(33, 44, 22, 33); 631 gfx::Rect opaque_rect(33, 44, 22, 33);
899 gfx::Rect visible_rect(40, 50, 30, 20); 632 gfx::Rect visible_rect(40, 50, 30, 20);
900 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f); 633 gfx::RectF tex_coord_rect(31.f, 12.f, 54.f, 20.f);
901 gfx::Size texture_size(85, 32); 634 gfx::Size texture_size(85, 32);
902 bool nearest_neighbor = true; 635 bool nearest_neighbor = true;
903 ResourceFormat texture_format = RGBA_8888; 636 ResourceFormat texture_format = RGBA_8888;
904 gfx::Rect content_rect(30, 40, 20, 30); 637 gfx::Rect content_rect(30, 40, 20, 30);
905 float contents_scale = 3.141592f; 638 float contents_scale = 3.141592f;
906 scoped_refptr<RasterSource> raster_source = 639 scoped_refptr<RasterSource> raster_source =
907 FakeRasterSource::CreateEmpty(gfx::Size(100, 100)); 640 FakeRasterSource::CreateEmpty(gfx::Size(100, 100));
908 641
909 CREATE_SHARED_STATE(); 642 CREATE_SHARED_STATE();
910 CREATE_QUAD_9_NEW(PictureDrawQuad, opaque_rect, visible_rect, tex_coord_rect, 643 CREATE_QUAD_NEW(PictureDrawQuad, opaque_rect, visible_rect, tex_coord_rect,
911 texture_size, nearest_neighbor, texture_format, 644 texture_size, nearest_neighbor, texture_format, content_rect,
912 content_rect, contents_scale, raster_source); 645 contents_scale, raster_source);
913 EXPECT_EQ(0, IterateAndCount(quad_new)); 646 EXPECT_EQ(0, IterateAndCount(quad_new));
914 } 647 }
915 648
916 TEST(DrawQuadTest, LargestQuadType) { 649 TEST(DrawQuadTest, LargestQuadType) {
917 size_t largest = 0; 650 size_t largest = 0;
918 651
919 for (int i = 0; i <= DrawQuad::MATERIAL_LAST; ++i) { 652 for (int i = 0; i <= DrawQuad::MATERIAL_LAST; ++i) {
920 switch (static_cast<DrawQuad::Material>(i)) { 653 switch (static_cast<DrawQuad::Material>(i)) {
921 case DrawQuad::DEBUG_BORDER: 654 case DrawQuad::DEBUG_BORDER:
922 largest = std::max(largest, sizeof(DebugBorderDrawQuad)); 655 largest = std::max(largest, sizeof(DebugBorderDrawQuad));
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
987 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad); 720 LOG(ERROR) << "YUVVideoDrawQuad " << sizeof(YUVVideoDrawQuad);
988 break; 721 break;
989 case DrawQuad::INVALID: 722 case DrawQuad::INVALID:
990 break; 723 break;
991 } 724 }
992 } 725 }
993 } 726 }
994 727
995 } // namespace 728 } // namespace
996 } // namespace cc 729 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698