diff options
author | bsalomon <bsalomon@google.com> | 2015-09-14 12:01:42 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-14 12:01:42 -0700 |
commit | 59ce45fe7984b3ee1bdbd107805a3146a0064fab (patch) | |
tree | fa6b9a0da4910a3dc2dd91274daf8b10b778ec74 /tests | |
parent | 72c58e7052af2a0855412ce4b249f977069db751 (diff) |
Revert of Test that GrFragmentProcessors work without input colors. (patchset #2 id:20001 of https://codereview.chromium.org/1341853002/ )
Reason for revert:
Need to fix up more processor subclasses.
Original issue's description:
> Test that GrFragmentProcessors work without input colors.
>
> Committed: https://skia.googlesource.com/skia/+/72c58e7052af2a0855412ce4b249f977069db751
TBR=joshualitt@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/1338403003
Diffstat (limited to 'tests')
-rw-r--r-- | tests/GLProgramsTest.cpp | 84 |
1 files changed, 4 insertions, 80 deletions
diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp index ad23bfbb74..ce86c9bf38 100644 --- a/tests/GLProgramsTest.cpp +++ b/tests/GLProgramsTest.cpp @@ -95,49 +95,6 @@ const GrFragmentProcessor* BigKeyProcessor::TestCreate(GrProcessorTestData*) { return BigKeyProcessor::Create(); } -////////////////////////////////////////////////////////////////////////////// - -class BlockInputFragmentProcessor : public GrFragmentProcessor { -public: - static GrFragmentProcessor* Create(const GrFragmentProcessor* fp) { - return new BlockInputFragmentProcessor(fp); - } - - const char* name() const override { return "Block Input"; } - - GrGLFragmentProcessor* onCreateGLInstance() const override { return new GLFP; } - -private: - class GLFP : public GrGLFragmentProcessor { - public: - void emitCode(EmitArgs& args) override { - this->emitChild(0, nullptr, args.fOutputColor, args); - } - - private: - typedef GrGLFragmentProcessor INHERITED; - }; - - BlockInputFragmentProcessor(const GrFragmentProcessor* child) { - this->initClassID<BlockInputFragmentProcessor>(); - this->registerChildProcessor(child); - } - - void onGetGLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override {} - - bool onIsEqual(const GrFragmentProcessor&) const override { return true; } - - void onComputeInvariantOutput(GrInvariantOutput* inout) const override { - inout->setToOther(kRGBA_GrColorComponentFlags, GrColor_WHITE, - GrInvariantOutput::kWillNot_ReadInput); - this->childProcessor(0).computeInvariantOutput(inout); - } - - typedef GrFragmentProcessor INHERITED; -}; - -////////////////////////////////////////////////////////////////////////////// - /* * Begin test code */ @@ -175,7 +132,7 @@ static GrRenderTarget* random_render_target(GrTextureProvider* textureProvider, } static void set_random_xpf(GrPipelineBuilder* pipelineBuilder, GrProcessorTestData* d) { - SkAutoTUnref<const GrXPFactory> xpf(GrProcessorTestFactory<GrXPFactory>::Create(d)); + SkAutoTUnref<const GrXPFactory> xpf(GrProcessorTestFactory<GrXPFactory>::CreateStage(d)); SkASSERT(xpf); pipelineBuilder->setXPFactory(xpf.get()); } @@ -194,7 +151,7 @@ static const GrFragmentProcessor* create_random_proc_tree(GrProcessorTestData* d if (terminate) { const GrFragmentProcessor* fp; while (true) { - fp = GrProcessorTestFactory<GrFragmentProcessor>::Create(d); + fp = GrProcessorTestFactory<GrFragmentProcessor>::CreateStage(d); SkASSERT(fp); if (0 == fp->numChildProcessors()) { break; @@ -244,7 +201,7 @@ static void set_random_color_coverage_stages(GrPipelineBuilder* pipelineBuilder, for (int s = 0; s < numProcs;) { SkAutoTUnref<const GrFragmentProcessor> fp( - GrProcessorTestFactory<GrFragmentProcessor>::Create(d)); + GrProcessorTestFactory<GrFragmentProcessor>::CreateStage(d)); SkASSERT(fp); // finally add the stage to the correct pipeline in the drawstate @@ -352,42 +309,9 @@ bool GrDrawTarget::programUnitTest(GrContext* context, int maxStages) { this->drawBatch(pipelineBuilder, batch); } + // Flush everything, test passes if flush is successful(ie, no asserts are hit, no crashes) this->flush(); - - // Validate that GrFPs work correctly without an input. - GrSurfaceDesc rtDesc; - rtDesc.fWidth = kRenderTargetWidth; - rtDesc.fHeight = kRenderTargetHeight; - rtDesc.fFlags = kRenderTarget_GrSurfaceFlag; - rtDesc.fConfig = kRGBA_8888_GrPixelConfig; - SkAutoTUnref<GrRenderTarget> rt( - fContext->textureProvider()->createTexture(rtDesc, false)->asRenderTarget()); - int fpFactoryCnt = GrProcessorTestFactory<GrFragmentProcessor>::Count(); - for (int i = 0; i < fpFactoryCnt; ++i) { - // Since FP factories internally randomize, call each 10 times. - for (int j = 0; j < 10; ++j) { - SkAutoTUnref<GrDrawBatch> batch(GrRandomDrawBatch(&random, context)); - SkASSERT(batch); - GrProcessorDataManager procDataManager; - GrProcessorTestData ptd(&random, context, &procDataManager, this->caps(), - dummyTextures); - GrPipelineBuilder builder; - builder.setXPFactory(GrPorterDuffXPFactory::Create(SkXfermode::kSrc_Mode))->unref(); - builder.setRenderTarget(rt); - builder.setClip(clip); - - SkAutoTUnref<const GrFragmentProcessor> fp( - GrProcessorTestFactory<GrFragmentProcessor>::CreateIdx(i, &ptd)); - SkAutoTUnref<const GrFragmentProcessor> blockFP( - BlockInputFragmentProcessor::Create(fp)); - builder.addColorFragmentProcessor(blockFP); - - this->drawBatch(builder, batch); - this->flush(); - } - } - return true; } |