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

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: use at() for cc message unittest Created 6 years, 3 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 QuadPtr mojo_quad = Quad::From<cc::DrawQuad>(*color_quad);
73 ASSERT_FALSE(mojo_quad.is_null()); 74 ASSERT_FALSE(mojo_quad.is_null());
74 EXPECT_EQ(MATERIAL_SOLID_COLOR, mojo_quad->material); 75 EXPECT_EQ(MATERIAL_SOLID_COLOR, mojo_quad->material);
75 EXPECT_EQ(Rect::From(rect), mojo_quad->rect); 76 EXPECT_EQ(Rect::From(rect), mojo_quad->rect);
76 EXPECT_EQ(Rect::From(opaque_rect), mojo_quad->opaque_rect); 77 EXPECT_EQ(Rect::From(opaque_rect), mojo_quad->opaque_rect);
77 EXPECT_EQ(Rect::From(visible_rect), mojo_quad->visible_rect); 78 EXPECT_EQ(Rect::From(visible_rect), mojo_quad->visible_rect);
78 EXPECT_EQ(needs_blending, mojo_quad->needs_blending); 79 EXPECT_EQ(needs_blending, mojo_quad->needs_blending);
79 ASSERT_TRUE(mojo_quad->solid_color_quad_state); 80 ASSERT_TRUE(mojo_quad->solid_color_quad_state);
80 SolidColorQuadStatePtr& mojo_color_state = mojo_quad->solid_color_quad_state; 81 SolidColorQuadStatePtr& mojo_color_state = mojo_quad->solid_color_quad_state;
81 EXPECT_EQ(Color::From(arbitrary_color), mojo_color_state->color); 82 EXPECT_EQ(Color::From(arbitrary_color), mojo_color_state->color);
82 EXPECT_EQ(force_anti_aliasing_off, mojo_color_state->force_anti_aliasing_off); 83 EXPECT_EQ(force_anti_aliasing_off, mojo_color_state->force_anti_aliasing_off);
83 } 84 }
84 85
85 TEST_F(SurfaceLibQuadTest, SurfaceQuad) { 86 TEST_F(SurfaceLibQuadTest, SurfaceQuad) {
86 cc::SurfaceDrawQuad* surface_quad = 87 cc::SurfaceDrawQuad* surface_quad =
87 pass->CreateAndAppendDrawQuad<cc::SurfaceDrawQuad>(); 88 pass->CreateAndAppendDrawQuad<cc::SurfaceDrawQuad>();
88 cc::SurfaceId arbitrary_id(5); 89 cc::SurfaceId arbitrary_id(5);
89 surface_quad->SetAll( 90 surface_quad->SetAll(
90 sqs, rect, opaque_rect, visible_rect, needs_blending, arbitrary_id); 91 sqs, rect, opaque_rect, visible_rect, needs_blending, arbitrary_id);
91 92
92 QuadPtr mojo_quad = Quad::From(*(pass->quad_list.back())); 93 QuadPtr mojo_quad = Quad::From<cc::DrawQuad>(*surface_quad);
93 ASSERT_FALSE(mojo_quad.is_null()); 94 ASSERT_FALSE(mojo_quad.is_null());
94 EXPECT_EQ(MATERIAL_SURFACE_CONTENT, mojo_quad->material); 95 EXPECT_EQ(MATERIAL_SURFACE_CONTENT, mojo_quad->material);
95 ASSERT_TRUE(mojo_quad->surface_quad_state); 96 ASSERT_TRUE(mojo_quad->surface_quad_state);
96 SurfaceQuadStatePtr& mojo_surface_state = mojo_quad->surface_quad_state; 97 SurfaceQuadStatePtr& mojo_surface_state = mojo_quad->surface_quad_state;
97 EXPECT_EQ(SurfaceId::From(arbitrary_id), 98 EXPECT_EQ(SurfaceId::From(arbitrary_id),
98 mojo_surface_state->surface); 99 mojo_surface_state->surface);
99 } 100 }
100 101
101 TEST_F(SurfaceLibQuadTest, TextureQuad) { 102 TEST_F(SurfaceLibQuadTest, TextureQuad) {
102 cc::TextureDrawQuad* texture_quad = 103 cc::TextureDrawQuad* texture_quad =
(...skipping 11 matching lines...) Expand all
114 visible_rect, 115 visible_rect,
115 needs_blending, 116 needs_blending,
116 resource_id, 117 resource_id,
117 premultiplied_alpha, 118 premultiplied_alpha,
118 uv_top_left, 119 uv_top_left,
119 uv_bottom_right, 120 uv_bottom_right,
120 background_color, 121 background_color,
121 vertex_opacity, 122 vertex_opacity,
122 flipped); 123 flipped);
123 124
124 QuadPtr mojo_quad = Quad::From(*(pass->quad_list.back())); 125 QuadPtr mojo_quad = Quad::From<cc::DrawQuad>(*texture_quad);
125 ASSERT_FALSE(mojo_quad.is_null()); 126 ASSERT_FALSE(mojo_quad.is_null());
126 EXPECT_EQ(MATERIAL_TEXTURE_CONTENT, mojo_quad->material); 127 EXPECT_EQ(MATERIAL_TEXTURE_CONTENT, mojo_quad->material);
127 ASSERT_TRUE(mojo_quad->texture_quad_state); 128 ASSERT_TRUE(mojo_quad->texture_quad_state);
128 TextureQuadStatePtr& mojo_texture_state = mojo_quad->texture_quad_state; 129 TextureQuadStatePtr& mojo_texture_state = mojo_quad->texture_quad_state;
129 EXPECT_EQ(resource_id, mojo_texture_state->resource_id); 130 EXPECT_EQ(resource_id, mojo_texture_state->resource_id);
130 EXPECT_EQ(premultiplied_alpha, mojo_texture_state->premultiplied_alpha); 131 EXPECT_EQ(premultiplied_alpha, mojo_texture_state->premultiplied_alpha);
131 EXPECT_EQ(PointF::From(uv_top_left), mojo_texture_state->uv_top_left); 132 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); 133 EXPECT_EQ(PointF::From(uv_bottom_right), mojo_texture_state->uv_bottom_right);
133 EXPECT_EQ(Color::From(background_color), 134 EXPECT_EQ(Color::From(background_color),
134 mojo_texture_state->background_color); 135 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(); 311 round_trip_pass->shared_quad_state_list.front();
311 EXPECT_EQ(content_to_target_transform, 312 EXPECT_EQ(content_to_target_transform,
312 round_trip_sqs->content_to_target_transform); 313 round_trip_sqs->content_to_target_transform);
313 EXPECT_EQ(content_bounds, round_trip_sqs->content_bounds); 314 EXPECT_EQ(content_bounds, round_trip_sqs->content_bounds);
314 EXPECT_EQ(visible_content_rect, round_trip_sqs->visible_content_rect); 315 EXPECT_EQ(visible_content_rect, round_trip_sqs->visible_content_rect);
315 EXPECT_EQ(clip_rect, round_trip_sqs->clip_rect); 316 EXPECT_EQ(clip_rect, round_trip_sqs->clip_rect);
316 EXPECT_EQ(is_clipped, round_trip_sqs->is_clipped); 317 EXPECT_EQ(is_clipped, round_trip_sqs->is_clipped);
317 EXPECT_EQ(opacity, round_trip_sqs->opacity); 318 EXPECT_EQ(opacity, round_trip_sqs->opacity);
318 EXPECT_EQ(sorting_context_id, round_trip_sqs->sorting_context_id); 319 EXPECT_EQ(sorting_context_id, round_trip_sqs->sorting_context_id);
319 320
320 cc::QuadList::iterator dq_iter = round_trip_pass->quad_list.begin(); 321 cc::QuadList::Iterator dq_iter = round_trip_pass->quad_list.begin();
321 // First is solid color quad. 322 // First is solid color quad.
322 ASSERT_EQ(cc::DrawQuad::SOLID_COLOR, (*dq_iter)->material); 323 ASSERT_EQ(cc::DrawQuad::SOLID_COLOR, dq_iter->material);
323 EXPECT_EQ(rect, (*dq_iter)->rect); 324 EXPECT_EQ(rect, dq_iter->rect);
324 EXPECT_EQ(opaque_rect, (*dq_iter)->opaque_rect); 325 EXPECT_EQ(opaque_rect, dq_iter->opaque_rect);
325 EXPECT_EQ(visible_rect, (*dq_iter)->visible_rect); 326 EXPECT_EQ(visible_rect, dq_iter->visible_rect);
326 EXPECT_EQ(needs_blending, (*dq_iter)->needs_blending); 327 EXPECT_EQ(needs_blending, dq_iter->needs_blending);
327 const cc::SolidColorDrawQuad* round_trip_color_quad = 328 const cc::SolidColorDrawQuad* round_trip_color_quad =
328 cc::SolidColorDrawQuad::MaterialCast(*dq_iter); 329 cc::SolidColorDrawQuad::MaterialCast(&*dq_iter);
329 EXPECT_EQ(arbitrary_color, round_trip_color_quad->color); 330 EXPECT_EQ(arbitrary_color, round_trip_color_quad->color);
330 EXPECT_EQ(force_anti_aliasing_off, 331 EXPECT_EQ(force_anti_aliasing_off,
331 round_trip_color_quad->force_anti_aliasing_off); 332 round_trip_color_quad->force_anti_aliasing_off);
332 333
333 ++dq_iter; 334 ++dq_iter;
334 // Second is surface quad. 335 // Second is surface quad.
335 ASSERT_EQ(cc::DrawQuad::SURFACE_CONTENT, (*dq_iter)->material); 336 ASSERT_EQ(cc::DrawQuad::SURFACE_CONTENT, dq_iter->material);
336 const cc::SurfaceDrawQuad* round_trip_surface_quad = 337 const cc::SurfaceDrawQuad* round_trip_surface_quad =
337 cc::SurfaceDrawQuad::MaterialCast(*dq_iter); 338 cc::SurfaceDrawQuad::MaterialCast(&*dq_iter);
338 EXPECT_EQ(arbitrary_id, round_trip_surface_quad->surface_id); 339 EXPECT_EQ(arbitrary_id, round_trip_surface_quad->surface_id);
339 340
340 ++dq_iter; 341 ++dq_iter;
341 // Third is texture quad. 342 // Third is texture quad.
342 ASSERT_EQ(cc::DrawQuad::TEXTURE_CONTENT, (*dq_iter)->material); 343 ASSERT_EQ(cc::DrawQuad::TEXTURE_CONTENT, dq_iter->material);
343 const cc::TextureDrawQuad* round_trip_texture_quad = 344 const cc::TextureDrawQuad* round_trip_texture_quad =
344 cc::TextureDrawQuad::MaterialCast(*dq_iter); 345 cc::TextureDrawQuad::MaterialCast(&*dq_iter);
345 EXPECT_EQ(resource_id, round_trip_texture_quad->resource_id); 346 EXPECT_EQ(resource_id, round_trip_texture_quad->resource_id);
346 EXPECT_EQ(premultiplied_alpha, round_trip_texture_quad->premultiplied_alpha); 347 EXPECT_EQ(premultiplied_alpha, round_trip_texture_quad->premultiplied_alpha);
347 EXPECT_EQ(uv_top_left, round_trip_texture_quad->uv_top_left); 348 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); 349 EXPECT_EQ(uv_bottom_right, round_trip_texture_quad->uv_bottom_right);
349 EXPECT_EQ(background_color, round_trip_texture_quad->background_color); 350 EXPECT_EQ(background_color, round_trip_texture_quad->background_color);
350 for (size_t i = 0; i < 4; ++i) { 351 for (size_t i = 0; i < 4; ++i) {
351 EXPECT_EQ(vertex_opacity[i], round_trip_texture_quad->vertex_opacity[i]) 352 EXPECT_EQ(vertex_opacity[i], round_trip_texture_quad->vertex_opacity[i])
352 << i; 353 << i;
353 } 354 }
354 EXPECT_EQ(flipped, round_trip_texture_quad->flipped); 355 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 = 452 cc::ReturnedResource round_trip_resource =
452 mojo_resource.To<cc::ReturnedResource>(); 453 mojo_resource.To<cc::ReturnedResource>();
453 EXPECT_EQ(id, round_trip_resource.id); 454 EXPECT_EQ(id, round_trip_resource.id);
454 EXPECT_EQ(sync_point, round_trip_resource.sync_point); 455 EXPECT_EQ(sync_point, round_trip_resource.sync_point);
455 EXPECT_EQ(count, round_trip_resource.count); 456 EXPECT_EQ(count, round_trip_resource.count);
456 EXPECT_EQ(lost, round_trip_resource.lost); 457 EXPECT_EQ(lost, round_trip_resource.lost);
457 } 458 }
458 459
459 } // namespace 460 } // namespace
460 } // namespace mojo 461 } // namespace mojo
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698