new backend: glx: fix off-by-1 in blur shader generation

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
This commit is contained in:
Yuxuan Shui 2019-05-07 00:29:02 +01:00
parent f1703b814b
commit 66290eec02
No known key found for this signature in database
GPG Key ID: 37C999F617EA1A47
2 changed files with 3 additions and 3 deletions

View File

@ -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:
+

View File

@ -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;