1
/* Copyright (C) 2001-2006 Artifex Software, Inc.
4
This software is provided AS-IS with no warranty, either express or
7
This software is distributed under license and may not be copied, modified
8
or distributed except as expressly authorized under the terms of that
9
license. Refer to licensing information at http://www.artifex.com/
10
or contact Artifex Software, Inc., 7 Mt. Lassen Drive - Suite A-134,
11
San Rafael, CA 94903, U.S.A., +1(415)492-9861, for further information.
14
/* $Id: gscrd.h 8022 2007-06-05 22:23:38Z giles $ */
15
/* Interface for CIE color rendering dictionary creation */
17
#ifndef gscrd_INCLUDED
18
# define gscrd_INCLUDED
23
* Allocate and minimally initialize a CRD. Note that this procedure sets
24
* the reference count of the structure to 1, not 0. gs_setcolorrendering
25
* will increment the reference count again, so unless you want the
26
* structure to stay allocated permanently (or until a garbage collection),
27
* you should call rc_decrement(pcrd, "client name") *after* calling
28
* gs_setcolorrendering.
31
gs_cie_render1_build(gs_cie_render ** ppcrd, gs_memory_t * mem,
35
* Initialize a CRD given all of the relevant parameters.
36
* Any of the pointers except WhitePoint may be zero, meaning
37
* use the default values.
39
* The actual point, matrix, range, and procedure values are copied into the
40
* CRD, but only the pointer to the color lookup table
41
* (RenderTable.lookup.table) is copied, not the table itself.
43
* If pfrom_crd is not NULL, then if the EncodeLMN, EncodeABC, or
44
* RenderTable.T procedures indicate that the values exist only in the
45
* cache, the corresponding values will be copied from pfrom_crd.
46
* Note that NULL values for the individual pointers still represent
50
gs_cie_render1_init_from(const gs_memory_t *mem,
53
const gs_cie_render * pfrom_crd,
54
const gs_vector3 * WhitePoint,
55
const gs_vector3 * BlackPoint,
56
const gs_matrix3 * MatrixPQR,
57
const gs_range3 * RangePQR,
58
const gs_cie_transform_proc3 * TransformPQR,
59
const gs_matrix3 * MatrixLMN,
60
const gs_cie_render_proc3 * EncodeLMN,
61
const gs_range3 * RangeLMN,
62
const gs_matrix3 * MatrixABC,
63
const gs_cie_render_proc3 * EncodeABC,
64
const gs_range3 * RangeABC,
65
const gs_cie_render_table_t * RenderTable);
67
* Initialize a CRD without the option of copying cached values.
70
gs_cie_render1_initialize(const gs_memory_t *mem,
73
const gs_vector3 * WhitePoint,
74
const gs_vector3 * BlackPoint,
75
const gs_matrix3 * MatrixPQR,
76
const gs_range3 * RangePQR,
77
const gs_cie_transform_proc3 * TransformPQR,
78
const gs_matrix3 * MatrixLMN,
79
const gs_cie_render_proc3 * EncodeLMN,
80
const gs_range3 * RangeLMN,
81
const gs_matrix3 * MatrixABC,
82
const gs_cie_render_proc3 * EncodeABC,
83
const gs_range3 * RangeABC,
84
const gs_cie_render_table_t * RenderTable);
87
* Set or access the client_data pointer in a CRD.
88
* The macro is an L-value.
90
#define gs_cie_render_client_data(pcrd) ((pcrd)->client_data)
92
#endif /* gscrd_INCLUDED */