| 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/draw_quad.h" | 5 #include "cc/quads/draw_quad.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 242 #define CREATE_QUAD_7_ALL(Type, a, b, c, d, e, f, g) \ | 242 #define CREATE_QUAD_7_ALL(Type, a, b, c, d, e, f, g) \ |
| 243 scoped_ptr<Type> quad_all(Type::Create()); \ | 243 scoped_ptr<Type> quad_all(Type::Create()); \ |
| 244 { \ | 244 { \ |
| 245 QUAD_DATA \ | 245 QUAD_DATA \ |
| 246 quad_all->SetAll(shared_state.get(), quad_rect, quad_opaque_rect, \ | 246 quad_all->SetAll(shared_state.get(), quad_rect, quad_opaque_rect, \ |
| 247 quad_visible_rect, needs_blending, \ | 247 quad_visible_rect, needs_blending, \ |
| 248 a, b, c, d, e, f, g); \ | 248 a, b, c, d, e, f, g); \ |
| 249 } \ | 249 } \ |
| 250 SETUP_AND_COPY_QUAD_ALL(Type, quad_all); | 250 SETUP_AND_COPY_QUAD_ALL(Type, quad_all); |
| 251 | 251 |
| 252 #define CREATE_QUAD_7_NEW_1(Type, a, b, c, d, e, f, g, copy_a) \ |
| 253 scoped_ptr<Type> quad_new(Type::Create()); \ |
| 254 { \ |
| 255 QUAD_DATA \ |
| 256 quad_new->SetNew(shared_state.get(), quad_rect, a, b, c, d, e, f, g); \ |
| 257 } \ |
| 258 SETUP_AND_COPY_QUAD_NEW_1(Type, quad_new, copy_a); |
| 259 |
| 260 #define CREATE_QUAD_7_ALL_1(Type, a, b, c, d, e, f, g, copy_a) \ |
| 261 scoped_ptr<Type> quad_all(Type::Create()); \ |
| 262 { \ |
| 263 QUAD_DATA \ |
| 264 quad_all->SetAll(shared_state.get(), quad_rect, quad_opaque_rect, \ |
| 265 quad_visible_rect, needs_blending, \ |
| 266 a, b, c, d, e, f, g); \ |
| 267 } \ |
| 268 SETUP_AND_COPY_QUAD_ALL_1(Type, quad_all, copy_a); |
| 269 |
| 252 #define CREATE_QUAD_8_NEW(Type, a, b, c, d, e, f, g, h) \ | 270 #define CREATE_QUAD_8_NEW(Type, a, b, c, d, e, f, g, h) \ |
| 253 scoped_ptr<Type> quad_new(Type::Create()); \ | 271 scoped_ptr<Type> quad_new(Type::Create()); \ |
| 254 { \ | 272 { \ |
| 255 QUAD_DATA \ | 273 QUAD_DATA \ |
| 256 quad_new->SetNew(shared_state.get(), quad_rect, a, b, c, d, e, f, g, h); \ | 274 quad_new->SetNew(shared_state.get(), quad_rect, a, b, c, d, e, f, g, h); \ |
| 257 } \ | 275 } \ |
| 258 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); | 276 SETUP_AND_COPY_QUAD_NEW(Type, quad_new); |
| 259 | 277 |
| 260 #define CREATE_QUAD_8_ALL(Type, a, b, c, d, e, f, g, h) \ | 278 #define CREATE_QUAD_8_ALL(Type, a, b, c, d, e, f, g, h) \ |
| 261 scoped_ptr<Type> quad_all(Type::Create()); \ | 279 scoped_ptr<Type> quad_all(Type::Create()); \ |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 359 RenderPass::Id render_pass_id(22, 64); | 377 RenderPass::Id render_pass_id(22, 64); |
| 360 bool is_replica = true; | 378 bool is_replica = true; |
| 361 ResourceProvider::ResourceId mask_resource_id = 78; | 379 ResourceProvider::ResourceId mask_resource_id = 78; |
| 362 gfx::Rect contents_changed_since_last_frame(42, 11, 74, 24); | 380 gfx::Rect contents_changed_since_last_frame(42, 11, 74, 24); |
| 363 gfx::RectF mask_u_v_rect(-45.f, -21.f, 33.f, 19.f); | 381 gfx::RectF mask_u_v_rect(-45.f, -21.f, 33.f, 19.f); |
| 364 FilterOperations filters; | 382 FilterOperations filters; |
| 365 filters.Append(FilterOperation::CreateBlurFilter(1.f)); | 383 filters.Append(FilterOperation::CreateBlurFilter(1.f)); |
| 366 FilterOperations background_filters; | 384 FilterOperations background_filters; |
| 367 background_filters.Append( | 385 background_filters.Append( |
| 368 FilterOperation::CreateGrayscaleFilter(1.f)); | 386 FilterOperation::CreateGrayscaleFilter(1.f)); |
| 369 skia::RefPtr<SkImageFilter> filter = | |
| 370 skia::AdoptRef(new SkBlurImageFilter(SK_Scalar1, SK_Scalar1)); | |
| 371 | 387 |
| 372 RenderPass::Id copied_render_pass_id(235, 11); | 388 RenderPass::Id copied_render_pass_id(235, 11); |
| 373 CREATE_SHARED_STATE(); | 389 CREATE_SHARED_STATE(); |
| 374 | 390 |
| 375 CREATE_QUAD_8_NEW_1(RenderPassDrawQuad, | 391 CREATE_QUAD_7_NEW_1(RenderPassDrawQuad, |
| 376 render_pass_id, | 392 render_pass_id, |
| 377 is_replica, | 393 is_replica, |
| 378 mask_resource_id, | 394 mask_resource_id, |
| 379 contents_changed_since_last_frame, | 395 contents_changed_since_last_frame, |
| 380 mask_u_v_rect, | 396 mask_u_v_rect, |
| 381 filters, | 397 filters, |
| 382 filter, | |
| 383 background_filters, | 398 background_filters, |
| 384 copied_render_pass_id); | 399 copied_render_pass_id); |
| 385 EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material); | 400 EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material); |
| 386 EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id); | 401 EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id); |
| 387 EXPECT_EQ(is_replica, copy_quad->is_replica); | 402 EXPECT_EQ(is_replica, copy_quad->is_replica); |
| 388 EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id); | 403 EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id); |
| 389 EXPECT_RECT_EQ(contents_changed_since_last_frame, | 404 EXPECT_RECT_EQ(contents_changed_since_last_frame, |
| 390 copy_quad->contents_changed_since_last_frame); | 405 copy_quad->contents_changed_since_last_frame); |
| 391 EXPECT_EQ(mask_u_v_rect.ToString(), copy_quad->mask_uv_rect.ToString()); | 406 EXPECT_EQ(mask_u_v_rect.ToString(), copy_quad->mask_uv_rect.ToString()); |
| 392 EXPECT_EQ(filters, copy_quad->filters); | 407 EXPECT_EQ(filters, copy_quad->filters); |
| 393 EXPECT_EQ(filter, copy_quad->filter); | |
| 394 EXPECT_EQ(background_filters, copy_quad->background_filters); | 408 EXPECT_EQ(background_filters, copy_quad->background_filters); |
| 395 | 409 |
| 396 CREATE_QUAD_8_ALL_1(RenderPassDrawQuad, | 410 CREATE_QUAD_7_ALL_1(RenderPassDrawQuad, |
| 397 render_pass_id, | 411 render_pass_id, |
| 398 is_replica, | 412 is_replica, |
| 399 mask_resource_id, | 413 mask_resource_id, |
| 400 contents_changed_since_last_frame, | 414 contents_changed_since_last_frame, |
| 401 mask_u_v_rect, | 415 mask_u_v_rect, |
| 402 filters, | 416 filters, |
| 403 filter, | |
| 404 background_filters, | 417 background_filters, |
| 405 copied_render_pass_id); | 418 copied_render_pass_id); |
| 406 EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material); | 419 EXPECT_EQ(DrawQuad::RENDER_PASS, copy_quad->material); |
| 407 EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id); | 420 EXPECT_EQ(copied_render_pass_id, copy_quad->render_pass_id); |
| 408 EXPECT_EQ(is_replica, copy_quad->is_replica); | 421 EXPECT_EQ(is_replica, copy_quad->is_replica); |
| 409 EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id); | 422 EXPECT_EQ(mask_resource_id, copy_quad->mask_resource_id); |
| 410 EXPECT_RECT_EQ(contents_changed_since_last_frame, | 423 EXPECT_RECT_EQ(contents_changed_since_last_frame, |
| 411 copy_quad->contents_changed_since_last_frame); | 424 copy_quad->contents_changed_since_last_frame); |
| 412 EXPECT_EQ(mask_u_v_rect.ToString(), copy_quad->mask_uv_rect.ToString()); | 425 EXPECT_EQ(mask_u_v_rect.ToString(), copy_quad->mask_uv_rect.ToString()); |
| 413 EXPECT_EQ(filters, copy_quad->filters); | 426 EXPECT_EQ(filters, copy_quad->filters); |
| 414 EXPECT_EQ(filter, copy_quad->filter); | |
| 415 EXPECT_EQ(background_filters, copy_quad->background_filters); | 427 EXPECT_EQ(background_filters, copy_quad->background_filters); |
| 416 } | 428 } |
| 417 | 429 |
| 418 TEST(DrawQuadTest, CopySolidColorDrawQuad) { | 430 TEST(DrawQuadTest, CopySolidColorDrawQuad) { |
| 419 SkColor color = 0x49494949; | 431 SkColor color = 0x49494949; |
| 420 bool force_anti_aliasing_off = false; | 432 bool force_anti_aliasing_off = false; |
| 421 CREATE_SHARED_STATE(); | 433 CREATE_SHARED_STATE(); |
| 422 | 434 |
| 423 CREATE_QUAD_2_NEW(SolidColorDrawQuad, color, force_anti_aliasing_off); | 435 CREATE_QUAD_2_NEW(SolidColorDrawQuad, color, force_anti_aliasing_off); |
| 424 EXPECT_EQ(DrawQuad::SOLID_COLOR, copy_quad->material); | 436 EXPECT_EQ(DrawQuad::SOLID_COLOR, copy_quad->material); |
| (...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 765 RenderPass::Id render_pass_id(22, 64); | 777 RenderPass::Id render_pass_id(22, 64); |
| 766 bool is_replica = true; | 778 bool is_replica = true; |
| 767 ResourceProvider::ResourceId mask_resource_id = 78; | 779 ResourceProvider::ResourceId mask_resource_id = 78; |
| 768 gfx::Rect contents_changed_since_last_frame(42, 11, 74, 24); | 780 gfx::Rect contents_changed_since_last_frame(42, 11, 74, 24); |
| 769 gfx::RectF mask_u_v_rect(-45.f, -21.f, 33.f, 19.f); | 781 gfx::RectF mask_u_v_rect(-45.f, -21.f, 33.f, 19.f); |
| 770 FilterOperations filters; | 782 FilterOperations filters; |
| 771 filters.Append(FilterOperation::CreateBlurFilter(1.f)); | 783 filters.Append(FilterOperation::CreateBlurFilter(1.f)); |
| 772 FilterOperations background_filters; | 784 FilterOperations background_filters; |
| 773 background_filters.Append( | 785 background_filters.Append( |
| 774 FilterOperation::CreateGrayscaleFilter(1.f)); | 786 FilterOperation::CreateGrayscaleFilter(1.f)); |
| 775 skia::RefPtr<SkImageFilter> filter = | |
| 776 skia::AdoptRef(new SkBlurImageFilter(SK_Scalar1, SK_Scalar1)); | |
| 777 | 787 |
| 778 RenderPass::Id copied_render_pass_id(235, 11); | 788 RenderPass::Id copied_render_pass_id(235, 11); |
| 779 | 789 |
| 780 CREATE_SHARED_STATE(); | 790 CREATE_SHARED_STATE(); |
| 781 CREATE_QUAD_8_NEW_1(RenderPassDrawQuad, | 791 CREATE_QUAD_7_NEW_1(RenderPassDrawQuad, |
| 782 render_pass_id, | 792 render_pass_id, |
| 783 is_replica, | 793 is_replica, |
| 784 mask_resource_id, | 794 mask_resource_id, |
| 785 contents_changed_since_last_frame, | 795 contents_changed_since_last_frame, |
| 786 mask_u_v_rect, | 796 mask_u_v_rect, |
| 787 filters, | 797 filters, |
| 788 filter, | |
| 789 background_filters, | 798 background_filters, |
| 790 copied_render_pass_id); | 799 copied_render_pass_id); |
| 791 EXPECT_EQ(mask_resource_id, quad_new->mask_resource_id); | 800 EXPECT_EQ(mask_resource_id, quad_new->mask_resource_id); |
| 792 EXPECT_EQ(1, IterateAndCount(quad_new.get())); | 801 EXPECT_EQ(1, IterateAndCount(quad_new.get())); |
| 793 EXPECT_EQ(mask_resource_id + 1, quad_new->mask_resource_id); | 802 EXPECT_EQ(mask_resource_id + 1, quad_new->mask_resource_id); |
| 794 quad_new->mask_resource_id = 0; | 803 quad_new->mask_resource_id = 0; |
| 795 EXPECT_EQ(0, IterateAndCount(quad_new.get())); | 804 EXPECT_EQ(0, IterateAndCount(quad_new.get())); |
| 796 EXPECT_EQ(0u, quad_new->mask_resource_id); | 805 EXPECT_EQ(0u, quad_new->mask_resource_id); |
| 797 } | 806 } |
| 798 | 807 |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 907 texture_format, | 916 texture_format, |
| 908 content_rect, | 917 content_rect, |
| 909 contents_scale, | 918 contents_scale, |
| 910 can_draw_direct_to_backbuffer, | 919 can_draw_direct_to_backbuffer, |
| 911 picture_pile); | 920 picture_pile); |
| 912 EXPECT_EQ(0, IterateAndCount(quad_new.get())); | 921 EXPECT_EQ(0, IterateAndCount(quad_new.get())); |
| 913 } | 922 } |
| 914 | 923 |
| 915 } // namespace | 924 } // namespace |
| 916 } // namespace cc | 925 } // namespace cc |
| OLD | NEW |