comparison lwlib/lwlib-colors.c @ 5918:cb65bfaf7110 default

Speed up XEmacs on X. Avoid many calls to XQueryColor.
author Mike Sperber <sperber@deinprogramm.de>
date Fri, 27 Mar 2015 16:05:15 +0100
parents 308d34e9f07d
children
comparison
equal deleted inserted replaced
5917:ffb5abc8dc4e 5918:cb65bfaf7110
327 327
328 328
329 #ifdef HAVE_XFT 329 #ifdef HAVE_XFT
330 330
331 XftColor 331 XftColor
332 xft_convert_color_1 (Display *dpy, Colormap cmap, Visual *visual, XColor *pcolor, int dim)
333 {
334 XColor color = *pcolor;
335 XftColor result;
336
337 if (dim)
338 {
339 color.red = MINL (65535, color.red * 1.5);
340 color.green = MINL (65535, color.green * 1.5);
341 color.blue = MINL (65535, color.blue * 1.5);
342 x_allocate_nearest_color (dpy, cmap, visual, &color);
343 }
344
345 result.pixel = color.pixel;
346 result.color.red = color.red;
347 result.color.green = color.green;
348 result.color.blue = color.blue;
349 result.color.alpha = 0xffff;
350
351 return result;
352 }
353
354 XftColor
332 xft_convert_color (Display *dpy, Colormap cmap, Visual *visual, int c, int dim) 355 xft_convert_color (Display *dpy, Colormap cmap, Visual *visual, int c, int dim)
333 { 356 {
334 static XColor color; /* #### why is this static ?? */ 357 static XColor color; /* #### why is this static ?? */
335 XftColor result; 358 XftColor result;
336 359
337 color.pixel = c; 360 color.pixel = c;
338 XQueryColor(dpy, cmap, &color); 361 XQueryColor(dpy, cmap, &color);
339 362
340 if (dim) 363 return xft_convert_color_1 (dpy, cmap, visual, &color, dim);
341 { 364 }
342 color.red = MINL (65535, color.red * 1.5); 365
343 color.green = MINL (65535, color.green * 1.5); 366
344 color.blue = MINL (65535, color.blue * 1.5);
345 x_allocate_nearest_color (dpy, cmap, visual, &color);
346 }
347
348 result.pixel = color.pixel;
349 result.color.red = color.red;
350 result.color.green = color.green;
351 result.color.blue = color.blue;
352 result.color.alpha = 0xffff;
353
354 return result;
355 }
356 367
357 #endif /* HAVE_XFT */ 368 #endif /* HAVE_XFT */
358 369
359 /* end of lwlib-colors.c */ 370 /* end of lwlib-colors.c */