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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 |
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 |