From 56ed14063c8b2c82d5ea0652028f47f76cb710f0 Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Mon, 3 Jul 2017 14:30:44 +0200 Subject: Document blind-coordinate-field, blind-*-gradient, and blind-*-wave (sinc still pending), and sinus => sine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/blind-double-sine-wave.c | 94 +++++++++++++++++++++++++++++++++++++++++++ src/blind-double-sinus-wave.c | 94 ------------------------------------------- src/blind-sine-wave.c | 94 +++++++++++++++++++++++++++++++++++++++++++ src/blind-sinus-wave.c | 94 ------------------------------------------- 4 files changed, 188 insertions(+), 188 deletions(-) create mode 100644 src/blind-double-sine-wave.c delete mode 100644 src/blind-double-sinus-wave.c create mode 100644 src/blind-sine-wave.c delete mode 100644 src/blind-sinus-wave.c (limited to 'src') diff --git a/src/blind-double-sine-wave.c b/src/blind-double-sine-wave.c new file mode 100644 index 0000000..a2bec66 --- /dev/null +++ b/src/blind-double-sine-wave.c @@ -0,0 +1,94 @@ +/* See LICENSE file for copyright and license details. */ +#include "common.h" + +USAGE("[-e]") + +static int equal = 0; + + +#define PROCESS(TYPE, SUFFIX)\ + static void\ + process_##SUFFIX(struct stream *stream)\ + {\ + size_t i, n;\ + TYPE x, y, z, a;\ + do {\ + n = stream->ptr / stream->pixel_size;\ + if (equal) {\ + for (i = 0; i < n; i++) {\ + a = ((TYPE *)(stream->buf))[4 * i + 3];\ + a = posmod(a, (TYPE)2);\ + a = a > 1 ? 2 - a : a;\ + a = 1 - (sin(a * (2 * (TYPE)M_PI)) + 1) / 2;\ + ((TYPE *)(stream->buf))[4 * i + 0] = a;\ + ((TYPE *)(stream->buf))[4 * i + 1] = a;\ + ((TYPE *)(stream->buf))[4 * i + 2] = a;\ + ((TYPE *)(stream->buf))[4 * i + 3] = a;\ + }\ + } else {\ + for (i = 0; i < n; i++) {\ + x = ((TYPE *)(stream->buf))[4 * i + 0];\ + y = ((TYPE *)(stream->buf))[4 * i + 1];\ + z = ((TYPE *)(stream->buf))[4 * i + 2];\ + a = ((TYPE *)(stream->buf))[4 * i + 3];\ + x = posmod(x, (TYPE)1);\ + y = posmod(y, (TYPE)1);\ + z = posmod(z, (TYPE)1);\ + a = posmod(a, (TYPE)1);\ + x = x > 1 ? 2 - x : x;\ + y = y > 1 ? 2 - y : y;\ + z = z > 1 ? 2 - z : z;\ + a = a > 1 ? 2 - a : a;\ + x = 1 - (sin(x * (2 * (TYPE)M_PI)) + 1) / 2;\ + y = 1 - (sin(y * (2 * (TYPE)M_PI)) + 1) / 2;\ + z = 1 - (sin(z * (2 * (TYPE)M_PI)) + 1) / 2;\ + a = 1 - (sin(a * (2 * (TYPE)M_PI)) + 1) / 2;\ + ((TYPE *)(stream->buf))[4 * i + 0] = x;\ + ((TYPE *)(stream->buf))[4 * i + 1] = y;\ + ((TYPE *)(stream->buf))[4 * i + 2] = z;\ + ((TYPE *)(stream->buf))[4 * i + 3] = a;\ + }\ + }\ + n *= stream->pixel_size;\ + ewriteall(STDOUT_FILENO, stream->buf, n, "");\ + memmove(stream->buf, stream->buf + n, stream->ptr -= n);\ + } while (eread_stream(stream, SIZE_MAX));\ + if (stream->ptr)\ + eprintf("%s: incomplete frame\n", stream->file);\ + } + +PROCESS(double, lf) +PROCESS(float, f) + + +int +main(int argc, char *argv[]) +{ + struct stream stream; + void (*process)(struct stream *stream); + + ARGBEGIN { + case 'e': + equal = 1; + break; + default: + usage(); + } ARGEND; + + if (argc) + usage(); + + eopen_stream(&stream, NULL); + + if (!strcmp(stream.pixfmt, "xyza")) + process = process_lf; + else if (!strcmp(stream.pixfmt, "xyza f")) + process = process_f; + else + eprintf("pixel format %s is not supported, try xyza\n", stream.pixfmt); + + fprint_stream_head(stdout, &stream); + efflush(stdout, ""); + process(&stream); + return 0; +} diff --git a/src/blind-double-sinus-wave.c b/src/blind-double-sinus-wave.c deleted file mode 100644 index a2bec66..0000000 --- a/src/blind-double-sinus-wave.c +++ /dev/null @@ -1,94 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include "common.h" - -USAGE("[-e]") - -static int equal = 0; - - -#define PROCESS(TYPE, SUFFIX)\ - static void\ - process_##SUFFIX(struct stream *stream)\ - {\ - size_t i, n;\ - TYPE x, y, z, a;\ - do {\ - n = stream->ptr / stream->pixel_size;\ - if (equal) {\ - for (i = 0; i < n; i++) {\ - a = ((TYPE *)(stream->buf))[4 * i + 3];\ - a = posmod(a, (TYPE)2);\ - a = a > 1 ? 2 - a : a;\ - a = 1 - (sin(a * (2 * (TYPE)M_PI)) + 1) / 2;\ - ((TYPE *)(stream->buf))[4 * i + 0] = a;\ - ((TYPE *)(stream->buf))[4 * i + 1] = a;\ - ((TYPE *)(stream->buf))[4 * i + 2] = a;\ - ((TYPE *)(stream->buf))[4 * i + 3] = a;\ - }\ - } else {\ - for (i = 0; i < n; i++) {\ - x = ((TYPE *)(stream->buf))[4 * i + 0];\ - y = ((TYPE *)(stream->buf))[4 * i + 1];\ - z = ((TYPE *)(stream->buf))[4 * i + 2];\ - a = ((TYPE *)(stream->buf))[4 * i + 3];\ - x = posmod(x, (TYPE)1);\ - y = posmod(y, (TYPE)1);\ - z = posmod(z, (TYPE)1);\ - a = posmod(a, (TYPE)1);\ - x = x > 1 ? 2 - x : x;\ - y = y > 1 ? 2 - y : y;\ - z = z > 1 ? 2 - z : z;\ - a = a > 1 ? 2 - a : a;\ - x = 1 - (sin(x * (2 * (TYPE)M_PI)) + 1) / 2;\ - y = 1 - (sin(y * (2 * (TYPE)M_PI)) + 1) / 2;\ - z = 1 - (sin(z * (2 * (TYPE)M_PI)) + 1) / 2;\ - a = 1 - (sin(a * (2 * (TYPE)M_PI)) + 1) / 2;\ - ((TYPE *)(stream->buf))[4 * i + 0] = x;\ - ((TYPE *)(stream->buf))[4 * i + 1] = y;\ - ((TYPE *)(stream->buf))[4 * i + 2] = z;\ - ((TYPE *)(stream->buf))[4 * i + 3] = a;\ - }\ - }\ - n *= stream->pixel_size;\ - ewriteall(STDOUT_FILENO, stream->buf, n, "");\ - memmove(stream->buf, stream->buf + n, stream->ptr -= n);\ - } while (eread_stream(stream, SIZE_MAX));\ - if (stream->ptr)\ - eprintf("%s: incomplete frame\n", stream->file);\ - } - -PROCESS(double, lf) -PROCESS(float, f) - - -int -main(int argc, char *argv[]) -{ - struct stream stream; - void (*process)(struct stream *stream); - - ARGBEGIN { - case 'e': - equal = 1; - break; - default: - usage(); - } ARGEND; - - if (argc) - usage(); - - eopen_stream(&stream, NULL); - - if (!strcmp(stream.pixfmt, "xyza")) - process = process_lf; - else if (!strcmp(stream.pixfmt, "xyza f")) - process = process_f; - else - eprintf("pixel format %s is not supported, try xyza\n", stream.pixfmt); - - fprint_stream_head(stdout, &stream); - efflush(stdout, ""); - process(&stream); - return 0; -} diff --git a/src/blind-sine-wave.c b/src/blind-sine-wave.c new file mode 100644 index 0000000..7e3cc5a --- /dev/null +++ b/src/blind-sine-wave.c @@ -0,0 +1,94 @@ +/* See LICENSE file for copyright and license details. */ +#include "common.h" + +USAGE("[-e]") + +static int equal = 0; + + +#define PROCESS(TYPE, SUFFIX)\ + static void\ + process_##SUFFIX(struct stream *stream)\ + {\ + size_t i, n;\ + TYPE x, y, z, a;\ + do {\ + n = stream->ptr / stream->pixel_size;\ + if (equal) {\ + for (i = 0; i < n; i++) {\ + a = ((TYPE *)(stream->buf))[4 * i + 3];\ + a = posmod(a, (TYPE)2);\ + a = a > 1 ? 2 - a : a;\ + a = 1 - (cos(a * (TYPE)M_PI) + 1) / 2;\ + ((TYPE *)(stream->buf))[4 * i + 0] = a;\ + ((TYPE *)(stream->buf))[4 * i + 1] = a;\ + ((TYPE *)(stream->buf))[4 * i + 2] = a;\ + ((TYPE *)(stream->buf))[4 * i + 3] = a;\ + }\ + } else {\ + for (i = 0; i < n; i++) {\ + x = ((TYPE *)(stream->buf))[4 * i + 0];\ + y = ((TYPE *)(stream->buf))[4 * i + 1];\ + z = ((TYPE *)(stream->buf))[4 * i + 2];\ + a = ((TYPE *)(stream->buf))[4 * i + 3];\ + x = posmod(x, (TYPE)1);\ + y = posmod(y, (TYPE)1);\ + z = posmod(z, (TYPE)1);\ + a = posmod(a, (TYPE)1);\ + x = x > 1 ? 2 - x : x;\ + y = y > 1 ? 2 - y : y;\ + z = z > 1 ? 2 - z : z;\ + a = a > 1 ? 2 - a : a;\ + x = 1 - (cos(x * (TYPE)M_PI) + 1) / 2;\ + y = 1 - (cos(y * (TYPE)M_PI) + 1) / 2;\ + z = 1 - (cos(z * (TYPE)M_PI) + 1) / 2;\ + a = 1 - (cos(a * (TYPE)M_PI) + 1) / 2;\ + ((TYPE *)(stream->buf))[4 * i + 0] = x;\ + ((TYPE *)(stream->buf))[4 * i + 1] = y;\ + ((TYPE *)(stream->buf))[4 * i + 2] = z;\ + ((TYPE *)(stream->buf))[4 * i + 3] = a;\ + }\ + }\ + n *= stream->pixel_size;\ + ewriteall(STDOUT_FILENO, stream->buf, n, "");\ + memmove(stream->buf, stream->buf + n, stream->ptr -= n);\ + } while (eread_stream(stream, SIZE_MAX));\ + if (stream->ptr)\ + eprintf("%s: incomplete frame\n", stream->file);\ + } + +PROCESS(double, lf) +PROCESS(float, f) + + +int +main(int argc, char *argv[]) +{ + struct stream stream; + void (*process)(struct stream *stream); + + ARGBEGIN { + case 'e': + equal = 1; + break; + default: + usage(); + } ARGEND; + + if (argc) + usage(); + + eopen_stream(&stream, NULL); + + if (!strcmp(stream.pixfmt, "xyza")) + process = process_lf; + else if (!strcmp(stream.pixfmt, "xyza f")) + process = process_f; + else + eprintf("pixel format %s is not supported, try xyza\n", stream.pixfmt); + + fprint_stream_head(stdout, &stream); + efflush(stdout, ""); + process(&stream); + return 0; +} diff --git a/src/blind-sinus-wave.c b/src/blind-sinus-wave.c deleted file mode 100644 index 7e3cc5a..0000000 --- a/src/blind-sinus-wave.c +++ /dev/null @@ -1,94 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include "common.h" - -USAGE("[-e]") - -static int equal = 0; - - -#define PROCESS(TYPE, SUFFIX)\ - static void\ - process_##SUFFIX(struct stream *stream)\ - {\ - size_t i, n;\ - TYPE x, y, z, a;\ - do {\ - n = stream->ptr / stream->pixel_size;\ - if (equal) {\ - for (i = 0; i < n; i++) {\ - a = ((TYPE *)(stream->buf))[4 * i + 3];\ - a = posmod(a, (TYPE)2);\ - a = a > 1 ? 2 - a : a;\ - a = 1 - (cos(a * (TYPE)M_PI) + 1) / 2;\ - ((TYPE *)(stream->buf))[4 * i + 0] = a;\ - ((TYPE *)(stream->buf))[4 * i + 1] = a;\ - ((TYPE *)(stream->buf))[4 * i + 2] = a;\ - ((TYPE *)(stream->buf))[4 * i + 3] = a;\ - }\ - } else {\ - for (i = 0; i < n; i++) {\ - x = ((TYPE *)(stream->buf))[4 * i + 0];\ - y = ((TYPE *)(stream->buf))[4 * i + 1];\ - z = ((TYPE *)(stream->buf))[4 * i + 2];\ - a = ((TYPE *)(stream->buf))[4 * i + 3];\ - x = posmod(x, (TYPE)1);\ - y = posmod(y, (TYPE)1);\ - z = posmod(z, (TYPE)1);\ - a = posmod(a, (TYPE)1);\ - x = x > 1 ? 2 - x : x;\ - y = y > 1 ? 2 - y : y;\ - z = z > 1 ? 2 - z : z;\ - a = a > 1 ? 2 - a : a;\ - x = 1 - (cos(x * (TYPE)M_PI) + 1) / 2;\ - y = 1 - (cos(y * (TYPE)M_PI) + 1) / 2;\ - z = 1 - (cos(z * (TYPE)M_PI) + 1) / 2;\ - a = 1 - (cos(a * (TYPE)M_PI) + 1) / 2;\ - ((TYPE *)(stream->buf))[4 * i + 0] = x;\ - ((TYPE *)(stream->buf))[4 * i + 1] = y;\ - ((TYPE *)(stream->buf))[4 * i + 2] = z;\ - ((TYPE *)(stream->buf))[4 * i + 3] = a;\ - }\ - }\ - n *= stream->pixel_size;\ - ewriteall(STDOUT_FILENO, stream->buf, n, "");\ - memmove(stream->buf, stream->buf + n, stream->ptr -= n);\ - } while (eread_stream(stream, SIZE_MAX));\ - if (stream->ptr)\ - eprintf("%s: incomplete frame\n", stream->file);\ - } - -PROCESS(double, lf) -PROCESS(float, f) - - -int -main(int argc, char *argv[]) -{ - struct stream stream; - void (*process)(struct stream *stream); - - ARGBEGIN { - case 'e': - equal = 1; - break; - default: - usage(); - } ARGEND; - - if (argc) - usage(); - - eopen_stream(&stream, NULL); - - if (!strcmp(stream.pixfmt, "xyza")) - process = process_lf; - else if (!strcmp(stream.pixfmt, "xyza f")) - process = process_f; - else - eprintf("pixel format %s is not supported, try xyza\n", stream.pixfmt); - - fprint_stream_head(stdout, &stream); - efflush(stdout, ""); - process(&stream); - return 0; -} -- cgit v1.2.3-70-g09d2