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

Side by Side Diff: tests/SurfaceTest.cpp

Issue 1220733007: add ability to get FBO ID to Surface (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: mac warning Created 5 years, 5 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
« no previous file with comments | « src/image/SkSurface_Gpu.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "SkDevice.h" 10 #include "SkDevice.h"
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
95 95
96 REPORTER_ASSERT(reporter, NULL == SkSurface::NewRaster(info)); 96 REPORTER_ASSERT(reporter, NULL == SkSurface::NewRaster(info));
97 REPORTER_ASSERT(reporter, NULL == SkSurface::NewRasterDirect(info, NULL, 0)) ; 97 REPORTER_ASSERT(reporter, NULL == SkSurface::NewRasterDirect(info, NULL, 0)) ;
98 if (ctx) { 98 if (ctx) {
99 REPORTER_ASSERT(reporter, NULL == 99 REPORTER_ASSERT(reporter, NULL ==
100 SkSurface::NewRenderTarget(ctx, SkSurface::kNo_Budgeted, info, 0, NULL)); 100 SkSurface::NewRenderTarget(ctx, SkSurface::kNo_Budgeted, info, 0, NULL));
101 } 101 }
102 } 102 }
103 103
104 #if SK_SUPPORT_GPU 104 #if SK_SUPPORT_GPU
105 static void test_wrapped_surface(skiatest::Reporter* reporter, GrContext* ctx) { 105 static void test_wrapped_texture_surface(skiatest::Reporter* reporter, GrContext * ctx) {
106 if (NULL == ctx) { 106 if (NULL == ctx) {
107 return; 107 return;
108 } 108 }
109 109
110 GrTestTarget tt; 110 GrTestTarget tt;
111 ctx->getTestTarget(&tt); 111 ctx->getTestTarget(&tt);
112 if (!tt.target()) { 112 if (!tt.target()) {
113 SkDEBUGFAIL("Couldn't get Gr test target."); 113 SkDEBUGFAIL("Couldn't get Gr test target.");
114 return; 114 return;
115 } 115 }
116 116
117 // We currently have only implemented the texture uploads for GL. 117 // We currently have only implemented the texture uploads for GL.
118 const GrGLInterface* gl = tt.glContext()->interface(); 118 const GrGLInterface* gl = tt.glContext()->interface();
119 if (!gl) { 119 if (!gl) {
120 return; 120 return;
121 } 121 }
122 122
123 for (int useFBO = 0; useFBO < 2; ++useFBO) { 123 // Test the wrapped factory for SkSurface by creating a texture using GL and then wrap it in
124 // Test the wrapped factory for SkSurface by creating a texture using GL and then wrap it in 124 // a SkSurface.
125 // a SkSurface. 125 GrGLuint texID;
126 GrGLuint texID; 126 static const int kW = 100;
127 static const int kW = 100; 127 static const int kH = 100;
128 static const int kH = 100; 128 static const uint32_t kOrigColor = 0xFFAABBCC;
129 static const uint32_t kOrigColor = 0xFFAABBCC; 129 SkAutoTArray<uint32_t> pixels(kW * kH);
130 SkAutoTArray<uint32_t> pixels(kW * kH); 130 sk_memset32(pixels.get(), kOrigColor, kW * kH);
131 sk_memset32(pixels.get(), kOrigColor, kW * kH); 131 GR_GL_CALL(gl, GenTextures(1, &texID));
132 GR_GL_CALL(gl, GenTextures(1, &texID)); 132 GR_GL_CALL(gl, ActiveTexture(GR_GL_TEXTURE0));
133 GR_GL_CALL(gl, ActiveTexture(GR_GL_TEXTURE0)); 133 GR_GL_CALL(gl, PixelStorei(GR_GL_UNPACK_ALIGNMENT, 1));
134 GR_GL_CALL(gl, PixelStorei(GR_GL_UNPACK_ALIGNMENT, 1)); 134 GR_GL_CALL(gl, BindTexture(GR_GL_TEXTURE_2D, texID));
135 GR_GL_CALL(gl, BindTexture(GR_GL_TEXTURE_2D, texID)); 135 GR_GL_CALL(gl, TexParameteri(GR_GL_TEXTURE_2D, GR_GL_TEXTURE_MAG_FILTER,
136 GR_GL_CALL(gl, TexParameteri(GR_GL_TEXTURE_2D, GR_GL_TEXTURE_MAG_FILTER, 136 GR_GL_NEAREST));
137 GR_GL_NEAREST)); 137 GR_GL_CALL(gl, TexParameteri(GR_GL_TEXTURE_2D, GR_GL_TEXTURE_MIN_FILTER,
138 GR_GL_CALL(gl, TexParameteri(GR_GL_TEXTURE_2D, GR_GL_TEXTURE_MIN_FILTER, 138 GR_GL_NEAREST));
139 GR_GL_NEAREST)); 139 GR_GL_CALL(gl, TexParameteri(GR_GL_TEXTURE_2D, GR_GL_TEXTURE_WRAP_S,
140 GR_GL_CALL(gl, TexParameteri(GR_GL_TEXTURE_2D, GR_GL_TEXTURE_WRAP_S, 140 GR_GL_CLAMP_TO_EDGE));
141 GR_GL_CLAMP_TO_EDGE)); 141 GR_GL_CALL(gl, TexParameteri(GR_GL_TEXTURE_2D, GR_GL_TEXTURE_WRAP_T,
142 GR_GL_CALL(gl, TexParameteri(GR_GL_TEXTURE_2D, GR_GL_TEXTURE_WRAP_T, 142 GR_GL_CLAMP_TO_EDGE));
143 GR_GL_CLAMP_TO_EDGE)); 143 GR_GL_CALL(gl, TexImage2D(GR_GL_TEXTURE_2D, 0, GR_GL_RGBA, kW, kH, 0, GR_GL_ RGBA,
144 GR_GL_CALL(gl, TexImage2D(GR_GL_TEXTURE_2D, 0, GR_GL_RGBA, kW, kH, 0, GR _GL_RGBA, 144 GR_GL_UNSIGNED_BYTE,
145 GR_GL_UNSIGNED_BYTE, 145 pixels.get()));
146 pixels.get()));
147 146
148 SkAutoTUnref<SkSurface> surface; 147 GrBackendTextureDesc wrappedDesc;
149 GrGLuint fboID = 0; 148 wrappedDesc.fConfig = kRGBA_8888_GrPixelConfig;
150 if (useFBO) { 149 wrappedDesc.fWidth = kW;
151 GR_GL_CALL(gl, GenFramebuffers(1, &fboID)); 150 wrappedDesc.fHeight = kH;
152 GR_GL_CALL(gl, BindFramebuffer(GR_GL_FRAMEBUFFER, fboID)); 151 wrappedDesc.fOrigin = kBottomLeft_GrSurfaceOrigin;
153 GR_GL_CALL(gl, FramebufferTexture2D(GR_GL_FRAMEBUFFER, GR_GL_COLOR_A TTACHMENT0, 152 wrappedDesc.fSampleCnt = 0;
154 GR_GL_TEXTURE_2D, texID, 0)); 153 wrappedDesc.fFlags = kRenderTarget_GrBackendTextureFlag;
155 GrBackendRenderTargetDesc wrappedDesc; 154 wrappedDesc.fTextureHandle = texID;
156 wrappedDesc.fConfig = kRGBA_8888_GrPixelConfig;
157 wrappedDesc.fWidth = kW;
158 wrappedDesc.fHeight = kH;
159 wrappedDesc.fOrigin = kBottomLeft_GrSurfaceOrigin;
160 wrappedDesc.fSampleCnt = 0;
161 wrappedDesc.fRenderTargetHandle = fboID;
162 wrappedDesc.fStencilBits = 0;
163 155
164 ctx->resetContext(); 156 SkAutoTUnref<SkSurface> surface(SkSurface::NewWrappedRenderTarget(ctx, wrapp edDesc, NULL));
165 surface.reset(SkSurface::NewFromBackendRenderTarget(ctx, wrappedDesc , NULL)); 157 REPORTER_ASSERT(reporter, surface);
166 } else { 158 if (surface) {
167 GrBackendTextureDesc wrappedDesc; 159 // Validate that we can draw to the canvas and that the original texture color is preserved
168 wrappedDesc.fConfig = kRGBA_8888_GrPixelConfig; 160 // in pixels that aren't rendered to via the surface.
169 wrappedDesc.fWidth = kW; 161 SkPaint paint;
170 wrappedDesc.fHeight = kH; 162 static const SkColor kRectColor = ~kOrigColor | 0xFF000000;
171 wrappedDesc.fOrigin = kBottomLeft_GrSurfaceOrigin; 163 paint.setColor(kRectColor);
172 wrappedDesc.fSampleCnt = 0; 164 surface->getCanvas()->drawRect(SkRect::MakeWH(SkIntToScalar(kW), SkIntTo Scalar(kH)/2),
173 wrappedDesc.fFlags = kRenderTarget_GrBackendTextureFlag; 165 paint);
174 wrappedDesc.fTextureHandle = texID; 166 SkImageInfo readInfo = SkImageInfo::MakeN32Premul(kW, kH);
175 167 surface->readPixels(readInfo, pixels.get(), kW * sizeof(uint32_t), 0, 0) ;
176 ctx->resetContext(); 168 bool stop = false;
177 surface.reset(SkSurface::NewFromBackendTexture(ctx, wrappedDesc, NUL L)); 169 SkPMColor origColorPM = SkPackARGB32((kOrigColor >> 24 & 0xFF),
178 } 170 (kOrigColor >> 0 & 0xFF),
179 REPORTER_ASSERT(reporter, surface); 171 (kOrigColor >> 8 & 0xFF),
180 if (surface) { 172 (kOrigColor >> 16 & 0xFF));
181 // Validate that we can draw to the canvas and that the original tex ture color is 173 SkPMColor rectColorPM = SkPackARGB32((kRectColor >> 24 & 0xFF),
182 // preserved in pixels that aren't rendered to via the surface. 174 (kRectColor >> 16 & 0xFF),
183 SkPaint paint; 175 (kRectColor >> 8 & 0xFF),
184 static const SkColor kRectColor = ~kOrigColor | 0xFF000000; 176 (kRectColor >> 0 & 0xFF));
185 paint.setColor(kRectColor); 177 for (int y = 0; y < kH/2 && !stop; ++y) {
186 surface->getCanvas()->drawRect(SkRect::MakeWH(SkIntToScalar(kW), SkI ntToScalar(kH)/2), 178 for (int x = 0; x < kW && !stop; ++x) {
187 paint); 179 REPORTER_ASSERT(reporter, rectColorPM == pixels[x + y * kW]);
188 SkImageInfo readInfo = SkImageInfo::MakeN32Premul(kW, kH); 180 if (rectColorPM != pixels[x + y * kW]) {
189 surface->readPixels(readInfo, pixels.get(), kW * sizeof(uint32_t), 0 , 0); 181 stop = true;
190 bool stop = false;
191 SkPMColor origColorPM = SkPackARGB32((kOrigColor >> 24 & 0xFF),
192 (kOrigColor >> 0 & 0xFF),
193 (kOrigColor >> 8 & 0xFF),
194 (kOrigColor >> 16 & 0xFF));
195 SkPMColor rectColorPM = SkPackARGB32((kRectColor >> 24 & 0xFF),
196 (kRectColor >> 16 & 0xFF),
197 (kRectColor >> 8 & 0xFF),
198 (kRectColor >> 0 & 0xFF));
199 for (int y = 0; y < kH/2 && !stop; ++y) {
200 for (int x = 0; x < kW && !stop; ++x) {
201 REPORTER_ASSERT(reporter, rectColorPM == pixels[x + y * kW]) ;
202 if (rectColorPM != pixels[x + y * kW]) {
203 stop = true;
204 }
205 }
206 }
207 stop = false;
208 for (int y = kH/2; y < kH && !stop; ++y) {
209 for (int x = 0; x < kW && !stop; ++x) {
210 REPORTER_ASSERT(reporter, origColorPM == pixels[x + y * kW]) ;
211 if (origColorPM != pixels[x + y * kW]) {
212 stop = true;
213 }
214 } 182 }
215 } 183 }
216 } 184 }
217 if (texID) { 185 stop = false;
218 GR_GL_CALL(gl, DeleteTextures(1, &texID)); 186 for (int y = kH/2; y < kH && !stop; ++y) {
187 for (int x = 0; x < kW && !stop; ++x) {
188 REPORTER_ASSERT(reporter, origColorPM == pixels[x + y * kW]);
189 if (origColorPM != pixels[x + y * kW]) {
190 stop = true;
191 }
192 }
219 } 193 }
220 if (fboID) {
221 GR_GL_CALL(gl, DeleteFramebuffers(1, &fboID));
222 }
223
224 } 194 }
225 } 195 }
226 #endif 196 #endif
227 197
228 198
229 static void test_image(skiatest::Reporter* reporter) { 199 static void test_image(skiatest::Reporter* reporter) {
230 SkImageInfo info = SkImageInfo::MakeN32Premul(1, 1); 200 SkImageInfo info = SkImageInfo::MakeN32Premul(1, 1);
231 size_t rowBytes = info.minRowBytes(); 201 size_t rowBytes = info.minRowBytes();
232 size_t size = info.getSafeSize(rowBytes); 202 size_t size = info.getSafeSize(rowBytes);
233 SkData* data = SkData::NewUninitialized(size); 203 SkData* data = SkData::NewUninitialized(size);
(...skipping 26 matching lines...) Expand all
260 return device->accessBitmap(false).getGenerationID(); 230 return device->accessBitmap(false).getGenerationID();
261 } 231 }
262 232
263 /* 233 /*
264 * Test legacy behavor of bumping the surface's device's bitmap's genID when we access its 234 * Test legacy behavor of bumping the surface's device's bitmap's genID when we access its
265 * texture handle for writing. 235 * texture handle for writing.
266 * 236 *
267 * Note: this needs to be tested separately from checking newImageSnapshot, as calling that 237 * Note: this needs to be tested separately from checking newImageSnapshot, as calling that
268 * can also incidentally bump the genID (when a new backing surface is created) . 238 * can also incidentally bump the genID (when a new backing surface is created) .
269 */ 239 */
270 static void test_texture_handle_genID(skiatest::Reporter* reporter, SkSurface* s urf) { 240 template <class F>
241 static void test_texture_handle_genID(skiatest::Reporter* reporter, SkSurface* s urf, F f) {
271 const uint32_t gen0 = get_legacy_gen_id(surf); 242 const uint32_t gen0 = get_legacy_gen_id(surf);
272 surf->getTextureHandle(SkSurface::kFlushRead_TextureHandleAccess); 243 f(surf, SkSurface::kFlushRead_BackendHandleAccess);
273 const uint32_t gen1 = get_legacy_gen_id(surf); 244 const uint32_t gen1 = get_legacy_gen_id(surf);
274 REPORTER_ASSERT(reporter, gen0 == gen1); 245 REPORTER_ASSERT(reporter, gen0 == gen1);
275 246
276 surf->getTextureHandle(SkSurface::kFlushWrite_TextureHandleAccess); 247 f(surf, SkSurface::kFlushWrite_BackendHandleAccess);
277 const uint32_t gen2 = get_legacy_gen_id(surf); 248 const uint32_t gen2 = get_legacy_gen_id(surf);
278 REPORTER_ASSERT(reporter, gen0 != gen2); 249 REPORTER_ASSERT(reporter, gen0 != gen2);
279 250
280 surf->getTextureHandle(SkSurface::kDiscardWrite_TextureHandleAccess); 251 f(surf, SkSurface::kDiscardWrite_BackendHandleAccess);
281 const uint32_t gen3 = get_legacy_gen_id(surf); 252 const uint32_t gen3 = get_legacy_gen_id(surf);
282 REPORTER_ASSERT(reporter, gen0 != gen3); 253 REPORTER_ASSERT(reporter, gen0 != gen3);
283 REPORTER_ASSERT(reporter, gen2 != gen3); 254 REPORTER_ASSERT(reporter, gen2 != gen3);
284 } 255 }
285 256
286 static void test_texture_handle(skiatest::Reporter* reporter, SkSurface* surf) { 257 template <class F>
258 static void test_backend_handle(skiatest::Reporter* reporter, SkSurface* surf, F f) {
287 SkAutoTUnref<SkImage> image0(surf->newImageSnapshot()); 259 SkAutoTUnref<SkImage> image0(surf->newImageSnapshot());
288 GrBackendObject obj = surf->getTextureHandle(SkSurface::kFlushRead_TextureHa ndleAccess); 260 GrBackendObject obj = f(surf, SkSurface::kFlushRead_BackendHandleAccess);
289 REPORTER_ASSERT(reporter, obj != 0); 261 REPORTER_ASSERT(reporter, obj != 0);
290 SkAutoTUnref<SkImage> image1(surf->newImageSnapshot()); 262 SkAutoTUnref<SkImage> image1(surf->newImageSnapshot());
291 // just read access should not affect the snapshot 263 // just read access should not affect the snapshot
292 REPORTER_ASSERT(reporter, image0->uniqueID() == image1->uniqueID()); 264 REPORTER_ASSERT(reporter, image0->uniqueID() == image1->uniqueID());
293 265
294 obj = surf->getTextureHandle(SkSurface::kFlushWrite_TextureHandleAccess); 266 obj = f(surf, SkSurface::kFlushWrite_BackendHandleAccess);
295 REPORTER_ASSERT(reporter, obj != 0); 267 REPORTER_ASSERT(reporter, obj != 0);
296 SkAutoTUnref<SkImage> image2(surf->newImageSnapshot()); 268 SkAutoTUnref<SkImage> image2(surf->newImageSnapshot());
297 // expect a new image, since we claimed we would write 269 // expect a new image, since we claimed we would write
298 REPORTER_ASSERT(reporter, image0->uniqueID() != image2->uniqueID()); 270 REPORTER_ASSERT(reporter, image0->uniqueID() != image2->uniqueID());
299 271
300 obj = surf->getTextureHandle(SkSurface::kDiscardWrite_TextureHandleAccess); 272 obj = f(surf, SkSurface::kDiscardWrite_BackendHandleAccess);
301 REPORTER_ASSERT(reporter, obj != 0); 273 REPORTER_ASSERT(reporter, obj != 0);
302 SkAutoTUnref<SkImage> image3(surf->newImageSnapshot()); 274 SkAutoTUnref<SkImage> image3(surf->newImageSnapshot());
303 // expect a new(er) image, since we claimed we would write 275 // expect a new(er) image, since we claimed we would write
304 REPORTER_ASSERT(reporter, image0->uniqueID() != image3->uniqueID()); 276 REPORTER_ASSERT(reporter, image0->uniqueID() != image3->uniqueID());
305 REPORTER_ASSERT(reporter, image2->uniqueID() != image3->uniqueID()); 277 REPORTER_ASSERT(reporter, image2->uniqueID() != image3->uniqueID());
306 } 278 }
307 279
308 static SkImage* create_image(skiatest::Reporter* reporter, 280 static SkImage* create_image(skiatest::Reporter* reporter,
309 ImageType imageType, GrContext* context, SkColor co lor, 281 ImageType imageType, GrContext* context, SkColor co lor,
310 ReleaseDataContext* releaseContext) { 282 ReleaseDataContext* releaseContext) {
(...skipping 13 matching lines...) Expand all
324 return SkImage::NewRasterData(info, data, rowBytes); 296 return SkImage::NewRasterData(info, data, rowBytes);
325 case kRasterProc_ImageType: 297 case kRasterProc_ImageType:
326 SkASSERT(releaseContext); 298 SkASSERT(releaseContext);
327 releaseContext->fData = SkRef(data.get()); 299 releaseContext->fData = SkRef(data.get());
328 return SkImage::NewFromRaster(info, addr, rowBytes, 300 return SkImage::NewFromRaster(info, addr, rowBytes,
329 ReleaseDataContext::Release, releaseCo ntext); 301 ReleaseDataContext::Release, releaseCo ntext);
330 case kGpu_ImageType: { 302 case kGpu_ImageType: {
331 SkAutoTUnref<SkSurface> surf( 303 SkAutoTUnref<SkSurface> surf(
332 SkSurface::NewRenderTarget(context, SkSurface::kNo_Budgeted, inf o, 0)); 304 SkSurface::NewRenderTarget(context, SkSurface::kNo_Budgeted, inf o, 0));
333 surf->getCanvas()->clear(color); 305 surf->getCanvas()->clear(color);
334 // test our backing texture while were here... 306 // test our backing texture / rendertarget while were here...
335 test_texture_handle_genID(reporter, surf); 307 auto textureAccessorFunc =
336 test_texture_handle(reporter, surf); 308 [](SkSurface* surf, SkSurface::BackendHandleAccess access) - > GrBackendObject {
309 return surf->getTextureHandle(access); };
310 auto renderTargetAccessorFunc =
311 [](SkSurface* surf, SkSurface::BackendHandleAccess access) - > GrBackendObject {
312 GrBackendObject obj;
313 SkAssertResult(surf->getRenderTargetHandle(&obj, access) );
314 return obj; };
315 test_backend_handle(reporter, surf, textureAccessorFunc);
316 test_backend_handle(reporter, surf, renderTargetAccessorFunc);
317 test_texture_handle_genID(reporter, surf, textureAccessorFunc);
318 test_texture_handle_genID(reporter, surf, renderTargetAccessorFunc);
319
337 // redraw so our returned image looks as expected. 320 // redraw so our returned image looks as expected.
338 surf->getCanvas()->clear(color); 321 surf->getCanvas()->clear(color);
339 return surf->newImageSnapshot(); 322 return surf->newImageSnapshot();
340 } 323 }
341 case kCodec_ImageType: { 324 case kCodec_ImageType: {
342 SkBitmap bitmap; 325 SkBitmap bitmap;
343 bitmap.installPixels(info, addr, rowBytes); 326 bitmap.installPixels(info, addr, rowBytes);
344 SkAutoTUnref<SkData> src( 327 SkAutoTUnref<SkData> src(
345 SkImageEncoder::EncodeData(bitmap, SkImageEncoder::kPNG_Type, 1 00)); 328 SkImageEncoder::EncodeData(bitmap, SkImageEncoder::kPNG_Type, 1 00));
346 return SkImage::NewFromEncoded(src); 329 return SkImage::NewFromEncoded(src);
(...skipping 529 matching lines...) Expand 10 before | Expand all | Expand 10 after
876 TestSurfaceWritableAfterSnapshotRelease(reporter, kGpu_SurfaceTy pe, context); 859 TestSurfaceWritableAfterSnapshotRelease(reporter, kGpu_SurfaceTy pe, context);
877 TestSurfaceWritableAfterSnapshotRelease(reporter, kGpuScratch_Su rfaceType, context); 860 TestSurfaceWritableAfterSnapshotRelease(reporter, kGpuScratch_Su rfaceType, context);
878 TestSurfaceNoCanvas(reporter, kGpu_SurfaceType, context, SkSurfa ce::kDiscard_ContentChangeMode); 861 TestSurfaceNoCanvas(reporter, kGpu_SurfaceType, context, SkSurfa ce::kDiscard_ContentChangeMode);
879 TestSurfaceNoCanvas(reporter, kGpuScratch_SurfaceType, context, SkSurface::kDiscard_ContentChangeMode); 862 TestSurfaceNoCanvas(reporter, kGpuScratch_SurfaceType, context, SkSurface::kDiscard_ContentChangeMode);
880 TestSurfaceNoCanvas(reporter, kGpu_SurfaceType, context, SkSurfa ce::kRetain_ContentChangeMode); 863 TestSurfaceNoCanvas(reporter, kGpu_SurfaceType, context, SkSurfa ce::kRetain_ContentChangeMode);
881 TestSurfaceNoCanvas(reporter, kGpuScratch_SurfaceType, context, SkSurface::kRetain_ContentChangeMode); 864 TestSurfaceNoCanvas(reporter, kGpuScratch_SurfaceType, context, SkSurface::kRetain_ContentChangeMode);
882 TestGetTexture(reporter, kGpu_SurfaceType, context); 865 TestGetTexture(reporter, kGpu_SurfaceType, context);
883 TestGetTexture(reporter, kGpuScratch_SurfaceType, context); 866 TestGetTexture(reporter, kGpuScratch_SurfaceType, context);
884 test_empty_surface(reporter, context); 867 test_empty_surface(reporter, context);
885 test_surface_budget(reporter, context); 868 test_surface_budget(reporter, context);
886 test_wrapped_surface(reporter, context); 869 test_wrapped_texture_surface(reporter, context);
887 } 870 }
888 } 871 }
889 } 872 }
890 #endif 873 #endif
891 } 874 }
892 875
893 #if SK_SUPPORT_GPU 876 #if SK_SUPPORT_GPU
894 877
895 struct ReleaseTextureContext { 878 struct ReleaseTextureContext {
896 ReleaseTextureContext(skiatest::Reporter* reporter) { 879 ReleaseTextureContext(skiatest::Reporter* reporter) {
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
979 // We expect the ref'd image to see the new color, but cpy'd one should stil l see the old color 962 // We expect the ref'd image to see the new color, but cpy'd one should stil l see the old color
980 test_image_color(reporter, refImg, expected1); 963 test_image_color(reporter, refImg, expected1);
981 test_image_color(reporter, cpyImg, expected0); 964 test_image_color(reporter, cpyImg, expected0);
982 965
983 // Now exercise the release proc 966 // Now exercise the release proc
984 REPORTER_ASSERT(reporter, !releaseCtx.fIsReleased); 967 REPORTER_ASSERT(reporter, !releaseCtx.fIsReleased);
985 refImg.reset(NULL); // force a release of the image 968 refImg.reset(NULL); // force a release of the image
986 REPORTER_ASSERT(reporter, releaseCtx.fIsReleased); 969 REPORTER_ASSERT(reporter, releaseCtx.fIsReleased);
987 } 970 }
988 #endif 971 #endif
OLDNEW
« no previous file with comments | « src/image/SkSurface_Gpu.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698