diff options
Diffstat (limited to 'src/engine/paletted.c')
-rw-r--r-- | src/engine/paletted.c | 22 |
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 |