blob: e6e58bc8f4a6ef2afe75f9b5eccf52f2214036ae (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#ifndef UNSUPPORTED
static void do_starfield(void *data, struct taskinfo *task, int r1, int r2)
{
struct filter *f = (struct filter *) data;
cpixel_t *dest;
pixel8_t *src, *srcend;
unsigned int color;
int y;
cpixeldata_t black = (cpixeldata_t) f->image->palette->pixels[0];
mysrandom((unsigned int) rand());
for (y = r1; y < r2; y++) {
src = f->childimage->currlines[y];
srcend = f->childimage->currlines[y] + f->childimage->width;
dest = (cpixel_t *) f->image->currlines[y];
while (src < srcend) {
color = ((unsigned int) myrandom() >> 7) & 15;
if (!*src
|| (unsigned int) *src * (unsigned int) *src *
(unsigned int) *src >
(unsigned int) ((unsigned int) myrandom() & (0xffffff))) {
p_set(dest,
(cpixeldata_t) f->image->palette->pixels[color]);
} else
p_set(dest, black);
p_inc(dest, 1);
src++;
}
}
}
#endif
#undef do_starfield
|