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

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

Issue 21154002: Add support for converting cc::FilterOperations into an SkImageFilter (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « cc/output/software_renderer.cc ('k') | cc/quads/render_pass_draw_quad.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 <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
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
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
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
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
OLDNEW
« no previous file with comments | « cc/output/software_renderer.cc ('k') | cc/quads/render_pass_draw_quad.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698