| 377 | } |
| 378 | |
| 379 | int dither(float x, int level) |
| 380 | { |
| 381 | if (!level) { |
| 382 | return (int)x; |
| 383 | } |
| 384 | int i = (int)(x) * level; //5.1 * 4 = 20.4, 5.8 * 4 = 23.2|i=20 |
| 385 | float dx = x * level - (float)(i); //0.4, 3.2 |
| 386 | i /= level; |
| 387 | if (dx > rndf() * level) { |
| 388 | i += (int)((0.9999f+rndf())*level); //because rndf has mean value 0.5, but (int)rnd=0 |
| 389 | } |
| 390 | return i; |
| 391 | } |
| 392 | //there is |
| 393 | #if 0 |
| 394 | BOOLEAN |
no test coverage detected