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

Side by Side Diff: content/common/cc_messages_unittest.cc

Issue 23455060: mix-blend-mode implementation for accelerated layers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: unittests fixed Created 7 years 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
« no previous file with comments | « content/common/cc_messages.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 "content/common/cc_messages.h" 5 #include "content/common/cc_messages.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 EXPECT_EQ(a->has_transparent_background, b->has_transparent_background); 48 EXPECT_EQ(a->has_transparent_background, b->has_transparent_background);
49 } 49 }
50 50
51 void Compare(const SharedQuadState* a, const SharedQuadState* b) { 51 void Compare(const SharedQuadState* a, const SharedQuadState* b) {
52 EXPECT_EQ(a->content_to_target_transform, b->content_to_target_transform); 52 EXPECT_EQ(a->content_to_target_transform, b->content_to_target_transform);
53 EXPECT_EQ(a->content_bounds, b->content_bounds); 53 EXPECT_EQ(a->content_bounds, b->content_bounds);
54 EXPECT_EQ(a->visible_content_rect, b->visible_content_rect); 54 EXPECT_EQ(a->visible_content_rect, b->visible_content_rect);
55 EXPECT_EQ(a->clip_rect, b->clip_rect); 55 EXPECT_EQ(a->clip_rect, b->clip_rect);
56 EXPECT_EQ(a->is_clipped, b->is_clipped); 56 EXPECT_EQ(a->is_clipped, b->is_clipped);
57 EXPECT_EQ(a->opacity, b->opacity); 57 EXPECT_EQ(a->opacity, b->opacity);
58 EXPECT_EQ(a->blend_mode, b->blend_mode);
58 } 59 }
59 60
60 void Compare(const DrawQuad* a, const DrawQuad* b) { 61 void Compare(const DrawQuad* a, const DrawQuad* b) {
61 ASSERT_NE(DrawQuad::INVALID, a->material); 62 ASSERT_NE(DrawQuad::INVALID, a->material);
62 ASSERT_EQ(a->material, b->material); 63 ASSERT_EQ(a->material, b->material);
63 EXPECT_EQ(a->rect.ToString(), b->rect.ToString()); 64 EXPECT_EQ(a->rect.ToString(), b->rect.ToString());
64 EXPECT_EQ(a->opaque_rect.ToString(), b->opaque_rect.ToString()); 65 EXPECT_EQ(a->opaque_rect.ToString(), b->opaque_rect.ToString());
65 EXPECT_EQ(a->visible_rect.ToString(), b->visible_rect.ToString()); 66 EXPECT_EQ(a->visible_rect.ToString(), b->visible_rect.ToString());
66 EXPECT_EQ(a->needs_blending, b->needs_blending); 67 EXPECT_EQ(a->needs_blending, b->needs_blending);
67 68
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 gfx::PointF arbitrary_pointf2(26.5f, -35.8f); 224 gfx::PointF arbitrary_pointf2(26.5f, -35.8f);
224 float arbitrary_float1 = 0.7f; 225 float arbitrary_float1 = 0.7f;
225 float arbitrary_float2 = 0.3f; 226 float arbitrary_float2 = 0.3f;
226 float arbitrary_float3 = 0.9f; 227 float arbitrary_float3 = 0.9f;
227 float arbitrary_float_array[4] = {3.5f, 6.2f, 9.3f, 12.3f}; 228 float arbitrary_float_array[4] = {3.5f, 6.2f, 9.3f, 12.3f};
228 bool arbitrary_bool1 = true; 229 bool arbitrary_bool1 = true;
229 bool arbitrary_bool2 = false; 230 bool arbitrary_bool2 = false;
230 bool arbitrary_bool3 = true; 231 bool arbitrary_bool3 = true;
231 int arbitrary_int = 5; 232 int arbitrary_int = 5;
232 SkColor arbitrary_color = SkColorSetARGB(25, 36, 47, 58); 233 SkColor arbitrary_color = SkColorSetARGB(25, 36, 47, 58);
234 SkXfermode::Mode arbitrary_blend_mode1 = SkXfermode::kScreen_Mode;
235 SkXfermode::Mode arbitrary_blend_mode2 = SkXfermode::kLighten_Mode;
236 SkXfermode::Mode arbitrary_blend_mode3 = SkXfermode::kOverlay_Mode;
233 IOSurfaceDrawQuad::Orientation arbitrary_orientation = 237 IOSurfaceDrawQuad::Orientation arbitrary_orientation =
234 IOSurfaceDrawQuad::UNFLIPPED; 238 IOSurfaceDrawQuad::UNFLIPPED;
235 RenderPass::Id arbitrary_id(10, 14); 239 RenderPass::Id arbitrary_id(10, 14);
236 ResourceProvider::ResourceId arbitrary_resourceid1 = 55; 240 ResourceProvider::ResourceId arbitrary_resourceid1 = 55;
237 ResourceProvider::ResourceId arbitrary_resourceid2 = 47; 241 ResourceProvider::ResourceId arbitrary_resourceid2 = 47;
238 ResourceProvider::ResourceId arbitrary_resourceid3 = 23; 242 ResourceProvider::ResourceId arbitrary_resourceid3 = 23;
239 ResourceProvider::ResourceId arbitrary_resourceid4 = 16; 243 ResourceProvider::ResourceId arbitrary_resourceid4 = 16;
240 SkScalar arbitrary_sigma = SkFloatToScalar(2.0f); 244 SkScalar arbitrary_sigma = SkFloatToScalar(2.0f);
241 245
242 FilterOperations arbitrary_filters1; 246 FilterOperations arbitrary_filters1;
243 arbitrary_filters1.Append(FilterOperation::CreateGrayscaleFilter( 247 arbitrary_filters1.Append(FilterOperation::CreateGrayscaleFilter(
244 arbitrary_float1)); 248 arbitrary_float1));
245 skia::RefPtr<SkImageFilter> arbitrary_filter = skia::AdoptRef( 249 skia::RefPtr<SkImageFilter> arbitrary_filter = skia::AdoptRef(
246 new SkBlurImageFilter(arbitrary_sigma, arbitrary_sigma)); 250 new SkBlurImageFilter(arbitrary_sigma, arbitrary_sigma));
247 arbitrary_filters1.Append( 251 arbitrary_filters1.Append(
248 cc::FilterOperation::CreateReferenceFilter(arbitrary_filter)); 252 cc::FilterOperation::CreateReferenceFilter(arbitrary_filter));
249 253
250 FilterOperations arbitrary_filters2; 254 FilterOperations arbitrary_filters2;
251 arbitrary_filters2.Append(FilterOperation::CreateBrightnessFilter( 255 arbitrary_filters2.Append(FilterOperation::CreateBrightnessFilter(
252 arbitrary_float2)); 256 arbitrary_float2));
253 257
254 scoped_ptr<SharedQuadState> shared_state1_in = SharedQuadState::Create(); 258 scoped_ptr<SharedQuadState> shared_state1_in = SharedQuadState::Create();
255 shared_state1_in->SetAll(arbitrary_matrix, 259 shared_state1_in->SetAll(arbitrary_matrix,
256 arbitrary_size1, 260 arbitrary_size1,
257 arbitrary_rect1, 261 arbitrary_rect1,
258 arbitrary_rect2, 262 arbitrary_rect2,
259 arbitrary_bool1, 263 arbitrary_bool1,
260 arbitrary_float1); 264 arbitrary_float1,
265 arbitrary_blend_mode1);
261 scoped_ptr<SharedQuadState> shared_state1_cmp = shared_state1_in->Copy(); 266 scoped_ptr<SharedQuadState> shared_state1_cmp = shared_state1_in->Copy();
262 267
263 scoped_ptr<CheckerboardDrawQuad> checkerboard_in = 268 scoped_ptr<CheckerboardDrawQuad> checkerboard_in =
264 CheckerboardDrawQuad::Create(); 269 CheckerboardDrawQuad::Create();
265 checkerboard_in->SetAll(shared_state1_in.get(), 270 checkerboard_in->SetAll(shared_state1_in.get(),
266 arbitrary_rect1, 271 arbitrary_rect1,
267 arbitrary_rect2_inside_rect1, 272 arbitrary_rect2_inside_rect1,
268 arbitrary_rect1_inside_rect1, 273 arbitrary_rect1_inside_rect1,
269 arbitrary_bool1, 274 arbitrary_bool1,
270 arbitrary_color); 275 arbitrary_color);
(...skipping 24 matching lines...) Expand all
295 arbitrary_orientation); 300 arbitrary_orientation);
296 scoped_ptr<DrawQuad> iosurface_cmp = iosurface_in->Copy( 301 scoped_ptr<DrawQuad> iosurface_cmp = iosurface_in->Copy(
297 iosurface_in->shared_quad_state); 302 iosurface_in->shared_quad_state);
298 303
299 scoped_ptr<SharedQuadState> shared_state2_in = SharedQuadState::Create(); 304 scoped_ptr<SharedQuadState> shared_state2_in = SharedQuadState::Create();
300 shared_state2_in->SetAll(arbitrary_matrix, 305 shared_state2_in->SetAll(arbitrary_matrix,
301 arbitrary_size2, 306 arbitrary_size2,
302 arbitrary_rect2, 307 arbitrary_rect2,
303 arbitrary_rect3, 308 arbitrary_rect3,
304 arbitrary_bool1, 309 arbitrary_bool1,
305 arbitrary_float2); 310 arbitrary_float2,
311 arbitrary_blend_mode2);
306 scoped_ptr<SharedQuadState> shared_state2_cmp = shared_state2_in->Copy(); 312 scoped_ptr<SharedQuadState> shared_state2_cmp = shared_state2_in->Copy();
307 313
308 scoped_ptr<RenderPassDrawQuad> renderpass_in = 314 scoped_ptr<RenderPassDrawQuad> renderpass_in =
309 RenderPassDrawQuad::Create(); 315 RenderPassDrawQuad::Create();
310 renderpass_in->SetAll(shared_state2_in.get(), 316 renderpass_in->SetAll(shared_state2_in.get(),
311 arbitrary_rect1, 317 arbitrary_rect1,
312 arbitrary_rect2_inside_rect1, 318 arbitrary_rect2_inside_rect1,
313 arbitrary_rect1_inside_rect1, 319 arbitrary_rect1_inside_rect1,
314 arbitrary_bool1, 320 arbitrary_bool1,
315 arbitrary_id, 321 arbitrary_id,
316 arbitrary_bool2, 322 arbitrary_bool2,
317 arbitrary_resourceid2, 323 arbitrary_resourceid2,
318 arbitrary_rect1, 324 arbitrary_rect1,
319 arbitrary_rectf1, 325 arbitrary_rectf1,
320 arbitrary_filters1, 326 arbitrary_filters1,
321 arbitrary_filters2); 327 arbitrary_filters2);
322 scoped_ptr<RenderPassDrawQuad> renderpass_cmp = renderpass_in->Copy( 328 scoped_ptr<RenderPassDrawQuad> renderpass_cmp = renderpass_in->Copy(
323 renderpass_in->shared_quad_state, renderpass_in->render_pass_id); 329 renderpass_in->shared_quad_state, renderpass_in->render_pass_id);
324 330
325 scoped_ptr<SharedQuadState> shared_state3_in = SharedQuadState::Create(); 331 scoped_ptr<SharedQuadState> shared_state3_in = SharedQuadState::Create();
326 shared_state3_in->SetAll(arbitrary_matrix, 332 shared_state3_in->SetAll(arbitrary_matrix,
327 arbitrary_size3, 333 arbitrary_size3,
328 arbitrary_rect3, 334 arbitrary_rect3,
329 arbitrary_rect1, 335 arbitrary_rect1,
330 arbitrary_bool1, 336 arbitrary_bool1,
331 arbitrary_float3); 337 arbitrary_float3,
338 arbitrary_blend_mode3);
332 scoped_ptr<SharedQuadState> shared_state3_cmp = shared_state3_in->Copy(); 339 scoped_ptr<SharedQuadState> shared_state3_cmp = shared_state3_in->Copy();
333 340
334 scoped_ptr<SolidColorDrawQuad> solidcolor_in = 341 scoped_ptr<SolidColorDrawQuad> solidcolor_in =
335 SolidColorDrawQuad::Create(); 342 SolidColorDrawQuad::Create();
336 solidcolor_in->SetAll(shared_state3_in.get(), 343 solidcolor_in->SetAll(shared_state3_in.get(),
337 arbitrary_rect3, 344 arbitrary_rect3,
338 arbitrary_rect1_inside_rect3, 345 arbitrary_rect1_inside_rect3,
339 arbitrary_rect2_inside_rect3, 346 arbitrary_rect2_inside_rect3,
340 arbitrary_bool1, 347 arbitrary_bool1,
341 arbitrary_color, 348 arbitrary_color,
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 504
498 scoped_ptr<RenderPass> pass_in = RenderPass::Create(); 505 scoped_ptr<RenderPass> pass_in = RenderPass::Create();
499 pass_in->SetAll(RenderPass::Id(1, 1), 506 pass_in->SetAll(RenderPass::Id(1, 1),
500 gfx::Rect(100, 100), 507 gfx::Rect(100, 100),
501 gfx::RectF(), 508 gfx::RectF(),
502 gfx::Transform(), 509 gfx::Transform(),
503 false); 510 false);
504 511
505 // The first SharedQuadState is used. 512 // The first SharedQuadState is used.
506 scoped_ptr<SharedQuadState> shared_state1_in = SharedQuadState::Create(); 513 scoped_ptr<SharedQuadState> shared_state1_in = SharedQuadState::Create();
507 shared_state1_in->SetAll( 514 shared_state1_in->SetAll(gfx::Transform(),
508 gfx::Transform(), gfx::Size(1, 1), gfx::Rect(), gfx::Rect(), false, 1.f); 515 gfx::Size(1, 1),
516 gfx::Rect(),
517 gfx::Rect(),
518 false,
519 1.f,
520 SkXfermode::kSrcOver_Mode);
509 521
510 quad = CheckerboardDrawQuad::Create(); 522 quad = CheckerboardDrawQuad::Create();
511 quad->SetAll(shared_state1_in.get(), 523 quad->SetAll(shared_state1_in.get(),
512 gfx::Rect(10, 10), 524 gfx::Rect(10, 10),
513 gfx::Rect(10, 10), 525 gfx::Rect(10, 10),
514 gfx::Rect(10, 10), 526 gfx::Rect(10, 10),
515 false, 527 false,
516 SK_ColorRED); 528 SK_ColorRED);
517 pass_in->quad_list.push_back(quad.PassAs<DrawQuad>()); 529 pass_in->quad_list.push_back(quad.PassAs<DrawQuad>());
518 530
519 // The second and third SharedQuadStates are not used. 531 // The second and third SharedQuadStates are not used.
520 scoped_ptr<SharedQuadState> shared_state2_in = SharedQuadState::Create(); 532 scoped_ptr<SharedQuadState> shared_state2_in = SharedQuadState::Create();
521 shared_state2_in->SetAll( 533 shared_state2_in->SetAll(gfx::Transform(),
522 gfx::Transform(), gfx::Size(2, 2), gfx::Rect(), gfx::Rect(), false, 1.f); 534 gfx::Size(2, 2),
535 gfx::Rect(),
536 gfx::Rect(),
537 false,
538 1.f,
539 SkXfermode::kSrcOver_Mode);
523 540
524 scoped_ptr<SharedQuadState> shared_state3_in = SharedQuadState::Create(); 541 scoped_ptr<SharedQuadState> shared_state3_in = SharedQuadState::Create();
525 shared_state3_in->SetAll( 542 shared_state3_in->SetAll(gfx::Transform(),
526 gfx::Transform(), gfx::Size(3, 3), gfx::Rect(), gfx::Rect(), false, 1.f); 543 gfx::Size(3, 3),
544 gfx::Rect(),
545 gfx::Rect(),
546 false,
547 1.f,
548 SkXfermode::kSrcOver_Mode);
527 549
528 // The fourth SharedQuadState is used. 550 // The fourth SharedQuadState is used.
529 scoped_ptr<SharedQuadState> shared_state4_in = SharedQuadState::Create(); 551 scoped_ptr<SharedQuadState> shared_state4_in = SharedQuadState::Create();
530 shared_state4_in->SetAll( 552 shared_state4_in->SetAll(gfx::Transform(),
531 gfx::Transform(), gfx::Size(4, 4), gfx::Rect(), gfx::Rect(), false, 1.f); 553 gfx::Size(4, 4),
554 gfx::Rect(),
555 gfx::Rect(),
556 false,
557 1.f,
558 SkXfermode::kSrcOver_Mode);
532 559
533 quad = CheckerboardDrawQuad::Create(); 560 quad = CheckerboardDrawQuad::Create();
534 quad->SetAll(shared_state4_in.get(), 561 quad->SetAll(shared_state4_in.get(),
535 gfx::Rect(10, 10), 562 gfx::Rect(10, 10),
536 gfx::Rect(10, 10), 563 gfx::Rect(10, 10),
537 gfx::Rect(10, 10), 564 gfx::Rect(10, 10),
538 false, 565 false,
539 SK_ColorRED); 566 SK_ColorRED);
540 pass_in->quad_list.push_back(quad.PassAs<DrawQuad>()); 567 pass_in->quad_list.push_back(quad.PassAs<DrawQuad>());
541 568
542 // The fifth is not used again. 569 // The fifth is not used again.
543 scoped_ptr<SharedQuadState> shared_state5_in = SharedQuadState::Create(); 570 scoped_ptr<SharedQuadState> shared_state5_in = SharedQuadState::Create();
544 shared_state5_in->SetAll( 571 shared_state5_in->SetAll(gfx::Transform(),
545 gfx::Transform(), gfx::Size(5, 5), gfx::Rect(), gfx::Rect(), false, 1.f); 572 gfx::Size(5, 5),
573 gfx::Rect(),
574 gfx::Rect(),
575 false,
576 1.f,
577 SkXfermode::kSrcOver_Mode);
546 578
547 pass_in->shared_quad_state_list.push_back(shared_state1_in.Pass()); 579 pass_in->shared_quad_state_list.push_back(shared_state1_in.Pass());
548 pass_in->shared_quad_state_list.push_back(shared_state2_in.Pass()); 580 pass_in->shared_quad_state_list.push_back(shared_state2_in.Pass());
549 pass_in->shared_quad_state_list.push_back(shared_state3_in.Pass()); 581 pass_in->shared_quad_state_list.push_back(shared_state3_in.Pass());
550 pass_in->shared_quad_state_list.push_back(shared_state4_in.Pass()); 582 pass_in->shared_quad_state_list.push_back(shared_state4_in.Pass());
551 pass_in->shared_quad_state_list.push_back(shared_state5_in.Pass()); 583 pass_in->shared_quad_state_list.push_back(shared_state5_in.Pass());
552 584
553 // 5 SharedQuadStates go in. 585 // 5 SharedQuadStates go in.
554 ASSERT_EQ(5u, pass_in->shared_quad_state_list.size()); 586 ASSERT_EQ(5u, pass_in->shared_quad_state_list.size());
555 ASSERT_EQ(2u, pass_in->quad_list.size()); 587 ASSERT_EQ(2u, pass_in->quad_list.size());
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
682 } 714 }
683 715
684 // Verify the largest DrawQuad type is RenderPassDrawQuad. If this ever 716 // Verify the largest DrawQuad type is RenderPassDrawQuad. If this ever
685 // changes, then the ReserveSizeForRenderPassWrite() method needs to be 717 // changes, then the ReserveSizeForRenderPassWrite() method needs to be
686 // updated as well to use the new largest quad. 718 // updated as well to use the new largest quad.
687 EXPECT_EQ(sizeof(RenderPassDrawQuad), largest); 719 EXPECT_EQ(sizeof(RenderPassDrawQuad), largest);
688 } 720 }
689 721
690 } // namespace 722 } // namespace
691 } // namespace content 723 } // namespace content
OLDNEW
« no previous file with comments | « content/common/cc_messages.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698