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

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

Issue 2640983002: Rename paint data structures (Closed)
Patch Set: Clean up comments, fix mac build Created 3 years, 11 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 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 "cc/playback/raster_source.h" 5 #include "cc/playback/raster_source.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 10
11 #include "cc/test/fake_recording_source.h" 11 #include "cc/test/fake_recording_source.h"
12 #include "cc/test/skia_common.h" 12 #include "cc/test/skia_common.h"
13 #include "cc/tiles/software_image_decode_cache.h" 13 #include "cc/tiles/software_image_decode_cache.h"
14 #include "testing/gtest/include/gtest/gtest.h" 14 #include "testing/gtest/include/gtest/gtest.h"
15 #include "third_party/skia/include/core/SkPixelRef.h" 15 #include "third_party/skia/include/core/SkPixelRef.h"
16 #include "third_party/skia/include/core/SkRefCnt.h" 16 #include "third_party/skia/include/core/SkRefCnt.h"
17 #include "third_party/skia/include/core/SkShader.h" 17 #include "third_party/skia/include/core/SkShader.h"
18 #include "ui/gfx/geometry/rect.h" 18 #include "ui/gfx/geometry/rect.h"
19 #include "ui/gfx/geometry/size_conversions.h" 19 #include "ui/gfx/geometry/size_conversions.h"
20 20
21 namespace cc { 21 namespace cc {
22 namespace { 22 namespace {
23 23
24 TEST(RasterSourceTest, AnalyzeIsSolidUnscaled) { 24 TEST(RasterSourceTest, AnalyzeIsSolidUnscaled) {
25 gfx::Size layer_bounds(400, 400); 25 gfx::Size layer_bounds(400, 400);
26 26
27 std::unique_ptr<FakeRecordingSource> recording_source = 27 std::unique_ptr<FakeRecordingSource> recording_source =
28 FakeRecordingSource::CreateFilledRecordingSource(layer_bounds); 28 FakeRecordingSource::CreateFilledRecordingSource(layer_bounds);
29 29
30 SkPaint solid_paint; 30 PaintFlags solid_paint;
31 SkColor solid_color = SkColorSetARGB(255, 12, 23, 34); 31 SkColor solid_color = SkColorSetARGB(255, 12, 23, 34);
32 solid_paint.setColor(solid_color); 32 solid_paint.setColor(solid_color);
33 33
34 SkColor non_solid_color = SkColorSetARGB(128, 45, 56, 67); 34 SkColor non_solid_color = SkColorSetARGB(128, 45, 56, 67);
35 SkColor color = SK_ColorTRANSPARENT; 35 SkColor color = SK_ColorTRANSPARENT;
36 SkPaint non_solid_paint; 36 PaintFlags non_solid_paint;
37 bool is_solid_color = false; 37 bool is_solid_color = false;
38 non_solid_paint.setColor(non_solid_color); 38 non_solid_paint.setColor(non_solid_color);
39 39
40 recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds), 40 recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds),
41 solid_paint); 41 solid_paint);
42 recording_source->Rerecord(); 42 recording_source->Rerecord();
43 43
44 scoped_refptr<RasterSource> raster = 44 scoped_refptr<RasterSource> raster =
45 RasterSource::CreateFromRecordingSource(recording_source.get(), false); 45 RasterSource::CreateFromRecordingSource(recording_source.get(), false);
46 46
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 } 93 }
94 94
95 TEST(RasterSourceTest, AnalyzeIsSolidScaled) { 95 TEST(RasterSourceTest, AnalyzeIsSolidScaled) {
96 gfx::Size layer_bounds(400, 400); 96 gfx::Size layer_bounds(400, 400);
97 97
98 std::unique_ptr<FakeRecordingSource> recording_source = 98 std::unique_ptr<FakeRecordingSource> recording_source =
99 FakeRecordingSource::CreateFilledRecordingSource(layer_bounds); 99 FakeRecordingSource::CreateFilledRecordingSource(layer_bounds);
100 100
101 SkColor solid_color = SkColorSetARGB(255, 12, 23, 34); 101 SkColor solid_color = SkColorSetARGB(255, 12, 23, 34);
102 SkColor color = SK_ColorTRANSPARENT; 102 SkColor color = SK_ColorTRANSPARENT;
103 SkPaint solid_paint; 103 PaintFlags solid_paint;
104 bool is_solid_color = false; 104 bool is_solid_color = false;
105 solid_paint.setColor(solid_color); 105 solid_paint.setColor(solid_color);
106 106
107 SkColor non_solid_color = SkColorSetARGB(128, 45, 56, 67); 107 SkColor non_solid_color = SkColorSetARGB(128, 45, 56, 67);
108 SkPaint non_solid_paint; 108 PaintFlags non_solid_paint;
109 non_solid_paint.setColor(non_solid_color); 109 non_solid_paint.setColor(non_solid_color);
110 110
111 recording_source->add_draw_rect_with_paint(gfx::Rect(0, 0, 400, 400), 111 recording_source->add_draw_rect_with_paint(gfx::Rect(0, 0, 400, 400),
112 solid_paint); 112 solid_paint);
113 recording_source->Rerecord(); 113 recording_source->Rerecord();
114 114
115 scoped_refptr<RasterSource> raster = 115 scoped_refptr<RasterSource> raster =
116 RasterSource::CreateFromRecordingSource(recording_source.get(), false); 116 RasterSource::CreateFromRecordingSource(recording_source.get(), false);
117 117
118 // Ensure everything is solid. 118 // Ensure everything is solid.
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 float contents_scale = 1.5f; 246 float contents_scale = 1.5f;
247 float raster_divisions = 2.f; 247 float raster_divisions = 2.f;
248 248
249 std::unique_ptr<FakeRecordingSource> recording_source = 249 std::unique_ptr<FakeRecordingSource> recording_source =
250 FakeRecordingSource::CreateFilledRecordingSource(layer_bounds); 250 FakeRecordingSource::CreateFilledRecordingSource(layer_bounds);
251 recording_source->SetBackgroundColor(SK_ColorBLACK); 251 recording_source->SetBackgroundColor(SK_ColorBLACK);
252 recording_source->SetClearCanvasWithDebugColor(false); 252 recording_source->SetClearCanvasWithDebugColor(false);
253 253
254 // Because the caller sets content opaque, it also promises that it 254 // Because the caller sets content opaque, it also promises that it
255 // has at least filled in layer_bounds opaquely. 255 // has at least filled in layer_bounds opaquely.
256 SkPaint white_paint; 256 PaintFlags white_paint;
257 white_paint.setColor(SK_ColorWHITE); 257 white_paint.setColor(SK_ColorWHITE);
258 recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds), 258 recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds),
259 white_paint); 259 white_paint);
260 recording_source->Rerecord(); 260 recording_source->Rerecord();
261 261
262 scoped_refptr<RasterSource> raster = 262 scoped_refptr<RasterSource> raster =
263 RasterSource::CreateFromRecordingSource(recording_source.get(), false); 263 RasterSource::CreateFromRecordingSource(recording_source.get(), false);
264 264
265 gfx::Size content_bounds( 265 gfx::Size content_bounds(
266 gfx::ScaleToCeiledSize(layer_bounds, contents_scale)); 266 gfx::ScaleToCeiledSize(layer_bounds, contents_scale));
267 267
268 // Simulate drawing into different tiles at different offsets. 268 // Simulate drawing into different tiles at different offsets.
269 int step_x = std::ceil(content_bounds.width() / raster_divisions); 269 int step_x = std::ceil(content_bounds.width() / raster_divisions);
270 int step_y = std::ceil(content_bounds.height() / raster_divisions); 270 int step_y = std::ceil(content_bounds.height() / raster_divisions);
271 for (int offset_x = 0; offset_x < content_bounds.width(); 271 for (int offset_x = 0; offset_x < content_bounds.width();
272 offset_x += step_x) { 272 offset_x += step_x) {
273 for (int offset_y = 0; offset_y < content_bounds.height(); 273 for (int offset_y = 0; offset_y < content_bounds.height();
274 offset_y += step_y) { 274 offset_y += step_y) {
275 gfx::Rect content_rect(offset_x, offset_y, step_x, step_y); 275 gfx::Rect content_rect(offset_x, offset_y, step_x, step_y);
276 content_rect.Intersect(gfx::Rect(content_bounds)); 276 content_rect.Intersect(gfx::Rect(content_bounds));
277 277
278 // Simulate a canvas rect larger than the content rect. Every pixel 278 // Simulate a canvas rect larger than the content rect. Every pixel
279 // up to one pixel outside the content rect is guaranteed to be opaque. 279 // up to one pixel outside the content rect is guaranteed to be opaque.
280 // Outside of that is undefined. 280 // Outside of that is undefined.
281 gfx::Rect canvas_rect(content_rect); 281 gfx::Rect canvas_rect(content_rect);
282 canvas_rect.Inset(0, 0, -1, -1); 282 canvas_rect.Inset(0, 0, -1, -1);
283 283
284 SkBitmap bitmap; 284 SkBitmap bitmap;
285 bitmap.allocN32Pixels(canvas_rect.width(), canvas_rect.height()); 285 bitmap.allocN32Pixels(canvas_rect.width(), canvas_rect.height());
286 SkCanvas canvas(bitmap); 286 PaintCanvas canvas(bitmap);
287 canvas.clear(SK_ColorTRANSPARENT); 287 canvas.clear(SK_ColorTRANSPARENT);
288 288
289 raster->PlaybackToCanvas(&canvas, canvas_rect, canvas_rect, 289 raster->PlaybackToCanvas(&canvas, canvas_rect, canvas_rect,
290 contents_scale, 290 contents_scale,
291 RasterSource::PlaybackSettings()); 291 RasterSource::PlaybackSettings());
292 292
293 SkColor* pixels = reinterpret_cast<SkColor*>(bitmap.getPixels()); 293 SkColor* pixels = reinterpret_cast<SkColor*>(bitmap.getPixels());
294 int num_pixels = bitmap.width() * bitmap.height(); 294 int num_pixels = bitmap.width() * bitmap.height();
295 bool all_white = true; 295 bool all_white = true;
296 for (int i = 0; i < num_pixels; ++i) { 296 for (int i = 0; i < num_pixels; ++i) {
(...skipping 14 matching lines...) Expand all
311 TEST(RasterSourceTest, RasterPartialContents) { 311 TEST(RasterSourceTest, RasterPartialContents) {
312 gfx::Size layer_bounds(3, 5); 312 gfx::Size layer_bounds(3, 5);
313 float contents_scale = 1.5f; 313 float contents_scale = 1.5f;
314 314
315 std::unique_ptr<FakeRecordingSource> recording_source = 315 std::unique_ptr<FakeRecordingSource> recording_source =
316 FakeRecordingSource::CreateFilledRecordingSource(layer_bounds); 316 FakeRecordingSource::CreateFilledRecordingSource(layer_bounds);
317 recording_source->SetBackgroundColor(SK_ColorGREEN); 317 recording_source->SetBackgroundColor(SK_ColorGREEN);
318 recording_source->SetClearCanvasWithDebugColor(false); 318 recording_source->SetClearCanvasWithDebugColor(false);
319 319
320 // First record everything as white. 320 // First record everything as white.
321 SkPaint white_paint; 321 PaintFlags white_paint;
322 white_paint.setColor(SK_ColorWHITE); 322 white_paint.setColor(SK_ColorWHITE);
323 recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds), 323 recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds),
324 white_paint); 324 white_paint);
325 recording_source->Rerecord(); 325 recording_source->Rerecord();
326 326
327 scoped_refptr<RasterSource> raster = 327 scoped_refptr<RasterSource> raster =
328 RasterSource::CreateFromRecordingSource(recording_source.get(), false); 328 RasterSource::CreateFromRecordingSource(recording_source.get(), false);
329 329
330 gfx::Size content_bounds( 330 gfx::Size content_bounds(
331 gfx::ScaleToCeiledSize(layer_bounds, contents_scale)); 331 gfx::ScaleToCeiledSize(layer_bounds, contents_scale));
332 332
333 SkBitmap bitmap; 333 SkBitmap bitmap;
334 bitmap.allocN32Pixels(content_bounds.width(), content_bounds.height()); 334 bitmap.allocN32Pixels(content_bounds.width(), content_bounds.height());
335 SkCanvas canvas(bitmap); 335 PaintCanvas canvas(bitmap);
336 canvas.clear(SK_ColorTRANSPARENT); 336 canvas.clear(SK_ColorTRANSPARENT);
337 337
338 // Playback the full rect which should make everything white. 338 // Playback the full rect which should make everything white.
339 gfx::Rect raster_full_rect(content_bounds); 339 gfx::Rect raster_full_rect(content_bounds);
340 gfx::Rect playback_rect(content_bounds); 340 gfx::Rect playback_rect(content_bounds);
341 raster->PlaybackToCanvas(&canvas, raster_full_rect, playback_rect, 341 raster->PlaybackToCanvas(&canvas, raster_full_rect, playback_rect,
342 contents_scale, RasterSource::PlaybackSettings()); 342 contents_scale, RasterSource::PlaybackSettings());
343 343
344 { 344 {
345 SkColor* pixels = reinterpret_cast<SkColor*>(bitmap.getPixels()); 345 SkColor* pixels = reinterpret_cast<SkColor*>(bitmap.getPixels());
346 for (int i = 0; i < bitmap.width(); ++i) { 346 for (int i = 0; i < bitmap.width(); ++i) {
347 for (int j = 0; j < bitmap.height(); ++j) { 347 for (int j = 0; j < bitmap.height(); ++j) {
348 SCOPED_TRACE(i); 348 SCOPED_TRACE(i);
349 SCOPED_TRACE(j); 349 SCOPED_TRACE(j);
350 EXPECT_EQ(255u, SkColorGetA(pixels[i + j * bitmap.width()])); 350 EXPECT_EQ(255u, SkColorGetA(pixels[i + j * bitmap.width()]));
351 EXPECT_EQ(255u, SkColorGetR(pixels[i + j * bitmap.width()])); 351 EXPECT_EQ(255u, SkColorGetR(pixels[i + j * bitmap.width()]));
352 EXPECT_EQ(255u, SkColorGetG(pixels[i + j * bitmap.width()])); 352 EXPECT_EQ(255u, SkColorGetG(pixels[i + j * bitmap.width()]));
353 EXPECT_EQ(255u, SkColorGetB(pixels[i + j * bitmap.width()])); 353 EXPECT_EQ(255u, SkColorGetB(pixels[i + j * bitmap.width()]));
354 } 354 }
355 } 355 }
356 } 356 }
357 357
358 // Re-record everything as black. 358 // Re-record everything as black.
359 SkPaint black_paint; 359 PaintFlags black_paint;
360 black_paint.setColor(SK_ColorBLACK); 360 black_paint.setColor(SK_ColorBLACK);
361 recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds), 361 recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds),
362 black_paint); 362 black_paint);
363 recording_source->Rerecord(); 363 recording_source->Rerecord();
364 364
365 // Make a new RasterSource from the new recording. 365 // Make a new RasterSource from the new recording.
366 raster = 366 raster =
367 RasterSource::CreateFromRecordingSource(recording_source.get(), false); 367 RasterSource::CreateFromRecordingSource(recording_source.get(), false);
368 368
369 // We're going to playback from "everything is black" into a smaller area, 369 // We're going to playback from "everything is black" into a smaller area,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
405 float contents_scale = 1.5f; 405 float contents_scale = 1.5f;
406 406
407 std::unique_ptr<FakeRecordingSource> recording_source = 407 std::unique_ptr<FakeRecordingSource> recording_source =
408 FakeRecordingSource::CreateFilledRecordingSource(layer_bounds); 408 FakeRecordingSource::CreateFilledRecordingSource(layer_bounds);
409 recording_source->SetBackgroundColor(SK_ColorGREEN); 409 recording_source->SetBackgroundColor(SK_ColorGREEN);
410 recording_source->SetRequiresClear(true); 410 recording_source->SetRequiresClear(true);
411 recording_source->SetClearCanvasWithDebugColor(false); 411 recording_source->SetClearCanvasWithDebugColor(false);
412 412
413 // First record everything as white. 413 // First record everything as white.
414 const unsigned alpha_dark = 10u; 414 const unsigned alpha_dark = 10u;
415 SkPaint white_paint; 415 PaintFlags white_paint;
416 white_paint.setColor(SK_ColorWHITE); 416 white_paint.setColor(SK_ColorWHITE);
417 white_paint.setAlpha(alpha_dark); 417 white_paint.setAlpha(alpha_dark);
418 recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds), 418 recording_source->add_draw_rect_with_paint(gfx::Rect(layer_bounds),
419 white_paint); 419 white_paint);
420 recording_source->Rerecord(); 420 recording_source->Rerecord();
421 421
422 scoped_refptr<RasterSource> raster = 422 scoped_refptr<RasterSource> raster =
423 RasterSource::CreateFromRecordingSource(recording_source.get(), false); 423 RasterSource::CreateFromRecordingSource(recording_source.get(), false);
424 424
425 gfx::Size content_bounds( 425 gfx::Size content_bounds(
426 gfx::ScaleToCeiledSize(layer_bounds, contents_scale)); 426 gfx::ScaleToCeiledSize(layer_bounds, contents_scale));
427 427
428 SkBitmap bitmap; 428 SkBitmap bitmap;
429 bitmap.allocN32Pixels(content_bounds.width(), content_bounds.height()); 429 bitmap.allocN32Pixels(content_bounds.width(), content_bounds.height());
430 SkCanvas canvas(bitmap); 430 PaintCanvas canvas(bitmap);
431 canvas.clear(SK_ColorTRANSPARENT); 431 canvas.clear(SK_ColorTRANSPARENT);
432 432
433 // Playback the full rect which should make everything light gray (alpha=10). 433 // Playback the full rect which should make everything light gray (alpha=10).
434 gfx::Rect raster_full_rect(content_bounds); 434 gfx::Rect raster_full_rect(content_bounds);
435 gfx::Rect playback_rect(content_bounds); 435 gfx::Rect playback_rect(content_bounds);
436 raster->PlaybackToCanvas(&canvas, raster_full_rect, playback_rect, 436 raster->PlaybackToCanvas(&canvas, raster_full_rect, playback_rect,
437 contents_scale, RasterSource::PlaybackSettings()); 437 contents_scale, RasterSource::PlaybackSettings());
438 438
439 { 439 {
440 SkColor* pixels = reinterpret_cast<SkColor*>(bitmap.getPixels()); 440 SkColor* pixels = reinterpret_cast<SkColor*>(bitmap.getPixels());
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 scoped_refptr<RasterSource> raster = 503 scoped_refptr<RasterSource> raster =
504 RasterSource::CreateFromRecordingSource(recording_source.get(), false); 504 RasterSource::CreateFromRecordingSource(recording_source.get(), false);
505 gfx::Size content_bounds( 505 gfx::Size content_bounds(
506 gfx::ScaleToCeiledSize(layer_bounds, contents_scale)); 506 gfx::ScaleToCeiledSize(layer_bounds, contents_scale));
507 507
508 gfx::Rect canvas_rect(content_bounds); 508 gfx::Rect canvas_rect(content_bounds);
509 canvas_rect.Inset(0, 0, -1, -1); 509 canvas_rect.Inset(0, 0, -1, -1);
510 510
511 SkBitmap bitmap; 511 SkBitmap bitmap;
512 bitmap.allocN32Pixels(canvas_rect.width(), canvas_rect.height()); 512 bitmap.allocN32Pixels(canvas_rect.width(), canvas_rect.height());
513 SkCanvas canvas(bitmap); 513 PaintCanvas canvas(bitmap);
514 514
515 raster->PlaybackToCanvas(&canvas, canvas_rect, canvas_rect, contents_scale, 515 raster->PlaybackToCanvas(&canvas, canvas_rect, canvas_rect, contents_scale,
516 RasterSource::PlaybackSettings()); 516 RasterSource::PlaybackSettings());
517 517
518 SkColor* pixels = reinterpret_cast<SkColor*>(bitmap.getPixels()); 518 SkColor* pixels = reinterpret_cast<SkColor*>(bitmap.getPixels());
519 int num_pixels = bitmap.width() * bitmap.height(); 519 int num_pixels = bitmap.width() * bitmap.height();
520 for (int i = 0; i < num_pixels; ++i) { 520 for (int i = 0; i < num_pixels; ++i) {
521 EXPECT_EQ(SkColorGetA(pixels[i]), 0u); 521 EXPECT_EQ(SkColorGetA(pixels[i]), 0u);
522 } 522 }
523 } 523 }
(...skipping 21 matching lines...) Expand all
545 // scaling). Note that we paint an image first, so that we can force image 545 // scaling). Note that we paint an image first, so that we can force image
546 // hijack canvas to be used. 546 // hijack canvas to be used.
547 std::unique_ptr<FakeRecordingSource> recording_source = 547 std::unique_ptr<FakeRecordingSource> recording_source =
548 FakeRecordingSource::CreateFilledRecordingSource(size); 548 FakeRecordingSource::CreateFilledRecordingSource(size);
549 549
550 // 1. Paint the image. 550 // 1. Paint the image.
551 recording_source->add_draw_image(CreateDiscardableImage(gfx::Size(5, 5)), 551 recording_source->add_draw_image(CreateDiscardableImage(gfx::Size(5, 5)),
552 gfx::Point(0, 0)); 552 gfx::Point(0, 0));
553 553
554 // 2. Cover everything in red. 554 // 2. Cover everything in red.
555 SkPaint paint; 555 PaintFlags paint;
556 paint.setColor(SK_ColorRED); 556 paint.setColor(SK_ColorRED);
557 recording_source->add_draw_rect_with_paint(gfx::Rect(size), paint); 557 recording_source->add_draw_rect_with_paint(gfx::Rect(size), paint);
558 558
559 // 3. Draw 4x4 green rects into every corner. 559 // 3. Draw 4x4 green rects into every corner.
560 paint.setColor(SK_ColorGREEN); 560 paint.setColor(SK_ColorGREEN);
561 recording_source->add_draw_rect_with_paint(gfx::Rect(0, 0, 4, 4), paint); 561 recording_source->add_draw_rect_with_paint(gfx::Rect(0, 0, 4, 4), paint);
562 recording_source->add_draw_rect_with_paint( 562 recording_source->add_draw_rect_with_paint(
563 gfx::Rect(size.width() - 4, 0, 4, 4), paint); 563 gfx::Rect(size.width() - 4, 0, 4, 4), paint);
564 recording_source->add_draw_rect_with_paint( 564 recording_source->add_draw_rect_with_paint(
565 gfx::Rect(0, size.height() - 4, 4, 4), paint); 565 gfx::Rect(0, size.height() - 4, 4, 4), paint);
566 recording_source->add_draw_rect_with_paint( 566 recording_source->add_draw_rect_with_paint(
567 gfx::Rect(size.width() - 4, size.height() - 4, 4, 4), paint); 567 gfx::Rect(size.width() - 4, size.height() - 4, 4, 4), paint);
568 568
569 recording_source->SetGenerateDiscardableImagesMetadata(true); 569 recording_source->SetGenerateDiscardableImagesMetadata(true);
570 recording_source->Rerecord(); 570 recording_source->Rerecord();
571 571
572 bool can_use_lcd = true; 572 bool can_use_lcd = true;
573 scoped_refptr<RasterSource> raster_source = 573 scoped_refptr<RasterSource> raster_source =
574 recording_source->CreateRasterSource(can_use_lcd); 574 recording_source->CreateRasterSource(can_use_lcd);
575 SoftwareImageDecodeCache controller( 575 SoftwareImageDecodeCache controller(
576 ResourceFormat::RGBA_8888, 576 ResourceFormat::RGBA_8888,
577 LayerTreeSettings().software_decoded_image_budget_bytes); 577 LayerTreeSettings().software_decoded_image_budget_bytes);
578 raster_source->set_image_decode_cache(&controller); 578 raster_source->set_image_decode_cache(&controller);
579 579
580 SkBitmap bitmap; 580 SkBitmap bitmap;
581 bitmap.allocN32Pixels(size.width() * 0.5f, size.height() * 0.25f); 581 bitmap.allocN32Pixels(size.width() * 0.5f, size.height() * 0.25f);
582 SkCanvas canvas(bitmap); 582 PaintCanvas canvas(bitmap);
583 canvas.scale(0.5f, 0.25f); 583 canvas.scale(0.5f, 0.25f);
584 584
585 RasterSource::PlaybackSettings settings; 585 RasterSource::PlaybackSettings settings;
586 settings.playback_to_shared_canvas = true; 586 settings.playback_to_shared_canvas = true;
587 settings.use_image_hijack_canvas = true; 587 settings.use_image_hijack_canvas = true;
588 raster_source->PlaybackToCanvas(&canvas, gfx::Rect(size), gfx::Rect(size), 588 raster_source->PlaybackToCanvas(&canvas, gfx::Rect(size), gfx::Rect(size),
589 1.f, settings); 589 1.f, settings);
590 590
591 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(0, 0)); 591 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(0, 0));
592 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(49, 0)); 592 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(49, 0));
593 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(0, 24)); 593 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(0, 24));
594 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(49, 24)); 594 EXPECT_EQ(SK_ColorGREEN, bitmap.getColor(49, 24));
595 for (int x = 0; x < 49; ++x) 595 for (int x = 0; x < 49; ++x)
596 EXPECT_EQ(SK_ColorRED, bitmap.getColor(x, 12)); 596 EXPECT_EQ(SK_ColorRED, bitmap.getColor(x, 12));
597 for (int y = 0; y < 24; ++y) 597 for (int y = 0; y < 24; ++y)
598 EXPECT_EQ(SK_ColorRED, bitmap.getColor(24, y)); 598 EXPECT_EQ(SK_ColorRED, bitmap.getColor(24, y));
599 } 599 }
600 600
601 } // namespace 601 } // namespace
602 } // namespace cc 602 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698