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

Unified Diff: tests/SurfaceTest.cpp

Issue 1810813003: update callsites for Make image factories (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: start to take advantage of sk_sp drawImage Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/SpecialImageTest.cpp ('k') | tests/TextureStorageAllocator.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/SurfaceTest.cpp
diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp
index d6c7acd9160ff91768b4e5b800f2c7ecc7bf6288..89c7765c5601326a1bc6b1ce84cf024d6ece1329 100644
--- a/tests/SurfaceTest.cpp
+++ b/tests/SurfaceTest.cpp
@@ -231,7 +231,7 @@ static void test_snapshot_alphatype(skiatest::Reporter* reporter, SkSurface* sur
bool expectOpaque) {
REPORTER_ASSERT(reporter, surface);
if (surface) {
- SkAutoTUnref<SkImage> image(surface->newImageSnapshot());
+ sk_sp<SkImage> image(surface->makeImageSnapshot());
REPORTER_ASSERT(reporter, image);
if (image) {
REPORTER_ASSERT(reporter, image->isOpaque() == SkToBool(expectOpaque));
@@ -276,10 +276,10 @@ static void test_backend_handle_access_copy_on_write(
skiatest::Reporter* reporter, SkSurface* surface, SkSurface::BackendHandleAccess mode,
GrBackendObject (*func)(SkSurface*, SkSurface::BackendHandleAccess)) {
GrBackendObject obj1 = func(surface, mode);
- SkAutoTUnref<SkImage> snap1(surface->newImageSnapshot());
+ sk_sp<SkImage> snap1(surface->makeImageSnapshot());
GrBackendObject obj2 = func(surface, mode);
- SkAutoTUnref<SkImage> snap2(surface->newImageSnapshot());
+ sk_sp<SkImage> snap2(surface->makeImageSnapshot());
// If the access mode triggers CoW, then the backend objects should reflect it.
REPORTER_ASSERT(reporter, (obj1 == obj2) == (snap1 == snap2));
@@ -339,39 +339,39 @@ static void test_unique_image_snap(skiatest::Reporter* reporter, SkSurface* surf
std::function<intptr_t(SkSurface*)> sbs = surfaceBackingStore;
static const SkBudgeted kB = SkBudgeted::kNo;
{
- SkAutoTUnref<SkImage> image(surface->newImageSnapshot(kB, SkSurface::kYes_ForceUnique));
- REPORTER_ASSERT(reporter, !same_image_surf(image, surface, ibs, sbs));
+ sk_sp<SkImage> image(surface->makeImageSnapshot(kB, SkSurface::kYes_ForceUnique));
+ REPORTER_ASSERT(reporter, !same_image_surf(image.get(), surface, ibs, sbs));
REPORTER_ASSERT(reporter, image->unique());
}
{
- SkAutoTUnref<SkImage> image1(surface->newImageSnapshot(kB, SkSurface::kYes_ForceUnique));
- REPORTER_ASSERT(reporter, !same_image_surf(image1, surface, ibs, sbs));
+ sk_sp<SkImage> image1(surface->makeImageSnapshot(kB, SkSurface::kYes_ForceUnique));
+ REPORTER_ASSERT(reporter, !same_image_surf(image1.get(), surface, ibs, sbs));
REPORTER_ASSERT(reporter, image1->unique());
- SkAutoTUnref<SkImage> image2(surface->newImageSnapshot(kB, SkSurface::kYes_ForceUnique));
- REPORTER_ASSERT(reporter, !same_image_surf(image2, surface, ibs, sbs));
- REPORTER_ASSERT(reporter, !same_image(image1, image2, ibs));
+ sk_sp<SkImage> image2(surface->makeImageSnapshot(kB, SkSurface::kYes_ForceUnique));
+ REPORTER_ASSERT(reporter, !same_image_surf(image2.get(), surface, ibs, sbs));
+ REPORTER_ASSERT(reporter, !same_image(image1.get(), image2.get(), ibs));
REPORTER_ASSERT(reporter, image2->unique());
}
{
- SkAutoTUnref<SkImage> image1(surface->newImageSnapshot(kB, SkSurface::kNo_ForceUnique));
- SkAutoTUnref<SkImage> image2(surface->newImageSnapshot(kB, SkSurface::kYes_ForceUnique));
- SkAutoTUnref<SkImage> image3(surface->newImageSnapshot(kB, SkSurface::kNo_ForceUnique));
- SkAutoTUnref<SkImage> image4(surface->newImageSnapshot(kB, SkSurface::kYes_ForceUnique));
+ sk_sp<SkImage> image1(surface->makeImageSnapshot(kB, SkSurface::kNo_ForceUnique));
+ sk_sp<SkImage> image2(surface->makeImageSnapshot(kB, SkSurface::kYes_ForceUnique));
+ sk_sp<SkImage> image3(surface->makeImageSnapshot(kB, SkSurface::kNo_ForceUnique));
+ sk_sp<SkImage> image4(surface->makeImageSnapshot(kB, SkSurface::kYes_ForceUnique));
// Image 1 and 3 ought to be the same (or we're missing an optimization).
- REPORTER_ASSERT(reporter, same_image(image1, image3, ibs));
+ REPORTER_ASSERT(reporter, same_image(image1.get(), image3.get(), ibs));
// If the surface is not direct then images 1 and 3 should alias the surface's
// store.
- REPORTER_ASSERT(reporter, !surfaceIsDirect == same_image_surf(image1, surface, ibs, sbs));
+ REPORTER_ASSERT(reporter, !surfaceIsDirect == same_image_surf(image1.get(), surface, ibs, sbs));
// Image 2 should not be shared with any other image.
- REPORTER_ASSERT(reporter, !same_image(image1, image2, ibs) &&
- !same_image(image3, image2, ibs) &&
- !same_image(image4, image2, ibs));
+ REPORTER_ASSERT(reporter, !same_image(image1.get(), image2.get(), ibs) &&
+ !same_image(image3.get(), image2.get(), ibs) &&
+ !same_image(image4.get(), image2.get(), ibs));
REPORTER_ASSERT(reporter, image2->unique());
- REPORTER_ASSERT(reporter, !same_image_surf(image2, surface, ibs, sbs));
+ REPORTER_ASSERT(reporter, !same_image_surf(image2.get(), surface, ibs, sbs));
// Image 4 should not be shared with any other image.
- REPORTER_ASSERT(reporter, !same_image(image1, image4, ibs) &&
- !same_image(image3, image4, ibs));
- REPORTER_ASSERT(reporter, !same_image_surf(image4, surface, ibs, sbs));
+ REPORTER_ASSERT(reporter, !same_image(image1.get(), image4.get(), ibs) &&
+ !same_image(image3.get(), image4.get(), ibs));
+ REPORTER_ASSERT(reporter, !same_image_surf(image4.get(), surface, ibs, sbs));
REPORTER_ASSERT(reporter, image4->unique());
}
}
@@ -455,7 +455,7 @@ static uint32_t get_legacy_gen_id(SkSurface* surface) {
* Test legacy behavor of bumping the surface's device's bitmap's genID when we access its
* texture handle for writing.
*
- * Note: this needs to be tested separately from checking newImageSnapshot, as calling that
+ * Note: this needs to be tested separately from checking makeImageSnapshot, as calling that
* can also incidentally bump the genID (when a new backing surface is created).
*/
static void test_backend_handle_gen_id(
@@ -478,22 +478,22 @@ static void test_backend_handle_gen_id(
static void test_backend_handle_unique_id(
skiatest::Reporter* reporter, SkSurface* surface,
GrBackendObject (*func)(SkSurface*, SkSurface::BackendHandleAccess)) {
- SkAutoTUnref<SkImage> image0(surface->newImageSnapshot());
+ sk_sp<SkImage> image0(surface->makeImageSnapshot());
GrBackendObject obj = func(surface, SkSurface::kFlushRead_BackendHandleAccess);
REPORTER_ASSERT(reporter, obj != 0);
- SkAutoTUnref<SkImage> image1(surface->newImageSnapshot());
+ sk_sp<SkImage> image1(surface->makeImageSnapshot());
// just read access should not affect the snapshot
REPORTER_ASSERT(reporter, image0->uniqueID() == image1->uniqueID());
obj = func(surface, SkSurface::kFlushWrite_BackendHandleAccess);
REPORTER_ASSERT(reporter, obj != 0);
- SkAutoTUnref<SkImage> image2(surface->newImageSnapshot());
+ sk_sp<SkImage> image2(surface->makeImageSnapshot());
// expect a new image, since we claimed we would write
REPORTER_ASSERT(reporter, image0->uniqueID() != image2->uniqueID());
obj = func(surface, SkSurface::kDiscardWrite_BackendHandleAccess);
REPORTER_ASSERT(reporter, obj != 0);
- SkAutoTUnref<SkImage> image3(surface->newImageSnapshot());
+ sk_sp<SkImage> image3(surface->makeImageSnapshot());
// expect a new(er) image, since we claimed we would write
REPORTER_ASSERT(reporter, image0->uniqueID() != image3->uniqueID());
REPORTER_ASSERT(reporter, image2->uniqueID() != image3->uniqueID());
@@ -563,11 +563,11 @@ static void test_copy_on_write(skiatest::Reporter* reporter, SkSurface* surface)
#define EXPECT_COPY_ON_WRITE(command) \
{ \
- SkImage* imageBefore = surface->newImageSnapshot(); \
- SkAutoTUnref<SkImage> aur_before(imageBefore); \
+ sk_sp<SkImage> imageBefore = surface->makeImageSnapshot(); \
+ sk_sp<SkImage> aur_before(imageBefore); \
canvas-> command ; \
- SkImage* imageAfter = surface->newImageSnapshot(); \
- SkAutoTUnref<SkImage> aur_after(imageAfter); \
+ sk_sp<SkImage> imageAfter = surface->makeImageSnapshot(); \
+ sk_sp<SkImage> aur_after(imageAfter); \
REPORTER_ASSERT(reporter, imageBefore != imageAfter); \
}
@@ -608,7 +608,7 @@ static void test_writable_after_snapshot_release(skiatest::Reporter* reporter,
// acquiring and releasing a snapshot without triggering a copy on write.
SkCanvas* canvas = surface->getCanvas();
canvas->clear(1);
- surface->newImageSnapshot()->unref(); // Create and destroy SkImage
+ surface->makeImageSnapshot(); // Create and destroy SkImage
canvas->clear(2); // Must not assert internally
}
DEF_TEST(SurfaceWriteableAfterSnapshotRelease, reporter) {
@@ -635,20 +635,20 @@ static void test_crbug263329(skiatest::Reporter* reporter,
SkCanvas* canvas1 = surface1->getCanvas();
SkCanvas* canvas2 = surface2->getCanvas();
canvas1->clear(1);
- SkAutoTUnref<SkImage> image1(surface1->newImageSnapshot());
+ sk_sp<SkImage> image1(surface1->makeImageSnapshot());
// Trigger copy on write, new backing is a scratch texture
canvas1->clear(2);
- SkAutoTUnref<SkImage> image2(surface1->newImageSnapshot());
+ sk_sp<SkImage> image2(surface1->makeImageSnapshot());
// Trigger copy on write, old backing should not be returned to scratch
// pool because it is held by image2
canvas1->clear(3);
canvas2->clear(4);
- SkAutoTUnref<SkImage> image3(surface2->newImageSnapshot());
+ sk_sp<SkImage> image3(surface2->makeImageSnapshot());
// Trigger copy on write on surface2. The new backing store should not
// be recycling a texture that is held by an existing image.
canvas2->clear(5);
- SkAutoTUnref<SkImage> image4(surface2->newImageSnapshot());
+ sk_sp<SkImage> image4(surface2->makeImageSnapshot());
REPORTER_ASSERT(reporter, as_IB(image4)->peekTexture() != as_IB(image3)->peekTexture());
// The following assertion checks crbug.com/263329
REPORTER_ASSERT(reporter, as_IB(image4)->peekTexture() != as_IB(image2)->peekTexture());
@@ -668,7 +668,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceCRBug263329_Gpu, reporter, context) {
DEF_TEST(SurfaceGetTexture, reporter) {
SkAutoTUnref<SkSurface> surface(create_surface());
- SkAutoTUnref<SkImage> image(surface->newImageSnapshot());
+ sk_sp<SkImage> image(surface->makeImageSnapshot());
REPORTER_ASSERT(reporter, as_IB(image)->peekTexture() == nullptr);
surface->notifyContentWillChange(SkSurface::kDiscard_ContentChangeMode);
REPORTER_ASSERT(reporter, as_IB(image)->peekTexture() == nullptr);
@@ -677,7 +677,7 @@ DEF_TEST(SurfaceGetTexture, reporter) {
DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfacepeekTexture_Gpu, reporter, context) {
for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) {
SkAutoTUnref<SkSurface> surface(surface_func(context, kPremul_SkAlphaType, nullptr));
- SkAutoTUnref<SkImage> image(surface->newImageSnapshot());
+ sk_sp<SkImage> image(surface->makeImageSnapshot());
GrTexture* texture = as_IB(image)->peekTexture();
REPORTER_ASSERT(reporter, texture);
REPORTER_ASSERT(reporter, 0 != texture->getTextureHandle());
@@ -701,6 +701,10 @@ static SkBudgeted is_budgeted(SkImage* image) {
return ((SkImage_Gpu*)image)->peekTexture()->resourcePriv().isBudgeted();
}
+static SkBudgeted is_budgeted(const sk_sp<SkImage> image) {
+ return is_budgeted(image.get());
+}
+
DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceBudget, reporter, context) {
SkImageInfo info = SkImageInfo::MakeN32Premul(8,8);
for (auto sbudgeted : { SkBudgeted::kNo, SkBudgeted::kYes }) {
@@ -710,7 +714,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceBudget, reporter, context) {
SkASSERT(surface);
REPORTER_ASSERT(reporter, sbudgeted == is_budgeted(surface));
- SkAutoTUnref<SkImage> image(surface->newImageSnapshot(ibudgeted));
+ sk_sp<SkImage> image(surface->makeImageSnapshot(ibudgeted));
// Initially the image shares a texture with the surface, and the surface decides
// whether it is budgeted or not.
@@ -741,15 +745,15 @@ static void test_no_canvas2(skiatest::Reporter* reporter,
SkSurface::ContentChangeMode mode) {
// Verifies the robustness of SkSurface for handling use cases where calls
// are made before a canvas is created.
- SkImage* image1 = surface->newImageSnapshot();
- SkAutoTUnref<SkImage> aur_image1(image1);
+ sk_sp<SkImage> image1 = surface->makeImageSnapshot();
+ sk_sp<SkImage> aur_image1(image1);
SkDEBUGCODE(image1->validate();)
SkDEBUGCODE(surface->validate();)
surface->notifyContentWillChange(mode);
SkDEBUGCODE(image1->validate();)
SkDEBUGCODE(surface->validate();)
- SkImage* image2 = surface->newImageSnapshot();
- SkAutoTUnref<SkImage> aur_image2(image2);
+ sk_sp<SkImage> image2 = surface->makeImageSnapshot();
+ sk_sp<SkImage> aur_image2(image2);
SkDEBUGCODE(image2->validate();)
SkDEBUGCODE(surface->validate();)
REPORTER_ASSERT(reporter, image1 != image2);
@@ -784,7 +788,7 @@ static void check_rowbytes_remain_consistent(SkSurface* surface, skiatest::Repor
SkPixmap surfacePM;
REPORTER_ASSERT(reporter, surface->peekPixels(&surfacePM));
- SkAutoTUnref<SkImage> image(surface->newImageSnapshot());
+ sk_sp<SkImage> image(surface->makeImageSnapshot());
SkPixmap pm;
REPORTER_ASSERT(reporter, image->peekPixels(&pm));
@@ -792,7 +796,7 @@ static void check_rowbytes_remain_consistent(SkSurface* surface, skiatest::Repor
// trigger a copy-on-write
surface->getCanvas()->drawPaint(SkPaint());
- SkAutoTUnref<SkImage> image2(surface->newImageSnapshot());
+ sk_sp<SkImage> image2(surface->makeImageSnapshot());
REPORTER_ASSERT(reporter, image->uniqueID() != image2->uniqueID());
SkPixmap pm2;
@@ -866,7 +870,7 @@ DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceClear_Gpu, reporter, context) {
SkBaseDevice* d =
s->getCanvas()->getDevice_just_for_deprecated_compatibility_testing();
return d->accessRenderTarget(); },
- [] (SkSurface* s){ SkAutoTUnref<SkImage> i(s->newImageSnapshot());
+ [] (SkSurface* s){ sk_sp<SkImage> i(s->makeImageSnapshot());
return as_IB(i)->peekTexture(); },
};
for (auto grSurfaceGetter : grSurfaceGetters) {
« no previous file with comments | « tests/SpecialImageTest.cpp ('k') | tests/TextureStorageAllocator.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698