Home | History | Annotate | Download | only in tests

Lines Matching refs:surface

110     SkAutoTUnref<SkSurface> surface(
112 REPORTER_ASSERT(reporter, surface);
113 if (surface) {
115 // in pixels that aren't rendered to via the surface.
119 surface->getCanvas()->drawRect(SkRect::MakeWH(SkIntToScalar(kW), SkIntToScalar(kH)/2),
122 surface->readPixels(readInfo, pixels.get(), kW * sizeof(uint32_t), 0, 0);
155 SkSurface* surface,
162 surface->getCanvas()->clear(color);
164 const void* addr = surface->getCanvas()->peekPixels(&info, &rowBytes);
170 const void* addr2 = surface->peekPixels(&info2, &rb2);
187 SkAutoTUnref<SkSurface> surface(surface_func(kPremul_SkAlphaType, &requestInfo));
188 test_canvas_peek(reporter, surface, requestInfo, true);
195 SkAutoTUnref<SkSurface> surface(surface_func(context, kPremul_SkAlphaType, &requestInfo));
196 test_canvas_peek(reporter, surface, requestInfo, false);
203 // exclusively using surface/image, and we can hide accessBitmap from device, we can remove this
205 void test_access_pixels(skiatest::Reporter* reporter, SkSurface* surface) {
206 SkCanvas* canvas = surface->getCanvas();
220 SkAutoTUnref<SkSurface> surface(surface_func(kPremul_SkAlphaType, nullptr));
221 test_access_pixels(reporter, surface);
227 SkAutoTUnref<SkSurface> surface(surface_func(context, kPremul_SkAlphaType, nullptr));
228 test_access_pixels(reporter, surface);
233 static void test_snapshot_alphatype(skiatest::Reporter* reporter, SkSurface* surface,
235 REPORTER_ASSERT(reporter, surface);
236 if (surface) {
237 SkAutoTUnref<SkImage> image(surface->newImageSnapshot());
248 SkAutoTUnref<SkSurface> surface(surface_func(alphaType, nullptr));
249 test_snapshot_alphatype(reporter, surface, isOpaque);
258 SkAutoTUnref<SkSurface> surface(surface_func(context, alphaType, nullptr));
259 test_snapshot_alphatype(reporter, surface, isOpaque);
279 skiatest::Reporter* reporter, SkSurface* surface, SkSurface::BackendHandleAccess mode,
281 GrBackendObject obj1 = func(surface, mode);
282 SkAutoTUnref<SkImage> snap1(surface->newImageSnapshot());
284 GrBackendObject obj2 = func(surface, mode);
285 SkAutoTUnref<SkImage> snap2(surface->newImageSnapshot());
299 SkAutoTUnref<SkSurface> surface(create_surface());
300 test_backend_handle_access_copy_on_write(reporter, surface, accessMode,
316 SkAutoTUnref<SkSurface> surface(surface_func(context, kPremul_SkAlphaType,
318 test_backend_handle_access_copy_on_write(reporter, surface, accessMode,
337 static void test_unique_image_snap(skiatest::Reporter* reporter, SkSurface* surface,
345 SkAutoTUnref<SkImage> image(surface->newImageSnapshot(kB, SkSurface::kYes_ForceUnique));
346 REPORTER_ASSERT(reporter, !same_image_surf(image, surface, ibs, sbs));
350 SkAutoTUnref<SkImage> image1(surface->newImageSnapshot(kB, SkSurface::kYes_ForceUnique));
351 REPORTER_ASSERT(reporter, !same_image_surf(image1, surface, ibs, sbs));
353 SkAutoTUnref<SkImage> image2(surface->newImageSnapshot(kB, SkSurface::kYes_ForceUnique));
354 REPORTER_ASSERT(reporter, !same_image_surf(image2, surface, ibs, sbs));
359 SkAutoTUnref<SkImage> image1(surface->newImageSnapshot(kB, SkSurface::kNo_ForceUnique));
360 SkAutoTUnref<SkImage> image2(surface->newImageSnapshot(kB, SkSurface::kYes_ForceUnique));
361 SkAutoTUnref<SkImage> image3(surface->newImageSnapshot(kB, SkSurface::kNo_ForceUnique));
362 SkAutoTUnref<SkImage> image4(surface->newImageSnapshot(kB, SkSurface::kYes_ForceUnique));
365 // If the surface is not direct then images 1 and 3 should alias the surface's
367 REPORTER_ASSERT(reporter, !surfaceIsDirect == same_image_surf(image1, surface, ibs, sbs));
373 REPORTER_ASSERT(reporter, !same_image_surf(image2, surface
377 REPORTER_ASSERT(reporter, !same_image_surf(image4, surface, ibs, sbs));
389 auto getSufaceBackingStore = [reporter](SkSurface* surface) {
392 const void* pixels = surface->getCanvas()->peekPixels(&info, &rowBytes);
397 SkAutoTUnref<SkSurface> surface(create_surface());
398 test_unique_image_snap(reporter, surface, false, getImageBackingStore, getSufaceBackingStore);
399 surface.reset(create_direct_surface());
400 test_unique_image_snap(reporter, surface, true, getImageBackingStore, getSufaceBackingStore);
406 SkAutoTUnref<SkSurface> surface(surface_func(context, kOpaque_SkAlphaType, nullptr));
417 auto surfaceBackingStore = [reporter](SkSurface* surface) {
419 surface->getCanvas()->internal_private_accessTopLayerRenderTarget();
427 test_unique_image_snap(reporter, surface, false, imageBackingStore, surfaceBackingStore);
440 SkAutoTUnref<SkSurface> surface(
444 test_unique_image_snap(reporter, surface, false, imageBackingStore,
455 static uint32_t get_legacy_gen_id(SkSurface* surface) {
457 surface->getCanvas()->getDevice_just_for_deprecated_compatibility_testing();
461 * Test legacy behavor of bumping the surface's device's bitmap's genID when we access its
465 * can also incidentally bump the genID (when a new backing surface is created).
468 skiatest::Reporter* reporter, SkSurface* surface,
470 const uint32_t gen0 = get_legacy_gen_id(surface);
471 func(surface, SkSurface::kFlushRead_BackendHandleAccess);
472 const uint32_t gen1 = get_legacy_gen_id(surface);
475 func(surface, SkSurface::kFlushWrite_BackendHandleAccess);
476 const uint32_t gen2 = get_legacy_gen_id(surface);
479 func(surface, SkSurface::kDiscardWrite_BackendHandleAccess);
480 const uint32_t gen3 = get_legacy_gen_id(surface);
485 skiatest::Reporter* reporter, SkSurface* surface,
487 SkAutoTUnref<SkImage> image0(surface->newImageSnapshot());
488 GrBackendObject obj = func(surface, SkSurface::kFlushRead_BackendHandleAccess);
490 SkAutoTUnref<SkImage> image1(surface->newImageSnapshot());
494 obj = func(surface, SkSurface::kFlushWrite_BackendHandleAccess);
496 SkAutoTUnref<SkImage> image2(surface->newImageSnapshot());
500 obj = func(surface, SkSurface::kDiscardWrite_BackendHandleAccess);
502 SkAutoTUnref<SkImage> image3(surface->newImageSnapshot());
513 SkAutoTUnref<SkSurface> surface(surface_func(context, kPremul_SkAlphaType,
515 test_func(reporter, surface, handle_access_func);
523 static void test_copy_on_write(skiatest::Reporter* reporter, SkSurface* surface) {
524 SkCanvas* canvas = surface->getCanvas();
572 SkImage* imageBefore = surface->newImageSnapshot(); \
575 SkImage* imageAfter = surface->newImageSnapshot(); \
598 SkAutoTUnref<SkSurface> surface(create_surface());
599 test_copy_on_write(reporter, surface);
604 SkAutoTUnref<SkSurface> surface(surface_func(context, kPremul_SkAlphaType, nullptr));
605 test_copy_on_write(reporter, surface);
611 SkSurface* surface) {
613 // The test verifies that the surface remains writable (usable) after
615 SkCanvas* canvas = surface->getCanvas();
617 surface->newImageSnapshot()->unref(); // Create and destroy SkImage
621 SkAutoTUnref<SkSurface> surface(create_surface());
622 test_writable_after_snapshot_release(reporter, surface);
627 SkAutoTUnref<SkSurface> surface(surface_func(context, kPremul_SkAlphaType, nullptr));
628 test_writable_after_snapshot_release(reporter, surface);
638 // Bug was caused by onCopyOnWrite releasing the old surface texture
676 SkAutoTUnref<SkSurface> surface(create_surface());
677 SkAutoTUnref<SkImage> image(surface->newImageSnapshot());
679 surface->notifyContentWillChange(SkSurface::kDiscard_ContentChangeMode);
685 SkAutoTUnref<SkSurface> surface(surface_func(context, kPremul_SkAlphaType, nullptr));
686 SkAutoTUnref<SkImage> image(surface->newImageSnapshot());
690 surface->notifyContentWillChange(SkSurface::kDiscard_ContentChangeMode);
715 surface(SkSurface::NewRenderTarget(context, sbudgeted, info, 0));
716 SkASSERT(surface);
717 REPORTER_ASSERT(reporter, sbudgeted == is_budgeted(surface));
719 SkAutoTUnref<SkImage> image(surface->newImageSnapshot(ibudgeted));
721 // Initially the image shares a texture with the surface, and the surface decides
723 REPORTER_ASSERT(reporter, sbudgeted == is_budgeted(surface));
727 surface->getCanvas()->clear(SK_ColorBLUE);
731 REPORTER_ASSERT(reporter, sbudgeted == is_budgeted(surface));
739 SkSurface* surface,
742 surface->notifyContentWillChange(mode);
743 SkDEBUGCODE(surface->validate();)
746 SkSurface* surface,
750 SkImage* image1 = surface->newImageSnapshot();
753 SkDEBUGCODE(surface->validate();)
754 surface->notifyContentWillChange(mode);
756 SkDEBUGCODE(surface->validate();)
757 SkImage* image2 = surface->newImageSnapshot();
760 SkDEBUGCODE(surface->validate();)
768 SkAutoTUnref<SkSurface> surface(create_surface());
769 test_func(reporter, surface, mode);
780 SkAutoTUnref<SkSurface> surface(
782 test_func(reporter, surface, mode);
789 static void check_rowbytes_remain_consistent(SkSurface* surface, skiatest::Reporter* reporter) {
792 REPORTER_ASSERT(reporter, surface->peekPixels(&info, &rowBytes));
794 SkAutoTUnref<SkImage> image(surface->newImageSnapshot());
802 surface->getCanvas()->drawPaint(SkPaint());
803 SkAutoTUnref<SkImage> image2(surface->newImageSnapshot());
835 SkAutoTUnref<SkSurface> surface(surfacePtr);
836 if (!surface) {
840 int w = surface->width();
841 int h = surface->height();
845 SkAutoTUnref<GrSurface> grSurface(SkSafeRef(grSurfaceGetter(surface)));
850 SkASSERT(surface->unique());
851 surface.reset();
886 SkSurface* surface = surface_func(context, kPremul_SkAlphaType, nullptr);
887 test_surface_clear(reporter, surface, grSurfaceGetter, 0x0);
889 // Wrapped RTs are *not* supposed to clear (to allow client to partially update a surface).
906 SkSurface* surface = SkSurface::NewFromBackendTexture(context, desc, nullptr);
907 test_surface_clear(reporter, surface, grSurfaceGetter, 0xABABABAB);