| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2015 Google Inc. | 2 * Copyright 2015 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #ifndef GrTestUtils_DEFINED | 8 #ifndef GrTestUtils_DEFINED |
| 9 #define GrTestUtils_DEFINED | 9 #define GrTestUtils_DEFINED |
| 10 | 10 |
| 11 #include "SkTypes.h" |
| 12 |
| 13 #ifdef GR_TEST_UTILS |
| 14 |
| 11 #include "GrColor.h" | 15 #include "GrColor.h" |
| 12 #include "SkRandom.h" | 16 #include "SkRandom.h" |
| 13 | 17 |
| 14 class SkMatrix; | 18 class SkMatrix; |
| 19 struct SkRect; |
| 15 | 20 |
| 16 namespace GrTest { | 21 namespace GrTest { |
| 17 /** | 22 /** |
| 18 * A helper for use in Test functions. | 23 * A helper for use in Test functions. |
| 19 */ | 24 */ |
| 20 const SkMatrix& TestMatrix(SkRandom*); | 25 const SkMatrix& TestMatrix(SkRandom*); |
| 26 const SkRect& TestRect(SkRandom*); |
| 21 | 27 |
| 22 } | 28 } |
| 23 | 29 |
| 24 static inline GrColor GrRandomColor(SkRandom* random) { | 30 static inline GrColor GrRandomColor(SkRandom* random) { |
| 25 // There are only a few cases of random colors which interest us | 31 // There are only a few cases of random colors which interest us |
| 26 enum ColorMode { | 32 enum ColorMode { |
| 27 kAllOnes_ColorMode, | 33 kAllOnes_ColorMode, |
| 28 kAllZeros_ColorMode, | 34 kAllZeros_ColorMode, |
| 29 kAlphaOne_ColorMode, | 35 kAlphaOne_ColorMode, |
| 30 kRandom_ColorMode, | 36 kRandom_ColorMode, |
| 31 kLast_ColorMode = kRandom_ColorMode | 37 kLast_ColorMode = kRandom_ColorMode |
| 32 }; | 38 }; |
| 33 | 39 |
| 34 ColorMode colorMode = ColorMode(random->nextULessThan(kLast_ColorMode + 1)); | 40 ColorMode colorMode = ColorMode(random->nextULessThan(kLast_ColorMode + 1)); |
| 35 GrColor color; | 41 GrColor color; |
| 36 switch (colorMode) { | 42 switch (colorMode) { |
| 37 case kAllOnes_ColorMode: | 43 case kAllOnes_ColorMode: |
| 38 color = GrColorPackRGBA(0xFF, 0xFF, 0xFF, 0xFF); | 44 color = GrColorPackRGBA(0xFF, 0xFF, 0xFF, 0xFF); |
| 39 break; | 45 break; |
| 40 case kAllZeros_ColorMode: | 46 case kAllZeros_ColorMode: |
| 41 color = GrColorPackRGBA(0, 0, 0, 0); | 47 color = GrColorPackRGBA(0, 0, 0, 0); |
| 42 break; | 48 break; |
| 43 case kAlphaOne_ColorMode: | 49 case kAlphaOne_ColorMode: |
| 44 color = GrColorPackRGBA(random->nextULessThan(256), | 50 color = GrColorPackRGBA(random->nextULessThan(256), |
| 45 random->nextULessThan(256), | 51 random->nextULessThan(256), |
| 46 random->nextULessThan(256), | 52 random->nextULessThan(256), |
| 47 0xFF); | 53 0xFF); |
| 48 break; | 54 break; |
| 49 case kRandom_ColorMode: | 55 case kRandom_ColorMode: { |
| 50 uint8_t alpha = random->nextULessThan(256); | 56 uint8_t alpha = random->nextULessThan(256); |
| 51 color = GrColorPackRGBA(random->nextRangeU(0, alpha), | 57 color = GrColorPackRGBA(random->nextRangeU(0, alpha), |
| 52 random->nextRangeU(0, alpha), | 58 random->nextRangeU(0, alpha), |
| 53 random->nextRangeU(0, alpha), | 59 random->nextRangeU(0, alpha), |
| 54 alpha); | 60 alpha); |
| 55 break; | 61 break; |
| 62 } |
| 56 } | 63 } |
| 57 GrColorIsPMAssert(color); | 64 GrColorIsPMAssert(color); |
| 58 return color; | 65 return color; |
| 59 } | 66 } |
| 60 | 67 |
| 61 static inline uint8_t GrRandomCoverage(SkRandom* random) { | 68 static inline uint8_t GrRandomCoverage(SkRandom* random) { |
| 62 enum CoverageMode { | 69 enum CoverageMode { |
| 63 kZero_CoverageMode, | 70 kZero_CoverageMode, |
| 64 kAllOnes_CoverageMode, | 71 kAllOnes_CoverageMode, |
| 65 kRandom_CoverageMode, | 72 kRandom_CoverageMode, |
| 66 kLast_CoverageMode = kRandom_CoverageMode | 73 kLast_CoverageMode = kRandom_CoverageMode |
| 67 }; | 74 }; |
| 68 | 75 |
| 69 CoverageMode colorMode = CoverageMode(random->nextULessThan(kLast_CoverageMo
de + 1)); | 76 CoverageMode colorMode = CoverageMode(random->nextULessThan(kLast_CoverageMo
de + 1)); |
| 70 uint8_t coverage; | 77 uint8_t coverage; |
| 71 switch (colorMode) { | 78 switch (colorMode) { |
| 72 case kZero_CoverageMode: | 79 case kZero_CoverageMode: |
| 73 coverage = 0; | 80 coverage = 0; |
| 74 case kAllOnes_CoverageMode: | 81 case kAllOnes_CoverageMode: |
| 75 coverage = 0xff; | 82 coverage = 0xff; |
| 76 break; | 83 break; |
| 77 case kRandom_CoverageMode: | 84 case kRandom_CoverageMode: |
| 78 coverage = random->nextULessThan(256); | 85 coverage = random->nextULessThan(256); |
| 79 break; | 86 break; |
| 80 } | 87 } |
| 81 return coverage; | 88 return coverage; |
| 82 } | 89 } |
| 83 | 90 |
| 84 #endif | 91 #endif |
| 92 #endif |
| OLD | NEW |