| Index: tests/GLProgramsTest.cpp
|
| diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp
|
| index 14dfdce6d59238f629106a0ed3be0d4703e8b8cc..46190033f6f71ed6b332fa5b34a55198396196a3 100644
|
| --- a/tests/GLProgramsTest.cpp
|
| +++ b/tests/GLProgramsTest.cpp
|
| @@ -15,6 +15,7 @@
|
| #include "GrAutoLocaleSetter.h"
|
| #include "GrBatchTest.h"
|
| #include "GrContextFactory.h"
|
| +#include "GrDrawingManager.h"
|
| #include "GrInvariantOutput.h"
|
| #include "GrPipeline.h"
|
| #include "GrResourceProvider.h"
|
| @@ -300,7 +301,10 @@ static void set_random_stencil(GrPipelineBuilder* pipelineBuilder, SkRandom* ran
|
| }
|
| }
|
|
|
| -bool GrDrawTarget::programUnitTest(GrContext* context, int maxStages) {
|
| +bool GrDrawingManager::ProgramUnitTest(GrContext* context, GrDrawTarget* drawTarget, int maxStages) {
|
| +
|
| + GrDrawingManager* drawingManager = context->drawingManager();
|
| +
|
| // setup dummy textures
|
| GrSurfaceDesc dummyDesc;
|
| dummyDesc.fFlags = kRenderTarget_GrSurfaceFlag;
|
| @@ -334,7 +338,7 @@ bool GrDrawTarget::programUnitTest(GrContext* context, int maxStages) {
|
| for (int t = 0; t < NUM_TESTS; t++) {
|
| // setup random render target(can fail)
|
| SkAutoTUnref<GrRenderTarget> rt(random_render_target(
|
| - context->textureProvider(), &random, this->caps()));
|
| + context->textureProvider(), &random, context->caps()));
|
| if (!rt.get()) {
|
| SkDebugf("Could not allocate render target");
|
| return false;
|
| @@ -347,16 +351,16 @@ bool GrDrawTarget::programUnitTest(GrContext* context, int maxStages) {
|
| SkAutoTUnref<GrDrawBatch> batch(GrRandomDrawBatch(&random, context));
|
| SkASSERT(batch);
|
|
|
| - GrProcessorTestData ptd(&random, context, fGpu->caps(), dummyTextures);
|
| + GrProcessorTestData ptd(&random, context, context->caps(), dummyTextures);
|
| set_random_color_coverage_stages(&pipelineBuilder, &ptd, maxStages);
|
| set_random_xpf(&pipelineBuilder, &ptd);
|
| set_random_state(&pipelineBuilder, &random);
|
| set_random_stencil(&pipelineBuilder, &random);
|
|
|
| - this->drawBatch(pipelineBuilder, batch);
|
| + drawTarget->drawBatch(pipelineBuilder, batch);
|
| }
|
| // Flush everything, test passes if flush is successful(ie, no asserts are hit, no crashes)
|
| - this->flush();
|
| + drawingManager->flush();
|
|
|
| // Validate that GrFPs work correctly without an input.
|
| GrSurfaceDesc rtDesc;
|
| @@ -365,14 +369,14 @@ bool GrDrawTarget::programUnitTest(GrContext* context, int maxStages) {
|
| rtDesc.fFlags = kRenderTarget_GrSurfaceFlag;
|
| rtDesc.fConfig = kRGBA_8888_GrPixelConfig;
|
| SkAutoTUnref<GrRenderTarget> rt(
|
| - fContext->textureProvider()->createTexture(rtDesc, false)->asRenderTarget());
|
| + context->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);
|
| - GrProcessorTestData ptd(&random, context, this->caps(), dummyTextures);
|
| + GrProcessorTestData ptd(&random, context, context->caps(), dummyTextures);
|
| GrPipelineBuilder builder;
|
| builder.setXPFactory(GrPorterDuffXPFactory::Create(SkXfermode::kSrc_Mode))->unref();
|
| builder.setRenderTarget(rt);
|
| @@ -384,8 +388,8 @@ bool GrDrawTarget::programUnitTest(GrContext* context, int maxStages) {
|
| BlockInputFragmentProcessor::Create(fp));
|
| builder.addColorFragmentProcessor(blockFP);
|
|
|
| - this->drawBatch(builder, batch);
|
| - this->flush();
|
| + drawTarget->drawBatch(builder, batch);
|
| + drawingManager->flush();
|
| }
|
| }
|
|
|
| @@ -438,9 +442,10 @@ DEF_GPUTEST(GLPrograms, reporter, factory) {
|
| maxStages = 2;
|
| }
|
| #endif
|
| - GrTestTarget target;
|
| - context->getTestTarget(&target);
|
| - REPORTER_ASSERT(reporter, target.target()->programUnitTest(context, maxStages));
|
| + GrTestTarget testTarget;
|
| + context->getTestTarget(&testTarget);
|
| + REPORTER_ASSERT(reporter, GrDrawingManager::ProgramUnitTest(
|
| + context, testTarget.target(), maxStages));
|
| }
|
| }
|
| }
|
|
|