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

Side by Side Diff: tests/SurfaceTest.cpp

Issue 2103133002: Enable many more tests for Vulkan (Closed) Base URL: https://skia.googlesource.com/skia.git@unitTests3
Patch Set: Created 4 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 | « tests/SpecialSurfaceTest.cpp ('k') | tests/TestTest.cpp » ('j') | 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 <functional> 8 #include <functional>
9 #include "SkCanvas.h" 9 #include "SkCanvas.h"
10 #include "SkData.h" 10 #include "SkData.h"
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 } 69 }
70 #endif 70 #endif
71 71
72 DEF_TEST(SurfaceEmpty, reporter) { 72 DEF_TEST(SurfaceEmpty, reporter) {
73 const SkImageInfo info = SkImageInfo::Make(0, 0, kN32_SkColorType, kPremul_S kAlphaType); 73 const SkImageInfo info = SkImageInfo::Make(0, 0, kN32_SkColorType, kPremul_S kAlphaType);
74 REPORTER_ASSERT(reporter, nullptr == SkSurface::MakeRaster(info)); 74 REPORTER_ASSERT(reporter, nullptr == SkSurface::MakeRaster(info));
75 REPORTER_ASSERT(reporter, nullptr == SkSurface::MakeRasterDirect(info, nullp tr, 0)); 75 REPORTER_ASSERT(reporter, nullptr == SkSurface::MakeRasterDirect(info, nullp tr, 0));
76 76
77 } 77 }
78 #if SK_SUPPORT_GPU 78 #if SK_SUPPORT_GPU
79 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceEmpty_Gpu, reporter, ctxInfo) { 79 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceEmpty_Gpu, reporter, ctxInfo) {
80 const SkImageInfo info = SkImageInfo::Make(0, 0, kN32_SkColorType, kPremul_S kAlphaType); 80 const SkImageInfo info = SkImageInfo::Make(0, 0, kN32_SkColorType, kPremul_S kAlphaType);
81 REPORTER_ASSERT(reporter, nullptr == 81 REPORTER_ASSERT(reporter, nullptr ==
82 SkSurface::MakeRenderTarget(ctxInfo.grContext(), SkBudgeted: :kNo, info, 0, 82 SkSurface::MakeRenderTarget(ctxInfo.grContext(), SkBudgeted: :kNo, info, 0,
83 nullptr)); 83 nullptr));
84 } 84 }
85 #endif 85 #endif
86 86
87 static void test_canvas_peek(skiatest::Reporter* reporter, 87 static void test_canvas_peek(skiatest::Reporter* reporter,
88 sk_sp<SkSurface>& surface, 88 sk_sp<SkSurface>& surface,
89 const SkImageInfo& requestInfo, 89 const SkImageInfo& requestInfo,
(...skipping 22 matching lines...) Expand all
112 } 112 }
113 } 113 }
114 DEF_TEST(SurfaceCanvasPeek, reporter) { 114 DEF_TEST(SurfaceCanvasPeek, reporter) {
115 for (auto& surface_func : { &create_surface, &create_direct_surface }) { 115 for (auto& surface_func : { &create_surface, &create_direct_surface }) {
116 SkImageInfo requestInfo; 116 SkImageInfo requestInfo;
117 auto surface(surface_func(kPremul_SkAlphaType, &requestInfo)); 117 auto surface(surface_func(kPremul_SkAlphaType, &requestInfo));
118 test_canvas_peek(reporter, surface, requestInfo, true); 118 test_canvas_peek(reporter, surface, requestInfo, true);
119 } 119 }
120 } 120 }
121 #if SK_SUPPORT_GPU 121 #if SK_SUPPORT_GPU
122 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceCanvasPeek_Gpu, reporter, ctxInfo) { 122 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceCanvasPeek_Gpu, reporter, ctxInfo) {
123 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) { 123 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) {
124 SkImageInfo requestInfo; 124 SkImageInfo requestInfo;
125 auto surface(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, &req uestInfo)); 125 auto surface(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, &req uestInfo));
126 test_canvas_peek(reporter, surface, requestInfo, false); 126 test_canvas_peek(reporter, surface, requestInfo, false);
127 } 127 }
128 } 128 }
129 #endif 129 #endif
130 130
131 // For compatibility with clients that still call accessBitmap(), we need to ens ure that we bump 131 // For compatibility with clients that still call accessBitmap(), we need to ens ure that we bump
132 // the bitmap's genID when we draw to it, else they won't know it has new values . When they are 132 // the bitmap's genID when we draw to it, else they won't know it has new values . When they are
(...skipping 12 matching lines...) Expand all
145 uint32_t genID1 = bm.getGenerationID(); 145 uint32_t genID1 = bm.getGenerationID();
146 REPORTER_ASSERT(reporter, genID0 != genID1); 146 REPORTER_ASSERT(reporter, genID0 != genID1);
147 } 147 }
148 DEF_TEST(SurfaceAccessPixels, reporter) { 148 DEF_TEST(SurfaceAccessPixels, reporter) {
149 for (auto& surface_func : { &create_surface, &create_direct_surface }) { 149 for (auto& surface_func : { &create_surface, &create_direct_surface }) {
150 auto surface(surface_func(kPremul_SkAlphaType, nullptr)); 150 auto surface(surface_func(kPremul_SkAlphaType, nullptr));
151 test_access_pixels(reporter, surface); 151 test_access_pixels(reporter, surface);
152 } 152 }
153 } 153 }
154 #if SK_SUPPORT_GPU 154 #if SK_SUPPORT_GPU
155 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceAccessPixels_Gpu, reporter, ctxInfo ) { 155 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceAccessPixels_Gpu, reporter, ctxInfo) {
156 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) { 156 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) {
157 auto surface(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, null ptr)); 157 auto surface(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, null ptr));
158 test_access_pixels(reporter, surface); 158 test_access_pixels(reporter, surface);
159 } 159 }
160 } 160 }
161 #endif 161 #endif
162 162
163 static void test_snapshot_alphatype(skiatest::Reporter* reporter, const sk_sp<Sk Surface>& surface, 163 static void test_snapshot_alphatype(skiatest::Reporter* reporter, const sk_sp<Sk Surface>& surface,
164 bool expectOpaque) { 164 bool expectOpaque) {
165 REPORTER_ASSERT(reporter, surface); 165 REPORTER_ASSERT(reporter, surface);
166 if (surface) { 166 if (surface) {
167 sk_sp<SkImage> image(surface->makeImageSnapshot()); 167 sk_sp<SkImage> image(surface->makeImageSnapshot());
168 REPORTER_ASSERT(reporter, image); 168 REPORTER_ASSERT(reporter, image);
169 if (image) { 169 if (image) {
170 REPORTER_ASSERT(reporter, image->isOpaque() == SkToBool(expectOpaque )); 170 REPORTER_ASSERT(reporter, image->isOpaque() == SkToBool(expectOpaque ));
171 } 171 }
172 } 172 }
173 } 173 }
174 DEF_TEST(SurfaceSnapshotAlphaType, reporter) { 174 DEF_TEST(SurfaceSnapshotAlphaType, reporter) {
175 for (auto& surface_func : { &create_surface, &create_direct_surface }) { 175 for (auto& surface_func : { &create_surface, &create_direct_surface }) {
176 for (auto& isOpaque : { true, false }) { 176 for (auto& isOpaque : { true, false }) {
177 SkAlphaType alphaType = isOpaque ? kOpaque_SkAlphaType : kPremul_SkA lphaType; 177 SkAlphaType alphaType = isOpaque ? kOpaque_SkAlphaType : kPremul_SkA lphaType;
178 auto surface(surface_func(alphaType, nullptr)); 178 auto surface(surface_func(alphaType, nullptr));
179 test_snapshot_alphatype(reporter, surface, isOpaque); 179 test_snapshot_alphatype(reporter, surface, isOpaque);
180 } 180 }
181 } 181 }
182 } 182 }
183 #if SK_SUPPORT_GPU 183 #if SK_SUPPORT_GPU
184 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceSnapshotAlphaType_Gpu, reporter, ct xInfo) { 184 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceSnapshotAlphaType_Gpu, reporter, ctxIn fo) {
185 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) { 185 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) {
186 for (auto& isOpaque : { true, false }) { 186 for (auto& isOpaque : { true, false }) {
187 SkAlphaType alphaType = isOpaque ? kOpaque_SkAlphaType : kPremul_SkA lphaType; 187 SkAlphaType alphaType = isOpaque ? kOpaque_SkAlphaType : kPremul_SkA lphaType;
188 auto surface(surface_func(ctxInfo.grContext(), alphaType, nullptr)); 188 auto surface(surface_func(ctxInfo.grContext(), alphaType, nullptr));
189 test_snapshot_alphatype(reporter, surface, isOpaque); 189 test_snapshot_alphatype(reporter, surface, isOpaque);
190 } 190 }
191 } 191 }
192 } 192 }
193 #endif 193 #endif
194 194
(...skipping 324 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 EXPECT_COPY_ON_WRITE(drawText(testText.c_str(), testText.size(), 0, 1, testP aint)) 519 EXPECT_COPY_ON_WRITE(drawText(testText.c_str(), testText.size(), 0, 1, testP aint))
520 EXPECT_COPY_ON_WRITE(drawPosText(testText.c_str(), testText.size(), testPoin ts2, \ 520 EXPECT_COPY_ON_WRITE(drawPosText(testText.c_str(), testText.size(), testPoin ts2, \
521 testPaint)) 521 testPaint))
522 EXPECT_COPY_ON_WRITE(drawTextOnPath(testText.c_str(), testText.size(), testP ath, nullptr, \ 522 EXPECT_COPY_ON_WRITE(drawTextOnPath(testText.c_str(), testText.size(), testP ath, nullptr, \
523 testPaint)) 523 testPaint))
524 } 524 }
525 DEF_TEST(SurfaceCopyOnWrite, reporter) { 525 DEF_TEST(SurfaceCopyOnWrite, reporter) {
526 test_copy_on_write(reporter, create_surface().get()); 526 test_copy_on_write(reporter, create_surface().get());
527 } 527 }
528 #if SK_SUPPORT_GPU 528 #if SK_SUPPORT_GPU
529 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceCopyOnWrite_Gpu, reporter, ctxInfo) { 529 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceCopyOnWrite_Gpu, reporter, ctxInfo) {
530 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) { 530 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) {
531 auto surface(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, null ptr)); 531 auto surface(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, null ptr));
532 test_copy_on_write(reporter, surface.get()); 532 test_copy_on_write(reporter, surface.get());
533 } 533 }
534 } 534 }
535 #endif 535 #endif
536 536
537 static void test_writable_after_snapshot_release(skiatest::Reporter* reporter, 537 static void test_writable_after_snapshot_release(skiatest::Reporter* reporter,
538 SkSurface* surface) { 538 SkSurface* surface) {
539 // This test succeeds by not triggering an assertion. 539 // This test succeeds by not triggering an assertion.
540 // The test verifies that the surface remains writable (usable) after 540 // The test verifies that the surface remains writable (usable) after
541 // acquiring and releasing a snapshot without triggering a copy on write. 541 // acquiring and releasing a snapshot without triggering a copy on write.
542 SkCanvas* canvas = surface->getCanvas(); 542 SkCanvas* canvas = surface->getCanvas();
543 canvas->clear(1); 543 canvas->clear(1);
544 surface->makeImageSnapshot(); // Create and destroy SkImage 544 surface->makeImageSnapshot(); // Create and destroy SkImage
545 canvas->clear(2); // Must not assert internally 545 canvas->clear(2); // Must not assert internally
546 } 546 }
547 DEF_TEST(SurfaceWriteableAfterSnapshotRelease, reporter) { 547 DEF_TEST(SurfaceWriteableAfterSnapshotRelease, reporter) {
548 test_writable_after_snapshot_release(reporter, create_surface().get()); 548 test_writable_after_snapshot_release(reporter, create_surface().get());
549 } 549 }
550 #if SK_SUPPORT_GPU 550 #if SK_SUPPORT_GPU
551 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceWriteableAfterSnapshotRelease_Gpu, reporter, ctxInfo) { 551 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceWriteableAfterSnapshotRelease_Gpu, rep orter, ctxInfo) {
552 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) { 552 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) {
553 auto surface(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, null ptr)); 553 auto surface(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, null ptr));
554 test_writable_after_snapshot_release(reporter, surface.get()); 554 test_writable_after_snapshot_release(reporter, surface.get());
555 } 555 }
556 } 556 }
557 #endif 557 #endif
558 558
559 #if SK_SUPPORT_GPU 559 #if SK_SUPPORT_GPU
560 static void test_crbug263329(skiatest::Reporter* reporter, 560 static void test_crbug263329(skiatest::Reporter* reporter,
561 SkSurface* surface1, 561 SkSurface* surface1,
(...skipping 20 matching lines...) Expand all
582 canvas2->clear(5); 582 canvas2->clear(5);
583 sk_sp<SkImage> image4(surface2->makeImageSnapshot()); 583 sk_sp<SkImage> image4(surface2->makeImageSnapshot());
584 REPORTER_ASSERT(reporter, as_IB(image4)->peekTexture() != as_IB(image3)->pee kTexture()); 584 REPORTER_ASSERT(reporter, as_IB(image4)->peekTexture() != as_IB(image3)->pee kTexture());
585 // The following assertion checks crbug.com/263329 585 // The following assertion checks crbug.com/263329
586 REPORTER_ASSERT(reporter, as_IB(image4)->peekTexture() != as_IB(image2)->pee kTexture()); 586 REPORTER_ASSERT(reporter, as_IB(image4)->peekTexture() != as_IB(image2)->pee kTexture());
587 REPORTER_ASSERT(reporter, as_IB(image4)->peekTexture() != as_IB(image1)->pee kTexture()); 587 REPORTER_ASSERT(reporter, as_IB(image4)->peekTexture() != as_IB(image1)->pee kTexture());
588 REPORTER_ASSERT(reporter, as_IB(image3)->peekTexture() != as_IB(image2)->pee kTexture()); 588 REPORTER_ASSERT(reporter, as_IB(image3)->peekTexture() != as_IB(image2)->pee kTexture());
589 REPORTER_ASSERT(reporter, as_IB(image3)->peekTexture() != as_IB(image1)->pee kTexture()); 589 REPORTER_ASSERT(reporter, as_IB(image3)->peekTexture() != as_IB(image1)->pee kTexture());
590 REPORTER_ASSERT(reporter, as_IB(image2)->peekTexture() != as_IB(image1)->pee kTexture()); 590 REPORTER_ASSERT(reporter, as_IB(image2)->peekTexture() != as_IB(image1)->pee kTexture());
591 } 591 }
592 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceCRBug263329_Gpu, reporter, ctxInfo) { 592 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceCRBug263329_Gpu, reporter, ctxInfo) {
593 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) { 593 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) {
594 auto surface1(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, nul lptr)); 594 auto surface1(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, nul lptr));
595 auto surface2(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, nul lptr)); 595 auto surface2(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, nul lptr));
596 test_crbug263329(reporter, surface1.get(), surface2.get()); 596 test_crbug263329(reporter, surface1.get(), surface2.get());
597 } 597 }
598 } 598 }
599 #endif 599 #endif
600 600
601 DEF_TEST(SurfaceGetTexture, reporter) { 601 DEF_TEST(SurfaceGetTexture, reporter) {
602 auto surface(create_surface()); 602 auto surface(create_surface());
603 sk_sp<SkImage> image(surface->makeImageSnapshot()); 603 sk_sp<SkImage> image(surface->makeImageSnapshot());
604 REPORTER_ASSERT(reporter, as_IB(image)->peekTexture() == nullptr); 604 REPORTER_ASSERT(reporter, as_IB(image)->peekTexture() == nullptr);
605 surface->notifyContentWillChange(SkSurface::kDiscard_ContentChangeMode); 605 surface->notifyContentWillChange(SkSurface::kDiscard_ContentChangeMode);
606 REPORTER_ASSERT(reporter, as_IB(image)->peekTexture() == nullptr); 606 REPORTER_ASSERT(reporter, as_IB(image)->peekTexture() == nullptr);
607 } 607 }
608 #if SK_SUPPORT_GPU 608 #if SK_SUPPORT_GPU
609 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfacepeekTexture_Gpu, reporter, ctxInfo) { 609 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfacepeekTexture_Gpu, reporter, ctxInfo) {
610 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) { 610 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) {
611 auto surface(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, null ptr)); 611 auto surface(surface_func(ctxInfo.grContext(), kPremul_SkAlphaType, null ptr));
612 sk_sp<SkImage> image(surface->makeImageSnapshot()); 612 sk_sp<SkImage> image(surface->makeImageSnapshot());
613 GrTexture* texture = as_IB(image)->peekTexture(); 613 GrTexture* texture = as_IB(image)->peekTexture();
614 REPORTER_ASSERT(reporter, texture); 614 REPORTER_ASSERT(reporter, texture);
615 REPORTER_ASSERT(reporter, 0 != texture->getTextureHandle()); 615 REPORTER_ASSERT(reporter, 0 != texture->getTextureHandle());
616 surface->notifyContentWillChange(SkSurface::kDiscard_ContentChangeMode); 616 surface->notifyContentWillChange(SkSurface::kDiscard_ContentChangeMode);
617 REPORTER_ASSERT(reporter, as_IB(image)->peekTexture() == texture); 617 REPORTER_ASSERT(reporter, as_IB(image)->peekTexture() == texture);
618 } 618 }
619 } 619 }
(...skipping 11 matching lines...) Expand all
631 } 631 }
632 632
633 static SkBudgeted is_budgeted(SkImage* image) { 633 static SkBudgeted is_budgeted(SkImage* image) {
634 return ((SkImage_Gpu*)image)->peekTexture()->resourcePriv().isBudgeted(); 634 return ((SkImage_Gpu*)image)->peekTexture()->resourcePriv().isBudgeted();
635 } 635 }
636 636
637 static SkBudgeted is_budgeted(const sk_sp<SkImage> image) { 637 static SkBudgeted is_budgeted(const sk_sp<SkImage> image) {
638 return is_budgeted(image.get()); 638 return is_budgeted(image.get());
639 } 639 }
640 640
641 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceBudget, reporter, ctxInfo) { 641 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceBudget, reporter, ctxInfo) {
642 SkImageInfo info = SkImageInfo::MakeN32Premul(8,8); 642 SkImageInfo info = SkImageInfo::MakeN32Premul(8,8);
643 for (auto sbudgeted : { SkBudgeted::kNo, SkBudgeted::kYes }) { 643 for (auto sbudgeted : { SkBudgeted::kNo, SkBudgeted::kYes }) {
644 for (auto ibudgeted : { SkBudgeted::kNo, SkBudgeted::kYes }) { 644 for (auto ibudgeted : { SkBudgeted::kNo, SkBudgeted::kYes }) {
645 auto surface(SkSurface::MakeRenderTarget(ctxInfo.grContext(), sbudge ted, info)); 645 auto surface(SkSurface::MakeRenderTarget(ctxInfo.grContext(), sbudge ted, info));
646 SkASSERT(surface); 646 SkASSERT(surface);
647 REPORTER_ASSERT(reporter, sbudgeted == is_budgeted(surface)); 647 REPORTER_ASSERT(reporter, sbudgeted == is_budgeted(surface));
648 648
649 sk_sp<SkImage> image(surface->makeImageSnapshot(ibudgeted)); 649 sk_sp<SkImage> image(surface->makeImageSnapshot(ibudgeted));
650 650
651 // Initially the image shares a texture with the surface, and the su rface decides 651 // Initially the image shares a texture with the surface, and the su rface decides
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 DEF_TEST(SurfaceNoCanvas, reporter) { 693 DEF_TEST(SurfaceNoCanvas, reporter) {
694 SkSurface::ContentChangeMode modes[] = 694 SkSurface::ContentChangeMode modes[] =
695 { SkSurface::kDiscard_ContentChangeMode, SkSurface::kRetain_ContentC hangeMode}; 695 { SkSurface::kDiscard_ContentChangeMode, SkSurface::kRetain_ContentC hangeMode};
696 for (auto& test_func : { &test_no_canvas1, &test_no_canvas2 }) { 696 for (auto& test_func : { &test_no_canvas1, &test_no_canvas2 }) {
697 for (auto& mode : modes) { 697 for (auto& mode : modes) {
698 test_func(reporter, create_surface().get(), mode); 698 test_func(reporter, create_surface().get(), mode);
699 } 699 }
700 } 700 }
701 } 701 }
702 #if SK_SUPPORT_GPU 702 #if SK_SUPPORT_GPU
703 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceNoCanvas_Gpu, reporter, ctxInfo) { 703 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfaceNoCanvas_Gpu, reporter, ctxInfo) {
704 SkSurface::ContentChangeMode modes[] = 704 SkSurface::ContentChangeMode modes[] =
705 { SkSurface::kDiscard_ContentChangeMode, SkSurface::kRetain_ContentC hangeMode}; 705 { SkSurface::kDiscard_ContentChangeMode, SkSurface::kRetain_ContentC hangeMode};
706 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) { 706 for (auto& surface_func : { &create_gpu_surface, &create_gpu_scratch_surface }) {
707 for (auto& test_func : { &test_no_canvas1, &test_no_canvas2 }) { 707 for (auto& test_func : { &test_no_canvas1, &test_no_canvas2 }) {
708 for (auto& mode : modes) { 708 for (auto& mode : modes) {
709 auto surface(surface_func(ctxInfo.grContext(), kPremul_SkAlphaTy pe, nullptr)); 709 auto surface(surface_func(ctxInfo.grContext(), kPremul_SkAlphaTy pe, nullptr));
710 test_func(reporter, surface.get(), mode); 710 test_func(reporter, surface.get(), mode);
711 } 711 }
712 } 712 }
713 } 713 }
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
834 return; 834 return;
835 } 835 }
836 } 836 }
837 } 837 }
838 } 838 }
839 839
840 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceClear_Gpu, reporter, ctxInfo) { 840 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfaceClear_Gpu, reporter, ctxInfo) {
841 GrContext* context = ctxInfo.grContext(); 841 GrContext* context = ctxInfo.grContext();
842 842
843 std::function<GrSurface*(SkSurface*)> grSurfaceGetters[] = { 843 std::function<GrSurface*(SkSurface*)> grSurfaceGetters[] = {
844 [] (SkSurface* s){ 844 [] (SkSurface* s){
845 GrDrawContext* dc = s->getCanvas()->internal_private_accessTopLayerD rawContext(); 845 GrDrawContext* dc = s->getCanvas()->internal_private_accessTopLayerD rawContext();
846 return dc->accessRenderTarget(); }, 846 return dc->accessRenderTarget(); },
847 [] (SkSurface* s){ 847 [] (SkSurface* s){
848 SkBaseDevice* d = 848 SkBaseDevice* d =
849 s->getCanvas()->getDevice_just_for_deprecated_compatibility_test ing(); 849 s->getCanvas()->getDevice_just_for_deprecated_compatibility_test ing();
850 return d->accessRenderTarget(); }, 850 return d->accessRenderTarget(); },
851 [] (SkSurface* s){ sk_sp<SkImage> i(s->makeImageSnapshot()); 851 [] (SkSurface* s){ sk_sp<SkImage> i(s->makeImageSnapshot());
852 return as_IB(i)->peekTexture(); } 852 return as_IB(i)->peekTexture(); }
853 }; 853 };
854 854
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 for (int y = kH/2; y < kH && !stop; ++y) { 906 for (int y = kH/2; y < kH && !stop; ++y) {
907 for (int x = 0; x < kW && !stop; ++x) { 907 for (int x = 0; x < kW && !stop; ++x) {
908 REPORTER_ASSERT(reporter, origColorPM == pixels[x + y * kW]); 908 REPORTER_ASSERT(reporter, origColorPM == pixels[x + y * kW]);
909 if (origColorPM != pixels[x + y * kW]) { 909 if (origColorPM != pixels[x + y * kW]) {
910 stop = true; 910 stop = true;
911 } 911 }
912 } 912 }
913 } 913 }
914 } 914 }
915 915
916 DEF_GPUTEST_FOR_GL_RENDERING_CONTEXTS(SurfacePartialDraw_Gpu, reporter, ctxInfo) { 916 DEF_GPUTEST_FOR_RENDERING_CONTEXTS(SurfacePartialDraw_Gpu, reporter, ctxInfo) {
917 GrGpu* gpu = ctxInfo.grContext()->getGpu(); 917 GrGpu* gpu = ctxInfo.grContext()->getGpu();
918 if (!gpu) { 918 if (!gpu) {
919 return; 919 return;
920 } 920 }
921 static const uint32_t kOrigColor = 0xFFAABBCC; 921 static const uint32_t kOrigColor = 0xFFAABBCC;
922 922
923 for (auto& surfaceFunc : {&create_gpu_surface_backend_texture, 923 for (auto& surfaceFunc : {&create_gpu_surface_backend_texture,
924 &create_gpu_surface_backend_texture_as_render_targ et}) { 924 &create_gpu_surface_backend_texture_as_render_targ et}) {
925 // Validate that we can draw to the canvas and that the original texture color is 925 // Validate that we can draw to the canvas and that the original texture color is
926 // preserved in pixels that aren't rendered to via the surface. 926 // preserved in pixels that aren't rendered to via the surface.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
958 // our surface functions. 958 // our surface functions.
959 GrRenderTarget* rt = surface->getCanvas()->internal_private_accessTo pLayerDrawContext() 959 GrRenderTarget* rt = surface->getCanvas()->internal_private_accessTo pLayerDrawContext()
960 ->accessRenderTarget(); 960 ->accessRenderTarget();
961 REPORTER_ASSERT(reporter, 961 REPORTER_ASSERT(reporter,
962 ctxInfo.grContext()->resourceProvider()->attachStenc ilAttachment(rt)); 962 ctxInfo.grContext()->resourceProvider()->attachStenc ilAttachment(rt));
963 gpu->deleteTestingOnlyBackendTexture(textureObject); 963 gpu->deleteTestingOnlyBackendTexture(textureObject);
964 } 964 }
965 } 965 }
966 } 966 }
967 #endif 967 #endif
OLDNEW
« no previous file with comments | « tests/SpecialSurfaceTest.cpp ('k') | tests/TestTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698