Lines Matching refs:cman

57     xdev->cman.std_cmap.map = map;  in set_std_cmap()
58 xdev->cman.std_cmap.fast = in set_std_cmap()
59 set_cmap_values(&xdev->cman.std_cmap.red, map->red_max, map->red_mult) && in set_std_cmap()
60 set_cmap_values(&xdev->cman.std_cmap.green, map->green_max, map->green_mult) && in set_std_cmap()
61 set_cmap_values(&xdev->cman.std_cmap.blue, map->blue_max, map->blue_mult); in set_std_cmap()
123 xdev->cman.std_cmap.free_map = true; in alloc_std_cmap()
135 xdev->cman.dynamic.colors = (x11_color_t **) in alloc_dynamic_colors()
136 gs_malloc(xdev->memory, sizeof(x11_color_t *), xdev->cman.num_rgb, in alloc_dynamic_colors()
138 if (xdev->cman.dynamic.colors) { in alloc_dynamic_colors()
141 xdev->cman.dynamic.size = xdev->cman.num_rgb; in alloc_dynamic_colors()
142 xdev->cman.dynamic.shift = 16 - xdev->vinfo->bits_per_rgb; in alloc_dynamic_colors()
143 for (i = 0; i < xdev->cman.num_rgb; i++) in alloc_dynamic_colors()
144 xdev->cman.dynamic.colors[i] = NULL; in alloc_dynamic_colors()
145 xdev->cman.dynamic.max_used = min(256, num_colors); in alloc_dynamic_colors()
146 xdev->cman.dynamic.used = 0; in alloc_dynamic_colors()
163 if (xcolor->pixel < xdev->cman.color_to_rgb.size) { in x_alloc_color()
164 x11_rgb_t *pxrgb = &xdev->cman.color_to_rgb.values[xcolor->pixel]; in x_alloc_color()
181 if ((pixel = pixels[i]) < xdev->cman.color_to_rgb.size) in x_free_colors()
182 xdev->cman.color_to_rgb.values[pixel].defined = false; in x_free_colors()
191 x_free_colors(xdev, xdev->cman.dither_ramp + 1, num_used - 1); in free_ramp()
192 gs_x_free(xdev->memory, xdev->cman.dither_ramp, "x11_setup_colors"); in free_ramp()
193 xdev->cman.dither_ramp = NULL; in free_ramp()
215 xdev->cman.dither_ramp = in setup_cube()
218 if (xdev->cman.dither_ramp == NULL) in setup_cube()
221 xdev->cman.dither_ramp[0] = xdev->foreground; in setup_cube()
222 xdev->cman.dither_ramp[num_entries - 1] = xdev->background; in setup_cube()
231 xc.red = (X_max_color_value * r / max_rgb) & xdev->cman.color_mask.red; in setup_cube()
232 xc.green = (X_max_color_value * g / max_rgb) & xdev->cman.color_mask.green; in setup_cube()
233 xc.blue = (X_max_color_value * b / max_rgb) & xdev->cman.color_mask.blue; in setup_cube()
238 xdev->cman.dither_ramp[index] = xc.pixel; in setup_cube()
286 xdev->cman.color_mask.red = xdev->cman.color_mask.green = in gdev_x_setup_colors()
287 xdev->cman.color_mask.blue = X_max_color_value - in gdev_x_setup_colors()
289 xdev->cman.match_mask = xdev->cman.color_mask; /* default */ in gdev_x_setup_colors()
290 xdev->cman.num_rgb = 1 << xdev->vinfo->bits_per_rgb; in gdev_x_setup_colors()
293 xdev->cman.std_cmap.map = NULL; in gdev_x_setup_colors()
294 xdev->cman.std_cmap.free_map = false; in gdev_x_setup_colors()
296 xdev->cman.dither_ramp = NULL; in gdev_x_setup_colors()
297 xdev->cman.dynamic.colors = NULL; in gdev_x_setup_colors()
298 xdev->cman.dynamic.size = 0; in gdev_x_setup_colors()
299 xdev->cman.dynamic.used = 0; in gdev_x_setup_colors()
314 xdev->cman.color_to_rgb.values = in gdev_x_setup_colors()
317 if (xdev->cman.color_to_rgb.values) { in gdev_x_setup_colors()
321 xdev->cman.color_to_rgb.values[i].defined = false; in gdev_x_setup_colors()
322 xdev->cman.color_to_rgb.size = count; in gdev_x_setup_colors()
324 xdev->cman.color_to_rgb.size = 0; in gdev_x_setup_colors()
330 xdev->color_info.max_color = xdev->cman.num_rgb - 1; in gdev_x_setup_colors()
334 xdev->cman.std_cmap.map = x_get_std_cmap(xdev, XA_RGB_DEFAULT_MAP); in gdev_x_setup_colors()
336 xdev->cman.std_cmap.map = x_get_std_cmap(xdev, XA_RGB_BEST_MAP); in gdev_x_setup_colors()
338 if (xdev->cman.std_cmap.map || in gdev_x_setup_colors()
342 min(xdev->cman.std_cmap.map->red_max, in gdev_x_setup_colors()
343 min(xdev->cman.std_cmap.map->green_max, in gdev_x_setup_colors()
344 xdev->cman.std_cmap.map->blue_max)) + 1; in gdev_x_setup_colors()
345 if (xdev->cman.std_cmap.map) in gdev_x_setup_colors()
346 set_std_cmap(xdev, xdev->cman.std_cmap.map); in gdev_x_setup_colors()
358 min(xdev->maxRGBRamp, xdev->cman.num_rgb)); in gdev_x_setup_colors()
360 while (!xdev->cman.dither_ramp && ramp_size >= 2) { in gdev_x_setup_colors()
373 if (!xdev->cman.dither_ramp) { in gdev_x_setup_colors()
379 alloc_dynamic_colors(xdev, CUBE(xdev->cman.num_rgb) - in gdev_x_setup_colors()
387 xdev->color_info.max_gray = xdev->cman.num_rgb - 1; in gdev_x_setup_colors()
390 xdev->cman.std_cmap.map = x_get_std_cmap(xdev, XA_RGB_GRAY_MAP); in gdev_x_setup_colors()
391 if (xdev->cman.std_cmap.map || in gdev_x_setup_colors()
395 xdev->cman.std_cmap.map->red_max + 1; in gdev_x_setup_colors()
396 if (xdev->cman.std_cmap.map) in gdev_x_setup_colors()
397 set_std_cmap(xdev, xdev->cman.std_cmap.map); in gdev_x_setup_colors()
406 min(xdev->maxGrayRamp, xdev->cman.num_rgb)); in gdev_x_setup_colors()
408 while (!xdev->cman.dither_ramp && ramp_size >= 3) { in gdev_x_setup_colors()
419 if (!xdev->cman.dither_ramp) { in gdev_x_setup_colors()
425 alloc_dynamic_colors(xdev, xdev->cman.num_rgb - in gdev_x_setup_colors()
436 if (xdev->cman.color_to_rgb.values) { in gdev_x_setup_colors()
437 gs_x_free(xdev->memory, xdev->cman.color_to_rgb.values, "gdevx color_to_rgb"); in gdev_x_setup_colors()
438 xdev->cman.color_to_rgb.values = 0; in gdev_x_setup_colors()
449 if (xdev->cman.std_cmap.map) { in gdev_x_setup_colors()
450 xdev->cman.match_mask.red &= in gdev_x_setup_colors()
451 X_max_color_value << xdev->cman.std_cmap.red.cv_shift; in gdev_x_setup_colors()
452 xdev->cman.match_mask.green &= in gdev_x_setup_colors()
453 X_max_color_value << xdev->cman.std_cmap.green.cv_shift; in gdev_x_setup_colors()
454 xdev->cman.match_mask.blue &= in gdev_x_setup_colors()
455 X_max_color_value << xdev->cman.std_cmap.blue.cv_shift; in gdev_x_setup_colors()
468 if (xdev->cman.dynamic.colors) { in gdev_x_free_dynamic_colors()
473 for (i = 0; i < xdev->cman.dynamic.size; i++) { in gdev_x_free_dynamic_colors()
474 for (xcp = xdev->cman.dynamic.colors[i]; xcp; xcp = next) { in gdev_x_free_dynamic_colors()
480 xdev->cman.dynamic.colors[i] = NULL; in gdev_x_free_dynamic_colors()
482 xdev->cman.dynamic.used = 0; in gdev_x_free_dynamic_colors()
494 if (xdev->cman.std_cmap.free_map) { in gdev_x_free_colors()
496 XFree((void *)xdev->cman.std_cmap.map); in gdev_x_free_colors()
497 xdev->cman.std_cmap.free_map = false; in gdev_x_free_colors()
499 xdev->cman.std_cmap.map = 0; in gdev_x_free_colors()
500 if (xdev->cman.dither_ramp) in gdev_x_free_colors()
501 gs_x_free(xdev->memory, xdev->cman.dither_ramp, "x11 dither_colors"); in gdev_x_free_colors()
502 if (xdev->cman.dynamic.colors) { in gdev_x_free_colors()
504 gs_x_free(xdev->memory, xdev->cman.dynamic.colors, "x11 cman.dynamic.colors"); in gdev_x_free_colors()
505 xdev->cman.dynamic.colors = NULL; in gdev_x_free_colors()
507 if (xdev->cman.color_to_rgb.values) { in gdev_x_free_colors()
508 gs_x_free(xdev->memory, xdev->cman.color_to_rgb.values, "x11 color_to_rgb"); in gdev_x_free_colors()
509 xdev->cman.color_to_rgb.values = NULL; in gdev_x_free_colors()
510 xdev->cman.color_to_rgb.size = 0; in gdev_x_free_colors()
568 X_color_value dr = r & xdev->cman.color_mask.red; in gdev_x_map_rgb_color()
569 X_color_value dg = g & xdev->cman.color_mask.green; in gdev_x_map_rgb_color()
570 X_color_value db = b & xdev->cman.color_mask.blue; in gdev_x_map_rgb_color()
576 X_color_value mr = r & xdev->cman.match_mask.red; in gdev_x_map_rgb_color()
577 X_color_value mg = g & xdev->cman.match_mask.green; in gdev_x_map_rgb_color()
578 X_color_value mb = b & xdev->cman.match_mask.blue; in gdev_x_map_rgb_color()
585 if (mr == xdev->cman.match_mask.red && in gdev_x_map_rgb_color()
586 mg == xdev->cman.match_mask.green && in gdev_x_map_rgb_color()
587 mb == xdev->cman.match_mask.blue in gdev_x_map_rgb_color()
599 if (xdev->cman.std_cmap.map) { in gdev_x_map_rgb_color()
600 const XStandardColormap *cmap = xdev->cman.std_cmap.map; in gdev_x_map_rgb_color()
606 if (xdev->cman.std_cmap.fast) { in gdev_x_map_rgb_color()
607 cr = r >> xdev->cman.std_cmap.red.cv_shift; in gdev_x_map_rgb_color()
608 cvr = xdev->cman.std_cmap.red.nearest[cr]; in gdev_x_map_rgb_color()
609 cg = g >> xdev->cman.std_cmap.green.cv_shift; in gdev_x_map_rgb_color()
610 cvg = xdev->cman.std_cmap.green.nearest[cg]; in gdev_x_map_rgb_color()
611 cb = b >> xdev->cman.std_cmap.blue.cv_shift; in gdev_x_map_rgb_color()
612 cvb = xdev->cman.std_cmap.blue.nearest[cb]; in gdev_x_map_rgb_color()
621 if ((iabs((int)r - (int)cvr) & xdev->cman.match_mask.red) == 0 && in gdev_x_map_rgb_color()
622 (iabs((int)g - (int)cvg) & xdev->cman.match_mask.green) == 0 && in gdev_x_map_rgb_color()
623 (iabs((int)b - (int)cvb) & xdev->cman.match_mask.blue) == 0) { in gdev_x_map_rgb_color()
625 (xdev->cman.std_cmap.fast ? in gdev_x_map_rgb_color()
626 (cr << xdev->cman.std_cmap.red.pixel_shift) + in gdev_x_map_rgb_color()
627 (cg << xdev->cman.std_cmap.green.pixel_shift) + in gdev_x_map_rgb_color()
628 (cb << xdev->cman.std_cmap.blue.pixel_shift) : in gdev_x_map_rgb_color()
643 if ((iabs((int)r - (int)cvr) & xdev->cman.match_mask.red) == 0) { in gdev_x_map_rgb_color()
655 if (xdev->cman.dither_ramp) { in gdev_x_map_rgb_color()
676 if ((iabs((int)r - (int)cvr) & xdev->cman.match_mask.red) == 0 && in gdev_x_map_rgb_color()
677 (iabs((int)g - (int)cvg) & xdev->cman.match_mask.green) == 0 && in gdev_x_map_rgb_color()
678 (iabs((int)b - (int)cvb) & xdev->cman.match_mask.blue) == 0) { in gdev_x_map_rgb_color()
680 xdev->cman.dither_ramp[CUBE_INDEX(cr, cg, cb)]; in gdev_x_map_rgb_color()
695 if ((iabs((int)r - (int)cvr) & xdev->cman.match_mask.red) == 0) { in gdev_x_map_rgb_color()
696 gx_color_index pixel = xdev->cman.dither_ramp[cr]; in gdev_x_map_rgb_color()
706 if (xdev->cman.dynamic.colors) { in gdev_x_map_rgb_color()
707 int i = (dr ^ dg ^ db) >> xdev->cman.dynamic.shift; in gdev_x_map_rgb_color()
708 x11_color_t *xcp = xdev->cman.dynamic.colors[i]; in gdev_x_map_rgb_color()
718 xcp->next = xdev->cman.dynamic.colors[i]; in gdev_x_map_rgb_color()
719 xdev->cman.dynamic.colors[i] = xcp; in gdev_x_map_rgb_color()
735 if (xdev->cman.dynamic.used > xdev->cman.dynamic.max_used) { in gdev_x_map_rgb_color()
746 xcp->next = xdev->cman.dynamic.colors[i]; in gdev_x_map_rgb_color()
747 xdev->cman.dynamic.colors[i] = xcp; in gdev_x_map_rgb_color()
748 xdev->cman.dynamic.used++; in gdev_x_map_rgb_color()
753 dr, dg, db, xdev->cman.dynamic.used - 1, in gdev_x_map_rgb_color()
776 const XStandardColormap *cmap = xdev->cman.std_cmap.map; in gdev_x_map_color_rgb()
787 if (color < xdev->cman.color_to_rgb.size) { in gdev_x_map_color_rgb()
788 const x11_rgb_t *pxrgb = &xdev->cman.color_to_rgb.values[color]; in gdev_x_map_color_rgb()
825 if (color < xdev->cman.color_to_rgb.size) { in gdev_x_map_color_rgb()
835 if (xdev->cman.dither_ramp) { in gdev_x_map_color_rgb()
842 if (xdev->cman.dither_ramp[i] == color) { in gdev_x_map_color_rgb()
863 if (xdev->cman.dither_ramp[i] == color) { in gdev_x_map_color_rgb()
872 if (xdev->cman.dynamic.colors) { in gdev_x_map_color_rgb()
876 for (i = xdev->cman.dynamic.size; --i >= 0;) in gdev_x_map_color_rgb()
877 for (xcp = xdev->cman.dynamic.colors[i]; xcp; xcp = xcp->next) in gdev_x_map_color_rgb()