Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Unified Diff: tests/GLProgramsTest.cpp

Issue 791743003: Remove GP from drawstate, revision of invariant output for GP (Closed) Base URL: https://skia.googlesource.com/skia.git@color-to-gp
Patch Set: cleanup Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: tests/GLProgramsTest.cpp
diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp
index 431fc29a05f2f9bbe4ebd04a772c306a71b0a406..97f36873f3d7e3ecd70ee951f2060468a52ab081 100644
--- a/tests/GLProgramsTest.cpp
+++ b/tests/GLProgramsTest.cpp
@@ -121,19 +121,14 @@ static GrRenderTarget* random_render_target(GrContext* context,
return SkRef(texture->asRenderTarget());
}
-static void set_random_gp(GrContext* context,
- const GrDrawTargetCaps& caps,
- GrDrawState* ds,
- SkRandom* random,
- GrTexture* dummyTextures[]) {
- SkAutoTUnref<const GrGeometryProcessor> gp(
- GrProcessorTestFactory<GrGeometryProcessor>::CreateStage(random,
- context,
- caps,
- dummyTextures));
- SkASSERT(gp);
-
- ds->setGeometryProcessor(gp);
+static const GrGeometryProcessor* get_random_gp(GrContext* context,
+ const GrDrawTargetCaps& caps,
+ SkRandom* random,
+ GrTexture* dummyTextures[]) {
+ return GrProcessorTestFactory<GrGeometryProcessor>::CreateStage(random,
+ context,
+ caps,
+ dummyTextures);
}
static void set_random_color_coverage_stages(GrGpuGL* gpu,
@@ -301,8 +296,12 @@ bool GrDrawTarget::programUnitTest(int maxStages) {
// twiddle drawstate knobs randomly
bool hasGeometryProcessor = !usePathRendering;
+ const GrGeometryProcessor* gp = NULL;
+ const GrPathProcessor* pp = NULL;
egdaniel 2014/12/10 15:54:30 since below we have a primP as well, I feel like t
bsalomon 2014/12/10 15:56:05 +1, we should avoid the acronym pp since it is amb
if (hasGeometryProcessor) {
- set_random_gp(fContext, gpu->glCaps(), &ds, &random, dummyTextures);
+ gp = get_random_gp(fContext, gpu->glCaps(), &random, dummyTextures);
+ } else {
+ pp = GrPathProcessor::Create(GrColor_WHITE);
}
set_random_color_coverage_stages(gpu,
&ds,
@@ -317,19 +316,20 @@ bool GrDrawTarget::programUnitTest(int maxStages) {
GrDeviceCoordTexture dstCopy;
- // TODO take color off the PP when its installed
- GrColor color = ds.hasGeometryProcessor() ? ds.getGeometryProcessor()->getColor() :
- GrColor_WHITE;
- uint8_t coverage = ds.hasGeometryProcessor() ? ds.getGeometryProcessor()->getCoverage() :
- GrColor_WHITE;
- if (!this->setupDstReadIfNecessary(&ds, color, coverage, &dstCopy, NULL)) {
+ const GrPrimitiveProcessor* primP;
+ if (hasGeometryProcessor) {
+ primP = gp;
+ } else {
+ primP = pp;
+ }
+ if (!this->setupDstReadIfNecessary(&ds, primP, &dstCopy, NULL)) {
SkDebugf("Couldn't setup dst read texture");
return false;
}
// create optimized draw state, setup readDst texture if required, and build a descriptor
// and program. ODS creation can fail, so we have to check
- GrOptDrawState ods(ds, color, coverage, *gpu->caps(), scissor, &dstCopy, drawType);
+ GrOptDrawState ods(ds, gp, pp, *gpu->caps(), scissor, &dstCopy, drawType);
if (ods.mustSkip()) {
continue;
}
« src/gpu/GrProcessor.cpp ('K') | « src/gpu/effects/GrDistanceFieldTextureEffect.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698