| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2013 Google Inc. | 2 * Copyright 2013 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkBitmap.h" | 8 #include "SkBitmap.h" |
| 9 #include "SkCachingPixelRef.h" | 9 #include "SkCachingPixelRef.h" |
| 10 #include "SkCanvas.h" | 10 #include "SkCanvas.h" |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 | 315 |
| 316 SkDiscardableMemoryPool* globalPool = SkGetGlobalDiscardableMemoryPool(); | 316 SkDiscardableMemoryPool* globalPool = SkGetGlobalDiscardableMemoryPool(); |
| 317 // Only acts differently from NULL on a platform that has a | 317 // Only acts differently from NULL on a platform that has a |
| 318 // default discardable memory implementation that differs from the | 318 // default discardable memory implementation that differs from the |
| 319 // global DM pool. | 319 // global DM pool. |
| 320 check_pixelref(TestImageGenerator::kFailGetPixels_TestType, | 320 check_pixelref(TestImageGenerator::kFailGetPixels_TestType, |
| 321 reporter, kSkDiscardable_PixelRefType, globalPool); | 321 reporter, kSkDiscardable_PixelRefType, globalPool); |
| 322 check_pixelref(TestImageGenerator::kSucceedGetPixels_TestType, | 322 check_pixelref(TestImageGenerator::kSucceedGetPixels_TestType, |
| 323 reporter, kSkDiscardable_PixelRefType, globalPool); | 323 reporter, kSkDiscardable_PixelRefType, globalPool); |
| 324 } | 324 } |
| 325 | |
| 326 //////////////////////////////////////////////////////////////////////////////// | |
| 327 | |
| 328 DEF_TEST(Image_NewFromGenerator, r) { | |
| 329 TestImageGenerator::TestType testTypes[] = { | |
| 330 TestImageGenerator::kFailGetInfo_TestType, | |
| 331 TestImageGenerator::kFailGetPixels_TestType, | |
| 332 TestImageGenerator::kSucceedGetPixels_TestType, | |
| 333 }; | |
| 334 for (size_t i = 0; i < SK_ARRAY_COUNT(testTypes); ++i) { | |
| 335 TestImageGenerator::TestType test = testTypes[i]; | |
| 336 SkImageGenerator* gen = SkNEW_ARGS(TestImageGenerator, (test, r)); | |
| 337 SkAutoTUnref<SkImage> image(SkImage::NewFromGenerator(gen)); | |
| 338 if (TestImageGenerator::kFailGetInfo_TestType == test) { | |
| 339 REPORTER_ASSERT(r, NULL == image.get()); | |
| 340 continue; | |
| 341 } | |
| 342 if (NULL == image.get()) { | |
| 343 ERRORF(r, "SkImage::NewFromGenerator unexpecedly failed [" | |
| 344 SK_SIZE_T_SPECIFIER "]", i); | |
| 345 continue; | |
| 346 } | |
| 347 REPORTER_ASSERT(r, TestImageGenerator::Width() == image->width()); | |
| 348 REPORTER_ASSERT(r, TestImageGenerator::Height() == image->height()); | |
| 349 | |
| 350 SkBitmap bitmap; | |
| 351 SkAssertResult(bitmap.allocN32Pixels(TestImageGenerator::Width(), | |
| 352 TestImageGenerator::Height())); | |
| 353 SkCanvas canvas(bitmap); | |
| 354 canvas.clear(SK_ColorMAGENTA); | |
| 355 image->draw(&canvas, 0, 0, NULL); | |
| 356 SkColor color = bitmap.getColor(0, 0); | |
| 357 if (TestImageGenerator::kSucceedGetPixels_TestType == test) { | |
| 358 REPORTER_ASSERT(r, TestImageGenerator::Color() == color); | |
| 359 } else { | |
| 360 REPORTER_ASSERT(r, SK_ColorMAGENTA == color); | |
| 361 } | |
| 362 } | |
| 363 } | |
| OLD | NEW |