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 cc::DrawQuad* base_ptr = static_cast<cc::DrawQuad*>(color_quad); |
74 QuadPtr mojo_quad = Quad::From(*base_ptr); | |
jamesr
2014/09/15 21:48:41
actually, a better way to do this is just one line
| |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |