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 |