| Index: include/gpu/GrProcessorUnitTest.h
|
| diff --git a/include/gpu/GrProcessorUnitTest.h b/include/gpu/GrProcessorUnitTest.h
|
| index 3e1601dc8e049e20c9c4110f9d917b5db4559e87..4fe9785874aa03d55d334ace93f8284b94e07065 100644
|
| --- a/include/gpu/GrProcessorUnitTest.h
|
| +++ b/include/gpu/GrProcessorUnitTest.h
|
| @@ -8,6 +8,7 @@
|
| #ifndef GrProcessorUnitTest_DEFINED
|
| #define GrProcessorUnitTest_DEFINED
|
|
|
| +#include "GrColor.h"
|
| #include "SkRandom.h"
|
| #include "SkTArray.h"
|
| #include "SkTypes.h"
|
| @@ -35,6 +36,63 @@ class GrContext;
|
| class GrProcessor;
|
| class GrTexture;
|
|
|
| +static inline GrColor GrRandomColor(SkRandom* random) {
|
| + // 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
|
| + };
|
| +
|
| + 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);
|
| + return color;
|
| +}
|
| +
|
| +static inline uint8_t GrRandomCoverage(SkRandom* random) {
|
| + enum ColorModes {
|
| + kAllOnes_ColorMode,
|
| + kRandom_ColorMode,
|
| + kLast_ColorMode = kRandom_ColorMode
|
| + };
|
| +
|
| + ColorModes colorMode = ColorModes(random->nextULessThan(kLast_ColorMode + 1));
|
| + uint8_t coverage;
|
| + switch (colorMode) {
|
| + case kAllOnes_ColorMode:
|
| + coverage = 0xff;
|
| + break;
|
| + case kRandom_ColorMode:
|
| + coverage = random->nextULessThan(256);
|
| + break;
|
| + }
|
| + return coverage;
|
| +}
|
| +
|
| template <class Processor>
|
| class GrProcessorTestFactory : SkNoncopyable {
|
| public:
|
|
|