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

Side by Side Diff: tests/SurfaceTest.cpp

Issue 848903004: Require budget decision when creating a RenderTarget SkSurface (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Make compatible with chrome Created 5 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 /* 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
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698