blob: ff86a305a99560b17c96586b35f5a1441a1db7b4 [file] [log] [blame] [edit]
/*
* Copyright 2022 Rive
*/
#ifndef _RIVE_RANDOM_HPP_
#define _RIVE_RANDOM_HPP_
#include <vector>
#include <cstdlib>
namespace rive
{
class RandomProvider
{
#ifdef TESTING
private:
static int m_randomCallsCount;
static std::vector<float> m_randomResults;
public:
static void addRandomValue(float value)
{
m_randomResults.push_back(value);
}
static void clearRandoms()
{
m_randomCallsCount = 0;
m_randomResults.clear();
}
static float generateRandomFloat()
{
m_randomCallsCount++;
if (m_randomResults.size() > 0)
{
auto newRandom = m_randomResults[0];
m_randomResults.erase(m_randomResults.begin());
return newRandom;
}
return 0;
}
static int totalCalls() { return m_randomCallsCount; };
#else
public:
static float generateRandomFloat()
{
return (float)rand() / float(RAND_MAX);
}
#endif
};
} // namespace rive
#endif