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 |