Mercurial > hg > xemacs-beta
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 */ |