OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |