Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/* Copyright (C) 1995, 1998, 1999 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: icie.h,v 1.7 2004/08/04 19:36:12 stefan Exp $ */
18
/* Internal definitions for interpreter CIE color handling */
19
 
20
#ifndef icie_INCLUDED
21
#  define icie_INCLUDED
22
 
23
/*
24
 * All of the routines below are exported by zcie.c for zcrd.c,
25
 * except for cie_cache_joint which is exported by zcrd.c for zcie.c.
26
 */
27
 
28
/* ------ Parameter acquisition ------ */
29
 
30
/* Get a range array parameter from a dictionary. */
31
/* We know that count <= 4. */
32
int dict_ranges_param(const gs_memory_t *mem,
33
		      const ref * pdref, const char *kstr, int count,
34
		      gs_range * prange);
35
 
36
/* Get 3 ranges from a dictionary. */
37
int dict_range3_param(const gs_memory_t *mem,
38
		      const ref *pdref, const char *kstr,
39
		      gs_range3 *prange3);
40
 
41
/* Get a 3x3 matrix parameter from a dictionary. */
42
int dict_matrix3_param(const gs_memory_t *mem, const ref *pdref, 
43
		       const char *kstr,
44
		       gs_matrix3 *pmat3);
45
 
46
/* Get an array of procedures from a dictionary. */
47
/* We know count <= countof(empty_procs). */
48
int dict_proc_array_param(const gs_memory_t *mem, const ref *pdict, 
49
			  const char *kstr,
50
			  uint count, ref * pparray);
51
 
52
/* Get 3 procedures from a dictionary. */
53
int dict_proc3_param(const gs_memory_t *mem, const ref *pdref, 
54
		     const char *kstr, ref proc3[3]);
55
 
56
/* Get WhitePoint and BlackPoint values. */
57
int cie_points_param(const gs_memory_t *mem, 
58
		     const ref * pdref, gs_cie_wb * pwb);
59
 
60
/* Process a 3- or 4-dimensional lookup table from a dictionary. */
61
/* The caller has set pclt->n and pclt->m. */
62
/* ptref is known to be a readable array of size at least n+1. */
63
int cie_table_param(const ref * ptable, gx_color_lookup_table * pclt,
64
		    gs_memory_t * mem);
65
 
66
/* ------ Internal routines ------ */
67
 
68
int cie_set_finish(i_ctx_t *, gs_color_space *,
69
		   const ref_cie_procs *, int, int);
70
 
71
int cie_cache_push_finish(i_ctx_t *i_ctx_p, op_proc_t finish_proc,
72
			  gs_ref_memory_t * imem, void *data);
73
int cie_prepare_cache(i_ctx_t *i_ctx_p, const gs_range * domain,
74
		      const ref * proc, cie_cache_floats * pcache,
75
		      void *container, gs_ref_memory_t * imem,
76
		      client_name_t cname);
77
int cie_prepare_caches_4(i_ctx_t *i_ctx_p, const gs_range * domains,
78
			 const ref * procs,
79
			 cie_cache_floats * pc0,
80
			 cie_cache_floats * pc1,
81
			 cie_cache_floats * pc2,
82
			 cie_cache_floats * pc3 /* may be 0 */,
83
			 void *container,
84
			 gs_ref_memory_t * imem, client_name_t cname);
85
#define cie_prepare_cache3(p,d3,p3,c3,pcie,imem,cname)\
86
  cie_prepare_caches_4(p, (d3)->ranges, p3,\
87
		       &(c3)->floats, &(c3)[1].floats, &(c3)[2].floats,\
88
		       NULL, pcie, imem, cname)
89
#define cie_prepare_cache4(p,d4,p4,c4,pcie,imem,cname)\
90
  cie_prepare_caches_4(p, (d4)->ranges, p4,\
91
		       &(c4)->floats, &(c4)[1].floats, &(c4)[2].floats,\
92
		       &(c4)[3].floats, pcie, imem, cname)
93
 
94
int cie_cache_joint(i_ctx_t *, const ref_cie_render_procs *,
95
		    const gs_cie_common *, gs_state *);
96
 
97
#endif /* icie_INCLUDED */