| 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 <stddef.h> | 5 #include <stddef.h> |
| 6 #include <stdint.h> | 6 #include <stdint.h> |
| 7 | 7 |
| 8 #include <utility> | 8 #include <utility> |
| 9 | 9 |
| 10 #include "cc/quads/debug_border_draw_quad.h" | 10 #include "cc/quads/debug_border_draw_quad.h" |
| 11 #include "cc/quads/render_pass.h" | 11 #include "cc/quads/render_pass.h" |
| 12 #include "cc/quads/solid_color_draw_quad.h" | 12 #include "cc/quads/solid_color_draw_quad.h" |
| 13 #include "cc/quads/surface_draw_quad.h" | 13 #include "cc/quads/surface_draw_quad.h" |
| 14 #include "cc/quads/texture_draw_quad.h" | 14 #include "cc/quads/texture_draw_quad.h" |
| 15 #include "cc/resources/resource_provider.h" | 15 #include "cc/resources/resource_provider.h" |
| 16 #include "gpu/command_buffer/common/mailbox.h" | 16 #include "gpu/command_buffer/common/mailbox.h" |
| 17 #include "gpu/command_buffer/common/mailbox_holder.h" | 17 #include "gpu/command_buffer/common/mailbox_holder.h" |
| 18 #include "gpu/command_buffer/common/sync_token.h" | 18 #include "gpu/command_buffer/common/sync_token.h" |
| 19 #include "mojo/converters/geometry/geometry_type_converters.h" | |
| 20 #include "mojo/converters/surfaces/surfaces_type_converters.h" | 19 #include "mojo/converters/surfaces/surfaces_type_converters.h" |
| 21 #include "mojo/converters/transform/transform_type_converters.h" | 20 #include "mojo/converters/transform/transform_type_converters.h" |
| 22 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
| 23 #include "third_party/skia/include/core/SkColor.h" | 22 #include "third_party/skia/include/core/SkColor.h" |
| 24 #include "third_party/skia/include/core/SkXfermode.h" | 23 #include "third_party/skia/include/core/SkXfermode.h" |
| 25 | 24 |
| 26 using mus::mojom::Color; | 25 using mus::mojom::Color; |
| 27 using mus::mojom::ColorPtr; | 26 using mus::mojom::ColorPtr; |
| 28 using mus::mojom::CompositorFrame; | 27 using mus::mojom::CompositorFrame; |
| 29 using mus::mojom::CompositorFramePtr; | 28 using mus::mojom::CompositorFramePtr; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 111 rect, | 110 rect, |
| 112 opaque_rect, | 111 opaque_rect, |
| 113 visible_rect, | 112 visible_rect, |
| 114 needs_blending, | 113 needs_blending, |
| 115 arbitrary_color, | 114 arbitrary_color, |
| 116 force_anti_aliasing_off); | 115 force_anti_aliasing_off); |
| 117 | 116 |
| 118 QuadPtr mus_quad = Quad::From<cc::DrawQuad>(*color_quad); | 117 QuadPtr mus_quad = Quad::From<cc::DrawQuad>(*color_quad); |
| 119 ASSERT_FALSE(mus_quad.is_null()); | 118 ASSERT_FALSE(mus_quad.is_null()); |
| 120 EXPECT_EQ(mus::mojom::Material::SOLID_COLOR, mus_quad->material); | 119 EXPECT_EQ(mus::mojom::Material::SOLID_COLOR, mus_quad->material); |
| 121 EXPECT_TRUE(Rect::From(rect).Equals(mus_quad->rect)); | 120 EXPECT_EQ(rect, mus_quad->rect); |
| 122 EXPECT_TRUE(Rect::From(opaque_rect).Equals(mus_quad->opaque_rect)); | 121 EXPECT_EQ(opaque_rect, mus_quad->opaque_rect); |
| 123 EXPECT_TRUE(Rect::From(visible_rect).Equals(mus_quad->visible_rect)); | 122 EXPECT_EQ(visible_rect, mus_quad->visible_rect); |
| 124 EXPECT_EQ(needs_blending, mus_quad->needs_blending); | 123 EXPECT_EQ(needs_blending, mus_quad->needs_blending); |
| 125 ASSERT_TRUE(mus_quad->solid_color_quad_state); | 124 ASSERT_TRUE(mus_quad->solid_color_quad_state); |
| 126 SolidColorQuadStatePtr& mus_color_state = mus_quad->solid_color_quad_state; | 125 SolidColorQuadStatePtr& mus_color_state = mus_quad->solid_color_quad_state; |
| 127 EXPECT_TRUE(Color::From(arbitrary_color).Equals(mus_color_state->color)); | 126 EXPECT_TRUE(Color::From(arbitrary_color).Equals(mus_color_state->color)); |
| 128 EXPECT_EQ(force_anti_aliasing_off, mus_color_state->force_anti_aliasing_off); | 127 EXPECT_EQ(force_anti_aliasing_off, mus_color_state->force_anti_aliasing_off); |
| 129 } | 128 } |
| 130 | 129 |
| 131 TEST_F(SurfaceLibQuadTest, SurfaceQuad) { | 130 TEST_F(SurfaceLibQuadTest, SurfaceQuad) { |
| 132 cc::SurfaceDrawQuad* surface_quad = | 131 cc::SurfaceDrawQuad* surface_quad = |
| 133 pass->CreateAndAppendDrawQuad<cc::SurfaceDrawQuad>(); | 132 pass->CreateAndAppendDrawQuad<cc::SurfaceDrawQuad>(); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 161 vertex_opacity, y_flipped, nearest_neighbor, | 160 vertex_opacity, y_flipped, nearest_neighbor, |
| 162 secure_output_only); | 161 secure_output_only); |
| 163 | 162 |
| 164 QuadPtr mus_quad = Quad::From<cc::DrawQuad>(*texture_quad); | 163 QuadPtr mus_quad = Quad::From<cc::DrawQuad>(*texture_quad); |
| 165 ASSERT_FALSE(mus_quad.is_null()); | 164 ASSERT_FALSE(mus_quad.is_null()); |
| 166 EXPECT_EQ(mus::mojom::Material::TEXTURE_CONTENT, mus_quad->material); | 165 EXPECT_EQ(mus::mojom::Material::TEXTURE_CONTENT, mus_quad->material); |
| 167 ASSERT_TRUE(mus_quad->texture_quad_state); | 166 ASSERT_TRUE(mus_quad->texture_quad_state); |
| 168 TextureQuadStatePtr& mus_texture_state = mus_quad->texture_quad_state; | 167 TextureQuadStatePtr& mus_texture_state = mus_quad->texture_quad_state; |
| 169 EXPECT_EQ(resource_id, mus_texture_state->resource_id); | 168 EXPECT_EQ(resource_id, mus_texture_state->resource_id); |
| 170 EXPECT_EQ(premultiplied_alpha, mus_texture_state->premultiplied_alpha); | 169 EXPECT_EQ(premultiplied_alpha, mus_texture_state->premultiplied_alpha); |
| 171 EXPECT_TRUE(PointF::From(uv_top_left).Equals(mus_texture_state->uv_top_left)); | 170 EXPECT_EQ(uv_top_left, mus_texture_state->uv_top_left); |
| 172 EXPECT_TRUE( | 171 EXPECT_EQ(uv_bottom_right, mus_texture_state->uv_bottom_right); |
| 173 PointF::From(uv_bottom_right).Equals(mus_texture_state->uv_bottom_right)); | |
| 174 EXPECT_TRUE(Color::From(background_color) | 172 EXPECT_TRUE(Color::From(background_color) |
| 175 .Equals(mus_texture_state->background_color)); | 173 .Equals(mus_texture_state->background_color)); |
| 176 for (size_t i = 0; i < 4; ++i) { | 174 for (size_t i = 0; i < 4; ++i) { |
| 177 EXPECT_EQ(vertex_opacity[i], mus_texture_state->vertex_opacity[i]) << i; | 175 EXPECT_EQ(vertex_opacity[i], mus_texture_state->vertex_opacity[i]) << i; |
| 178 } | 176 } |
| 179 EXPECT_EQ(y_flipped, mus_texture_state->y_flipped); | 177 EXPECT_EQ(y_flipped, mus_texture_state->y_flipped); |
| 180 EXPECT_EQ(secure_output_only, mus_texture_state->secure_output_only); | 178 EXPECT_EQ(secure_output_only, mus_texture_state->secure_output_only); |
| 181 } | 179 } |
| 182 | 180 |
| 183 TEST_F(SurfaceLibQuadTest, TextureQuadEmptyVertexOpacity) { | 181 TEST_F(SurfaceLibQuadTest, TextureQuadEmptyVertexOpacity) { |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 232 std::unique_ptr<cc::RenderPass> pass = cc::RenderPass::Create(); | 230 std::unique_ptr<cc::RenderPass> pass = cc::RenderPass::Create(); |
| 233 cc::SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); | 231 cc::SharedQuadState* sqs = pass->CreateAndAppendSharedQuadState(); |
| 234 sqs->SetAll(quad_to_target_transform, quad_layer_bounds, | 232 sqs->SetAll(quad_to_target_transform, quad_layer_bounds, |
| 235 visible_quad_layer_rect, clip_rect, is_clipped, opacity, | 233 visible_quad_layer_rect, clip_rect, is_clipped, opacity, |
| 236 blend_mode, sorting_context_id); | 234 blend_mode, sorting_context_id); |
| 237 | 235 |
| 238 SharedQuadStatePtr mus_sqs = SharedQuadState::From(*sqs); | 236 SharedQuadStatePtr mus_sqs = SharedQuadState::From(*sqs); |
| 239 ASSERT_FALSE(mus_sqs.is_null()); | 237 ASSERT_FALSE(mus_sqs.is_null()); |
| 240 EXPECT_TRUE(Transform::From(quad_to_target_transform) | 238 EXPECT_TRUE(Transform::From(quad_to_target_transform) |
| 241 .Equals(mus_sqs->quad_to_target_transform)); | 239 .Equals(mus_sqs->quad_to_target_transform)); |
| 242 EXPECT_TRUE(Size::From(quad_layer_bounds).Equals(mus_sqs->quad_layer_bounds)); | 240 EXPECT_EQ(quad_layer_bounds, mus_sqs->quad_layer_bounds); |
| 243 EXPECT_TRUE(Rect::From(visible_quad_layer_rect) | 241 EXPECT_EQ(visible_quad_layer_rect, mus_sqs->visible_quad_layer_rect); |
| 244 .Equals(mus_sqs->visible_quad_layer_rect)); | 242 EXPECT_EQ(clip_rect, mus_sqs->clip_rect); |
| 245 EXPECT_TRUE(Rect::From(clip_rect).Equals(mus_sqs->clip_rect)); | |
| 246 EXPECT_EQ(is_clipped, mus_sqs->is_clipped); | 243 EXPECT_EQ(is_clipped, mus_sqs->is_clipped); |
| 247 EXPECT_EQ(opacity, mus_sqs->opacity); | 244 EXPECT_EQ(opacity, mus_sqs->opacity); |
| 248 EXPECT_EQ(sorting_context_id, mus_sqs->sorting_context_id); | 245 EXPECT_EQ(sorting_context_id, mus_sqs->sorting_context_id); |
| 249 } | 246 } |
| 250 | 247 |
| 251 TEST(SurfaceLibTest, RenderPass) { | 248 TEST(SurfaceLibTest, RenderPass) { |
| 252 std::unique_ptr<cc::RenderPass> pass = cc::RenderPass::Create(); | 249 std::unique_ptr<cc::RenderPass> pass = cc::RenderPass::Create(); |
| 253 cc::RenderPassId pass_id(1, 6); | 250 cc::RenderPassId pass_id(1, 6); |
| 254 gfx::Rect output_rect(4, 9, 13, 71); | 251 gfx::Rect output_rect(4, 9, 13, 71); |
| 255 gfx::Rect damage_rect(9, 17, 41, 45); | 252 gfx::Rect damage_rect(9, 17, 41, 45); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 312 bool secure_output_only = false; | 309 bool secure_output_only = false; |
| 313 texture_quad->SetAll(sqs, rect, opaque_rect, visible_rect, needs_blending, | 310 texture_quad->SetAll(sqs, rect, opaque_rect, visible_rect, needs_blending, |
| 314 resource_id, gfx::Size(), premultiplied_alpha, | 311 resource_id, gfx::Size(), premultiplied_alpha, |
| 315 uv_top_left, uv_bottom_right, background_color, | 312 uv_top_left, uv_bottom_right, background_color, |
| 316 vertex_opacity, y_flipped, nearest_neighbor, | 313 vertex_opacity, y_flipped, nearest_neighbor, |
| 317 secure_output_only); | 314 secure_output_only); |
| 318 | 315 |
| 319 PassPtr mus_pass = Pass::From(*pass); | 316 PassPtr mus_pass = Pass::From(*pass); |
| 320 ASSERT_FALSE(mus_pass.is_null()); | 317 ASSERT_FALSE(mus_pass.is_null()); |
| 321 EXPECT_EQ(6u, mus_pass->id->index); | 318 EXPECT_EQ(6u, mus_pass->id->index); |
| 322 EXPECT_TRUE(Rect::From(output_rect).Equals(mus_pass->output_rect)); | 319 EXPECT_EQ(output_rect, mus_pass->output_rect); |
| 323 EXPECT_TRUE(Rect::From(damage_rect).Equals(mus_pass->damage_rect)); | 320 EXPECT_EQ(damage_rect, mus_pass->damage_rect); |
| 324 EXPECT_TRUE(Transform::From(transform_to_root_target) | 321 EXPECT_TRUE(Transform::From(transform_to_root_target) |
| 325 .Equals(mus_pass->transform_to_root_target)); | 322 .Equals(mus_pass->transform_to_root_target)); |
| 326 EXPECT_EQ(has_transparent_background, mus_pass->has_transparent_background); | 323 EXPECT_EQ(has_transparent_background, mus_pass->has_transparent_background); |
| 327 ASSERT_EQ(1u, mus_pass->shared_quad_states.size()); | 324 ASSERT_EQ(1u, mus_pass->shared_quad_states.size()); |
| 328 ASSERT_EQ(3u, mus_pass->quads.size()); | 325 ASSERT_EQ(3u, mus_pass->quads.size()); |
| 329 EXPECT_EQ(0u, mus_pass->quads[0]->shared_quad_state_index); | 326 EXPECT_EQ(0u, mus_pass->quads[0]->shared_quad_state_index); |
| 330 | 327 |
| 331 std::unique_ptr<cc::RenderPass> round_trip_pass = | 328 std::unique_ptr<cc::RenderPass> round_trip_pass = |
| 332 mus_pass.To<std::unique_ptr<cc::RenderPass>>(); | 329 mus_pass.To<std::unique_ptr<cc::RenderPass>>(); |
| 333 EXPECT_EQ(pass_id, round_trip_pass->id); | 330 EXPECT_EQ(pass_id, round_trip_pass->id); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 resource.format = format; | 399 resource.format = format; |
| 403 resource.filter = filter; | 400 resource.filter = filter; |
| 404 resource.size = size; | 401 resource.size = size; |
| 405 resource.mailbox_holder = mailbox_holder; | 402 resource.mailbox_holder = mailbox_holder; |
| 406 resource.is_software = is_software; | 403 resource.is_software = is_software; |
| 407 | 404 |
| 408 TransferableResourcePtr mus_resource = TransferableResource::From(resource); | 405 TransferableResourcePtr mus_resource = TransferableResource::From(resource); |
| 409 EXPECT_EQ(id, mus_resource->id); | 406 EXPECT_EQ(id, mus_resource->id); |
| 410 EXPECT_EQ(static_cast<ResourceFormat>(format), mus_resource->format); | 407 EXPECT_EQ(static_cast<ResourceFormat>(format), mus_resource->format); |
| 411 EXPECT_EQ(filter, mus_resource->filter); | 408 EXPECT_EQ(filter, mus_resource->filter); |
| 412 EXPECT_TRUE(Size::From(size).Equals(mus_resource->size)); | 409 EXPECT_EQ(size, mus_resource->size); |
| 413 EXPECT_EQ(is_software, mus_resource->is_software); | 410 EXPECT_EQ(is_software, mus_resource->is_software); |
| 414 | 411 |
| 415 cc::TransferableResource round_trip_resource = | 412 cc::TransferableResource round_trip_resource = |
| 416 mus_resource.To<cc::TransferableResource>(); | 413 mus_resource.To<cc::TransferableResource>(); |
| 417 EXPECT_EQ(id, round_trip_resource.id); | 414 EXPECT_EQ(id, round_trip_resource.id); |
| 418 EXPECT_EQ(format, round_trip_resource.format); | 415 EXPECT_EQ(format, round_trip_resource.format); |
| 419 EXPECT_EQ(filter, round_trip_resource.filter); | 416 EXPECT_EQ(filter, round_trip_resource.filter); |
| 420 EXPECT_EQ(size, round_trip_resource.size); | 417 EXPECT_EQ(size, round_trip_resource.size); |
| 421 EXPECT_EQ(mailbox_holder.mailbox, round_trip_resource.mailbox_holder.mailbox); | 418 EXPECT_EQ(mailbox_holder.mailbox, round_trip_resource.mailbox_holder.mailbox); |
| 422 EXPECT_EQ(mailbox_holder.texture_target, | 419 EXPECT_EQ(mailbox_holder.texture_target, |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 462 rect, | 459 rect, |
| 463 opaque_rect, | 460 opaque_rect, |
| 464 visible_rect, | 461 visible_rect, |
| 465 needs_blending, | 462 needs_blending, |
| 466 arbitrary_color, | 463 arbitrary_color, |
| 467 width); | 464 width); |
| 468 | 465 |
| 469 QuadPtr mus_quad = Quad::From<cc::DrawQuad>(*debug_border_quad); | 466 QuadPtr mus_quad = Quad::From<cc::DrawQuad>(*debug_border_quad); |
| 470 ASSERT_FALSE(mus_quad.is_null()); | 467 ASSERT_FALSE(mus_quad.is_null()); |
| 471 EXPECT_EQ(mus::mojom::Material::DEBUG_BORDER, mus_quad->material); | 468 EXPECT_EQ(mus::mojom::Material::DEBUG_BORDER, mus_quad->material); |
| 472 EXPECT_TRUE(Rect::From(rect).Equals(mus_quad->rect)); | 469 EXPECT_EQ(rect, mus_quad->rect); |
| 473 EXPECT_TRUE(Rect::From(opaque_rect).Equals(mus_quad->opaque_rect)); | 470 EXPECT_EQ(opaque_rect, mus_quad->opaque_rect); |
| 474 EXPECT_TRUE(Rect::From(visible_rect).Equals(mus_quad->visible_rect)); | 471 EXPECT_EQ(visible_rect, mus_quad->visible_rect); |
| 475 EXPECT_EQ(needs_blending, mus_quad->needs_blending); | 472 EXPECT_EQ(needs_blending, mus_quad->needs_blending); |
| 476 ASSERT_TRUE(mus_quad->debug_border_quad_state); | 473 ASSERT_TRUE(mus_quad->debug_border_quad_state); |
| 477 DebugBorderQuadStatePtr& mus_debug_border_state = | 474 DebugBorderQuadStatePtr& mus_debug_border_state = |
| 478 mus_quad->debug_border_quad_state; | 475 mus_quad->debug_border_quad_state; |
| 479 EXPECT_TRUE( | 476 EXPECT_TRUE( |
| 480 Color::From(arbitrary_color).Equals(mus_debug_border_state->color)); | 477 Color::From(arbitrary_color).Equals(mus_debug_border_state->color)); |
| 481 EXPECT_EQ(width, mus_debug_border_state->width); | 478 EXPECT_EQ(width, mus_debug_border_state->width); |
| 482 } | 479 } |
| 483 | 480 |
| 484 } // namespace | 481 } // namespace |
| 485 } // namespace mojo | 482 } // namespace mojo |
| OLD | NEW |