new backend: glx: fix off-by-1 in blur shader generation
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
parent
86f4d73c22
commit
45ead409b5
|
@ -187,9 +187,9 @@ WIDTH,HEIGHT,ELE1,ELE2,ELE3,ELE4,ELE5...
|
|||
+
|
||||
In other words, the matrix is formatted as a list of comma separated numbers. The first two numbers must be integers, which specify the width and height of the matrix. They must be odd numbers. Then, the following 'width * height - 1' numbers specifies the numbers in the matrix, row by row, excluding the center element.
|
||||
+
|
||||
The elements are finite floating point numbers. The decimal pointer has to be '.' (a period), and scientific notation is not supported.
|
||||
The elements are finite floating point numbers. The decimal pointer has to be '.' (a period), scientific notation is not supported.
|
||||
+
|
||||
The element in the center will either be 1.0 or changing based on opacity, depending on whether you have `--blur-background-fixed`. Yet the automatic adjustment of blur factor may not work well with a custom blur kernel.
|
||||
The element in the center will either be 1.0 or varying based on opacity, depending on whether you have `--blur-background-fixed`. Yet the automatic adjustment of blur factor may not work well with a custom blur kernel.
|
||||
+
|
||||
A 7x7 Gaussian blur kernel (sigma = 0.84089642) looks like:
|
||||
+
|
||||
|
|
|
@ -716,7 +716,7 @@ static bool gl_init_blur(struct gl_data *gd, conv *const *const kernels) {
|
|||
auto kern = kernels[i];
|
||||
// Build shader
|
||||
int width = kern->w, height = kern->h;
|
||||
int nele = width * height - 1;
|
||||
int nele = width * height;
|
||||
size_t body_len = (strlen(shader_add) + 42) * (uint)nele;
|
||||
char *shader_body = ccalloc(body_len, char);
|
||||
char *pc = shader_body;
|
||||
|
|
Loading…
Reference in New Issue