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

Side by Side Diff: mojo/services/public/cpp/surfaces/tests/surface_unittest.cc

Issue 448303002: Use custom ListContainer to allocate DrawQuads (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@perftest
Patch Set: fix win trybot compile error Created 6 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/render_pass.h" 5 #include "cc/quads/render_pass.h"
6 #include "cc/quads/render_pass_draw_quad.h"
6 #include "cc/quads/solid_color_draw_quad.h" 7 #include "cc/quads/solid_color_draw_quad.h"
7 #include "cc/quads/surface_draw_quad.h" 8 #include "cc/quads/surface_draw_quad.h"
8 #include "cc/quads/texture_draw_quad.h" 9 #include "cc/quads/texture_draw_quad.h"
9 #include "gpu/command_buffer/common/mailbox.h" 10 #include "gpu/command_buffer/common/mailbox.h"
10 #include "gpu/command_buffer/common/mailbox_holder.h" 11 #include "gpu/command_buffer/common/mailbox_holder.h"
11 #include "mojo/services/public/cpp/geometry/geometry_type_converters.h" 12 #include "mojo/services/public/cpp/geometry/geometry_type_converters.h"
12 #include "mojo/services/public/cpp/surfaces/surfaces_type_converters.h" 13 #include "mojo/services/public/cpp/surfaces/surfaces_type_converters.h"
13 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
14 #include "third_party/skia/include/core/SkColor.h" 15 #include "third_party/skia/include/core/SkColor.h"
15 #include "third_party/skia/include/core/SkXfermode.h" 16 #include "third_party/skia/include/core/SkXfermode.h"
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 SkColor arbitrary_color = SK_ColorGREEN; 63 SkColor arbitrary_color = SK_ColorGREEN;
63 bool force_anti_aliasing_off = true; 64 bool force_anti_aliasing_off = true;
64 color_quad->SetAll(sqs, 65 color_quad->SetAll(sqs,
65 rect, 66 rect,
66 opaque_rect, 67 opaque_rect,
67 visible_rect, 68 visible_rect,
68 needs_blending, 69 needs_blending,
69 arbitrary_color, 70 arbitrary_color,
70 force_anti_aliasing_off); 71 force_anti_aliasing_off);
71 72
72 QuadPtr mojo_quad = Quad::From(*(pass->quad_list.back())); 73 cc::DrawQuad* base_ptr = static_cast<cc::DrawQuad*>(color_quad);
74 QuadPtr mojo_quad = Quad::From(*base_ptr);
danakj 2014/09/23 17:59:38 james previously said you can do something like:
weiliangc 2014/09/24 20:14:35 Sorry, my bad. Done.
73 ASSERT_FALSE(mojo_quad.is_null()); 75 ASSERT_FALSE(mojo_quad.is_null());
74 EXPECT_EQ(MATERIAL_SOLID_COLOR, mojo_quad->material); 76 EXPECT_EQ(MATERIAL_SOLID_COLOR, mojo_quad->material);
75 EXPECT_EQ(Rect::From(rect), mojo_quad->rect); 77 EXPECT_EQ(Rect::From(rect), mojo_quad->rect);
76 EXPECT_EQ(Rect::From(opaque_rect), mojo_quad->opaque_rect); 78 EXPECT_EQ(Rect::From(opaque_rect), mojo_quad->opaque_rect);
77 EXPECT_EQ(Rect::From(visible_rect), mojo_quad->visible_rect); 79 EXPECT_EQ(Rect::From(visible_rect), mojo_quad->visible_rect);
78 EXPECT_EQ(needs_blending, mojo_quad->needs_blending); 80 EXPECT_EQ(needs_blending, mojo_quad->needs_blending);
79 ASSERT_TRUE(mojo_quad->solid_color_quad_state); 81 ASSERT_TRUE(mojo_quad->solid_color_quad_state);
80 SolidColorQuadStatePtr& mojo_color_state = mojo_quad->solid_color_quad_state; 82 SolidColorQuadStatePtr& mojo_color_state = mojo_quad->solid_color_quad_state;
81 EXPECT_EQ(Color::From(arbitrary_color), mojo_color_state->color); 83 EXPECT_EQ(Color::From(arbitrary_color), mojo_color_state->color);
82 EXPECT_EQ(force_anti_aliasing_off, mojo_color_state->force_anti_aliasing_off); 84 EXPECT_EQ(force_anti_aliasing_off, mojo_color_state->force_anti_aliasing_off);
83 } 85 }
84 86
85 TEST_F(SurfaceLibQuadTest, SurfaceQuad) { 87 TEST_F(SurfaceLibQuadTest, SurfaceQuad) {
86 cc::SurfaceDrawQuad* surface_quad = 88 cc::SurfaceDrawQuad* surface_quad =
87 pass->CreateAndAppendDrawQuad<cc::SurfaceDrawQuad>(); 89 pass->CreateAndAppendDrawQuad<cc::SurfaceDrawQuad>();
88 cc::SurfaceId arbitrary_id(5); 90 cc::SurfaceId arbitrary_id(5);
89 surface_quad->SetAll( 91 surface_quad->SetAll(
90 sqs, rect, opaque_rect, visible_rect, needs_blending, arbitrary_id); 92 sqs, rect, opaque_rect, visible_rect, needs_blending, arbitrary_id);
91 93
92 QuadPtr mojo_quad = Quad::From(*(pass->quad_list.back())); 94 cc::DrawQuad* base_ptr = static_cast<cc::DrawQuad*>(surface_quad);
95 QuadPtr mojo_quad = Quad::From(*base_ptr);
93 ASSERT_FALSE(mojo_quad.is_null()); 96 ASSERT_FALSE(mojo_quad.is_null());
94 EXPECT_EQ(MATERIAL_SURFACE_CONTENT, mojo_quad->material); 97 EXPECT_EQ(MATERIAL_SURFACE_CONTENT, mojo_quad->material);
95 ASSERT_TRUE(mojo_quad->surface_quad_state); 98 ASSERT_TRUE(mojo_quad->surface_quad_state);
96 SurfaceQuadStatePtr& mojo_surface_state = mojo_quad->surface_quad_state; 99 SurfaceQuadStatePtr& mojo_surface_state = mojo_quad->surface_quad_state;
97 EXPECT_EQ(SurfaceId::From(arbitrary_id), 100 EXPECT_EQ(SurfaceId::From(arbitrary_id),
98 mojo_surface_state->surface); 101 mojo_surface_state->surface);
99 } 102 }
100 103
101 TEST_F(SurfaceLibQuadTest, TextureQuad) { 104 TEST_F(SurfaceLibQuadTest, TextureQuad) {
102 cc::TextureDrawQuad* texture_quad = 105 cc::TextureDrawQuad* texture_quad =
(...skipping 11 matching lines...) Expand all
114 visible_rect, 117 visible_rect,
115 needs_blending, 118 needs_blending,
116 resource_id, 119 resource_id,
117 premultiplied_alpha, 120 premultiplied_alpha,
118 uv_top_left, 121 uv_top_left,
119 uv_bottom_right, 122 uv_bottom_right,
120 background_color, 123 background_color,
121 vertex_opacity, 124 vertex_opacity,
122 flipped); 125 flipped);
123 126
124 QuadPtr mojo_quad = Quad::From(*(pass->quad_list.back())); 127 cc::DrawQuad* base_ptr = static_cast<cc::DrawQuad*>(texture_quad);
128 QuadPtr mojo_quad = Quad::From(*base_ptr);
125 ASSERT_FALSE(mojo_quad.is_null()); 129 ASSERT_FALSE(mojo_quad.is_null());
126 EXPECT_EQ(MATERIAL_TEXTURE_CONTENT, mojo_quad->material); 130 EXPECT_EQ(MATERIAL_TEXTURE_CONTENT, mojo_quad->material);
127 ASSERT_TRUE(mojo_quad->texture_quad_state); 131 ASSERT_TRUE(mojo_quad->texture_quad_state);
128 TextureQuadStatePtr& mojo_texture_state = mojo_quad->texture_quad_state; 132 TextureQuadStatePtr& mojo_texture_state = mojo_quad->texture_quad_state;
129 EXPECT_EQ(resource_id, mojo_texture_state->resource_id); 133 EXPECT_EQ(resource_id, mojo_texture_state->resource_id);
130 EXPECT_EQ(premultiplied_alpha, mojo_texture_state->premultiplied_alpha); 134 EXPECT_EQ(premultiplied_alpha, mojo_texture_state->premultiplied_alpha);
131 EXPECT_EQ(PointF::From(uv_top_left), mojo_texture_state->uv_top_left); 135 EXPECT_EQ(PointF::From(uv_top_left), mojo_texture_state->uv_top_left);
132 EXPECT_EQ(PointF::From(uv_bottom_right), mojo_texture_state->uv_bottom_right); 136 EXPECT_EQ(PointF::From(uv_bottom_right), mojo_texture_state->uv_bottom_right);
133 EXPECT_EQ(Color::From(background_color), 137 EXPECT_EQ(Color::From(background_color),
134 mojo_texture_state->background_color); 138 mojo_texture_state->background_color);
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
310 round_trip_pass->shared_quad_state_list.front(); 314 round_trip_pass->shared_quad_state_list.front();
311 EXPECT_EQ(content_to_target_transform, 315 EXPECT_EQ(content_to_target_transform,
312 round_trip_sqs->content_to_target_transform); 316 round_trip_sqs->content_to_target_transform);
313 EXPECT_EQ(content_bounds, round_trip_sqs->content_bounds); 317 EXPECT_EQ(content_bounds, round_trip_sqs->content_bounds);
314 EXPECT_EQ(visible_content_rect, round_trip_sqs->visible_content_rect); 318 EXPECT_EQ(visible_content_rect, round_trip_sqs->visible_content_rect);
315 EXPECT_EQ(clip_rect, round_trip_sqs->clip_rect); 319 EXPECT_EQ(clip_rect, round_trip_sqs->clip_rect);
316 EXPECT_EQ(is_clipped, round_trip_sqs->is_clipped); 320 EXPECT_EQ(is_clipped, round_trip_sqs->is_clipped);
317 EXPECT_EQ(opacity, round_trip_sqs->opacity); 321 EXPECT_EQ(opacity, round_trip_sqs->opacity);
318 EXPECT_EQ(sorting_context_id, round_trip_sqs->sorting_context_id); 322 EXPECT_EQ(sorting_context_id, round_trip_sqs->sorting_context_id);
319 323
320 cc::QuadList::iterator dq_iter = round_trip_pass->quad_list.begin(); 324 cc::QuadList::Iterator dq_iter = round_trip_pass->quad_list.begin();
321 // First is solid color quad. 325 // First is solid color quad.
322 ASSERT_EQ(cc::DrawQuad::SOLID_COLOR, (*dq_iter)->material); 326 ASSERT_EQ(cc::DrawQuad::SOLID_COLOR, dq_iter->material);
323 EXPECT_EQ(rect, (*dq_iter)->rect); 327 EXPECT_EQ(rect, dq_iter->rect);
324 EXPECT_EQ(opaque_rect, (*dq_iter)->opaque_rect); 328 EXPECT_EQ(opaque_rect, dq_iter->opaque_rect);
325 EXPECT_EQ(visible_rect, (*dq_iter)->visible_rect); 329 EXPECT_EQ(visible_rect, dq_iter->visible_rect);
326 EXPECT_EQ(needs_blending, (*dq_iter)->needs_blending); 330 EXPECT_EQ(needs_blending, dq_iter->needs_blending);
327 const cc::SolidColorDrawQuad* round_trip_color_quad = 331 const cc::SolidColorDrawQuad* round_trip_color_quad =
328 cc::SolidColorDrawQuad::MaterialCast(*dq_iter); 332 cc::SolidColorDrawQuad::MaterialCast(&*dq_iter);
329 EXPECT_EQ(arbitrary_color, round_trip_color_quad->color); 333 EXPECT_EQ(arbitrary_color, round_trip_color_quad->color);
330 EXPECT_EQ(force_anti_aliasing_off, 334 EXPECT_EQ(force_anti_aliasing_off,
331 round_trip_color_quad->force_anti_aliasing_off); 335 round_trip_color_quad->force_anti_aliasing_off);
332 336
333 ++dq_iter; 337 ++dq_iter;
334 // Second is surface quad. 338 // Second is surface quad.
335 ASSERT_EQ(cc::DrawQuad::SURFACE_CONTENT, (*dq_iter)->material); 339 ASSERT_EQ(cc::DrawQuad::SURFACE_CONTENT, dq_iter->material);
336 const cc::SurfaceDrawQuad* round_trip_surface_quad = 340 const cc::SurfaceDrawQuad* round_trip_surface_quad =
337 cc::SurfaceDrawQuad::MaterialCast(*dq_iter); 341 cc::SurfaceDrawQuad::MaterialCast(&*dq_iter);
338 EXPECT_EQ(arbitrary_id, round_trip_surface_quad->surface_id); 342 EXPECT_EQ(arbitrary_id, round_trip_surface_quad->surface_id);
339 343
340 ++dq_iter; 344 ++dq_iter;
341 // Third is texture quad. 345 // Third is texture quad.
342 ASSERT_EQ(cc::DrawQuad::TEXTURE_CONTENT, (*dq_iter)->material); 346 ASSERT_EQ(cc::DrawQuad::TEXTURE_CONTENT, dq_iter->material);
343 const cc::TextureDrawQuad* round_trip_texture_quad = 347 const cc::TextureDrawQuad* round_trip_texture_quad =
344 cc::TextureDrawQuad::MaterialCast(*dq_iter); 348 cc::TextureDrawQuad::MaterialCast(&*dq_iter);
345 EXPECT_EQ(resource_id, round_trip_texture_quad->resource_id); 349 EXPECT_EQ(resource_id, round_trip_texture_quad->resource_id);
346 EXPECT_EQ(premultiplied_alpha, round_trip_texture_quad->premultiplied_alpha); 350 EXPECT_EQ(premultiplied_alpha, round_trip_texture_quad->premultiplied_alpha);
347 EXPECT_EQ(uv_top_left, round_trip_texture_quad->uv_top_left); 351 EXPECT_EQ(uv_top_left, round_trip_texture_quad->uv_top_left);
348 EXPECT_EQ(uv_bottom_right, round_trip_texture_quad->uv_bottom_right); 352 EXPECT_EQ(uv_bottom_right, round_trip_texture_quad->uv_bottom_right);
349 EXPECT_EQ(background_color, round_trip_texture_quad->background_color); 353 EXPECT_EQ(background_color, round_trip_texture_quad->background_color);
350 for (size_t i = 0; i < 4; ++i) { 354 for (size_t i = 0; i < 4; ++i) {
351 EXPECT_EQ(vertex_opacity[i], round_trip_texture_quad->vertex_opacity[i]) 355 EXPECT_EQ(vertex_opacity[i], round_trip_texture_quad->vertex_opacity[i])
352 << i; 356 << i;
353 } 357 }
354 EXPECT_EQ(flipped, round_trip_texture_quad->flipped); 358 EXPECT_EQ(flipped, round_trip_texture_quad->flipped);
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 cc::ReturnedResource round_trip_resource = 455 cc::ReturnedResource round_trip_resource =
452 mojo_resource.To<cc::ReturnedResource>(); 456 mojo_resource.To<cc::ReturnedResource>();
453 EXPECT_EQ(id, round_trip_resource.id); 457 EXPECT_EQ(id, round_trip_resource.id);
454 EXPECT_EQ(sync_point, round_trip_resource.sync_point); 458 EXPECT_EQ(sync_point, round_trip_resource.sync_point);
455 EXPECT_EQ(count, round_trip_resource.count); 459 EXPECT_EQ(count, round_trip_resource.count);
456 EXPECT_EQ(lost, round_trip_resource.lost); 460 EXPECT_EQ(lost, round_trip_resource.lost);
457 } 461 }
458 462
459 } // namespace 463 } // namespace
460 } // namespace mojo 464 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698