| // 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. |
| // 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 <random> |
| // Seed from fixed number. |
| void reseed(unsigned int newSeed); |
| int randomIntBetween(int min, int max); |
| unsigned int randomUInt(); |
| float randomFloatBetween(float min, float max); |
| float randomNegativeOneToOne(); |
| std::default_random_engine mGenerator; |
| // Implemented htis way because of cross-module allocation issues. |
| inline void FillVectorWithRandomUBytes(std::vector<uint8_t> *data) |
| for (size_t i = 0; i < data->size(); ++i) |
| (*data)[i] = static_cast<uint8_t>(rng.randomIntBetween(0, 255)); |
| #endif // UTIL_RANDOM_UTILS_H |