| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 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 "SkColorPriv.h" | 9 #include "SkColorPriv.h" |
| 10 #include "SkMathPriv.h" | 10 #include "SkMathPriv.h" |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 287 } | 287 } |
| 288 | 288 |
| 289 static void call_writepixels(SkCanvas* canvas) { | 289 static void call_writepixels(SkCanvas* canvas) { |
| 290 const SkImageInfo info = SkImageInfo::MakeN32Premul(1, 1); | 290 const SkImageInfo info = SkImageInfo::MakeN32Premul(1, 1); |
| 291 SkPMColor pixel = 0; | 291 SkPMColor pixel = 0; |
| 292 canvas->writePixels(info, &pixel, sizeof(SkPMColor), 0, 0); | 292 canvas->writePixels(info, &pixel, sizeof(SkPMColor), 0, 0); |
| 293 } | 293 } |
| 294 | 294 |
| 295 DEF_TEST(WritePixelsSurfaceGenID, reporter) { | 295 DEF_TEST(WritePixelsSurfaceGenID, reporter) { |
| 296 const SkImageInfo info = SkImageInfo::MakeN32Premul(100, 100); | 296 const SkImageInfo info = SkImageInfo::MakeN32Premul(100, 100); |
| 297 SkAutoTUnref<SkSurface> surface(SkSurface::NewRaster(info)); | 297 auto surface(SkSurface::MakeRaster(info)); |
| 298 uint32_t genID1 = surface->generationID(); | 298 uint32_t genID1 = surface->generationID(); |
| 299 call_writepixels(surface->getCanvas()); | 299 call_writepixels(surface->getCanvas()); |
| 300 uint32_t genID2 = surface->generationID(); | 300 uint32_t genID2 = surface->generationID(); |
| 301 REPORTER_ASSERT(reporter, genID1 != genID2); | 301 REPORTER_ASSERT(reporter, genID1 != genID2); |
| 302 } | 302 } |
| 303 | 303 |
| 304 static void test_write_pixels(skiatest::Reporter* reporter, SkSurface* surface)
{ | 304 static void test_write_pixels(skiatest::Reporter* reporter, SkSurface* surface)
{ |
| 305 const SkIRect testRects[] = { | 305 const SkIRect testRects[] = { |
| 306 // entire thing | 306 // entire thing |
| 307 DEV_RECT, | 307 DEV_RECT, |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 393 DEF_TEST(WritePixels, reporter) { | 393 DEF_TEST(WritePixels, reporter) { |
| 394 const SkImageInfo info = SkImageInfo::MakeN32Premul(DEV_W, DEV_H); | 394 const SkImageInfo info = SkImageInfo::MakeN32Premul(DEV_W, DEV_H); |
| 395 for (auto& tightRowBytes : { true, false }) { | 395 for (auto& tightRowBytes : { true, false }) { |
| 396 const size_t rowBytes = tightRowBytes ? info.minRowBytes() : 4 * DEV_W +
100; | 396 const size_t rowBytes = tightRowBytes ? info.minRowBytes() : 4 * DEV_W +
100; |
| 397 const size_t size = info.getSafeSize(rowBytes); | 397 const size_t size = info.getSafeSize(rowBytes); |
| 398 void* pixels = sk_malloc_throw(size); | 398 void* pixels = sk_malloc_throw(size); |
| 399 // if rowBytes isn't tight then set the padding to a known value | 399 // if rowBytes isn't tight then set the padding to a known value |
| 400 if (!tightRowBytes) { | 400 if (!tightRowBytes) { |
| 401 memset(pixels, DEV_PAD, size); | 401 memset(pixels, DEV_PAD, size); |
| 402 } | 402 } |
| 403 SkAutoTUnref<SkSurface> surface(SkSurface::NewRasterDirectReleaseProc(in
fo, pixels, rowBytes, free_pixels, nullptr)); | 403 auto surface(SkSurface::MakeRasterDirectReleaseProc(info, pixels, rowByt
es, |
| 404 test_write_pixels(reporter, surface); | 404 free_pixels, nullptr
)); |
| 405 test_write_pixels(reporter, surface.get()); |
| 405 } | 406 } |
| 406 } | 407 } |
| 407 #if SK_SUPPORT_GPU | 408 #if SK_SUPPORT_GPU |
| 408 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WritePixels_Gpu, reporter, context) { | 409 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(WritePixels_Gpu, reporter, context) { |
| 409 for (auto& origin : { kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin
}) { | 410 for (auto& origin : { kTopLeft_GrSurfaceOrigin, kBottomLeft_GrSurfaceOrigin
}) { |
| 410 GrSurfaceDesc desc; | 411 GrSurfaceDesc desc; |
| 411 desc.fFlags = kRenderTarget_GrSurfaceFlag; | 412 desc.fFlags = kRenderTarget_GrSurfaceFlag; |
| 412 desc.fWidth = DEV_W; | 413 desc.fWidth = DEV_W; |
| 413 desc.fHeight = DEV_H; | 414 desc.fHeight = DEV_H; |
| 414 desc.fConfig = kSkia8888_GrPixelConfig; | 415 desc.fConfig = kSkia8888_GrPixelConfig; |
| 415 desc.fOrigin = origin; | 416 desc.fOrigin = origin; |
| 416 SkAutoTUnref<GrTexture> texture(context->textureProvider()->createTextur
e(desc, | 417 SkAutoTUnref<GrTexture> texture(context->textureProvider()->createTextur
e(desc, |
| 417
SkBudgeted::kNo)); | 418
SkBudgeted::kNo)); |
| 418 SkAutoTUnref<SkSurface> surface(SkSurface::NewRenderTargetDirect(texture
->asRenderTarget())); | 419 auto surface(SkSurface::MakeRenderTargetDirect(texture->asRenderTarget()
)); |
| 419 test_write_pixels(reporter, surface); | 420 test_write_pixels(reporter, surface.get()); |
| 420 } | 421 } |
| 421 } | 422 } |
| 422 #endif | 423 #endif |
| OLD | NEW |