Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/engine/stard.c
diff options
context:
space:
mode:
authorBernie Innocenti <bernie@codewiz.org>2010-05-03 21:53:47 (GMT)
committer Bernie Innocenti <bernie@codewiz.org>2010-05-03 21:53:47 (GMT)
commit1030dc837b10a03a02a85d5504cbeec168ce49e2 (patch)
tree698eefa87ac437deaf36a4141b326f8ce7986692 /src/engine/stard.c
Import XaoS r489 (trunk after version 3.5)
Diffstat (limited to 'src/engine/stard.c')
-rw-r--r--src/engine/stard.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/engine/stard.c b/src/engine/stard.c
new file mode 100644
index 0000000..e6e58bc
--- /dev/null
+++ b/src/engine/stard.c
@@ -0,0 +1,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