Chromium Code Reviews| 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 "SkCanvas.h" | 8 #include "SkCanvas.h" |
| 9 #include "SkData.h" | 9 #include "SkData.h" |
| 10 #include "SkImageEncoder.h" | 10 #include "SkImageEncoder.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 43 switch (surfaceType) { | 43 switch (surfaceType) { |
| 44 case kRaster_SurfaceType: | 44 case kRaster_SurfaceType: |
| 45 return SkSurface::NewRaster(info); | 45 return SkSurface::NewRaster(info); |
| 46 case kRasterDirect_SurfaceType: { | 46 case kRasterDirect_SurfaceType: { |
| 47 const size_t rowBytes = info.minRowBytes(); | 47 const size_t rowBytes = info.minRowBytes(); |
| 48 void* storage = sk_malloc_throw(info.getSafeSize(rowBytes)); | 48 void* storage = sk_malloc_throw(info.getSafeSize(rowBytes)); |
| 49 return SkSurface::NewRasterDirectReleaseProc(info, storage, rowBytes , | 49 return SkSurface::NewRasterDirectReleaseProc(info, storage, rowBytes , |
| 50 release_storage, storag e); | 50 release_storage, storag e); |
| 51 } | 51 } |
| 52 case kGpu_SurfaceType: | 52 case kGpu_SurfaceType: |
| 53 #if SK_SUPPORT_GPU | 53 #if SK_SUPPORT_GPU |
|
robertphillips
2015/01/15 21:30:36
Do we need the "if (context) {" check any more ?
bsalomon
2015/01/15 22:15:50
good point, gonzo
Actually don't need the #if SK_
| |
| 54 return context ? SkSurface::NewRenderTarget(context, info, 0, NULL) : NULL; | 54 if (context) { |
| 55 return SkSurface::NewRenderTarget(context, SkSurface::kNo_Budget ed, info, 0, NULL); | |
| 56 } | |
| 57 return NULL; | |
| 55 #endif | 58 #endif |
| 56 break; | 59 break; |
| 57 case kGpuScratch_SurfaceType: | 60 case kGpuScratch_SurfaceType: |
| 58 #if SK_SUPPORT_GPU | 61 #if SK_SUPPORT_GPU |
| 59 return context ? SkSurface::NewScratchRenderTarget(context, info) : NULL; | 62 if (context) { |
| 63 return SkSurface::NewRenderTarget(context, SkSurface::kYes_Budge ted, info, 0, NULL); | |
| 64 } | |
| 65 return NULL; | |
| 60 #endif | 66 #endif |
| 61 break; | 67 break; |
| 62 } | 68 } |
| 63 return NULL; | 69 return NULL; |
| 64 } | 70 } |
| 65 | 71 |
| 66 enum ImageType { | 72 enum ImageType { |
| 67 kRasterCopy_ImageType, | 73 kRasterCopy_ImageType, |
| 68 kRasterData_ImageType, | 74 kRasterData_ImageType, |
| 69 kGpu_ImageType, | 75 kGpu_ImageType, |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 87 REPORTER_ASSERT(reporter, NULL == SkImage::NewRasterData(info, NULL, 0)); | 93 REPORTER_ASSERT(reporter, NULL == SkImage::NewRasterData(info, NULL, 0)); |
| 88 REPORTER_ASSERT(reporter, NULL == SkImage::NewFromGenerator(SkNEW(EmptyGener ator))); | 94 REPORTER_ASSERT(reporter, NULL == SkImage::NewFromGenerator(SkNEW(EmptyGener ator))); |
| 89 } | 95 } |
| 90 | 96 |
| 91 static void test_empty_surface(skiatest::Reporter* reporter, GrContext* ctx) { | 97 static void test_empty_surface(skiatest::Reporter* reporter, GrContext* ctx) { |
| 92 const SkImageInfo info = SkImageInfo::Make(0, 0, kN32_SkColorType, kPremul_S kAlphaType); | 98 const SkImageInfo info = SkImageInfo::Make(0, 0, kN32_SkColorType, kPremul_S kAlphaType); |
| 93 | 99 |
| 94 REPORTER_ASSERT(reporter, NULL == SkSurface::NewRaster(info)); | 100 REPORTER_ASSERT(reporter, NULL == SkSurface::NewRaster(info)); |
| 95 REPORTER_ASSERT(reporter, NULL == SkSurface::NewRasterDirect(info, NULL, 0)) ; | 101 REPORTER_ASSERT(reporter, NULL == SkSurface::NewRasterDirect(info, NULL, 0)) ; |
| 96 if (ctx) { | 102 if (ctx) { |
| 97 REPORTER_ASSERT(reporter, NULL == SkSurface::NewRenderTarget(ctx, info, 0, NULL)); | 103 REPORTER_ASSERT(reporter, NULL == |
| 98 REPORTER_ASSERT(reporter, NULL == SkSurface::NewScratchRenderTarget(ctx, info, 0, NULL)); | 104 SkSurface::NewRenderTarget(ctx, SkSurface::kNo_Budgeted, info, 0, NULL)); |
| 99 } | 105 } |
| 100 } | 106 } |
| 101 | 107 |
| 102 static void test_image(skiatest::Reporter* reporter) { | 108 static void test_image(skiatest::Reporter* reporter) { |
| 103 SkImageInfo info = SkImageInfo::MakeN32Premul(1, 1); | 109 SkImageInfo info = SkImageInfo::MakeN32Premul(1, 1); |
| 104 size_t rowBytes = info.minRowBytes(); | 110 size_t rowBytes = info.minRowBytes(); |
| 105 size_t size = info.getSafeSize(rowBytes); | 111 size_t size = info.getSafeSize(rowBytes); |
| 106 SkData* data = SkData::NewUninitialized(size); | 112 SkData* data = SkData::NewUninitialized(size); |
| 107 | 113 |
| 108 REPORTER_ASSERT(reporter, data->unique()); | 114 REPORTER_ASSERT(reporter, data->unique()); |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 122 SkAutoTUnref<SkData> data(SkData::NewUninitialized(size)); | 128 SkAutoTUnref<SkData> data(SkData::NewUninitialized(size)); |
| 123 void* addr = data->writable_data(); | 129 void* addr = data->writable_data(); |
| 124 sk_memset32((SkPMColor*)addr, pmcolor, SkToInt(size >> 2)); | 130 sk_memset32((SkPMColor*)addr, pmcolor, SkToInt(size >> 2)); |
| 125 | 131 |
| 126 switch (imageType) { | 132 switch (imageType) { |
| 127 case kRasterCopy_ImageType: | 133 case kRasterCopy_ImageType: |
| 128 return SkImage::NewRasterCopy(info, addr, rowBytes); | 134 return SkImage::NewRasterCopy(info, addr, rowBytes); |
| 129 case kRasterData_ImageType: | 135 case kRasterData_ImageType: |
| 130 return SkImage::NewRasterData(info, data, rowBytes); | 136 return SkImage::NewRasterData(info, data, rowBytes); |
| 131 case kGpu_ImageType: { | 137 case kGpu_ImageType: { |
| 132 SkAutoTUnref<SkSurface> surf(SkSurface::NewRenderTarget(context, inf o, 0)); | 138 SkAutoTUnref<SkSurface> surf( |
| 139 SkSurface::NewRenderTarget(context, SkSurface::kNo_Budgeted, inf o, 0)); | |
| 133 surf->getCanvas()->clear(color); | 140 surf->getCanvas()->clear(color); |
| 134 return surf->newImageSnapshot(); | 141 return surf->newImageSnapshot(); |
| 135 } | 142 } |
| 136 case kCodec_ImageType: { | 143 case kCodec_ImageType: { |
| 137 SkBitmap bitmap; | 144 SkBitmap bitmap; |
| 138 bitmap.installPixels(info, addr, rowBytes); | 145 bitmap.installPixels(info, addr, rowBytes); |
| 139 SkAutoTUnref<SkData> src( | 146 SkAutoTUnref<SkData> src( |
| 140 SkImageEncoder::EncodeData(bitmap, SkImageEncoder::kPNG_Type, 1 00)); | 147 SkImageEncoder::EncodeData(bitmap, SkImageEncoder::kPNG_Type, 1 00)); |
| 141 return SkImage::NewFromData(src); | 148 return SkImage::NewFromData(src); |
| 142 } | 149 } |
| (...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 529 TestSurfaceNoCanvas(reporter, kGpu_SurfaceType, context, SkSurfa ce::kRetain_ContentChangeMode); | 536 TestSurfaceNoCanvas(reporter, kGpu_SurfaceType, context, SkSurfa ce::kRetain_ContentChangeMode); |
| 530 TestSurfaceNoCanvas(reporter, kGpuScratch_SurfaceType, context, SkSurface::kRetain_ContentChangeMode); | 537 TestSurfaceNoCanvas(reporter, kGpuScratch_SurfaceType, context, SkSurface::kRetain_ContentChangeMode); |
| 531 TestGetTexture(reporter, kGpu_SurfaceType, context); | 538 TestGetTexture(reporter, kGpu_SurfaceType, context); |
| 532 TestGetTexture(reporter, kGpuScratch_SurfaceType, context); | 539 TestGetTexture(reporter, kGpuScratch_SurfaceType, context); |
| 533 test_empty_surface(reporter, context); | 540 test_empty_surface(reporter, context); |
| 534 } | 541 } |
| 535 } | 542 } |
| 536 } | 543 } |
| 537 #endif | 544 #endif |
| 538 } | 545 } |
| OLD | NEW |