Introduction
Introduction Statistics Contact Development Disclaimer Help
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>");
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.