1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
/* Copyright (C) 2001-2012 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 the license contained in the file LICENSE in this distribution.
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.
*/
/* Header for the ICC profile link cache */
#ifndef gsicccache_INCLUDED
# define gsicccache_INCLUDED
#ifndef gs_imager_state_DEFINED
# define gs_imager_state_DEFINED
typedef struct gs_imager_state_s gs_imager_state;
#endif
#ifndef gx_device_DEFINED
# define gx_device_DEFINED
typedef struct gx_device_s gx_device;
#endif
gsicc_link_cache_t* gsicc_cache_new(gs_memory_t *memory);
gsicc_link_t* gsicc_findcachelink(gsicc_hashlink_t hashcode,
gsicc_link_cache_t *icc_link_cache,
bool includes_proof, bool includes_devlink);
void gsicc_init_buffer(gsicc_bufferdesc_t *buffer_desc, unsigned char num_chan,
unsigned char bytes_per_chan, bool has_alpha, bool alpha_first,
bool is_planar, int plane_stride, int row_stride, int num_rows,
int pixels_per_row);
bool gsicc_alloc_link_entry(gsicc_link_cache_t *icc_link_cache,
gsicc_link_t **ret_link, gsicc_hashlink_t hash,
bool include_softproof, bool include_devlink);
gsicc_link_t* gsicc_get_link(const gs_imager_state * pis, gx_device *dev,
const gs_color_space *input_colorspace,
gs_color_space *output_colorspace,
gsicc_rendering_param_t *rendering_params,
gs_memory_t *memory);
gsicc_link_t* gsicc_get_link_profile(const gs_imager_state *pis, gx_device *dev,
cmm_profile_t *gs_input_profile,
cmm_profile_t *gs_output_profile,
gsicc_rendering_param_t *rendering_params,
gs_memory_t *memory, bool devicegraytok);
void gsicc_release_link(gsicc_link_t *icclink);
void gsicc_set_link_data(gsicc_link_t *icc_link, void *link_handle,
void *contextptr, gsicc_hashlink_t hashcode,
gx_monitor_t *lock, bool includes_proof,
bool includes_devlink);
void gsicc_link_free(gsicc_link_t *icc_link, gs_memory_t *memory);
void gsicc_get_icc_buff_hash(unsigned char *buffer, int64_t *hash, unsigned int buff_size);
int gsicc_transform_named_color(float tint_value, byte *color_name, uint name_size,
gx_color_value device_values[],
const gs_imager_state *pis, gx_device *dev,
cmm_profile_t *gs_output_profile,
gsicc_rendering_param_t *rendering_params);
int gsicc_get_device_profile_comps(cmm_dev_profile_t *dev_profile);
#endif
|