| blind{-make,}-kernel: apply identity kernel instead of null kernel to non-selec… | |
| git clone git://git.suckless.org/blind | |
| Log | |
| Files | |
| Refs | |
| README | |
| LICENSE | |
| --- | |
| commit eebc4d5fb9cf6d78cbdba7a5aa9be713ddf9959c | |
| parent a79568e8ab6bd516bef02e87855c23526356f20a | |
| Author: Mattias Andrée <[email protected]> | |
| Date: Wed, 26 Jul 2017 18:01:15 +0200 | |
| blind{-make,}-kernel: apply identity kernel instead of null kernel to non-selec… | |
| Signed-off-by: Mattias Andrée <[email protected]> | |
| Diffstat: | |
| M man/blind-kernel.1 | 16 ++++++++-------- | |
| M man/blind-make-kernel.1 | 16 ++++++++-------- | |
| M src/blind-kernel.c | 25 +++++++++++++------------ | |
| M src/blind-make-kernel.c | 25 +++++++++++++------------ | |
| 4 files changed, 42 insertions(+), 40 deletions(-) | |
| --- | |
| diff --git a/man/blind-kernel.1 b/man/blind-kernel.1 | |
| @@ -169,20 +169,20 @@ or | |
| .SH OPTIONS | |
| .TP | |
| .B -a | |
| -Apply the values to the alpha channel, set the | |
| -values for all unselected channels to zero. | |
| +Apply the values to the alpha channel, apply an | |
| +identity kernel to all unselected channels. | |
| .TP | |
| .B -x | |
| -Apply the values to the X channel, set the values | |
| -for all unselected channels to zero. | |
| +Apply the values to the X channel, apply an | |
| +identity kernel to all unselected channels. | |
| .TP | |
| .B -y | |
| -Apply the values to the Y channel, set the values | |
| -for all unselected channels to zero. | |
| +Apply the values to the Y channel, apply an | |
| +identity kernel to all unselected channels. | |
| .TP | |
| .B -z | |
| -Apply the values to the Z channel, set the values | |
| -for all unselected channels to zero. | |
| +Apply the values to the Z channel, apply an | |
| +identity kernel to all unselected channels. | |
| .SH NOTES | |
| .B blind-make-kernel | |
| Create a single frame, to that it can be stored to | |
| diff --git a/man/blind-make-kernel.1 b/man/blind-make-kernel.1 | |
| @@ -42,8 +42,8 @@ is used to delimit cells. | |
| .SH OPTIONS | |
| .TP | |
| .B -a | |
| -Apply the values to the alpha channel, set the | |
| -values for all unselected channels to zero. | |
| +Apply the values to the alpha channel, apply an | |
| +identity kernel to all unselected channels. | |
| .TP | |
| .BR -d \ \fIdenominator\fP | |
| Divide the matrix by | |
| @@ -60,16 +60,16 @@ before | |
| .BR -d . | |
| .TP | |
| .B -x | |
| -Apply the values to the X channel, set the values | |
| -for all unselected channels to zero. | |
| +Apply the values to the X channel, apply an | |
| +identity kernel to all unselected channels. | |
| .TP | |
| .B -y | |
| -Apply the values to the Y channel, set the values | |
| -for all unselected channels to zero. | |
| +Apply the values to the Y channel, apply an | |
| +identity kernel to all unselected channels. | |
| .TP | |
| .B -z | |
| -Apply the values to the Z channel, set the values | |
| -for all unselected channels to zero. | |
| +Apply the values to the Z channel, apply an | |
| +identity kernel to all unselected channels. | |
| .SH NOTES | |
| .B blind-make-kernel | |
| Create a single frame, to that it can be stored to | |
| diff --git a/src/blind-kernel.c b/src/blind-kernel.c | |
| @@ -290,23 +290,23 @@ usage: | |
| int | |
| main(int argc, char *argv[]) | |
| { | |
| - int null_x = 1, null_y = 1, null_z = 1, null_a = 1; | |
| + int id_x = 1, id_y = 1, id_z = 1, id_a = 1; | |
| size_t rows, cols, y, x, n; | |
| const double *kernel, *kern; | |
| - double *buffer, *buf, *free_this; | |
| + double *buffer, *buf, *free_this, id_val; | |
| ARGBEGIN { | |
| case 'x': | |
| - null_x = 0; | |
| + id_x = 0; | |
| break; | |
| case 'y': | |
| - null_y = 0; | |
| + id_y = 0; | |
| break; | |
| case 'z': | |
| - null_z = 0; | |
| + id_z = 0; | |
| break; | |
| case 'a': | |
| - null_a = 0; | |
| + id_a = 0; | |
| break; | |
| default: | |
| usage(); | |
| @@ -315,8 +315,8 @@ main(int argc, char *argv[]) | |
| if (!argc) | |
| usage(); | |
| - if (null_x && null_y && null_z && null_a) | |
| - null_x = null_y = null_z = null_a = 0; | |
| + if (id_x && id_y && id_z && id_a) | |
| + id_x = id_y = id_z = id_a = 0; | |
| if (0); | |
| #define X(FUNC, NAME)\ | |
| @@ -337,10 +337,11 @@ main(int argc, char *argv[]) | |
| for (y = 0; y < rows; y++) { | |
| buf = buffer; | |
| for (x = 0; x < cols; x++) { | |
| - buf[0] = null_x ? 0.0 : *kern; | |
| - buf[1] = null_y ? 0.0 : *kern; | |
| - buf[2] = null_z ? 0.0 : *kern; | |
| - buf[3] = null_a ? 0.0 : *kern; | |
| + id_val = (x == cols / 2 && y == rows / 2) ? 1. : 0.; | |
| + buf[0] = id_x ? id_val : *kern; | |
| + buf[1] = id_y ? id_val : *kern; | |
| + buf[2] = id_z ? id_val : *kern; | |
| + buf[3] = id_a ? id_val : *kern; | |
| buf += 4; | |
| kern++; | |
| } | |
| diff --git a/src/blind-make-kernel.c b/src/blind-make-kernel.c | |
| @@ -82,10 +82,10 @@ main(int argc, char *argv[]) | |
| { | |
| int normalise = 0; | |
| double denominator = 1; | |
| - int null_x = 1, null_y = 1, null_z = 1, null_a = 1; | |
| + int id_x = 1, id_y = 1, id_z = 1, id_a = 1; | |
| size_t rows, cols, y, x, n; | |
| double *kernel, *kern, sum = 0, value; | |
| - double *buffer, *buf; | |
| + double *buffer, *buf, id_val; | |
| ARGBEGIN { | |
| case 'd': | |
| @@ -95,23 +95,23 @@ main(int argc, char *argv[]) | |
| normalise = 1; | |
| break; | |
| case 'x': | |
| - null_x = 0; | |
| + id_x = 0; | |
| break; | |
| case 'y': | |
| - null_y = 0; | |
| + id_y = 0; | |
| break; | |
| case 'z': | |
| - null_z = 0; | |
| + id_z = 0; | |
| break; | |
| case 'a': | |
| - null_a = 0; | |
| + id_a = 0; | |
| break; | |
| default: | |
| usage(); | |
| } ARGEND; | |
| - if (null_x && null_y && null_z && null_a) | |
| - null_x = null_y = null_z = null_a = 0; | |
| + if (id_x && id_y && id_z && id_a) | |
| + id_x = id_y = id_z = id_a = 0; | |
| if (argc) | |
| kernel = read_matrix_cmdline(argv, &rows, &cols); | |
| @@ -136,11 +136,12 @@ main(int argc, char *argv[]) | |
| for (y = 0; y < rows; y++) { | |
| buf = buffer; | |
| for (x = 0; x < cols; x++) { | |
| + id_val = (x == cols / 2 && y == rows / 2) ? 1. : 0.; | |
| value = *kern++ / denominator; | |
| - buf[0] = null_x ? 0.0 : value; | |
| - buf[1] = null_y ? 0.0 : value; | |
| - buf[2] = null_z ? 0.0 : value; | |
| - buf[3] = null_a ? 0.0 : value; | |
| + buf[0] = id_x ? id_val : value; | |
| + buf[1] = id_y ? id_val : value; | |
| + buf[2] = id_z ? id_val : value; | |
| + buf[3] = id_a ? id_val : value; | |
| buf += 4; | |
| } | |
| ewriteall(STDOUT_FILENO, buffer, n, "<stdout>"); |