Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/engine/paletted.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/paletted.c')
-rw-r--r--src/engine/paletted.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/engine/paletted.c b/src/engine/paletted.c
new file mode 100644
index 0000000..2a1a3f0
--- /dev/null
+++ b/src/engine/paletted.c
@@ -0,0 +1,22 @@
+#ifndef UNSUPPORTED
+static void cpalette(void *data, struct taskinfo *task, int r1, int r2)
+{
+ pixel8_t *src, *srcend;
+ cppixel_t dest;
+ struct filter *f = (struct filter *) data;
+ struct palettedata *s = (struct palettedata *) f->data;
+ int i;
+ unsigned int *table = s->table;
+ for (i = r1; i < r2; i++) {
+ src = f->childimage->currlines[i];
+ srcend = src + f->image->width;
+ dest = (cppixel_t) f->image->currlines[i];
+ while (src < srcend) {
+ p_set(dest, table[*src]);
+ src++;
+ p_inc(dest, 1);
+ }
+ }
+}
+#endif
+#undef cpalette