Index: tests/GLProgramsTest.cpp |
diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp |
index 253e4aeccc265ceff7c58582a261c8cbc0f6abdf..953b5e07cbcc45e05dd07a25871f4bf316a3fcdc 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, |
@@ -195,22 +203,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, |
@@ -310,9 +302,12 @@ 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_hints(&ds, &random); |
set_random_state(&ds, &random); |
- set_random_blend_func(&ds, &random); |
set_random_stencil(&ds, &random); |
GrDeviceCoordTexture dstCopy; |