Chromium Code Reviews| 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 |