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

Side by Side Diff: ui/accelerated_widget_mac/ca_layer_tree_unittest_mac.mm

Issue 1893273005: Hook up plumbing for minification/magnification filters. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@temp66
Patch Set: Rebase. Created 4 years, 7 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 <AVFoundation/AVFoundation.h> 5 #include <AVFoundation/AVFoundation.h>
6 #include <memory> 6 #include <memory>
7 7
8 #include "base/mac/sdk_forward_declarations.h" 8 #include "base/mac/sdk_forward_declarations.h"
9 #include "gpu/GLES2/gl2extchromium.h" 9 #include "gpu/GLES2/gl2extchromium.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
11 #include "testing/gtest_mac.h"
11 #include "third_party/skia/include/core/SkColor.h" 12 #include "third_party/skia/include/core/SkColor.h"
12 #include "ui/accelerated_widget_mac/ca_renderer_layer_tree.h" 13 #include "ui/accelerated_widget_mac/ca_renderer_layer_tree.h"
13 #include "ui/gfx/geometry/dip_util.h" 14 #include "ui/gfx/geometry/dip_util.h"
14 #include "ui/gfx/mac/io_surface.h" 15 #include "ui/gfx/mac/io_surface.h"
15 16
16 namespace gpu { 17 namespace gpu {
17 18
18 class CALayerTreeTest : public testing::Test { 19 class CALayerTreeTest : public testing::Test {
19 protected: 20 protected:
20 void SetUp() override { 21 void SetUp() override {
(...skipping 13 matching lines...) Expand all
34 bool is_clipped = true; 35 bool is_clipped = true;
35 gfx::Rect clip_rect(2, 4, 8, 16); 36 gfx::Rect clip_rect(2, 4, 8, 16);
36 int sorting_context_id = 0; 37 int sorting_context_id = 0;
37 gfx::Transform transform; 38 gfx::Transform transform;
38 transform.Translate(10, 20); 39 transform.Translate(10, 20);
39 gfx::RectF contents_rect(0.0f, 0.25f, 0.5f, 0.75f); 40 gfx::RectF contents_rect(0.0f, 0.25f, 0.5f, 0.75f);
40 gfx::Rect rect(16, 32, 64, 128); 41 gfx::Rect rect(16, 32, 64, 128);
41 unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0, 0); 42 unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0, 0);
42 unsigned edge_aa_mask = GL_CA_LAYER_EDGE_LEFT_CHROMIUM; 43 unsigned edge_aa_mask = GL_CA_LAYER_EDGE_LEFT_CHROMIUM;
43 float opacity = 0.5f; 44 float opacity = 0.5f;
45 unsigned filter = GL_LINEAR;
44 float scale_factor = 1.0f; 46 float scale_factor = 1.0f;
45 bool result = false; 47 bool result = false;
46 48
47 std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree; 49 std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree;
48 CALayer* root_layer = nil; 50 CALayer* root_layer = nil;
49 CALayer* clip_and_sorting_layer = nil; 51 CALayer* clip_and_sorting_layer = nil;
50 CALayer* transform_layer = nil; 52 CALayer* transform_layer = nil;
51 CALayer* content_layer = nil; 53 CALayer* content_layer = nil;
52 54
53 // Validate the initial values. 55 // Validate the initial values.
54 { 56 {
55 std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree( 57 std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
56 new ui::CARendererLayerTree); 58 new ui::CARendererLayerTree);
57 result = new_ca_layer_tree->ScheduleCALayer( 59 result = new_ca_layer_tree->ScheduleCALayer(
58 is_clipped, 60 is_clipped,
59 clip_rect, 61 clip_rect,
60 sorting_context_id, 62 sorting_context_id,
61 transform, 63 transform,
62 io_surface, 64 io_surface,
63 nullptr, 65 nullptr,
64 contents_rect, 66 contents_rect,
65 rect, 67 rect,
66 background_color, 68 background_color,
67 edge_aa_mask, 69 edge_aa_mask,
68 opacity); 70 opacity,
71 filter);
69 EXPECT_TRUE(result); 72 EXPECT_TRUE(result);
70 new_ca_layer_tree->CommitScheduledCALayers( 73 new_ca_layer_tree->CommitScheduledCALayers(
71 superlayer_, std::move(ca_layer_tree), scale_factor); 74 superlayer_, std::move(ca_layer_tree), scale_factor);
72 std::swap(new_ca_layer_tree, ca_layer_tree); 75 std::swap(new_ca_layer_tree, ca_layer_tree);
73 76
74 // Validate the tree structure. 77 // Validate the tree structure.
75 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 78 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
76 root_layer = [[superlayer_ sublayers] objectAtIndex:0]; 79 root_layer = [[superlayer_ sublayers] objectAtIndex:0];
77 EXPECT_EQ(1u, [[root_layer sublayers] count]); 80 EXPECT_EQ(1u, [[root_layer sublayers] count]);
78 clip_and_sorting_layer = [[root_layer sublayers] objectAtIndex:0]; 81 clip_and_sorting_layer = [[root_layer sublayers] objectAtIndex:0];
(...skipping 19 matching lines...) Expand all
98 EXPECT_EQ(transform.matrix().get(3, 1), 101 EXPECT_EQ(transform.matrix().get(3, 1),
99 [transform_layer sublayerTransform].m42); 102 [transform_layer sublayerTransform].m42);
100 103
101 // Validate the content layer. 104 // Validate the content layer.
102 EXPECT_EQ(static_cast<id>(io_surface.get()), [content_layer contents]); 105 EXPECT_EQ(static_cast<id>(io_surface.get()), [content_layer contents]);
103 EXPECT_EQ(contents_rect, gfx::RectF([content_layer contentsRect])); 106 EXPECT_EQ(contents_rect, gfx::RectF([content_layer contentsRect]));
104 EXPECT_EQ(rect.origin(), gfx::Point([content_layer position])); 107 EXPECT_EQ(rect.origin(), gfx::Point([content_layer position]));
105 EXPECT_EQ(gfx::Rect(rect.size()), gfx::Rect([content_layer bounds])); 108 EXPECT_EQ(gfx::Rect(rect.size()), gfx::Rect([content_layer bounds]));
106 EXPECT_EQ(kCALayerLeftEdge, [content_layer edgeAntialiasingMask]); 109 EXPECT_EQ(kCALayerLeftEdge, [content_layer edgeAntialiasingMask]);
107 EXPECT_EQ(opacity, [content_layer opacity]); 110 EXPECT_EQ(opacity, [content_layer opacity]);
111 EXPECT_NSEQ(kCAFilterLinear, [content_layer minificationFilter]);
112 EXPECT_NSEQ(kCAFilterLinear, [content_layer magnificationFilter]);
108 if ([content_layer respondsToSelector:(@selector(contentsScale))]) 113 if ([content_layer respondsToSelector:(@selector(contentsScale))])
109 EXPECT_EQ(scale_factor, [content_layer contentsScale]); 114 EXPECT_EQ(scale_factor, [content_layer contentsScale]);
110 } 115 }
111 116
112 // Update just the clip rect and re-commit. 117 // Update just the clip rect and re-commit.
113 { 118 {
114 clip_rect = gfx::Rect(4, 8, 16, 32); 119 clip_rect = gfx::Rect(4, 8, 16, 32);
115 std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree( 120 std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
116 new ui::CARendererLayerTree); 121 new ui::CARendererLayerTree);
117 result = new_ca_layer_tree->ScheduleCALayer( 122 result = new_ca_layer_tree->ScheduleCALayer(
118 is_clipped, 123 is_clipped,
119 clip_rect, 124 clip_rect,
120 sorting_context_id, 125 sorting_context_id,
121 transform, 126 transform,
122 io_surface, 127 io_surface,
123 nullptr, 128 nullptr,
124 contents_rect, 129 contents_rect,
125 rect, 130 rect,
126 background_color, 131 background_color,
127 edge_aa_mask, 132 edge_aa_mask,
128 opacity); 133 opacity,
134 filter);
129 EXPECT_TRUE(result); 135 EXPECT_TRUE(result);
130 new_ca_layer_tree->CommitScheduledCALayers( 136 new_ca_layer_tree->CommitScheduledCALayers(
131 superlayer_, std::move(ca_layer_tree), scale_factor); 137 superlayer_, std::move(ca_layer_tree), scale_factor);
132 std::swap(new_ca_layer_tree, ca_layer_tree); 138 std::swap(new_ca_layer_tree, ca_layer_tree);
133 139
134 // Validate the tree structure 140 // Validate the tree structure
135 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 141 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
136 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]); 142 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]);
137 EXPECT_EQ(1u, [[root_layer sublayers] count]); 143 EXPECT_EQ(1u, [[root_layer sublayers] count]);
138 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]); 144 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]);
(...skipping 22 matching lines...) Expand all
161 is_clipped, 167 is_clipped,
162 clip_rect, 168 clip_rect,
163 sorting_context_id, 169 sorting_context_id,
164 transform, 170 transform,
165 io_surface, 171 io_surface,
166 nullptr, 172 nullptr,
167 contents_rect, 173 contents_rect,
168 rect, 174 rect,
169 background_color, 175 background_color,
170 edge_aa_mask, 176 edge_aa_mask,
171 opacity); 177 opacity,
178 filter);
172 EXPECT_TRUE(result); 179 EXPECT_TRUE(result);
173 new_ca_layer_tree->CommitScheduledCALayers( 180 new_ca_layer_tree->CommitScheduledCALayers(
174 superlayer_, std::move(ca_layer_tree), scale_factor); 181 superlayer_, std::move(ca_layer_tree), scale_factor);
175 std::swap(new_ca_layer_tree, ca_layer_tree); 182 std::swap(new_ca_layer_tree, ca_layer_tree);
176 183
177 // Validate the tree structure 184 // Validate the tree structure
178 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 185 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
179 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]); 186 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]);
180 EXPECT_EQ(1u, [[root_layer sublayers] count]); 187 EXPECT_EQ(1u, [[root_layer sublayers] count]);
181 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]); 188 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]);
(...skipping 19 matching lines...) Expand all
201 is_clipped, 208 is_clipped,
202 clip_rect, 209 clip_rect,
203 sorting_context_id, 210 sorting_context_id,
204 transform, 211 transform,
205 io_surface, 212 io_surface,
206 nullptr, 213 nullptr,
207 contents_rect, 214 contents_rect,
208 rect, 215 rect,
209 background_color, 216 background_color,
210 edge_aa_mask, 217 edge_aa_mask,
211 opacity); 218 opacity,
219 filter);
212 EXPECT_TRUE(result); 220 EXPECT_TRUE(result);
213 new_ca_layer_tree->CommitScheduledCALayers( 221 new_ca_layer_tree->CommitScheduledCALayers(
214 superlayer_, std::move(ca_layer_tree), scale_factor); 222 superlayer_, std::move(ca_layer_tree), scale_factor);
215 std::swap(new_ca_layer_tree, ca_layer_tree); 223 std::swap(new_ca_layer_tree, ca_layer_tree);
216 224
217 // Validate the tree structure. 225 // Validate the tree structure.
218 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 226 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
219 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]); 227 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]);
220 EXPECT_EQ(1u, [[root_layer sublayers] count]); 228 EXPECT_EQ(1u, [[root_layer sublayers] count]);
221 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]); 229 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]);
(...skipping 17 matching lines...) Expand all
239 is_clipped, 247 is_clipped,
240 clip_rect, 248 clip_rect,
241 sorting_context_id, 249 sorting_context_id,
242 transform, 250 transform,
243 io_surface, 251 io_surface,
244 nullptr, 252 nullptr,
245 contents_rect, 253 contents_rect,
246 rect, 254 rect,
247 background_color, 255 background_color,
248 edge_aa_mask, 256 edge_aa_mask,
249 opacity); 257 opacity,
258 filter);
250 EXPECT_TRUE(result); 259 EXPECT_TRUE(result);
251 new_ca_layer_tree->CommitScheduledCALayers( 260 new_ca_layer_tree->CommitScheduledCALayers(
252 superlayer_, std::move(ca_layer_tree), scale_factor); 261 superlayer_, std::move(ca_layer_tree), scale_factor);
253 std::swap(new_ca_layer_tree, ca_layer_tree); 262 std::swap(new_ca_layer_tree, ca_layer_tree);
254 263
255 // Validate the tree structure. 264 // Validate the tree structure.
256 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 265 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
257 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]); 266 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]);
258 EXPECT_EQ(1u, [[root_layer sublayers] count]); 267 EXPECT_EQ(1u, [[root_layer sublayers] count]);
259 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]); 268 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]);
(...skipping 15 matching lines...) Expand all
275 is_clipped, 284 is_clipped,
276 clip_rect, 285 clip_rect,
277 sorting_context_id, 286 sorting_context_id,
278 transform, 287 transform,
279 nullptr, 288 nullptr,
280 nullptr, 289 nullptr,
281 contents_rect, 290 contents_rect,
282 rect, 291 rect,
283 background_color, 292 background_color,
284 edge_aa_mask, 293 edge_aa_mask,
285 opacity); 294 opacity,
295 filter);
286 EXPECT_TRUE(result); 296 EXPECT_TRUE(result);
287 new_ca_layer_tree->CommitScheduledCALayers( 297 new_ca_layer_tree->CommitScheduledCALayers(
288 superlayer_, std::move(ca_layer_tree), scale_factor); 298 superlayer_, std::move(ca_layer_tree), scale_factor);
289 std::swap(new_ca_layer_tree, ca_layer_tree); 299 std::swap(new_ca_layer_tree, ca_layer_tree);
290 300
291 // Validate the tree structure. 301 // Validate the tree structure.
292 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 302 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
293 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]); 303 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]);
294 EXPECT_EQ(1u, [[root_layer sublayers] count]); 304 EXPECT_EQ(1u, [[root_layer sublayers] count]);
295 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]); 305 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]);
(...skipping 17 matching lines...) Expand all
313 is_clipped, 323 is_clipped,
314 clip_rect, 324 clip_rect,
315 sorting_context_id, 325 sorting_context_id,
316 transform, 326 transform,
317 nullptr, 327 nullptr,
318 nullptr, 328 nullptr,
319 contents_rect, 329 contents_rect,
320 rect, 330 rect,
321 background_color, 331 background_color,
322 edge_aa_mask, 332 edge_aa_mask,
323 opacity); 333 opacity,
334 filter);
324 EXPECT_TRUE(result); 335 EXPECT_TRUE(result);
325 new_ca_layer_tree->CommitScheduledCALayers( 336 new_ca_layer_tree->CommitScheduledCALayers(
326 superlayer_, std::move(ca_layer_tree), scale_factor); 337 superlayer_, std::move(ca_layer_tree), scale_factor);
327 std::swap(new_ca_layer_tree, ca_layer_tree); 338 std::swap(new_ca_layer_tree, ca_layer_tree);
328 339
329 // Validate the tree structure. 340 // Validate the tree structure.
330 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 341 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
331 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]); 342 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]);
332 EXPECT_EQ(1u, [[root_layer sublayers] count]); 343 EXPECT_EQ(1u, [[root_layer sublayers] count]);
333 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]); 344 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]);
(...skipping 17 matching lines...) Expand all
351 is_clipped, 362 is_clipped,
352 clip_rect, 363 clip_rect,
353 sorting_context_id, 364 sorting_context_id,
354 transform, 365 transform,
355 nullptr, 366 nullptr,
356 nullptr, 367 nullptr,
357 contents_rect, 368 contents_rect,
358 rect, 369 rect,
359 background_color, 370 background_color,
360 edge_aa_mask, 371 edge_aa_mask,
361 opacity); 372 opacity,
373 filter);
362 EXPECT_TRUE(result); 374 EXPECT_TRUE(result);
363 new_ca_layer_tree->CommitScheduledCALayers( 375 new_ca_layer_tree->CommitScheduledCALayers(
364 superlayer_, std::move(ca_layer_tree), scale_factor); 376 superlayer_, std::move(ca_layer_tree), scale_factor);
365 std::swap(new_ca_layer_tree, ca_layer_tree); 377 std::swap(new_ca_layer_tree, ca_layer_tree);
366 378
367 // Validate the tree structure. 379 // Validate the tree structure.
368 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 380 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
369 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]); 381 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]);
370 EXPECT_EQ(1u, [[root_layer sublayers] count]); 382 EXPECT_EQ(1u, [[root_layer sublayers] count]);
371 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]); 383 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]);
(...skipping 17 matching lines...) Expand all
389 is_clipped, 401 is_clipped,
390 clip_rect, 402 clip_rect,
391 sorting_context_id, 403 sorting_context_id,
392 transform, 404 transform,
393 nullptr, 405 nullptr,
394 nullptr, 406 nullptr,
395 contents_rect, 407 contents_rect,
396 rect, 408 rect,
397 background_color, 409 background_color,
398 edge_aa_mask, 410 edge_aa_mask,
399 opacity); 411 opacity,
412 filter);
400 EXPECT_TRUE(result); 413 EXPECT_TRUE(result);
401 new_ca_layer_tree->CommitScheduledCALayers( 414 new_ca_layer_tree->CommitScheduledCALayers(
402 superlayer_, std::move(ca_layer_tree), scale_factor); 415 superlayer_, std::move(ca_layer_tree), scale_factor);
403 std::swap(new_ca_layer_tree, ca_layer_tree); 416 std::swap(new_ca_layer_tree, ca_layer_tree);
404 417
405 // Validate the tree structure. 418 // Validate the tree structure.
406 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 419 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
407 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]); 420 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]);
408 EXPECT_EQ(1u, [[root_layer sublayers] count]); 421 EXPECT_EQ(1u, [[root_layer sublayers] count]);
409 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]); 422 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]);
410 EXPECT_EQ(1u, [[clip_and_sorting_layer sublayers] count]); 423 EXPECT_EQ(1u, [[clip_and_sorting_layer sublayers] count]);
411 EXPECT_EQ(transform_layer, 424 EXPECT_EQ(transform_layer,
412 [[clip_and_sorting_layer sublayers] objectAtIndex:0]); 425 [[clip_and_sorting_layer sublayers] objectAtIndex:0]);
413 EXPECT_EQ(1u, [[transform_layer sublayers] count]); 426 EXPECT_EQ(1u, [[transform_layer sublayers] count]);
414 EXPECT_EQ(content_layer, [[transform_layer sublayers] objectAtIndex:0]); 427 EXPECT_EQ(content_layer, [[transform_layer sublayers] objectAtIndex:0]);
415 428
416 // Validate the content layer. 429 // Validate the content layer.
417 EXPECT_EQ(opacity, [content_layer opacity]); 430 EXPECT_EQ(opacity, [content_layer opacity]);
418 } 431 }
419 432
433 // Change the filter.
434 {
435 filter = GL_NEAREST;
436 std::unique_ptr<ui::CALayerTree> new_ca_layer_tree(new ui::CALayerTree);
437 result = new_ca_layer_tree->ScheduleCALayer(
438 is_clipped,
439 clip_rect,
440 sorting_context_id,
441 transform,
442 nullptr,
443 nullptr,
444 contents_rect,
445 rect,
446 background_color,
447 edge_aa_mask,
448 opacity,
449 filter);
450 EXPECT_TRUE(result);
451 new_ca_layer_tree->CommitScheduledCALayers(
452 superlayer_, std::move(ca_layer_tree), scale_factor);
453 std::swap(new_ca_layer_tree, ca_layer_tree);
454
455 // Validate the tree structure.
456 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
457 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]);
458 EXPECT_EQ(1u, [[root_layer sublayers] count]);
459 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]);
460 EXPECT_EQ(1u, [[clip_and_sorting_layer sublayers] count]);
461 EXPECT_EQ(transform_layer,
462 [[clip_and_sorting_layer sublayers] objectAtIndex:0]);
463 EXPECT_EQ(1u, [[transform_layer sublayers] count]);
464 EXPECT_EQ(content_layer, [[transform_layer sublayers] objectAtIndex:0]);
465
466 // Validate the content layer.
467 EXPECT_NSEQ(kCAFilterNearest, [content_layer minificationFilter]);
468 EXPECT_NSEQ(kCAFilterNearest, [content_layer magnificationFilter]);
469 }
470
420 // Add the clipping and IOSurface contents back. 471 // Add the clipping and IOSurface contents back.
421 { 472 {
422 is_clipped = true; 473 is_clipped = true;
423 std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree( 474 std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
424 new ui::CARendererLayerTree); 475 new ui::CARendererLayerTree);
425 result = new_ca_layer_tree->ScheduleCALayer( 476 result = new_ca_layer_tree->ScheduleCALayer(
426 is_clipped, 477 is_clipped,
427 clip_rect, 478 clip_rect,
428 sorting_context_id, 479 sorting_context_id,
429 transform, 480 transform,
430 io_surface, 481 io_surface,
431 nullptr, 482 nullptr,
432 contents_rect, 483 contents_rect,
433 rect, 484 rect,
434 background_color, 485 background_color,
435 edge_aa_mask, 486 edge_aa_mask,
436 opacity); 487 opacity,
488 filter);
437 EXPECT_TRUE(result); 489 EXPECT_TRUE(result);
438 new_ca_layer_tree->CommitScheduledCALayers( 490 new_ca_layer_tree->CommitScheduledCALayers(
439 superlayer_, std::move(ca_layer_tree), scale_factor); 491 superlayer_, std::move(ca_layer_tree), scale_factor);
440 std::swap(new_ca_layer_tree, ca_layer_tree); 492 std::swap(new_ca_layer_tree, ca_layer_tree);
441 493
442 // Validate the tree structure. 494 // Validate the tree structure.
443 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 495 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
444 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]); 496 EXPECT_EQ(root_layer, [[superlayer_ sublayers] objectAtIndex:0]);
445 EXPECT_EQ(1u, [[root_layer sublayers] count]); 497 EXPECT_EQ(1u, [[root_layer sublayers] count]);
446 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]); 498 EXPECT_EQ(clip_and_sorting_layer, [[root_layer sublayers] objectAtIndex:0]);
(...skipping 17 matching lines...) Expand all
464 is_clipped, 516 is_clipped,
465 clip_rect, 517 clip_rect,
466 sorting_context_id, 518 sorting_context_id,
467 transform, 519 transform,
468 io_surface, 520 io_surface,
469 nullptr, 521 nullptr,
470 contents_rect, 522 contents_rect,
471 rect, 523 rect,
472 background_color, 524 background_color,
473 edge_aa_mask, 525 edge_aa_mask,
474 opacity); 526 opacity,
527 filter);
475 EXPECT_TRUE(result); 528 EXPECT_TRUE(result);
476 new_ca_layer_tree->CommitScheduledCALayers( 529 new_ca_layer_tree->CommitScheduledCALayers(
477 superlayer_, std::move(ca_layer_tree), scale_factor); 530 superlayer_, std::move(ca_layer_tree), scale_factor);
478 std::swap(new_ca_layer_tree, ca_layer_tree); 531 std::swap(new_ca_layer_tree, ca_layer_tree);
479 532
480 // Validate the tree structure. 533 // Validate the tree structure.
481 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 534 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
482 EXPECT_NE(root_layer, [[superlayer_ sublayers] objectAtIndex:0]); 535 EXPECT_NE(root_layer, [[superlayer_ sublayers] objectAtIndex:0]);
483 root_layer = [[superlayer_ sublayers] objectAtIndex:0]; 536 root_layer = [[superlayer_ sublayers] objectAtIndex:0];
484 EXPECT_EQ(1u, [[root_layer sublayers] count]); 537 EXPECT_EQ(1u, [[root_layer sublayers] count]);
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 TEST_F(CALayerTreeTest, SplitSortingContextZero) { 580 TEST_F(CALayerTreeTest, SplitSortingContextZero) {
528 bool is_clipped = false; 581 bool is_clipped = false;
529 gfx::Rect clip_rect; 582 gfx::Rect clip_rect;
530 int sorting_context_id = 0; 583 int sorting_context_id = 0;
531 gfx::RectF contents_rect(0, 0, 1, 1); 584 gfx::RectF contents_rect(0, 0, 1, 1);
532 gfx::Rect rect(0, 0, 256, 256); 585 gfx::Rect rect(0, 0, 256, 256);
533 unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0xFF, 0xFF); 586 unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0xFF, 0xFF);
534 unsigned edge_aa_mask = 0; 587 unsigned edge_aa_mask = 0;
535 float opacity = 1.0f; 588 float opacity = 1.0f;
536 float scale_factor = 1.0f; 589 float scale_factor = 1.0f;
590 unsigned filter = GL_LINEAR;
537 591
538 // We'll use the IOSurface contents to identify the content layers. 592 // We'll use the IOSurface contents to identify the content layers.
539 base::ScopedCFTypeRef<IOSurfaceRef> io_surfaces[5]; 593 base::ScopedCFTypeRef<IOSurfaceRef> io_surfaces[5];
540 for (size_t i = 0; i < 5; ++i) { 594 for (size_t i = 0; i < 5; ++i) {
541 io_surfaces[i].reset(gfx::CreateIOSurface( 595 io_surfaces[i].reset(gfx::CreateIOSurface(
542 gfx::Size(256, 256), gfx::BufferFormat::BGRA_8888)); 596 gfx::Size(256, 256), gfx::BufferFormat::BGRA_8888));
543 } 597 }
544 598
545 // Have 5 transforms: 599 // Have 5 transforms:
546 // * 2 flat but different (1 sorting context layer, 2 transform layers) 600 // * 2 flat but different (1 sorting context layer, 2 transform layers)
(...skipping 14 matching lines...) Expand all
561 is_clipped, 615 is_clipped,
562 clip_rect, 616 clip_rect,
563 sorting_context_id, 617 sorting_context_id,
564 transforms[i], 618 transforms[i],
565 io_surfaces[i], 619 io_surfaces[i],
566 nullptr, 620 nullptr,
567 contents_rect, 621 contents_rect,
568 rect, 622 rect,
569 background_color, 623 background_color,
570 edge_aa_mask, 624 edge_aa_mask,
571 opacity); 625 opacity,
626 filter);
572 EXPECT_TRUE(result); 627 EXPECT_TRUE(result);
573 } 628 }
574 ca_layer_tree->CommitScheduledCALayers(superlayer_, nullptr, scale_factor); 629 ca_layer_tree->CommitScheduledCALayers(superlayer_, nullptr, scale_factor);
575 630
576 // Validate the root layer. 631 // Validate the root layer.
577 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 632 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
578 CALayer* root_layer = [[superlayer_ sublayers] objectAtIndex:0]; 633 CALayer* root_layer = [[superlayer_ sublayers] objectAtIndex:0];
579 634
580 // Validate that we have 3 sorting context layers. 635 // Validate that we have 3 sorting context layers.
581 EXPECT_EQ(3u, [[root_layer sublayers] count]); 636 EXPECT_EQ(3u, [[root_layer sublayers] count]);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 bool is_clipped = false; 680 bool is_clipped = false;
626 gfx::Rect clip_rect; 681 gfx::Rect clip_rect;
627 int sorting_context_ids[3] = {3, -1, 0}; 682 int sorting_context_ids[3] = {3, -1, 0};
628 gfx::RectF contents_rect(0, 0, 1, 1); 683 gfx::RectF contents_rect(0, 0, 1, 1);
629 gfx::Rect rect(0, 0, 256, 256); 684 gfx::Rect rect(0, 0, 256, 256);
630 gfx::Transform transform; 685 gfx::Transform transform;
631 unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0xFF, 0xFF); 686 unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0xFF, 0xFF);
632 unsigned edge_aa_mask = 0; 687 unsigned edge_aa_mask = 0;
633 float opacity = 1.0f; 688 float opacity = 1.0f;
634 float scale_factor = 1.0f; 689 float scale_factor = 1.0f;
690 unsigned filter = GL_LINEAR;
635 691
636 // We'll use the IOSurface contents to identify the content layers. 692 // We'll use the IOSurface contents to identify the content layers.
637 base::ScopedCFTypeRef<IOSurfaceRef> io_surfaces[3]; 693 base::ScopedCFTypeRef<IOSurfaceRef> io_surfaces[3];
638 for (size_t i = 0; i < 3; ++i) { 694 for (size_t i = 0; i < 3; ++i) {
639 io_surfaces[i].reset(gfx::CreateIOSurface( 695 io_surfaces[i].reset(gfx::CreateIOSurface(
640 gfx::Size(256, 256), gfx::BufferFormat::BGRA_8888)); 696 gfx::Size(256, 256), gfx::BufferFormat::BGRA_8888));
641 } 697 }
642 698
643 // Schedule and commit the layers. 699 // Schedule and commit the layers.
644 std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree( 700 std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree(
645 new ui::CARendererLayerTree); 701 new ui::CARendererLayerTree);
646 for (size_t i = 0; i < 3; ++i) { 702 for (size_t i = 0; i < 3; ++i) {
647 bool result = ca_layer_tree->ScheduleCALayer( 703 bool result = ca_layer_tree->ScheduleCALayer(
648 is_clipped, 704 is_clipped,
649 clip_rect, 705 clip_rect,
650 sorting_context_ids[i], 706 sorting_context_ids[i],
651 transform, 707 transform,
652 io_surfaces[i], 708 io_surfaces[i],
653 nullptr, 709 nullptr,
654 contents_rect, 710 contents_rect,
655 rect, 711 rect,
656 background_color, 712 background_color,
657 edge_aa_mask, 713 edge_aa_mask,
658 opacity); 714 opacity,
715 filter);
659 EXPECT_TRUE(result); 716 EXPECT_TRUE(result);
660 } 717 }
661 ca_layer_tree->CommitScheduledCALayers(superlayer_, nullptr, scale_factor); 718 ca_layer_tree->CommitScheduledCALayers(superlayer_, nullptr, scale_factor);
662 719
663 // Validate the root layer. 720 // Validate the root layer.
664 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 721 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
665 CALayer* root_layer = [[superlayer_ sublayers] objectAtIndex:0]; 722 CALayer* root_layer = [[superlayer_ sublayers] objectAtIndex:0];
666 723
667 // Validate that we have 3 sorting context layers. 724 // Validate that we have 3 sorting context layers.
668 EXPECT_EQ(3u, [[root_layer sublayers] count]); 725 EXPECT_EQ(3u, [[root_layer sublayers] count]);
(...skipping 28 matching lines...) Expand all
697 754
698 // Verify that sorting contexts must all have the same clipping properties. 755 // Verify that sorting contexts must all have the same clipping properties.
699 TEST_F(CALayerTreeTest, SortingContextMustHaveConsistentClip) { 756 TEST_F(CALayerTreeTest, SortingContextMustHaveConsistentClip) {
700 base::ScopedCFTypeRef<IOSurfaceRef> io_surface; 757 base::ScopedCFTypeRef<IOSurfaceRef> io_surface;
701 gfx::RectF contents_rect(0, 0, 1, 1); 758 gfx::RectF contents_rect(0, 0, 1, 1);
702 gfx::Rect rect(0, 0, 256, 256); 759 gfx::Rect rect(0, 0, 256, 256);
703 gfx::Transform transform; 760 gfx::Transform transform;
704 unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0xFF, 0xFF); 761 unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0xFF, 0xFF);
705 unsigned edge_aa_mask = 0; 762 unsigned edge_aa_mask = 0;
706 float opacity = 1.0f; 763 float opacity = 1.0f;
764 unsigned filter = GL_LINEAR;
707 765
708 // Vary the clipping parameters within sorting contexts. 766 // Vary the clipping parameters within sorting contexts.
709 bool is_clippeds[3] = { true, true, false}; 767 bool is_clippeds[3] = { true, true, false};
710 gfx::Rect clip_rects[3] = { 768 gfx::Rect clip_rects[3] = {
711 gfx::Rect(0, 0, 16, 16), 769 gfx::Rect(0, 0, 16, 16),
712 gfx::Rect(4, 8, 16, 32), 770 gfx::Rect(4, 8, 16, 32),
713 gfx::Rect(0, 0, 16, 16) 771 gfx::Rect(0, 0, 16, 16)
714 }; 772 };
715 773
716 std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree( 774 std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree(
717 new ui::CARendererLayerTree); 775 new ui::CARendererLayerTree);
718 // First send the various clip parameters to sorting context zero. This is 776 // First send the various clip parameters to sorting context zero. This is
719 // legitimate. 777 // legitimate.
720 for (size_t i = 0; i < 3; ++i) { 778 for (size_t i = 0; i < 3; ++i) {
721 int sorting_context_id = 0; 779 int sorting_context_id = 0;
722 bool result = ca_layer_tree->ScheduleCALayer( 780 bool result = ca_layer_tree->ScheduleCALayer(
723 is_clippeds[i], 781 is_clippeds[i],
724 clip_rects[i], 782 clip_rects[i],
725 sorting_context_id, 783 sorting_context_id,
726 transform, 784 transform,
727 io_surface, 785 io_surface,
728 nullptr, 786 nullptr,
729 contents_rect, 787 contents_rect,
730 rect, 788 rect,
731 background_color, 789 background_color,
732 edge_aa_mask, 790 edge_aa_mask,
733 opacity); 791 opacity,
792 filter);
734 EXPECT_TRUE(result); 793 EXPECT_TRUE(result);
735 } 794 }
736 // Next send the various clip parameters to a non-zero sorting context. This 795 // Next send the various clip parameters to a non-zero sorting context. This
737 // will fail when we try to change the clip within the sorting context. 796 // will fail when we try to change the clip within the sorting context.
738 for (size_t i = 0; i < 3; ++i) { 797 for (size_t i = 0; i < 3; ++i) {
739 int sorting_context_id = 3; 798 int sorting_context_id = 3;
740 bool result = ca_layer_tree->ScheduleCALayer( 799 bool result = ca_layer_tree->ScheduleCALayer(
741 is_clippeds[i], 800 is_clippeds[i],
742 clip_rects[i], 801 clip_rects[i],
743 sorting_context_id, 802 sorting_context_id,
744 transform, 803 transform,
745 io_surface, 804 io_surface,
746 nullptr, 805 nullptr,
747 contents_rect, 806 contents_rect,
748 rect, 807 rect,
749 background_color, 808 background_color,
750 edge_aa_mask, 809 edge_aa_mask,
751 opacity); 810 opacity,
811 filter);
752 if (i == 0) 812 if (i == 0)
753 EXPECT_TRUE(result); 813 EXPECT_TRUE(result);
754 else 814 else
755 EXPECT_FALSE(result); 815 EXPECT_FALSE(result);
756 } 816 }
757 // Try once more with the original clip and verify it works. 817 // Try once more with the original clip and verify it works.
758 { 818 {
759 int sorting_context_id = 3; 819 int sorting_context_id = 3;
760 bool result = ca_layer_tree->ScheduleCALayer( 820 bool result = ca_layer_tree->ScheduleCALayer(
761 is_clippeds[0], 821 is_clippeds[0],
762 clip_rects[0], 822 clip_rects[0],
763 sorting_context_id, 823 sorting_context_id,
764 transform, 824 transform,
765 io_surface, 825 io_surface,
766 nullptr, 826 nullptr,
767 contents_rect, 827 contents_rect,
768 rect, 828 rect,
769 background_color, 829 background_color,
770 edge_aa_mask, 830 edge_aa_mask,
771 opacity); 831 opacity,
832 filter);
772 EXPECT_TRUE(result); 833 EXPECT_TRUE(result);
773 } 834 }
774 } 835 }
775 836
776 // Test updating each layer's properties. 837 // Test updating each layer's properties.
777 TEST_F(CALayerTreeTest, AVLayer) { 838 TEST_F(CALayerTreeTest, AVLayer) {
778 base::ScopedCFTypeRef<IOSurfaceRef> io_surface(gfx::CreateIOSurface( 839 base::ScopedCFTypeRef<IOSurfaceRef> io_surface(gfx::CreateIOSurface(
779 gfx::Size(256, 256), gfx::BufferFormat::YUV_420_BIPLANAR)); 840 gfx::Size(256, 256), gfx::BufferFormat::YUV_420_BIPLANAR));
780 841
781 bool is_clipped = true; 842 bool is_clipped = true;
782 gfx::Rect clip_rect(2, 4, 8, 16); 843 gfx::Rect clip_rect(2, 4, 8, 16);
783 int sorting_context_id = 0; 844 int sorting_context_id = 0;
784 gfx::Transform transform; 845 gfx::Transform transform;
785 gfx::RectF contents_rect(0.0f, 0.0f, 1.0f, 1.0f); 846 gfx::RectF contents_rect(0.0f, 0.0f, 1.0f, 1.0f);
786 gfx::Rect rect(16, 32, 64, 128); 847 gfx::Rect rect(16, 32, 64, 128);
787 unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0, 0); 848 unsigned background_color = SkColorSetARGB(0xFF, 0xFF, 0, 0);
788 unsigned edge_aa_mask = GL_CA_LAYER_EDGE_LEFT_CHROMIUM; 849 unsigned edge_aa_mask = GL_CA_LAYER_EDGE_LEFT_CHROMIUM;
789 float opacity = 0.5f; 850 float opacity = 0.5f;
790 float scale_factor = 1.0f; 851 float scale_factor = 1.0f;
791 bool result = false; 852 bool result = false;
853 unsigned filter = GL_LINEAR;
792 854
793 std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree; 855 std::unique_ptr<ui::CARendererLayerTree> ca_layer_tree;
794 CALayer* root_layer = nil; 856 CALayer* root_layer = nil;
795 CALayer* clip_and_sorting_layer = nil; 857 CALayer* clip_and_sorting_layer = nil;
796 CALayer* transform_layer = nil; 858 CALayer* transform_layer = nil;
797 CALayer* content_layer1 = nil; 859 CALayer* content_layer1 = nil;
798 CALayer* content_layer2 = nil; 860 CALayer* content_layer2 = nil;
799 CALayer* content_layer3 = nil; 861 CALayer* content_layer3 = nil;
800 862
801 // Validate the initial values. 863 // Validate the initial values.
802 { 864 {
803 std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree( 865 std::unique_ptr<ui::CARendererLayerTree> new_ca_layer_tree(
804 new ui::CARendererLayerTree); 866 new ui::CARendererLayerTree);
805 result = new_ca_layer_tree->ScheduleCALayer( 867 result = new_ca_layer_tree->ScheduleCALayer(
806 is_clipped, 868 is_clipped,
807 clip_rect, 869 clip_rect,
808 sorting_context_id, 870 sorting_context_id,
809 transform, 871 transform,
810 io_surface, 872 io_surface,
811 nullptr, 873 nullptr,
812 contents_rect, 874 contents_rect,
813 rect, background_color, 875 rect, background_color,
814 edge_aa_mask, 876 edge_aa_mask,
815 opacity); 877 opacity,
878 filter);
816 EXPECT_TRUE(result); 879 EXPECT_TRUE(result);
817 new_ca_layer_tree->CommitScheduledCALayers( 880 new_ca_layer_tree->CommitScheduledCALayers(
818 superlayer_, std::move(ca_layer_tree), scale_factor); 881 superlayer_, std::move(ca_layer_tree), scale_factor);
819 std::swap(new_ca_layer_tree, ca_layer_tree); 882 std::swap(new_ca_layer_tree, ca_layer_tree);
820 883
821 // Validate the tree structure. 884 // Validate the tree structure.
822 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 885 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
823 root_layer = [[superlayer_ sublayers] objectAtIndex:0]; 886 root_layer = [[superlayer_ sublayers] objectAtIndex:0];
824 EXPECT_EQ(1u, [[root_layer sublayers] count]); 887 EXPECT_EQ(1u, [[root_layer sublayers] count]);
825 clip_and_sorting_layer = [[root_layer sublayers] objectAtIndex:0]; 888 clip_and_sorting_layer = [[root_layer sublayers] objectAtIndex:0];
(...skipping 18 matching lines...) Expand all
844 is_clipped, 907 is_clipped,
845 clip_rect, 908 clip_rect,
846 sorting_context_id, 909 sorting_context_id,
847 transform, 910 transform,
848 io_surface, 911 io_surface,
849 nullptr, 912 nullptr,
850 contents_rect, 913 contents_rect,
851 rect, 914 rect,
852 background_color, 915 background_color,
853 edge_aa_mask, 916 edge_aa_mask,
854 opacity); 917 opacity,
918 filter);
855 EXPECT_TRUE(result); 919 EXPECT_TRUE(result);
856 new_ca_layer_tree->CommitScheduledCALayers( 920 new_ca_layer_tree->CommitScheduledCALayers(
857 superlayer_, std::move(ca_layer_tree), scale_factor); 921 superlayer_, std::move(ca_layer_tree), scale_factor);
858 std::swap(new_ca_layer_tree, ca_layer_tree); 922 std::swap(new_ca_layer_tree, ca_layer_tree);
859 923
860 // Validate the tree structure. 924 // Validate the tree structure.
861 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 925 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
862 root_layer = [[superlayer_ sublayers] objectAtIndex:0]; 926 root_layer = [[superlayer_ sublayers] objectAtIndex:0];
863 EXPECT_EQ(1u, [[root_layer sublayers] count]); 927 EXPECT_EQ(1u, [[root_layer sublayers] count]);
864 clip_and_sorting_layer = [[root_layer sublayers] objectAtIndex:0]; 928 clip_and_sorting_layer = [[root_layer sublayers] objectAtIndex:0];
(...skipping 22 matching lines...) Expand all
887 is_clipped, 951 is_clipped,
888 clip_rect, 952 clip_rect,
889 sorting_context_id, 953 sorting_context_id,
890 transform, 954 transform,
891 io_surface, 955 io_surface,
892 cv_pixel_buffer, 956 cv_pixel_buffer,
893 contents_rect, 957 contents_rect,
894 rect, 958 rect,
895 background_color, 959 background_color,
896 edge_aa_mask, 960 edge_aa_mask,
897 opacity); 961 opacity,
962 filter);
898 EXPECT_TRUE(result); 963 EXPECT_TRUE(result);
899 new_ca_layer_tree->CommitScheduledCALayers( 964 new_ca_layer_tree->CommitScheduledCALayers(
900 superlayer_, std::move(ca_layer_tree), scale_factor); 965 superlayer_, std::move(ca_layer_tree), scale_factor);
901 std::swap(new_ca_layer_tree, ca_layer_tree); 966 std::swap(new_ca_layer_tree, ca_layer_tree);
902 967
903 // Validate the tree structure. 968 // Validate the tree structure.
904 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 969 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
905 root_layer = [[superlayer_ sublayers] objectAtIndex:0]; 970 root_layer = [[superlayer_ sublayers] objectAtIndex:0];
906 EXPECT_EQ(1u, [[root_layer sublayers] count]); 971 EXPECT_EQ(1u, [[root_layer sublayers] count]);
907 clip_and_sorting_layer = [[root_layer sublayers] objectAtIndex:0]; 972 clip_and_sorting_layer = [[root_layer sublayers] objectAtIndex:0];
(...skipping 21 matching lines...) Expand all
929 is_clipped, 994 is_clipped,
930 clip_rect, 995 clip_rect,
931 sorting_context_id, 996 sorting_context_id,
932 transform, 997 transform,
933 io_surface, 998 io_surface,
934 nullptr, 999 nullptr,
935 contents_rect, 1000 contents_rect,
936 rect, 1001 rect,
937 background_color, 1002 background_color,
938 edge_aa_mask, 1003 edge_aa_mask,
939 opacity); 1004 opacity,
1005 filter);
940 EXPECT_TRUE(result); 1006 EXPECT_TRUE(result);
941 new_ca_layer_tree->CommitScheduledCALayers( 1007 new_ca_layer_tree->CommitScheduledCALayers(
942 superlayer_, std::move(ca_layer_tree), scale_factor); 1008 superlayer_, std::move(ca_layer_tree), scale_factor);
943 std::swap(new_ca_layer_tree, ca_layer_tree); 1009 std::swap(new_ca_layer_tree, ca_layer_tree);
944 1010
945 // Validate the tree structure. 1011 // Validate the tree structure.
946 EXPECT_EQ(1u, [[superlayer_ sublayers] count]); 1012 EXPECT_EQ(1u, [[superlayer_ sublayers] count]);
947 root_layer = [[superlayer_ sublayers] objectAtIndex:0]; 1013 root_layer = [[superlayer_ sublayers] objectAtIndex:0];
948 EXPECT_EQ(1u, [[root_layer sublayers] count]); 1014 EXPECT_EQ(1u, [[root_layer sublayers] count]);
949 clip_and_sorting_layer = [[root_layer sublayers] objectAtIndex:0]; 1015 clip_and_sorting_layer = [[root_layer sublayers] objectAtIndex:0];
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
1120 CALayer* content_layer = [[transform_layer sublayers] objectAtIndex:0]; 1186 CALayer* content_layer = [[transform_layer sublayers] objectAtIndex:0];
1121 1187
1122 // Validate the content layer and fullscreen low power mode. 1188 // Validate the content layer and fullscreen low power mode.
1123 EXPECT_TRUE([content_layer 1189 EXPECT_TRUE([content_layer
1124 isKindOfClass:NSClassFromString(@"AVSampleBufferDisplayLayer")]); 1190 isKindOfClass:NSClassFromString(@"AVSampleBufferDisplayLayer")]);
1125 EXPECT_FALSE(fullscreen_low_power_valid); 1191 EXPECT_FALSE(fullscreen_low_power_valid);
1126 } 1192 }
1127 } 1193 }
1128 1194
1129 } // namespace gpu 1195 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698