49
unsigned char qreal_to_uchar_color_channel(qreal t)
51
qreal t_scaled = qreal(255)*t;
52
qreal floor_t_scaled = std::floor(t_scaled);
53
qreal probability_to_add_one = t_scaled - floor_t_scaled;
54
// note: qrand() is thread-safe, std::rand() isn't.
55
qreal result = floor_t_scaled + (qrand() < int(qreal(RAND_MAX)*probability_to_add_one) ? qreal(1) : qreal(0));
56
int result_int_clamped = (int) CLAMP(result, qreal(0), qreal(255));
57
return (unsigned char) result_int_clamped;