| Index: tests/GLProgramsTest.cpp
|
| diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp
|
| index 24700612578c72f4906ba73233bef5b1b4d3ea25..7ce71c66377290a65f077a7a5a7debe8eddc13d8 100644
|
| --- a/tests/GLProgramsTest.cpp
|
| +++ b/tests/GLProgramsTest.cpp
|
| @@ -66,8 +66,8 @@ private:
|
|
|
| class BigKeyProcessor : public GrFragmentProcessor {
|
| public:
|
| - static GrFragmentProcessor* Create() {
|
| - return new BigKeyProcessor;
|
| + static sk_sp<GrFragmentProcessor> Make() {
|
| + return sk_sp<GrFragmentProcessor>(new BigKeyProcessor);
|
| }
|
|
|
| const char* name() const override { return "Big Ole Key"; }
|
| @@ -94,16 +94,16 @@ private:
|
|
|
| GR_DEFINE_FRAGMENT_PROCESSOR_TEST(BigKeyProcessor);
|
|
|
| -const GrFragmentProcessor* BigKeyProcessor::TestCreate(GrProcessorTestData*) {
|
| - return BigKeyProcessor::Create();
|
| +sk_sp<GrFragmentProcessor> BigKeyProcessor::TestCreate(GrProcessorTestData*) {
|
| + return BigKeyProcessor::Make();
|
| }
|
|
|
| //////////////////////////////////////////////////////////////////////////////
|
|
|
| class BlockInputFragmentProcessor : public GrFragmentProcessor {
|
| public:
|
| - static GrFragmentProcessor* Create(const GrFragmentProcessor* fp) {
|
| - return new BlockInputFragmentProcessor(fp);
|
| + static sk_sp<GrFragmentProcessor> Make(sk_sp<GrFragmentProcessor> fp) {
|
| + return sk_sp<GrFragmentProcessor>(new BlockInputFragmentProcessor(fp));
|
| }
|
|
|
| const char* name() const override { return "Block Input"; }
|
| @@ -121,9 +121,9 @@ private:
|
| typedef GrGLSLFragmentProcessor INHERITED;
|
| };
|
|
|
| - BlockInputFragmentProcessor(const GrFragmentProcessor* child) {
|
| + BlockInputFragmentProcessor(sk_sp<GrFragmentProcessor> child) {
|
| this->initClassID<BlockInputFragmentProcessor>();
|
| - this->registerChildProcessor(child);
|
| + this->registerChildProcessor(std::move(child));
|
| }
|
|
|
| void onGetGLSLProcessorKey(const GrGLSLCaps& caps, GrProcessorKeyBuilder* b) const override {}
|
| @@ -185,13 +185,13 @@ static sk_sp<GrDrawContext> random_draw_context(GrContext* context,
|
| }
|
|
|
| static void set_random_xpf(GrPipelineBuilder* pipelineBuilder, GrProcessorTestData* d) {
|
| - SkAutoTUnref<const GrXPFactory> xpf(GrProcessorTestFactory<GrXPFactory>::Create(d));
|
| + sk_sp<GrXPFactory> xpf(GrProcessorTestFactory<GrXPFactory>::Make(d));
|
| SkASSERT(xpf);
|
| - pipelineBuilder->setXPFactory(xpf.get());
|
| + pipelineBuilder->setXPFactory(std::move(xpf));
|
| }
|
|
|
| -static const GrFragmentProcessor* create_random_proc_tree(GrProcessorTestData* d,
|
| - int minLevels, int maxLevels) {
|
| +static sk_sp<GrFragmentProcessor> create_random_proc_tree(GrProcessorTestData* d,
|
| + int minLevels, int maxLevels) {
|
| SkASSERT(1 <= minLevels);
|
| SkASSERT(minLevels <= maxLevels);
|
|
|
| @@ -202,14 +202,13 @@ static const GrFragmentProcessor* create_random_proc_tree(GrProcessorTestData* d
|
| if (1 == minLevels) {
|
| bool terminate = (1 == maxLevels) || (d->fRandom->nextF() < terminateProbability);
|
| if (terminate) {
|
| - const GrFragmentProcessor* fp;
|
| + sk_sp<GrFragmentProcessor> fp;
|
| while (true) {
|
| - fp = GrProcessorTestFactory<GrFragmentProcessor>::Create(d);
|
| + fp = GrProcessorTestFactory<GrFragmentProcessor>::Make(d);
|
| SkASSERT(fp);
|
| if (0 == fp->numChildProcessors()) {
|
| break;
|
| }
|
| - fp->unref();
|
| }
|
| return fp;
|
| }
|
| @@ -220,18 +219,18 @@ static const GrFragmentProcessor* create_random_proc_tree(GrProcessorTestData* d
|
| if (minLevels > 1) {
|
| --minLevels;
|
| }
|
| - SkAutoTUnref<const GrFragmentProcessor> minLevelsChild(create_random_proc_tree(d, minLevels,
|
| - maxLevels - 1));
|
| - SkAutoTUnref<const GrFragmentProcessor> otherChild(create_random_proc_tree(d, 1,
|
| - maxLevels - 1));
|
| + sk_sp<GrFragmentProcessor> minLevelsChild(create_random_proc_tree(d, minLevels, maxLevels - 1));
|
| + sk_sp<GrFragmentProcessor> otherChild(create_random_proc_tree(d, 1, maxLevels - 1));
|
| SkXfermode::Mode mode = static_cast<SkXfermode::Mode>(d->fRandom->nextRangeU(0,
|
| SkXfermode::kLastCoeffMode));
|
| - const GrFragmentProcessor* fp;
|
| + sk_sp<GrFragmentProcessor> fp;
|
| if (d->fRandom->nextF() < 0.5f) {
|
| - fp = GrXfermodeFragmentProcessor::CreateFromTwoProcessors(minLevelsChild, otherChild, mode);
|
| + fp = GrXfermodeFragmentProcessor::MakeFromTwoProcessors(std::move(minLevelsChild),
|
| + std::move(otherChild), mode);
|
| SkASSERT(fp);
|
| } else {
|
| - fp = GrXfermodeFragmentProcessor::CreateFromTwoProcessors(otherChild, minLevelsChild, mode);
|
| + fp = GrXfermodeFragmentProcessor::MakeFromTwoProcessors(std::move(otherChild),
|
| + std::move(minLevelsChild), mode);
|
| SkASSERT(fp);
|
| }
|
| return fp;
|
| @@ -245,23 +244,21 @@ static void set_random_color_coverage_stages(GrPipelineBuilder* pipelineBuilder,
|
| // A full tree with 5 levels (31 nodes) may exceed the max allowed length of the gl
|
| // processor key; maxTreeLevels should be a number from 1 to 4 inclusive.
|
| const int maxTreeLevels = 4;
|
| - SkAutoTUnref<const GrFragmentProcessor> fp(
|
| - create_random_proc_tree(d, 2, maxTreeLevels));
|
| - pipelineBuilder->addColorFragmentProcessor(fp);
|
| + sk_sp<GrFragmentProcessor> fp(create_random_proc_tree(d, 2, maxTreeLevels));
|
| + pipelineBuilder->addColorFragmentProcessor(std::move(fp));
|
| } else {
|
| int numProcs = d->fRandom->nextULessThan(maxStages + 1);
|
| int numColorProcs = d->fRandom->nextULessThan(numProcs + 1);
|
|
|
| for (int s = 0; s < numProcs;) {
|
| - SkAutoTUnref<const GrFragmentProcessor> fp(
|
| - GrProcessorTestFactory<GrFragmentProcessor>::Create(d));
|
| + sk_sp<GrFragmentProcessor> fp(GrProcessorTestFactory<GrFragmentProcessor>::Make(d));
|
| SkASSERT(fp);
|
|
|
| // finally add the stage to the correct pipeline in the drawstate
|
| if (s < numColorProcs) {
|
| - pipelineBuilder->addColorFragmentProcessor(fp);
|
| + pipelineBuilder->addColorFragmentProcessor(std::move(fp));
|
| } else {
|
| - pipelineBuilder->addCoverageFragmentProcessor(fp);
|
| + pipelineBuilder->addCoverageFragmentProcessor(std::move(fp));
|
| }
|
| ++s;
|
| }
|
| @@ -385,13 +382,13 @@ bool GrDrawingManager::ProgramUnitTest(GrContext* context, int maxStages) {
|
| GrProcessorTestData ptd(&random, context, context->caps(),
|
| drawContext.get(), dummyTextures);
|
| GrPipelineBuilder builder;
|
| - builder.setXPFactory(GrPorterDuffXPFactory::Create(SkXfermode::kSrc_Mode))->unref();
|
| + builder.setXPFactory(GrPorterDuffXPFactory::Make(SkXfermode::kSrc_Mode));
|
|
|
| - SkAutoTUnref<const GrFragmentProcessor> fp(
|
| - GrProcessorTestFactory<GrFragmentProcessor>::CreateIdx(i, &ptd));
|
| - SkAutoTUnref<const GrFragmentProcessor> blockFP(
|
| - BlockInputFragmentProcessor::Create(fp));
|
| - builder.addColorFragmentProcessor(blockFP);
|
| + sk_sp<GrFragmentProcessor> fp(
|
| + GrProcessorTestFactory<GrFragmentProcessor>::MakeIdx(i, &ptd));
|
| + sk_sp<GrFragmentProcessor> blockFP(
|
| + BlockInputFragmentProcessor::Make(std::move(fp)));
|
| + builder.addColorFragmentProcessor(std::move(blockFP));
|
|
|
| drawContext->drawContextPriv().testingOnly_drawBatch(builder, batch);
|
| drawingManager->flush();
|
|
|