Cleanup: remove BLI_frand ugly global random generator usage from compositor.
This commit is contained in:
parent
3a36cbdfde
commit
b9c9b87fa6
|
@ -26,6 +26,7 @@ extern "C" {
|
|||
# include "BLI_math.h"
|
||||
# include "BLI_utildefines.h"
|
||||
# include "BLI_rand.h"
|
||||
# include "PIL_time.h"
|
||||
}
|
||||
|
||||
ScreenLensDistortionOperation::ScreenLensDistortionOperation() : NodeOperation()
|
||||
|
@ -59,6 +60,10 @@ void ScreenLensDistortionOperation::initExecution()
|
|||
{
|
||||
this->m_inputProgram = this->getInputSocketReader(0);
|
||||
this->initMutex();
|
||||
|
||||
uint rng_seed = (uint)(PIL_check_seconds_timer_i() & UINT_MAX);
|
||||
rng_seed ^= (uint)GET_INT_FROM_POINTER(m_inputProgram);
|
||||
this->m_rng = BLI_rng_new(rng_seed);
|
||||
|
||||
this->m_cx = 0.5f * (float)getWidth();
|
||||
this->m_cy = 0.5f * (float)getHeight();
|
||||
|
@ -142,7 +147,7 @@ void ScreenLensDistortionOperation::accumulate(MemoryBuffer *buffer,
|
|||
float dk4 = m_dk4[a];
|
||||
|
||||
for (float z = 0; z < ds; ++z) {
|
||||
float tz = (z + (m_jitter ? BLI_frand() : 0.5f)) * sd;
|
||||
float tz = (z + (m_jitter ? BLI_rng_get_float(m_rng) : 0.5f)) * sd;
|
||||
float t = 1.0f - (k4 + tz * dk4) * r_sq;
|
||||
|
||||
float xy[2];
|
||||
|
@ -192,6 +197,7 @@ void ScreenLensDistortionOperation::deinitExecution()
|
|||
{
|
||||
this->deinitMutex();
|
||||
this->m_inputProgram = NULL;
|
||||
BLI_rng_free(this->m_rng);
|
||||
}
|
||||
|
||||
void ScreenLensDistortionOperation::determineUV(float result[6], float x, float y) const
|
||||
|
|
|
@ -31,6 +31,7 @@ private:
|
|||
* Cached reference to the inputProgram
|
||||
*/
|
||||
SocketReader *m_inputProgram;
|
||||
struct RNG *m_rng;
|
||||
|
||||
bool m_fit;
|
||||
bool m_jitter;
|
||||
|
|
Loading…
Reference in New Issue