summaryrefslogtreecommitdiff
path: root/gs/base/gxtmap.h
diff options
context:
space:
mode:
Diffstat (limited to 'gs/base/gxtmap.h')
-rw-r--r--gs/base/gxtmap.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/gs/base/gxtmap.h b/gs/base/gxtmap.h
new file mode 100644
index 000000000..4d0418967
--- /dev/null
+++ b/gs/base/gxtmap.h
@@ -0,0 +1,47 @@
+/* Copyright (C) 2001-2006 Artifex Software, Inc.
+ All Rights Reserved.
+
+ This software is provided AS-IS with no warranty, either express or
+ implied.
+
+ This software is distributed under license and may not be copied, modified
+ or distributed except as expressly authorized under the terms of that
+ license. Refer to licensing information at http://www.artifex.com/
+ or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
+ San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
+*/
+
+/* $Id$ */
+/* Definition of transfer mapping function */
+/* (also used for black generation and undercolor removal) */
+
+#ifndef gxtmap_INCLUDED
+# define gxtmap_INCLUDED
+
+/* Common definition for mapping procedures. */
+/* These are used for transfer functions, black generation, */
+/* and undercolor removal. */
+/* gx_transfer_map should probably be renamed gx_mapping_cache.... */
+
+/* Define an abstract type for a transfer map. */
+typedef struct gx_transfer_map_s gx_transfer_map;
+
+/*
+ * Define the type of a mapping procedure. There are two forms of this.
+ * The original form passed only the transfer map itself as an argument:
+ */
+typedef float (*gs_mapping_proc) (floatp, const gx_transfer_map *);
+
+/*
+ * Later, we recognized that this procedure should really be a general
+ * closure:
+ */
+typedef float (*gs_mapping_closure_proc_t) (floatp value,
+ const gx_transfer_map * pmap,
+ const void *proc_data);
+typedef struct gs_mapping_closure_s {
+ gs_mapping_closure_proc_t proc;
+ const void *data;
+} gs_mapping_closure_t;
+
+#endif /* gxtmap_INCLUDED */