diff options
Diffstat (limited to 'include/utils/SkRandom.h')
-rw-r--r-- | include/utils/SkRandom.h | 30 |
1 files changed, 25 insertions, 5 deletions
diff --git a/include/utils/SkRandom.h b/include/utils/SkRandom.h index eeaa701c6e..9191ec35c1 100644 --- a/include/utils/SkRandom.h +++ b/include/utils/SkRandom.h @@ -10,9 +10,12 @@ #ifndef SkRandom_DEFINED #define SkRandom_DEFINED -#include "Sk64.h" #include "SkScalar.h" +#ifdef SK_SUPPORT_LEGACY_SK64 + #include "Sk64.h" +#endif + /** \class SkLCGRandom Utility class that implements pseudo random 32bit numbers using a fast @@ -123,13 +126,21 @@ public: return this->nextUScalar1() <= fractionTrue; } - /** Return the next pseudo random number as a signed 64bit value. - */ + /** + * Return the next pseudo random number as a signed 64bit value. + */ + int64_t next64() { + int64_t hi = this->nextS(); + return (hi << 32) | this->nextU(); + } + +#ifdef SK_SUPPORT_LEGACY_SK64 + SK_ATTR_DEPRECATED("use next64()") void next64(Sk64* a) { SkASSERT(a); a->set(this->nextS(), this->nextU()); } - +#endif /** * Return the current seed. This allows the caller to later reset to the * same seed (using setSeed) so it can generate the same sequence. @@ -276,12 +287,21 @@ public: return this->nextUScalar1() <= fractionTrue; } - /** Return the next pseudo random number as a signed 64bit value. + /** + * Return the next pseudo random number as a signed 64bit value. */ + int64_t next64() { + int64_t hi = this->nextS(); + return (hi << 32) | this->nextU(); + } + +#ifdef SK_SUPPORT_LEGACY_SK64 + SK_ATTR_DEPRECATED("use next64()") void next64(Sk64* a) { SkASSERT(a); a->set(this->nextS(), this->nextU()); } +#endif /** Reset the random object. */ |