/* Copyright (C) 1998, 1999 artofcode LLC. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA, 02111-1307. */ /*$Id: gdevcmap.h,v 1.2.6.1.2.1 2003/01/17 00:49:00 giles Exp $ */ /* Interface to special color mapping device */ #ifndef gdevcmap_INCLUDED # define gdevcmap_INCLUDED /* Define the color mapping algorithms. */ typedef enum { /* Don't change the color. */ device_cmap_identity = 0, /* Snap each RGB primary component to 0 or 1 individually. */ device_cmap_snap_to_primaries, /* Snap black to white, other colors to black. */ device_cmap_color_to_black_over_white, /* Convert to a gray shade of the correct brightness. */ device_cmap_monochrome } gx_device_color_mapping_method_t; #define device_cmap_max_method device_cmap_monochrome /* Define the color mapping forwarding device. */ typedef struct gx_device_cmap_s { gx_device_forward_common; gx_device_color_mapping_method_t mapping_method; } gx_device_cmap; extern_st(st_device_cmap); #define public_st_device_cmap() /* in gdevcmap.c */\ gs_public_st_suffix_add0_final(st_device_cmap, gx_device_cmap,\ "gx_device_cmap", device_cmap_enum_ptrs, device_cmap_reloc_ptrs,\ gx_device_finalize, st_device_forward) /* Initialize a color mapping device. Do this just once after allocation. */ int gdev_cmap_init(P3(gx_device_cmap * dev, gx_device * target, gx_device_color_mapping_method_t mapping_method)); /* * Clients can change the color mapping method at any time by setting * the ColorMappingMethod device parameter, but they must then call * gs_setdevice_no_init(pgs, dev); * for each graphics state that may reference the device. */ #endif /* gdevcmap_INCLUDED */