Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(287)

Side by Side Diff: components/mus/public/cpp/surfaces/tests/surface_unittest.cc

Issue 2056483002: Move quads.mojom from Mus to cc (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 "components/mus/public/cpp/surfaces/surfaces_type_converters.h" 16 #include "components/mus/public/cpp/surfaces/surfaces_type_converters.h"
17 #include "gpu/command_buffer/common/mailbox.h" 17 #include "gpu/command_buffer/common/mailbox.h"
18 #include "gpu/command_buffer/common/mailbox_holder.h" 18 #include "gpu/command_buffer/common/mailbox_holder.h"
19 #include "gpu/command_buffer/common/sync_token.h" 19 #include "gpu/command_buffer/common/sync_token.h"
20 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
21 #include "third_party/skia/include/core/SkColor.h" 21 #include "third_party/skia/include/core/SkColor.h"
22 #include "third_party/skia/include/core/SkXfermode.h" 22 #include "third_party/skia/include/core/SkXfermode.h"
23 23
24 using mus::mojom::Color; 24 using cc::mojom::Color;
25 using mus::mojom::ColorPtr; 25 using cc::mojom::ColorPtr;
26 using cc::mojom::DebugBorderQuadState;
27 using cc::mojom::DebugBorderQuadStatePtr;
28 using cc::mojom::DrawQuad;
29 using cc::mojom::DrawQuadPtr;
30 using cc::mojom::RenderPass;
31 using cc::mojom::RenderPassPtr;
32 using cc::mojom::RenderPassQuadState;
33 using cc::mojom::RenderPassQuadStatePtr;
34 using cc::mojom::SolidColorQuadState;
35 using cc::mojom::SolidColorQuadStatePtr;
36 using cc::mojom::SurfaceQuadState;
37 using cc::mojom::SurfaceQuadStatePtr;
38 using cc::mojom::TextureQuadState;
39 using cc::mojom::TextureQuadStatePtr;
40 using cc::mojom::TileQuadState;
41 using cc::mojom::TileQuadStatePtr;
42 using cc::mojom::YUVColorSpace;
43 using cc::mojom::YUVVideoQuadState;
44 using cc::mojom::YUVVideoQuadStatePtr;
26 using mus::mojom::CompositorFrame; 45 using mus::mojom::CompositorFrame;
27 using mus::mojom::CompositorFramePtr; 46 using mus::mojom::CompositorFramePtr;
28 using mus::mojom::DebugBorderQuadState;
29 using mus::mojom::DebugBorderQuadStatePtr;
30 using mus::mojom::Pass;
31 using mus::mojom::PassPtr;
32 using mus::mojom::Quad;
33 using mus::mojom::QuadPtr;
34 using mus::mojom::RenderPassQuadState;
35 using mus::mojom::RenderPassQuadStatePtr;
36 using mus::mojom::SolidColorQuadState;
37 using mus::mojom::SolidColorQuadStatePtr;
38 using mus::mojom::SurfaceQuadState;
39 using mus::mojom::SurfaceQuadStatePtr;
40 using mus::mojom::TextureQuadState;
41 using mus::mojom::TextureQuadStatePtr;
42 using mus::mojom::TileQuadState;
43 using mus::mojom::TileQuadStatePtr;
44 using mus::mojom::YUVColorSpace;
45 using mus::mojom::YUVVideoQuadState;
46 using mus::mojom::YUVVideoQuadStatePtr;
47 47
48 namespace mojo { 48 namespace mojo {
49 namespace { 49 namespace {
50 50
51 51
52 TEST(SurfaceLibTest, Color) { 52 TEST(SurfaceLibTest, Color) {
53 SkColor arbitrary_color = SK_ColorMAGENTA; 53 SkColor arbitrary_color = SK_ColorMAGENTA;
54 SkColor round_trip = Color::From(arbitrary_color).To<SkColor>(); 54 SkColor round_trip = Color::From(arbitrary_color).To<SkColor>();
55 EXPECT_EQ(arbitrary_color, round_trip); 55 EXPECT_EQ(arbitrary_color, round_trip);
56 } 56 }
(...skipping 24 matching lines...) Expand all
81 SkColor arbitrary_color = SK_ColorGREEN; 81 SkColor arbitrary_color = SK_ColorGREEN;
82 bool force_anti_aliasing_off = true; 82 bool force_anti_aliasing_off = true;
83 color_quad->SetAll(sqs, 83 color_quad->SetAll(sqs,
84 rect, 84 rect,
85 opaque_rect, 85 opaque_rect,
86 visible_rect, 86 visible_rect,
87 needs_blending, 87 needs_blending,
88 arbitrary_color, 88 arbitrary_color,
89 force_anti_aliasing_off); 89 force_anti_aliasing_off);
90 90
91 QuadPtr mus_quad = Quad::From<cc::DrawQuad>(*color_quad); 91 DrawQuadPtr mus_quad = DrawQuad::From<cc::DrawQuad>(*color_quad);
92 ASSERT_FALSE(mus_quad.is_null()); 92 ASSERT_FALSE(mus_quad.is_null());
93 EXPECT_EQ(mus::mojom::Material::SOLID_COLOR, mus_quad->material); 93 EXPECT_EQ(cc::mojom::Material::SOLID_COLOR, mus_quad->material);
94 EXPECT_EQ(rect, mus_quad->rect); 94 EXPECT_EQ(rect, mus_quad->rect);
95 EXPECT_EQ(opaque_rect, mus_quad->opaque_rect); 95 EXPECT_EQ(opaque_rect, mus_quad->opaque_rect);
96 EXPECT_EQ(visible_rect, mus_quad->visible_rect); 96 EXPECT_EQ(visible_rect, mus_quad->visible_rect);
97 EXPECT_EQ(needs_blending, mus_quad->needs_blending); 97 EXPECT_EQ(needs_blending, mus_quad->needs_blending);
98 ASSERT_TRUE(mus_quad->solid_color_quad_state); 98 ASSERT_TRUE(mus_quad->solid_color_quad_state);
99 SolidColorQuadStatePtr& mus_color_state = mus_quad->solid_color_quad_state; 99 SolidColorQuadStatePtr& mus_color_state = mus_quad->solid_color_quad_state;
100 EXPECT_TRUE(Color::From(arbitrary_color).Equals(mus_color_state->color)); 100 EXPECT_TRUE(Color::From(arbitrary_color).Equals(mus_color_state->color));
101 EXPECT_EQ(force_anti_aliasing_off, mus_color_state->force_anti_aliasing_off); 101 EXPECT_EQ(force_anti_aliasing_off, mus_color_state->force_anti_aliasing_off);
102 } 102 }
103 103
104 TEST_F(SurfaceLibQuadTest, SurfaceQuad) { 104 TEST_F(SurfaceLibQuadTest, SurfaceQuad) {
105 cc::SurfaceDrawQuad* surface_quad = 105 cc::SurfaceDrawQuad* surface_quad =
106 pass->CreateAndAppendDrawQuad<cc::SurfaceDrawQuad>(); 106 pass->CreateAndAppendDrawQuad<cc::SurfaceDrawQuad>();
107 cc::SurfaceId arbitrary_id(0, 5, 0); 107 cc::SurfaceId arbitrary_id(0, 5, 0);
108 surface_quad->SetAll( 108 surface_quad->SetAll(
109 sqs, rect, opaque_rect, visible_rect, needs_blending, arbitrary_id); 109 sqs, rect, opaque_rect, visible_rect, needs_blending, arbitrary_id);
110 110
111 QuadPtr mus_quad = Quad::From<cc::DrawQuad>(*surface_quad); 111 DrawQuadPtr mus_quad = DrawQuad::From<cc::DrawQuad>(*surface_quad);
112 ASSERT_FALSE(mus_quad.is_null()); 112 ASSERT_FALSE(mus_quad.is_null());
113 EXPECT_EQ(mus::mojom::Material::SURFACE_CONTENT, mus_quad->material); 113 EXPECT_EQ(cc::mojom::Material::SURFACE_CONTENT, mus_quad->material);
114 ASSERT_TRUE(mus_quad->surface_quad_state); 114 ASSERT_TRUE(mus_quad->surface_quad_state);
115 SurfaceQuadStatePtr& mus_surface_state = mus_quad->surface_quad_state; 115 SurfaceQuadStatePtr& mus_surface_state = mus_quad->surface_quad_state;
116 EXPECT_EQ(arbitrary_id, mus_surface_state->surface); 116 EXPECT_EQ(arbitrary_id, mus_surface_state->surface);
117 } 117 }
118 118
119 TEST_F(SurfaceLibQuadTest, TextureQuad) { 119 TEST_F(SurfaceLibQuadTest, TextureQuad) {
120 cc::TextureDrawQuad* texture_quad = 120 cc::TextureDrawQuad* texture_quad =
121 pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>(); 121 pass->CreateAndAppendDrawQuad<cc::TextureDrawQuad>();
122 unsigned resource_id = 9; 122 unsigned resource_id = 9;
123 bool premultiplied_alpha = true; 123 bool premultiplied_alpha = true;
124 gfx::PointF uv_top_left(1.7f, 2.1f); 124 gfx::PointF uv_top_left(1.7f, 2.1f);
125 gfx::PointF uv_bottom_right(-7.f, 16.3f); 125 gfx::PointF uv_bottom_right(-7.f, 16.3f);
126 SkColor background_color = SK_ColorYELLOW; 126 SkColor background_color = SK_ColorYELLOW;
127 float vertex_opacity[4] = {0.1f, 0.5f, 0.4f, 0.8f}; 127 float vertex_opacity[4] = {0.1f, 0.5f, 0.4f, 0.8f};
128 bool y_flipped = false; 128 bool y_flipped = false;
129 bool nearest_neighbor = false; 129 bool nearest_neighbor = false;
130 bool secure_output_only = true; 130 bool secure_output_only = true;
131 texture_quad->SetAll(sqs, rect, opaque_rect, visible_rect, needs_blending, 131 texture_quad->SetAll(sqs, rect, opaque_rect, visible_rect, needs_blending,
132 resource_id, gfx::Size(), premultiplied_alpha, 132 resource_id, gfx::Size(), premultiplied_alpha,
133 uv_top_left, uv_bottom_right, background_color, 133 uv_top_left, uv_bottom_right, background_color,
134 vertex_opacity, y_flipped, nearest_neighbor, 134 vertex_opacity, y_flipped, nearest_neighbor,
135 secure_output_only); 135 secure_output_only);
136 136
137 QuadPtr mus_quad = Quad::From<cc::DrawQuad>(*texture_quad); 137 DrawQuadPtr mus_quad = DrawQuad::From<cc::DrawQuad>(*texture_quad);
138 ASSERT_FALSE(mus_quad.is_null()); 138 ASSERT_FALSE(mus_quad.is_null());
139 EXPECT_EQ(mus::mojom::Material::TEXTURE_CONTENT, mus_quad->material); 139 EXPECT_EQ(cc::mojom::Material::TEXTURE_CONTENT, mus_quad->material);
140 ASSERT_TRUE(mus_quad->texture_quad_state); 140 ASSERT_TRUE(mus_quad->texture_quad_state);
141 TextureQuadStatePtr& mus_texture_state = mus_quad->texture_quad_state; 141 TextureQuadStatePtr& mus_texture_state = mus_quad->texture_quad_state;
142 EXPECT_EQ(resource_id, mus_texture_state->resource_id); 142 EXPECT_EQ(resource_id, mus_texture_state->resource_id);
143 EXPECT_EQ(premultiplied_alpha, mus_texture_state->premultiplied_alpha); 143 EXPECT_EQ(premultiplied_alpha, mus_texture_state->premultiplied_alpha);
144 EXPECT_EQ(uv_top_left, mus_texture_state->uv_top_left); 144 EXPECT_EQ(uv_top_left, mus_texture_state->uv_top_left);
145 EXPECT_EQ(uv_bottom_right, mus_texture_state->uv_bottom_right); 145 EXPECT_EQ(uv_bottom_right, mus_texture_state->uv_bottom_right);
146 EXPECT_TRUE(Color::From(background_color) 146 EXPECT_TRUE(Color::From(background_color)
147 .Equals(mus_texture_state->background_color)); 147 .Equals(mus_texture_state->background_color));
148 for (size_t i = 0; i < 4; ++i) { 148 for (size_t i = 0; i < 4; ++i) {
149 EXPECT_EQ(vertex_opacity[i], mus_texture_state->vertex_opacity[i]) << i; 149 EXPECT_EQ(vertex_opacity[i], mus_texture_state->vertex_opacity[i]) << i;
150 } 150 }
151 EXPECT_EQ(y_flipped, mus_texture_state->y_flipped); 151 EXPECT_EQ(y_flipped, mus_texture_state->y_flipped);
152 EXPECT_EQ(secure_output_only, mus_texture_state->secure_output_only); 152 EXPECT_EQ(secure_output_only, mus_texture_state->secure_output_only);
153 } 153 }
154 154
155 TEST_F(SurfaceLibQuadTest, TextureQuadEmptyVertexOpacity) { 155 TEST_F(SurfaceLibQuadTest, TextureQuadEmptyVertexOpacity) {
156 QuadPtr mus_texture_quad = Quad::New(); 156 DrawQuadPtr mus_texture_quad = DrawQuad::New();
157 mus_texture_quad->material = mus::mojom::Material::TEXTURE_CONTENT; 157 mus_texture_quad->material = cc::mojom::Material::TEXTURE_CONTENT;
158 TextureQuadStatePtr mus_texture_state = TextureQuadState::New(); 158 TextureQuadStatePtr mus_texture_state = TextureQuadState::New();
159 mus_texture_state->background_color = Color::New(); 159 mus_texture_state->background_color = Color::New();
160 mus_texture_quad->texture_quad_state = std::move(mus_texture_state); 160 mus_texture_quad->texture_quad_state = std::move(mus_texture_state);
161 PassPtr mus_pass = Pass::New(); 161 RenderPassPtr mus_pass = RenderPass::New();
162 mus_pass->id.layer_id = 1; 162 mus_pass->id.layer_id = 1;
163 mus_pass->id.index = 1u; 163 mus_pass->id.index = 1u;
164 mus_pass->quads.push_back(std::move(mus_texture_quad)); 164 mus_pass->quads.push_back(std::move(mus_texture_quad));
165 mus_pass->shared_quad_states.push_back(cc::SharedQuadState()); 165 mus_pass->shared_quad_states.push_back(cc::SharedQuadState());
166 166
167 std::unique_ptr<cc::RenderPass> pass = 167 std::unique_ptr<cc::RenderPass> pass =
168 mus_pass.To<std::unique_ptr<cc::RenderPass>>(); 168 mus_pass.To<std::unique_ptr<cc::RenderPass>>();
169 169
170 EXPECT_FALSE(pass); 170 EXPECT_FALSE(pass);
171 } 171 }
172 172
173 TEST_F(SurfaceLibQuadTest, TextureQuadEmptyBackgroundColor) { 173 TEST_F(SurfaceLibQuadTest, TextureQuadEmptyBackgroundColor) {
174 QuadPtr mus_texture_quad = Quad::New(); 174 DrawQuadPtr mus_texture_quad = DrawQuad::New();
175 mus_texture_quad->material = mus::mojom::Material::TEXTURE_CONTENT; 175 mus_texture_quad->material = cc::mojom::Material::TEXTURE_CONTENT;
176 TextureQuadStatePtr mus_texture_state = TextureQuadState::New(); 176 TextureQuadStatePtr mus_texture_state = TextureQuadState::New();
177 mus_texture_state->vertex_opacity = mojo::Array<float>::New(4); 177 mus_texture_state->vertex_opacity = mojo::Array<float>::New(4);
178 mus_texture_quad->texture_quad_state = std::move(mus_texture_state); 178 mus_texture_quad->texture_quad_state = std::move(mus_texture_state);
179 PassPtr mus_pass = Pass::New(); 179 RenderPassPtr mus_pass = RenderPass::New();
180 mus_pass->id.layer_id = 1; 180 mus_pass->id.layer_id = 1;
181 mus_pass->id.index = 1u; 181 mus_pass->id.index = 1u;
182 mus_pass->quads.push_back(std::move(mus_texture_quad)); 182 mus_pass->quads.push_back(std::move(mus_texture_quad));
183 mus_pass->shared_quad_states.push_back(cc::SharedQuadState()); 183 mus_pass->shared_quad_states.push_back(cc::SharedQuadState());
184 184
185 std::unique_ptr<cc::RenderPass> pass = 185 std::unique_ptr<cc::RenderPass> pass =
186 mus_pass.To<std::unique_ptr<cc::RenderPass>>(); 186 mus_pass.To<std::unique_ptr<cc::RenderPass>>();
187 EXPECT_FALSE(pass); 187 EXPECT_FALSE(pass);
188 } 188 }
189 189
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 float vertex_opacity[4] = {0.1f, 0.5f, 0.4f, 0.8f}; 248 float vertex_opacity[4] = {0.1f, 0.5f, 0.4f, 0.8f};
249 bool y_flipped = false; 249 bool y_flipped = false;
250 bool nearest_neighbor = false; 250 bool nearest_neighbor = false;
251 bool secure_output_only = false; 251 bool secure_output_only = false;
252 texture_quad->SetAll(sqs, rect, opaque_rect, visible_rect, needs_blending, 252 texture_quad->SetAll(sqs, rect, opaque_rect, visible_rect, needs_blending,
253 resource_id, gfx::Size(), premultiplied_alpha, 253 resource_id, gfx::Size(), premultiplied_alpha,
254 uv_top_left, uv_bottom_right, background_color, 254 uv_top_left, uv_bottom_right, background_color,
255 vertex_opacity, y_flipped, nearest_neighbor, 255 vertex_opacity, y_flipped, nearest_neighbor,
256 secure_output_only); 256 secure_output_only);
257 257
258 PassPtr mus_pass = Pass::From(*pass); 258 RenderPassPtr mus_pass = RenderPass::From(*pass);
259 ASSERT_FALSE(mus_pass.is_null()); 259 ASSERT_FALSE(mus_pass.is_null());
260 EXPECT_EQ(6u, mus_pass->id.index); 260 EXPECT_EQ(6u, mus_pass->id.index);
261 EXPECT_EQ(output_rect, mus_pass->output_rect); 261 EXPECT_EQ(output_rect, mus_pass->output_rect);
262 EXPECT_EQ(damage_rect, mus_pass->damage_rect); 262 EXPECT_EQ(damage_rect, mus_pass->damage_rect);
263 EXPECT_EQ(transform_to_root_target, mus_pass->transform_to_root_target); 263 EXPECT_EQ(transform_to_root_target, mus_pass->transform_to_root_target);
264 EXPECT_EQ(has_transparent_background, mus_pass->has_transparent_background); 264 EXPECT_EQ(has_transparent_background, mus_pass->has_transparent_background);
265 ASSERT_EQ(1u, mus_pass->shared_quad_states.size()); 265 ASSERT_EQ(1u, mus_pass->shared_quad_states.size());
266 ASSERT_EQ(3u, mus_pass->quads.size()); 266 ASSERT_EQ(3u, mus_pass->quads.size());
267 EXPECT_EQ(0u, mus_pass->quads[0]->shared_quad_state_index); 267 EXPECT_EQ(0u, mus_pass->quads[0]->shared_quad_state_index);
268 268
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
334 const SkColor arbitrary_color = SK_ColorGREEN; 334 const SkColor arbitrary_color = SK_ColorGREEN;
335 const int width = 3; 335 const int width = 3;
336 debug_border_quad->SetAll(sqs, 336 debug_border_quad->SetAll(sqs,
337 rect, 337 rect,
338 opaque_rect, 338 opaque_rect,
339 visible_rect, 339 visible_rect,
340 needs_blending, 340 needs_blending,
341 arbitrary_color, 341 arbitrary_color,
342 width); 342 width);
343 343
344 QuadPtr mus_quad = Quad::From<cc::DrawQuad>(*debug_border_quad); 344 DrawQuadPtr mus_quad = DrawQuad::From<cc::DrawQuad>(*debug_border_quad);
345 ASSERT_FALSE(mus_quad.is_null()); 345 ASSERT_FALSE(mus_quad.is_null());
346 EXPECT_EQ(mus::mojom::Material::DEBUG_BORDER, mus_quad->material); 346 EXPECT_EQ(cc::mojom::Material::DEBUG_BORDER, mus_quad->material);
347 EXPECT_EQ(rect, mus_quad->rect); 347 EXPECT_EQ(rect, mus_quad->rect);
348 EXPECT_EQ(opaque_rect, mus_quad->opaque_rect); 348 EXPECT_EQ(opaque_rect, mus_quad->opaque_rect);
349 EXPECT_EQ(visible_rect, mus_quad->visible_rect); 349 EXPECT_EQ(visible_rect, mus_quad->visible_rect);
350 EXPECT_EQ(needs_blending, mus_quad->needs_blending); 350 EXPECT_EQ(needs_blending, mus_quad->needs_blending);
351 ASSERT_TRUE(mus_quad->debug_border_quad_state); 351 ASSERT_TRUE(mus_quad->debug_border_quad_state);
352 DebugBorderQuadStatePtr& mus_debug_border_state = 352 DebugBorderQuadStatePtr& mus_debug_border_state =
353 mus_quad->debug_border_quad_state; 353 mus_quad->debug_border_quad_state;
354 EXPECT_TRUE( 354 EXPECT_TRUE(
355 Color::From(arbitrary_color).Equals(mus_debug_border_state->color)); 355 Color::From(arbitrary_color).Equals(mus_debug_border_state->color));
356 EXPECT_EQ(width, mus_debug_border_state->width); 356 EXPECT_EQ(width, mus_debug_border_state->width);
357 } 357 }
358 358
359 } // namespace 359 } // namespace
360 } // namespace mojo 360 } // namespace mojo
OLDNEW
« no previous file with comments | « components/mus/public/cpp/surfaces/surfaces_utils.cc ('k') | components/mus/public/interfaces/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698