Index: tests/GLProgramsTest.cpp |
diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp |
index 56707a04140e34b4744a815179f309189b8d4217..294d7f2f7720b546073dcbc4629e72286fd84507 100644 |
--- a/tests/GLProgramsTest.cpp |
+++ b/tests/GLProgramsTest.cpp |
@@ -121,6 +121,14 @@ static GrRenderTarget* random_render_target(GrContext* context, |
return SkRef(texture->asRenderTarget()); |
} |
+static void set_random_xpf(GrContext* context, const GrDrawTargetCaps& caps, GrDrawState* ds, |
+ SkRandom* random, GrTexture* dummyTextures[]) { |
+ SkAutoTUnref<const GrXPFactory> xpf( |
+ GrProcessorTestFactory<GrXPFactory>::CreateStage(random, context, caps, dummyTextures)); |
+ SkASSERT(xpf); |
+ ds->setXPFactory(xpf.get()); |
+} |
+ |
static void set_random_gp(GrContext* context, |
const GrDrawTargetCaps& caps, |
GrDrawState* ds, |
@@ -257,22 +265,6 @@ static void set_random_state(GrDrawState* ds, SkRandom* random) { |
ds->enableState(state); |
} |
-// this function will randomly pick non-self referencing blend modes |
-static void set_random_blend_func(GrDrawState* ds, SkRandom* random) { |
- GrBlendCoeff src; |
- do { |
- src = GrBlendCoeff(random->nextRangeU(kFirstPublicGrBlendCoeff, kLastPublicGrBlendCoeff)); |
- } while (GrBlendCoeffRefsSrc(src)); |
- |
- GrBlendCoeff dst; |
- do { |
- dst = GrBlendCoeff(random->nextRangeU(kFirstPublicGrBlendCoeff, kLastPublicGrBlendCoeff)); |
- } while (GrBlendCoeffRefsDst(dst)); |
- |
- GrXPFactory* xpFactory = GrPorterDuffXPFactory::Create(src, dst); |
- ds->setXPFactory(xpFactory)->unref(); |
-} |
- |
// right now, the only thing we seem to care about in drawState's stencil is 'doesWrite()' |
static void set_random_stencil(GrDrawState* ds, SkRandom* random) { |
GR_STATIC_CONST_SAME_STENCIL(kDoesWriteStencil, |
@@ -372,11 +364,14 @@ bool GrDrawTarget::programUnitTest(int maxStages) { |
usePathRendering, |
&random, |
dummyTextures); |
+ |
+ // creates a random xfer processor factory on the draw state |
+ set_random_xpf(fContext, gpu->glCaps(), &ds, &random, dummyTextures); |
+ |
set_random_color(&ds, &random); |
set_random_coverage(&ds, &random); |
set_random_hints(&ds, &random); |
set_random_state(&ds, &random); |
- set_random_blend_func(&ds, &random); |
set_random_stencil(&ds, &random); |
GrDeviceCoordTexture dstCopy; |