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

Side by Side Diff: cc/playback/display_list_raster_source_unittest.cc

Issue 1405883002: cc: Remove the base RasterSource (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: merge more Created 5 years, 2 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
« no previous file with comments | « cc/playback/display_list_raster_source.cc ('k') | cc/playback/display_list_recording_source.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/memory/scoped_ptr.h" 5 #include "base/memory/scoped_ptr.h"
6 #include "cc/playback/display_list_raster_source.h" 6 #include "cc/playback/display_list_raster_source.h"
7 #include "cc/test/fake_display_list_recording_source.h" 7 #include "cc/test/fake_display_list_recording_source.h"
8 #include "cc/test/skia_common.h" 8 #include "cc/test/skia_common.h"
9 #include "skia/ext/refptr.h" 9 #include "skia/ext/refptr.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 23 matching lines...) Expand all
34 solid_paint); 34 solid_paint);
35 recording_source->Rerecord(); 35 recording_source->Rerecord();
36 36
37 scoped_refptr<DisplayListRasterSource> raster = 37 scoped_refptr<DisplayListRasterSource> raster =
38 DisplayListRasterSource::CreateFromDisplayListRecordingSource( 38 DisplayListRasterSource::CreateFromDisplayListRecordingSource(
39 recording_source.get(), false); 39 recording_source.get(), false);
40 40
41 // Ensure everything is solid. 41 // Ensure everything is solid.
42 for (int y = 0; y <= 300; y += 100) { 42 for (int y = 0; y <= 300; y += 100) {
43 for (int x = 0; x <= 300; x += 100) { 43 for (int x = 0; x <= 300; x += 100) {
44 RasterSource::SolidColorAnalysis analysis; 44 DisplayListRasterSource::SolidColorAnalysis analysis;
45 gfx::Rect rect(x, y, 100, 100); 45 gfx::Rect rect(x, y, 100, 100);
46 raster->PerformSolidColorAnalysis(rect, 1.0, &analysis); 46 raster->PerformSolidColorAnalysis(rect, 1.0, &analysis);
47 EXPECT_TRUE(analysis.is_solid_color) << rect.ToString(); 47 EXPECT_TRUE(analysis.is_solid_color) << rect.ToString();
48 EXPECT_EQ(solid_color, analysis.solid_color) << rect.ToString(); 48 EXPECT_EQ(solid_color, analysis.solid_color) << rect.ToString();
49 } 49 }
50 } 50 }
51 51
52 // Add one non-solid pixel and recreate the raster source. 52 // Add one non-solid pixel and recreate the raster source.
53 recording_source->add_draw_rect_with_paint(gfx::Rect(50, 50, 1, 1), 53 recording_source->add_draw_rect_with_paint(gfx::Rect(50, 50, 1, 1),
54 non_solid_paint); 54 non_solid_paint);
55 recording_source->Rerecord(); 55 recording_source->Rerecord();
56 raster = DisplayListRasterSource::CreateFromDisplayListRecordingSource( 56 raster = DisplayListRasterSource::CreateFromDisplayListRecordingSource(
57 recording_source.get(), false); 57 recording_source.get(), false);
58 58
59 RasterSource::SolidColorAnalysis analysis; 59 DisplayListRasterSource::SolidColorAnalysis analysis;
60 raster->PerformSolidColorAnalysis(gfx::Rect(0, 0, 100, 100), 1.0, &analysis); 60 raster->PerformSolidColorAnalysis(gfx::Rect(0, 0, 100, 100), 1.0, &analysis);
61 EXPECT_FALSE(analysis.is_solid_color); 61 EXPECT_FALSE(analysis.is_solid_color);
62 62
63 raster->PerformSolidColorAnalysis(gfx::Rect(100, 0, 100, 100), 1.0, 63 raster->PerformSolidColorAnalysis(gfx::Rect(100, 0, 100, 100), 1.0,
64 &analysis); 64 &analysis);
65 EXPECT_TRUE(analysis.is_solid_color); 65 EXPECT_TRUE(analysis.is_solid_color);
66 EXPECT_EQ(solid_color, analysis.solid_color); 66 EXPECT_EQ(solid_color, analysis.solid_color);
67 67
68 // Boundaries should be clipped. 68 // Boundaries should be clipped.
69 analysis.is_solid_color = false; 69 analysis.is_solid_color = false;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 solid_paint); 103 solid_paint);
104 recording_source->Rerecord(); 104 recording_source->Rerecord();
105 105
106 scoped_refptr<DisplayListRasterSource> raster = 106 scoped_refptr<DisplayListRasterSource> raster =
107 DisplayListRasterSource::CreateFromDisplayListRecordingSource( 107 DisplayListRasterSource::CreateFromDisplayListRecordingSource(
108 recording_source.get(), false); 108 recording_source.get(), false);
109 109
110 // Ensure everything is solid. 110 // Ensure everything is solid.
111 for (int y = 0; y <= 30; y += 10) { 111 for (int y = 0; y <= 30; y += 10) {
112 for (int x = 0; x <= 30; x += 10) { 112 for (int x = 0; x <= 30; x += 10) {
113 RasterSource::SolidColorAnalysis analysis; 113 DisplayListRasterSource::SolidColorAnalysis analysis;
114 gfx::Rect rect(x, y, 10, 10); 114 gfx::Rect rect(x, y, 10, 10);
115 raster->PerformSolidColorAnalysis(rect, 0.1f, &analysis); 115 raster->PerformSolidColorAnalysis(rect, 0.1f, &analysis);
116 EXPECT_TRUE(analysis.is_solid_color) << rect.ToString(); 116 EXPECT_TRUE(analysis.is_solid_color) << rect.ToString();
117 EXPECT_EQ(analysis.solid_color, solid_color) << rect.ToString(); 117 EXPECT_EQ(analysis.solid_color, solid_color) << rect.ToString();
118 } 118 }
119 } 119 }
120 120
121 // Add one non-solid pixel and recreate the raster source. 121 // Add one non-solid pixel and recreate the raster source.
122 recording_source->add_draw_rect_with_paint(gfx::Rect(50, 50, 1, 1), 122 recording_source->add_draw_rect_with_paint(gfx::Rect(50, 50, 1, 1),
123 non_solid_paint); 123 non_solid_paint);
124 recording_source->Rerecord(); 124 recording_source->Rerecord();
125 raster = DisplayListRasterSource::CreateFromDisplayListRecordingSource( 125 raster = DisplayListRasterSource::CreateFromDisplayListRecordingSource(
126 recording_source.get(), false); 126 recording_source.get(), false);
127 127
128 RasterSource::SolidColorAnalysis analysis; 128 DisplayListRasterSource::SolidColorAnalysis analysis;
129 raster->PerformSolidColorAnalysis(gfx::Rect(0, 0, 10, 10), 0.1f, &analysis); 129 raster->PerformSolidColorAnalysis(gfx::Rect(0, 0, 10, 10), 0.1f, &analysis);
130 EXPECT_FALSE(analysis.is_solid_color); 130 EXPECT_FALSE(analysis.is_solid_color);
131 131
132 raster->PerformSolidColorAnalysis(gfx::Rect(10, 0, 10, 10), 0.1f, &analysis); 132 raster->PerformSolidColorAnalysis(gfx::Rect(10, 0, 10, 10), 0.1f, &analysis);
133 EXPECT_TRUE(analysis.is_solid_color); 133 EXPECT_TRUE(analysis.is_solid_color);
134 EXPECT_EQ(analysis.solid_color, solid_color); 134 EXPECT_EQ(analysis.solid_color, solid_color);
135 135
136 // Boundaries should be clipped. 136 // Boundaries should be clipped.
137 analysis.is_solid_color = false; 137 analysis.is_solid_color = false;
138 raster->PerformSolidColorAnalysis(gfx::Rect(35, 0, 10, 10), 0.1f, &analysis); 138 raster->PerformSolidColorAnalysis(gfx::Rect(35, 0, 10, 10), 0.1f, &analysis);
(...skipping 14 matching lines...) Expand all
153 TEST(DisplayListRasterSourceTest, AnalyzeIsSolidEmpty) { 153 TEST(DisplayListRasterSourceTest, AnalyzeIsSolidEmpty) {
154 gfx::Size layer_bounds(400, 400); 154 gfx::Size layer_bounds(400, 400);
155 155
156 scoped_ptr<FakeDisplayListRecordingSource> recording_source = 156 scoped_ptr<FakeDisplayListRecordingSource> recording_source =
157 FakeDisplayListRecordingSource::CreateFilledRecordingSource(layer_bounds); 157 FakeDisplayListRecordingSource::CreateFilledRecordingSource(layer_bounds);
158 recording_source->Rerecord(); 158 recording_source->Rerecord();
159 159
160 scoped_refptr<DisplayListRasterSource> raster = 160 scoped_refptr<DisplayListRasterSource> raster =
161 DisplayListRasterSource::CreateFromDisplayListRecordingSource( 161 DisplayListRasterSource::CreateFromDisplayListRecordingSource(
162 recording_source.get(), false); 162 recording_source.get(), false);
163 RasterSource::SolidColorAnalysis analysis; 163 DisplayListRasterSource::SolidColorAnalysis analysis;
164 EXPECT_FALSE(analysis.is_solid_color); 164 EXPECT_FALSE(analysis.is_solid_color);
165 165
166 raster->PerformSolidColorAnalysis(gfx::Rect(0, 0, 400, 400), 1.f, &analysis); 166 raster->PerformSolidColorAnalysis(gfx::Rect(0, 0, 400, 400), 1.f, &analysis);
167 167
168 EXPECT_TRUE(analysis.is_solid_color); 168 EXPECT_TRUE(analysis.is_solid_color);
169 EXPECT_EQ(analysis.solid_color, SkColorSetARGB(0, 0, 0, 0)); 169 EXPECT_EQ(analysis.solid_color, SkColorSetARGB(0, 0, 0, 0));
170 } 170 }
171 171
172 TEST(DisplayListRasterSourceTest, PixelRefIteratorDiscardableRefsOneTile) { 172 TEST(DisplayListRasterSourceTest, PixelRefIteratorDiscardableRefsOneTile) {
173 gfx::Size layer_bounds(512, 512); 173 gfx::Size layer_bounds(512, 512);
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 } 345 }
346 } 346 }
347 347
348 // Re-record everything as black. 348 // Re-record everything as black.
349 SkPaint black_paint; 349 SkPaint black_paint;
350 black_paint.setColor(SK_ColorBLACK); 350 black_paint.setColor(SK_ColorBLACK);
351 recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds), 351 recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds),
352 black_paint); 352 black_paint);
353 recording_source->Rerecord(); 353 recording_source->Rerecord();
354 354
355 // Make a new RasterSource from the new recording. 355 // Make a new DisplayListRasterSource from the new recording.
356 raster = DisplayListRasterSource::CreateFromDisplayListRecordingSource( 356 raster = DisplayListRasterSource::CreateFromDisplayListRecordingSource(
357 recording_source.get(), false); 357 recording_source.get(), false);
358 358
359 // We're going to playback from "everything is black" into a smaller area, 359 // We're going to playback from "everything is black" into a smaller area,
360 // that touches the edge pixels of the recording. 360 // that touches the edge pixels of the recording.
361 playback_rect.Inset(1, 2, 0, 1); 361 playback_rect.Inset(1, 2, 0, 1);
362 raster->PlaybackToCanvas(&canvas, raster_full_rect, playback_rect, 362 raster->PlaybackToCanvas(&canvas, raster_full_rect, playback_rect,
363 contents_scale); 363 contents_scale);
364 364
365 SkColor* pixels = reinterpret_cast<SkColor*>(bitmap.getPixels()); 365 SkColor* pixels = reinterpret_cast<SkColor*>(bitmap.getPixels());
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 recording_source_light->SetRequiresClear(true); 447 recording_source_light->SetRequiresClear(true);
448 recording_source_light->SetClearCanvasWithDebugColor(false); 448 recording_source_light->SetClearCanvasWithDebugColor(false);
449 449
450 // Record everything as a slightly lighter white. 450 // Record everything as a slightly lighter white.
451 const unsigned alpha_light = 18u; 451 const unsigned alpha_light = 18u;
452 white_paint.setAlpha(alpha_light); 452 white_paint.setAlpha(alpha_light);
453 recording_source_light->add_draw_rect_with_paint(gfx::Rect(layer_bounds), 453 recording_source_light->add_draw_rect_with_paint(gfx::Rect(layer_bounds),
454 white_paint); 454 white_paint);
455 recording_source_light->Rerecord(); 455 recording_source_light->Rerecord();
456 456
457 // Make a new RasterSource from the new recording. 457 // Make a new DisplayListRasterSource from the new recording.
458 raster = DisplayListRasterSource::CreateFromDisplayListRecordingSource( 458 raster = DisplayListRasterSource::CreateFromDisplayListRecordingSource(
459 recording_source_light.get(), false); 459 recording_source_light.get(), false);
460 460
461 // We're going to playback from alpha(18) white rectangle into a smaller area 461 // We're going to playback from alpha(18) white rectangle into a smaller area
462 // of the recording resulting in a smaller lighter white rectangle over a 462 // of the recording resulting in a smaller lighter white rectangle over a
463 // darker white background rectangle. 463 // darker white background rectangle.
464 playback_rect = 464 playback_rect =
465 gfx::Rect(gfx::ScaleToCeiledSize(partial_bounds, contents_scale)); 465 gfx::Rect(gfx::ScaleToCeiledSize(partial_bounds, contents_scale));
466 raster->PlaybackToCanvas(&canvas, raster_full_rect, playback_rect, 466 raster->PlaybackToCanvas(&canvas, raster_full_rect, playback_rect,
467 contents_scale); 467 contents_scale);
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 scoped_refptr<DisplayListRasterSource> raster = 525 scoped_refptr<DisplayListRasterSource> raster =
526 DisplayListRasterSource::CreateFromDisplayListRecordingSource( 526 DisplayListRasterSource::CreateFromDisplayListRecordingSource(
527 recording_source.get(), false); 527 recording_source.get(), false);
528 size_t total_memory_usage = raster->GetPictureMemoryUsage(); 528 size_t total_memory_usage = raster->GetPictureMemoryUsage();
529 EXPECT_GE(total_memory_usage, kReportedMemoryUsageInBytes); 529 EXPECT_GE(total_memory_usage, kReportedMemoryUsageInBytes);
530 EXPECT_LT(total_memory_usage, 2 * kReportedMemoryUsageInBytes); 530 EXPECT_LT(total_memory_usage, 2 * kReportedMemoryUsageInBytes);
531 } 531 }
532 532
533 } // namespace 533 } // namespace
534 } // namespace cc 534 } // namespace cc
OLDNEW
« no previous file with comments | « cc/playback/display_list_raster_source.cc ('k') | cc/playback/display_list_recording_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698