Files
WickedEngine/WickedEngine/wiRandom.cpp
T
Turánszki János a4580ea2b0 DDGI (#386)
* start ddgi implementation

* update

* updates

* update

* ray data packing

* removed comment

* update

* features.txt

* ddgi disabled by default

* added comments

* comments

* offlineshadercompiler

* updates
2022-01-19 13:19:14 +01:00

54 lines
1.1 KiB
C++

#include "wiRandom.h"
#include <random>
namespace wi::random
{
inline static std::mt19937 &generator()
{
static std::random_device rand_dev;
static std::mt19937 generator(rand_dev());
return generator;
}
int GetRandom(int minValue, int maxValue)
{
std::uniform_int_distribution<int> distr(minValue, maxValue);
return distr(generator());
}
int GetRandom(int maxValue)
{
return GetRandom(0, maxValue);
}
uint32_t GetRandom(uint32_t minValue, uint32_t maxValue)
{
std::uniform_int_distribution<uint32_t> distr(minValue, maxValue);
return distr(generator());
}
uint32_t GetRandom(uint32_t maxValue)
{
return GetRandom(0u, maxValue);
}
uint64_t GetRandom(uint64_t minValue, uint64_t maxValue)
{
std::uniform_int_distribution<uint64_t> distr(minValue, maxValue);
return distr(generator());
}
uint64_t GetRandom(uint64_t maxValue)
{
return GetRandom(0ull, maxValue);
}
float GetRandom(float minValue, float maxValue)
{
std::uniform_real_distribution<float> distr(minValue, maxValue);
return distr(generator());
}
float GetRandom(float maxValue)
{
return GetRandom(0.0f, maxValue);
}
}