diff options
Diffstat (limited to 'src/vu-set-alpha.c')
| -rw-r--r-- | src/vu-set-alpha.c | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/src/vu-set-alpha.c b/src/vu-set-alpha.c deleted file mode 100644 index 2e80154..0000000 --- a/src/vu-set-alpha.c +++ /dev/null @@ -1,69 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include "stream.h" -#include "util.h" - -#include <fcntl.h> -#include <stdint.h> -#include <string.h> -#include <unistd.h> - -USAGE("[-i] alpha-stream") - -static void -process_xyza(struct stream *colour, struct stream *alpha, size_t n) -{ - size_t i; - double a; - for (i = 0; i < n; i += colour->pixel_size) { - a = ((double *)(alpha->buf + i))[1]; - a *= ((double *)(alpha->buf + i))[3]; - ((double *)(colour->buf + i))[3] *= a; - } -} - -static void -process_xyza_i(struct stream *colour, struct stream *alpha, size_t n) -{ - size_t i; - double a; - for (i = 0; i < n; i += colour->pixel_size) { - a = 1 - ((double *)(alpha->buf + i))[1]; - a *= ((double *)(alpha->buf + i))[3]; - ((double *)(colour->buf + i))[3] *= a; - } -} - -int -main(int argc, char *argv[]) -{ - int invert = 0; - struct stream colour, alpha; - void (*process)(struct stream *colour, struct stream *alpha, size_t n) = NULL; - - ARGBEGIN { - case 'i': - invert = 1; - break; - default: - usage(); - } ARGEND; - - if (argc != 1) - usage(); - - colour.file = "<stdin>"; - colour.fd = STDIN_FILENO; - einit_stream(&colour); - - alpha.file = argv[0]; - alpha.fd = eopen(alpha.file, O_RDONLY); - einit_stream(&alpha); - - if (!strcmp(colour.pixfmt, "xyza")) - process = invert ? process_xyza_i : process_xyza; - else - eprintf("pixel format %s is not supported, try xyza\n", colour.pixfmt); - - process_two_streams(&colour, &alpha, STDOUT_FILENO, "<stdout>", process); - return 0; -} |
