xref: /plan9/sys/src/cmd/gs/src/gxtmap.h (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1 /* Copyright (C) 1994, 1998 Aladdin Enterprises.  All rights reserved.
2 
3   This software is provided AS-IS with no warranty, either express or
4   implied.
5 
6   This software is distributed under license and may not be copied,
7   modified or distributed except as expressly authorized under the terms
8   of the license contained in the file LICENSE in this distribution.
9 
10   For more information about licensing, please refer to
11   http://www.ghostscript.com/licensing/. For information on
12   commercial licensing, go to http://www.artifex.com/licensing/ or
13   contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14   San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15 */
16 
17 /* $Id: gxtmap.h,v 1.5 2002/06/16 08:45:43 lpd Exp $ */
18 /* Definition of transfer mapping function */
19 /* (also used for black generation and undercolor removal) */
20 
21 #ifndef gxtmap_INCLUDED
22 #  define gxtmap_INCLUDED
23 
24 /* Common definition for mapping procedures. */
25 /* These are used for transfer functions, black generation, */
26 /* and undercolor removal. */
27 /* gx_transfer_map should probably be renamed gx_mapping_cache.... */
28 
29 /* Define an abstract type for a transfer map. */
30 typedef struct gx_transfer_map_s gx_transfer_map;
31 
32 /*
33  * Define the type of a mapping procedure.  There are two forms of this.
34  * The original form passed only the transfer map itself as an argument:
35  */
36 typedef float (*gs_mapping_proc) (floatp, const gx_transfer_map *);
37 
38 /*
39  * Later, we recognized that this procedure should really be a general
40  * closure:
41  */
42 typedef float (*gs_mapping_closure_proc_t) (floatp value,
43 					    const gx_transfer_map * pmap,
44 					    const void *proc_data);
45 typedef struct gs_mapping_closure_s {
46     gs_mapping_closure_proc_t proc;
47     const void *data;
48 } gs_mapping_closure_t;
49 
50 #endif /* gxtmap_INCLUDED */
51