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

Side by Side Diff: tests/GrPorterDuffTest.cpp

Issue 1225923010: Refugee from Dead Machine 4: MDB Monster Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Last update from dead machine Created 4 years, 7 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/GpuColorFilterTest.cpp ('k') | tests/GrTextureMipMapInvalidationTest.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 2015 Google Inc. 2 * Copyright 2015 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 "SkXfermode.h" 8 #include "SkXfermode.h"
9 #include "Test.h" 9 #include "Test.h"
10 10
(...skipping 30 matching lines...) Expand all
41 SkFAIL("Null context does not support dual source blending."); 41 SkFAIL("Null context does not support dual source blending.");
42 return; 42 return;
43 } 43 }
44 44
45 test_color_unknown_with_coverage(reporter, caps); 45 test_color_unknown_with_coverage(reporter, caps);
46 test_color_unknown_no_coverage(reporter, caps); 46 test_color_unknown_no_coverage(reporter, caps);
47 test_color_opaque_with_coverage(reporter, caps); 47 test_color_opaque_with_coverage(reporter, caps);
48 test_color_opaque_no_coverage(reporter, caps); 48 test_color_opaque_no_coverage(reporter, caps);
49 test_lcd_coverage(reporter, caps); 49 test_lcd_coverage(reporter, caps);
50 test_lcd_coverage_fallback_case(reporter, caps); 50 test_lcd_coverage_fallback_case(reporter, caps);
51 test_no_dual_source_blending(reporter); 51 //test_no_dual_source_blending(reporter);
52 } 52 }
53 53
54 //////////////////////////////////////////////////////////////////////////////// 54 ////////////////////////////////////////////////////////////////////////////////
55 55
56 #define TEST_ASSERT(...) REPORTER_ASSERT(reporter, __VA_ARGS__) 56 #define TEST_ASSERT(...) REPORTER_ASSERT(reporter, __VA_ARGS__)
57 57
58 enum { 58 enum {
59 kNone_OutputType, 59 kNone_OutputType,
60 kCoverage_OutputType, 60 kCoverage_OutputType,
61 kModulate_OutputType, 61 kModulate_OutputType,
(...skipping 10 matching lines...) Expand all
72 kCanTweakAlphaForCoverage_OptFlag = GrXferProcessor::kCanTweakAlphaForCovera ge_OptFlag 72 kCanTweakAlphaForCoverage_OptFlag = GrXferProcessor::kCanTweakAlphaForCovera ge_OptFlag
73 }; 73 };
74 74
75 class GrPorterDuffTest { 75 class GrPorterDuffTest {
76 public: 76 public:
77 struct XPInfo { 77 struct XPInfo {
78 XPInfo(skiatest::Reporter* reporter, SkXfermode::Mode xfermode, const Gr Caps& caps, 78 XPInfo(skiatest::Reporter* reporter, SkXfermode::Mode xfermode, const Gr Caps& caps,
79 const GrProcOptInfo& colorPOI, const GrProcOptInfo& covPOI) { 79 const GrProcOptInfo& colorPOI, const GrProcOptInfo& covPOI) {
80 SkAutoTUnref<GrXPFactory> xpf(GrPorterDuffXPFactory::Create(xfermode )); 80 SkAutoTUnref<GrXPFactory> xpf(GrPorterDuffXPFactory::Create(xfermode ));
81 SkAutoTUnref<GrXferProcessor> xp( 81 SkAutoTUnref<GrXferProcessor> xp(
82 xpf->createXferProcessor(colorPOI, covPOI, false, nullptr, caps) ); 82 xpf->createXferProcessor(colorPOI, covPOI, false, nullptr, caps, nullptr));
83 TEST_ASSERT(!xpf->willNeedDstTexture(caps, colorPOI, covPOI, false)) ; 83 TEST_ASSERT(!xpf->willNeedDstTexture(caps, colorPOI, covPOI, false)) ;
84 xpf->getInvariantBlendedColor(colorPOI, &fBlendedColor); 84 xpf->getInvariantBlendedColor(colorPOI, &fBlendedColor);
85 fOptFlags = xp->getOptimizations(colorPOI, covPOI, false, nullptr, c aps); 85 fOptFlags = xp->getOptimizations(colorPOI, covPOI, false, nullptr, c aps);
86 GetXPOutputTypes(xp, &fPrimaryOutputType, &fSecondaryOutputType); 86 GetXPOutputTypes(xp, &fPrimaryOutputType, &fSecondaryOutputType);
87 xp->getBlendInfo(&fBlendInfo); 87 xp->getBlendInfo(&fBlendInfo);
88 TEST_ASSERT(!xp->willReadDstColor()); 88 TEST_ASSERT(!xp->willReadDstColor());
89 TEST_ASSERT(xp->hasSecondaryOutput() == GrBlendCoeffRefsSrc2(fBlendI nfo.fDstBlend)); 89 TEST_ASSERT(xp->hasSecondaryOutput() == GrBlendCoeffRefsSrc2(fBlendI nfo.fDstBlend));
90 } 90 }
91 91
92 GrXPFactory::InvariantBlendedColor fBlendedColor; 92 GrXPFactory::InvariantBlendedColor fBlendedColor;
(...skipping 1028 matching lines...) Expand 10 before | Expand all | Expand 10 after
1121 colorPOI.calcColorWithBatch(&testLCDCoverageBatch, nullptr, 0); 1121 colorPOI.calcColorWithBatch(&testLCDCoverageBatch, nullptr, 0);
1122 covPOI.calcCoverageWithBatch(&testLCDCoverageBatch, nullptr, 0); 1122 covPOI.calcCoverageWithBatch(&testLCDCoverageBatch, nullptr, 0);
1123 1123
1124 SkASSERT(kRGBA_GrColorComponentFlags == colorPOI.validFlags()); 1124 SkASSERT(kRGBA_GrColorComponentFlags == colorPOI.validFlags());
1125 SkASSERT(covPOI.isFourChannelOutput()); 1125 SkASSERT(covPOI.isFourChannelOutput());
1126 1126
1127 SkAutoTUnref<GrXPFactory> xpf(GrPorterDuffXPFactory::Create(SkXfermode::kSrc Over_Mode)); 1127 SkAutoTUnref<GrXPFactory> xpf(GrPorterDuffXPFactory::Create(SkXfermode::kSrc Over_Mode));
1128 TEST_ASSERT(!xpf->willNeedDstTexture(caps, colorPOI, covPOI, false)); 1128 TEST_ASSERT(!xpf->willNeedDstTexture(caps, colorPOI, covPOI, false));
1129 1129
1130 SkAutoTUnref<GrXferProcessor> xp( 1130 SkAutoTUnref<GrXferProcessor> xp(
1131 xpf->createXferProcessor(colorPOI, covPOI, false, nullptr, caps)); 1131 xpf->createXferProcessor(colorPOI, covPOI, false, nullptr, caps, nullptr ));
1132 if (!xp) { 1132 if (!xp) {
1133 ERRORF(reporter, "Failed to create an XP with LCD coverage."); 1133 ERRORF(reporter, "Failed to create an XP with LCD coverage.");
1134 return; 1134 return;
1135 } 1135 }
1136 1136
1137 GrXPFactory::InvariantBlendedColor blendedColor; 1137 GrXPFactory::InvariantBlendedColor blendedColor;
1138 xpf->getInvariantBlendedColor(colorPOI, &blendedColor); 1138 xpf->getInvariantBlendedColor(colorPOI, &blendedColor);
1139 TEST_ASSERT(blendedColor.fWillBlendWithDst); 1139 TEST_ASSERT(blendedColor.fWillBlendWithDst);
1140 TEST_ASSERT(kNone_GrColorComponentFlags == blendedColor.fKnownColorFlags); 1140 TEST_ASSERT(kNone_GrColorComponentFlags == blendedColor.fKnownColorFlags);
1141 1141
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
1197 } else { 1197 } else {
1198 covPOI.calcWithInitialValues(nullptr, 0, GrColorPackA4(255), 1198 covPOI.calcWithInitialValues(nullptr, 0, GrColorPackA4(255),
1199 kRGBA_GrColorComponentFlags, true); 1199 kRGBA_GrColorComponentFlags, true);
1200 } 1200 }
1201 for (int m = 0; m <= SkXfermode::kLastCoeffMode; m++) { 1201 for (int m = 0; m <= SkXfermode::kLastCoeffMode; m++) {
1202 SkXfermode::Mode xfermode = static_cast<SkXfermode::Mode>(m); 1202 SkXfermode::Mode xfermode = static_cast<SkXfermode::Mode>(m);
1203 SkAutoTUnref<GrXPFactory> xpf(GrPorterDuffXPFactory::Create(xfer mode)); 1203 SkAutoTUnref<GrXPFactory> xpf(GrPorterDuffXPFactory::Create(xfer mode));
1204 GrXferProcessor::DstTexture* dstTexture = 1204 GrXferProcessor::DstTexture* dstTexture =
1205 xpf->willNeedDstTexture(caps, colorPOI, covPOI, false) ? &fa keDstTexture : 0; 1205 xpf->willNeedDstTexture(caps, colorPOI, covPOI, false) ? &fa keDstTexture : 0;
1206 SkAutoTUnref<GrXferProcessor> xp( 1206 SkAutoTUnref<GrXferProcessor> xp(
1207 xpf->createXferProcessor(colorPOI, covPOI, false, dstTexture , caps)); 1207 xpf->createXferProcessor(colorPOI, covPOI, false, dstTexture , caps, NULL));
1208 if (!xp) { 1208 if (!xp) {
1209 ERRORF(reporter, "Failed to create an XP without dual source blending."); 1209 ERRORF(reporter, "Failed to create an XP without dual source blending.");
1210 return; 1210 return;
1211 } 1211 }
1212 TEST_ASSERT(!xp->hasSecondaryOutput()); 1212 TEST_ASSERT(!xp->hasSecondaryOutput());
1213 xp->getOptimizations(colorPOI, covPOI, false, 0, caps); 1213 xp->getOptimizations(colorPOI, covPOI, false, 0, caps);
1214 TEST_ASSERT(!xp->hasSecondaryOutput()); 1214 TEST_ASSERT(!xp->hasSecondaryOutput());
1215 } 1215 }
1216 } 1216 }
1217 } 1217 }
1218 ctx->getGpu()->deleteTestingOnlyBackendTexture(backendTex); 1218 ctx->getGpu()->deleteTestingOnlyBackendTexture(backendTex);
1219 } 1219 }
1220 1220
1221 #endif 1221 #endif
1222 1222
OLDNEW
« no previous file with comments | « tests/GpuColorFilterTest.cpp ('k') | tests/GrTextureMipMapInvalidationTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698