ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/background.C
(Generate patch)

Comparing rxvt-unicode/src/background.C (file contents):
Revision 1.88 by sf-exg, Mon Oct 18 15:26:10 2010 UTC vs.
Revision 1.89 by sf-exg, Mon Oct 18 15:35:19 2010 UTC

1007 flags &= ~blurNeeded; 1007 flags &= ~blurNeeded;
1008 else 1008 else
1009 flags |= blurNeeded; 1009 flags |= blurNeeded;
1010 1010
1011#if XFT 1011#if XFT
1012 XFilters *filters = XRenderQueryFilters (target->dpy, target->display->root); 1012 XFilters *filters = XRenderQueryFilters (target->dpy, target->display->root);
1013 if (filters) 1013 if (filters)
1014 { 1014 {
1015 for (int i = 0; i < filters->nfilter; i++) 1015 for (int i = 0; i < filters->nfilter; i++)
1016 if (!strcmp (filters->filter[i], FilterConvolution)) 1016 if (!strcmp (filters->filter[i], FilterConvolution))
1017 flags |= bgPixmap_t::blurServerSide; 1017 flags |= bgPixmap_t::blurServerSide;
1018 1018
1019 XFree (filters); 1019 XFree (filters);
1020 } 1020 }
1021#endif 1021#endif
1022 1022
1023 return (changed > 0); 1023 return (changed > 0);
1024} 1024}
1025 1025
1117 1117
1118#if XFT 1118#if XFT
1119static void 1119static void
1120get_gaussian_kernel (int radius, int width, double *kernel, XFixed *params) 1120get_gaussian_kernel (int radius, int width, double *kernel, XFixed *params)
1121{ 1121{
1122 double sigma = radius / 2.0; 1122 double sigma = radius / 2.0;
1123 double scale = sqrt (2.0 * M_PI) * sigma; 1123 double scale = sqrt (2.0 * M_PI) * sigma;
1124 double sum = 0.0; 1124 double sum = 0.0;
1125 1125
1126 for (int i = 0; i < width; i++) 1126 for (int i = 0; i < width; i++)
1127 { 1127 {
1128 double x = i - width / 2; 1128 double x = i - width / 2;
1129 kernel[i] = exp (-(x * x) / (2.0 * sigma * sigma)) / scale; 1129 kernel[i] = exp (-(x * x) / (2.0 * sigma * sigma)) / scale;
1130 sum += kernel[i]; 1130 sum += kernel[i];
1131 } 1131 }
1132 1132
1133 params[0] = XDoubleToFixed (width); 1133 params[0] = XDoubleToFixed (width);
1134 params[1] = XDoubleToFixed (1); 1134 params[1] = XDoubleToFixed (1);
1135 1135
1136 for (int i = 0; i < width; i++) 1136 for (int i = 0; i < width; i++)
1137 params[i+2] = XDoubleToFixed (kernel[i] / sum); 1137 params[i+2] = XDoubleToFixed (kernel[i] / sum);
1138} 1138}
1139#endif 1139#endif
1140 1140
1141bool 1141bool
1142bgPixmap_t::blur_pixmap (Pixmap pixmap, Visual *visual, int width, int height) 1142bgPixmap_t::blur_pixmap (Pixmap pixmap, Visual *visual, int width, int height)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines