// // Copyright (c) 2014 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // random_utils: // Helper functions for random number generation. // #ifndef UTIL_RANDOM_UTILS_H #define UTIL_RANDOM_UTILS_H // TODO(jmadill): Rework this if Chromium decides to ban #include namespace angle { class RNG { public: // Seed from clock RNG(); // Seed from fixed number. RNG(unsigned int seed); ~RNG(); void reseed(unsigned int newSeed); int randomInt(); int randomIntBetween(int min, int max); unsigned int randomUInt(); float randomFloat(); float randomFloatBetween(float min, float max); float randomNegativeOneToOne(); private: std::default_random_engine mGenerator; }; } // namespace angle #endif // UTIL_RANDOM_UTILS_H