aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@chromium.org>2014-12-09 13:31:14 -0800
committerGravatar Commit bot <commit-bot@chromium.org>2014-12-09 13:31:15 -0800
commit2e3b3e369d79e78f7635d4c20e83a47ab571bdf2 (patch)
tree95378f3e35a21192f0db62e60bc6e408803050b7 /tests
parentf3c78ccf5694d22d2e4a7061a80399a7e69b59db (diff)
This cl moves color and coverage off of drawstate. In an effort to keep this CL manageable, I have left the compute invariant input / output in a bit of a strange state(fixing this will be complicated).
In addition, NVPR makes this very complicated, and I haven't quite figured out a good way to handle it, so for now color and coverage DO live on optstate, but I will figure out some way to refactor that in future CLs. BUG=skia: Review URL: https://codereview.chromium.org/783763002
Diffstat (limited to 'tests')
-rw-r--r--tests/GLProgramsTest.cpp73
1 files changed, 7 insertions, 66 deletions
diff --git a/tests/GLProgramsTest.cpp b/tests/GLProgramsTest.cpp
index 56707a0414..253e4aeccc 100644
--- a/tests/GLProgramsTest.cpp
+++ b/tests/GLProgramsTest.cpp
@@ -181,68 +181,6 @@ static void set_random_color_coverage_stages(GrGpuGL* gpu,
}
}
-// There are only a few cases of random colors which interest us
-enum ColorMode {
- kAllOnes_ColorMode,
- kAllZeros_ColorMode,
- kAlphaOne_ColorMode,
- kRandom_ColorMode,
- kLast_ColorMode = kRandom_ColorMode
-};
-
-static void set_random_color(GrDrawState* ds, SkRandom* random) {
- ColorMode colorMode = ColorMode(random->nextULessThan(kLast_ColorMode + 1));
- GrColor color;
- switch (colorMode) {
- case kAllOnes_ColorMode:
- color = GrColorPackRGBA(0xFF, 0xFF, 0xFF, 0xFF);
- break;
- case kAllZeros_ColorMode:
- color = GrColorPackRGBA(0, 0, 0, 0);
- break;
- case kAlphaOne_ColorMode:
- color = GrColorPackRGBA(random->nextULessThan(256),
- random->nextULessThan(256),
- random->nextULessThan(256),
- 0xFF);
- break;
- case kRandom_ColorMode:
- uint8_t alpha = random->nextULessThan(256);
- color = GrColorPackRGBA(random->nextRangeU(0, alpha),
- random->nextRangeU(0, alpha),
- random->nextRangeU(0, alpha),
- alpha);
- break;
- }
- GrColorIsPMAssert(color);
- ds->setColor(color);
-}
-
-// There are only a few cases of random coverages which interest us
-enum CoverageMode {
- kZero_CoverageMode,
- kFF_CoverageMode,
- kRandom_CoverageMode,
- kLast_CoverageMode = kRandom_CoverageMode
-};
-
-static void set_random_coverage(GrDrawState* ds, SkRandom* random) {
- CoverageMode coverageMode = CoverageMode(random->nextULessThan(kLast_CoverageMode + 1));
- uint8_t coverage;
- switch (coverageMode) {
- case kZero_CoverageMode:
- coverage = 0;
- break;
- case kFF_CoverageMode:
- coverage = 0xFF;
- break;
- case kRandom_CoverageMode:
- coverage = uint8_t(random->nextU());
- break;
- }
- ds->setCoverage(coverage);
-}
-
static void set_random_hints(GrDrawState* ds, SkRandom* random) {
for (int i = 1; i <= GrDrawState::kLast_Hint; i <<= 1) {
ds->setHint(GrDrawState::Hints(i), random->nextBool());
@@ -372,8 +310,6 @@ bool GrDrawTarget::programUnitTest(int maxStages) {
usePathRendering,
&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);
@@ -381,14 +317,19 @@ bool GrDrawTarget::programUnitTest(int maxStages) {
GrDeviceCoordTexture dstCopy;
- if (!this->setupDstReadIfNecessary(&ds, &dstCopy, NULL)) {
+ // 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() :
+ 0xff;
+ if (!this->setupDstReadIfNecessary(&ds, color, coverage, &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, *gpu->caps(), scissor, &dstCopy, drawType);
+ GrOptDrawState ods(ds, color, coverage, *gpu->caps(), scissor, &dstCopy, drawType);
if (ods.mustSkip()) {
continue;
}