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 |