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

Side by Side Diff: tests/GrPorterDuffTest.cpp

Issue 1467553002: New API for computing optimization invariants. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years 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
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 1082 matching lines...) Expand 10 before | Expand all | Expand 10 after
1093 } 1093 }
1094 1094
1095 static void test_lcd_coverage_fallback_case(skiatest::Reporter* reporter, const GrCaps& caps) { 1095 static void test_lcd_coverage_fallback_case(skiatest::Reporter* reporter, const GrCaps& caps) {
1096 class TestLCDCoverageBatch: public GrVertexBatch { 1096 class TestLCDCoverageBatch: public GrVertexBatch {
1097 public: 1097 public:
1098 DEFINE_BATCH_CLASS_ID 1098 DEFINE_BATCH_CLASS_ID
1099 1099
1100 TestLCDCoverageBatch() : INHERITED(ClassID()) {} 1100 TestLCDCoverageBatch() : INHERITED(ClassID()) {}
1101 1101
1102 private: 1102 private:
1103 void getInvariantOutputColor(GrInitInvariantOutput* out) const override { 1103 void computeBatchToXPOverrides(GrInitInvariantOutput* color, GrInitInvar iantOutput* coverage,
1104 out->setKnownFourComponents(GrColorPackRGBA(123, 45, 67, 221)); 1104 bool* usePLSDstRead) const {
1105 } 1105 color->setKnownFourComponents(GrColorPackRGBA(123, 45, 67, 221));
1106 1106 coverage->setUnknownFourComponents();
1107 void getInvariantOutputCoverage(GrInitInvariantOutput* out) const overri de { 1107 coverage->setUsingLCDCoverage();
1108 out->setUnknownFourComponents(); 1108 *usePLSDstRead = false;
1109 out->setUsingLCDCoverage();
1110 } 1109 }
1111 1110
1112 const char* name() const override { return "Test LCD Text Batch"; } 1111 const char* name() const override { return "Test LCD Text Batch"; }
1113 void initBatchTracker(const GrPipelineOptimizations&) override {} 1112 void initBatchTracker(const GrPipelineOptimizations&) override {}
1114 bool onCombineIfPossible(GrBatch*, const GrCaps&) override { return fal se; } 1113 bool onCombineIfPossible(GrBatch*, const GrCaps&) override { return fal se; }
1115 void onPrepareDraws(Target*) override {}; 1114 void onPrepareDraws(Target*) override {};
1116 1115
1117 typedef GrVertexBatch INHERITED; 1116 typedef GrVertexBatch INHERITED;
1118 } testLCDCoverageBatch; 1117 } testLCDCoverageBatch;
1119 1118
1120 GrProcOptInfo colorPOI, covPOI; 1119 GrBatchToXPOverrides overrides;
1121 colorPOI.calcColorWithBatch(&testLCDCoverageBatch, nullptr, 0); 1120 testLCDCoverageBatch.getBatchToXPOverrides(overrides);
1122 covPOI.calcCoverageWithBatch(&testLCDCoverageBatch, nullptr, 0); 1121 GrProcOptInfo colorPOI = overrides.fColorPOI;
1122 GrProcOptInfo covPOI = overrides.fCoveragePOI;
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));
1132 if (!xp) { 1132 if (!xp) {
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
« src/gpu/batches/GrDrawBatch.cpp ('K') | « src/gpu/effects/GrDashingEffect.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698