| Index: include/gpu/GrTestUtils.h
|
| diff --git a/include/gpu/GrTestUtils.h b/include/gpu/GrTestUtils.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..e6bfa7476f99e075d1f435958812f62d6e3c278c
|
| --- /dev/null
|
| +++ b/include/gpu/GrTestUtils.h
|
| @@ -0,0 +1,84 @@
|
| +/*
|
| + * Copyright 2015 Google Inc.
|
| + *
|
| + * Use of this source code is governed by a BSD-style license that can be
|
| + * found in the LICENSE file.
|
| + */
|
| +
|
| +#ifndef GrTestUtils_DEFINED
|
| +#define GrTestUtils_DEFINED
|
| +
|
| +#include "GrColor.h"
|
| +#include "SkRandom.h"
|
| +
|
| +class SkMatrix;
|
| +
|
| +namespace GrTest {
|
| +/**
|
| + * A helper for use in Test functions.
|
| + */
|
| +const SkMatrix& TestMatrix(SkRandom*);
|
| +
|
| +}
|
| +
|
| +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 CoverageMode {
|
| + kZero_CoverageMode,
|
| + kAllOnes_CoverageMode,
|
| + kRandom_CoverageMode,
|
| + kLast_CoverageMode = kRandom_CoverageMode
|
| + };
|
| +
|
| + CoverageMode colorMode = CoverageMode(random->nextULessThan(kLast_CoverageMode + 1));
|
| + uint8_t coverage;
|
| + switch (colorMode) {
|
| + case kZero_CoverageMode:
|
| + coverage = 0;
|
| + case kAllOnes_CoverageMode:
|
| + coverage = 0xff;
|
| + break;
|
| + case kRandom_CoverageMode:
|
| + coverage = random->nextULessThan(256);
|
| + break;
|
| + }
|
| + return coverage;
|
| +}
|
| +
|
| +#endif
|
|
|