[gs-cvs] rev 8066 - trunk/gs/src

leonardo at ghostscript.com leonardo at ghostscript.com
Tue Jun 19 00:16:21 PDT 2007


Author: leonardo
Date: 2007-06-19 00:16:20 -0700 (Tue, 19 Jun 2007)
New Revision: 8066

Modified:
   trunk/gs/src/gscicach.c
   trunk/gs/src/gscicach.h
Log:
Fix: Setting a right property on gscicach.c gscicach.h .


Modified: trunk/gs/src/gscicach.c
===================================================================
--- trunk/gs/src/gscicach.c	2007-06-19 07:12:43 UTC (rev 8065)
+++ trunk/gs/src/gscicach.c	2007-06-19 07:16:20 UTC (rev 8066)
@@ -1,291 +1,291 @@
-/* Copyright (C) 2001-2007 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: gscicach.c 7765 2007-03-05 21:09:35Z raph $ */
-/* A color index cache. */
-#include "gx.h"
-#include "gserrors.h"
-#include "gsccolor.h"
-#include "gxcspace.h"
-#include "gxdcolor.h"
-#include "gscicach.h"
-#include "memory_.h"
-
-#define COLOR_INDEX_CACHE_SIZE 256
-#define COLOR_INDEX_CACHE_CHAINS (COLOR_INDEX_CACHE_SIZE / 16)
-
-typedef struct gs_color_index_cache_elem_s gs_color_index_cache_elem_t;
-
-struct gs_color_index_cache_elem_s {
-    gx_color_index cindex;
-    uint chain;
-    uint prev, next; /* NULL for unused. */
-    uint touch_prev, touch_next;
-    bool frac_values_done;
-};
-
-struct gs_color_index_cache_s {
-    const gs_color_space *direct_space;
-    gs_imager_state *pis;
-    gx_device *dev;
-    int client_num_components;
-    int device_num_components;
-    gs_memory_t *memory;
-    int used;
-    gs_color_index_cache_elem_t *buf;
-    uint recent_touch;
-    float *paint_values;
-    frac31 *frac_values;
-    int chains[COLOR_INDEX_CACHE_CHAINS];
-    /* Note : the 0th element of buf, paint_values, frac_values is never used,
-       because we consider the index 0 as NULL
-       just for a faster initialization. */
-#   define MYNULL 0
-};
-
-
-
-gs_private_st_ptrs5(st_color_index_cache, gs_color_index_cache_t, "gs_color_index_cache_t",
-		    gs_color_index_cache_elem_ptrs, gs_color_index_cache_reloc_ptrs,
-		    direct_space, memory, buf, paint_values, frac_values);
-
-gs_color_index_cache_t *
-gs_color_index_cache_create(gs_memory_t *memory, const gs_color_space *direct_space, gx_device *dev, gs_imager_state *pis, bool need_frac)
-{
-    int client_num_components = cs_num_components(direct_space);
-    int device_num_components = dev->color_info.num_components;
-    gs_color_index_cache_elem_t *buf = ( gs_color_index_cache_elem_t *)gs_alloc_byte_array(memory, COLOR_INDEX_CACHE_SIZE, 
-		    sizeof(gs_color_index_cache_elem_t), "gs_color_index_cache_create");
-    float *paint_values = (float *)gs_alloc_byte_array(memory, COLOR_INDEX_CACHE_SIZE * client_num_components, 
-		    sizeof(float), "gs_color_index_cache_create");
-    frac31 *frac_values = (need_frac ? (frac31 *)gs_alloc_byte_array(memory, COLOR_INDEX_CACHE_SIZE * device_num_components, 
-					    sizeof(frac31), "gs_color_index_cache_create") : NULL);
-    gs_color_index_cache_t *pcic = gs_alloc_struct(memory, gs_color_index_cache_t, &st_color_index_cache, "gs_color_index_cache_create");
-
-    if (buf == NULL || paint_values == NULL || (need_frac && frac_values == NULL) || pcic == NULL) {
-	gs_free_object(memory, buf, "gs_color_index_cache_create");
-	gs_free_object(memory, paint_values, "gs_color_index_cache_create");
-	gs_free_object(memory, frac_values, "gs_color_index_cache_create");
-	gs_free_object(memory, pcic, "gs_color_index_cache_create");
-	return NULL;
-    }
-    memset(pcic, 0, sizeof(*pcic));
-    memset(buf, 0, COLOR_INDEX_CACHE_SIZE * sizeof(gs_color_index_cache_elem_t));
-    pcic->direct_space = direct_space;
-    pcic->pis = pis;
-    pcic->dev = dev;
-    pcic->device_num_components = device_num_components;
-    pcic->client_num_components = client_num_components;
-    pcic->memory = memory;
-    pcic->used = 1; /* Never use the 0th element. */
-    pcic->buf = buf;
-    pcic->recent_touch = MYNULL;
-    pcic->paint_values = paint_values;
-    pcic->frac_values = frac_values;
-    return pcic;
-}
-
-void 
-gs_color_index_cache_destroy(gs_color_index_cache_t *pcic)
-{
-    gs_free_object(pcic->memory, pcic->buf, "gs_color_index_cache_create");
-    gs_free_object(pcic->memory, pcic->paint_values, "gs_color_index_cache_create");
-    gs_free_object(pcic->memory, pcic->frac_values, "gs_color_index_cache_create");
-    pcic->buf = NULL;
-    pcic->paint_values = NULL;
-    pcic->frac_values = NULL;
-    gs_free_object(pcic->memory, pcic, "gs_color_index_cache_create");
-}
-
-private inline int 
-hash_paint_values(const gs_color_index_cache_t *this, const float *paint_values)
-{
-    int i;
-    float v = 0;
-    uint k = 0;
-    const uint a_prime = 79;
-
-    for (i = 0; i < this->client_num_components; i++) 
-	v = v * a_prime + paint_values[i];
-    /* Don't know the range of v, so hash its bytes : */
-    for(i = 0; i < sizeof(v); i++)
-	k = k * a_prime + ((byte *)&v)[i];
-    return k % COLOR_INDEX_CACHE_CHAINS;
-}
-
-private inline void
-exclude_from_chain(gs_color_index_cache_t *this, uint i)
-{
-    uint co = this->buf[i].chain;
-    uint ip = this->buf[i].prev, in = this->buf[i].next;
-
-    this->buf[ip].next = in;
-    this->buf[in].prev = ip;
-    if (this->chains[co] == i)
-	this->chains[co] = in;
-}
-
-private inline void
-include_into_chain(gs_color_index_cache_t *this, uint i, uint c)
-{
-    if (this->chains[c] != MYNULL) {
-	uint in = this->chains[c], ip = this->buf[in].prev;
-
-	this->buf[i].next = in;
-	this->buf[i].prev = ip;
-	this->buf[in].prev = i;
-	this->buf[ip].next = i;
-    } else
-	this->buf[i].prev = this->buf[i].next = i;
-    this->chains[c] = i;
-    this->buf[i].chain = c;
-}
-
-private inline void
-exclude_from_touch_list(gs_color_index_cache_t *this, uint i)
-{
-    uint ip = this->buf[i].touch_prev, in = this->buf[i].touch_next;
-
-    this->buf[ip].touch_next = in;
-    this->buf[in].touch_prev = ip;
-    if (this->recent_touch == i) {
-	if (i == in)
-	    this->recent_touch = MYNULL;
-	else
-	    this->recent_touch = in;
-    }
-}
-
-private inline void
-include_into_touch_list(gs_color_index_cache_t *this, uint i)
-{
-    if (this->recent_touch != MYNULL) {
-	uint in = this->recent_touch, ip = this->buf[in].touch_prev;
-
-	this->buf[i].touch_next = in;
-	this->buf[i].touch_prev = ip;
-	this->buf[in].touch_prev = i;
-	this->buf[ip].touch_next = i;
-    } else
-	this->buf[i].touch_prev = this->buf[i].touch_next = i;
-    this->recent_touch = i;
-}
-
-private int 
-get_color_index_cache_elem(gs_color_index_cache_t *this, const float *paint_values, uint *pi)
-{
-    int client_num_components = this->client_num_components;
-    uint c = hash_paint_values(this, paint_values);
-    uint i = this->chains[c], j;
-
-    if (i != MYNULL) {
-	uint tries = 16; /* Arbitrary. */
-
-	if (!memcmp(paint_values, this->paint_values + i * client_num_components, sizeof(*paint_values) * client_num_components)) {
-	    if (this->recent_touch != i) {
-		exclude_from_touch_list(this, i);
-		include_into_touch_list(this, i);
-	    }
-	    *pi = i;
-	    return 1;
-	}
-	for (j = this->buf[i].next; tries -- && j != i; j = this->buf[j].next) {
-	    if (!memcmp(paint_values, this->paint_values + j * client_num_components, sizeof(*paint_values) * client_num_components)) {
-		exclude_from_chain(this, j);
-		include_into_chain(this, j, c);
-		if (this->recent_touch != j) {
-		    exclude_from_touch_list(this, j);
-		    include_into_touch_list(this, j);
-		}
-		*pi = j;
-		return 1;
-	    }
-	}
-	tries+=0;
-    }
-    if (this->used < COLOR_INDEX_CACHE_SIZE) {
-	/* Use a new one */
-	i = this->used++;
-	include_into_touch_list(this, i);
-    } else {
-	i = this->recent_touch;
-	this->recent_touch = this->buf[i].touch_prev; /* Assuming the cyclic list, 
-						      just move the head pointer to the last element. */
-	exclude_from_chain(this, i);
-    }
-    include_into_chain(this, i, c);
-    *pi = i;
-    return 0;
-}
-
-private inline void
-compute_frac_values(gs_color_index_cache_t *this, uint i)
-{
-    gx_color_index c = this->buf[i].cindex;
-    const gx_device_color_info *cinfo = &this->dev->color_info;
-    int device_num_components = this->device_num_components;
-    int j;
-
-    for (j = 0; j < device_num_components; j++) {
-	    int shift = cinfo->comp_shift[j];
-	    int bits = cinfo->comp_bits[j];
-
-	    this->frac_values[i * device_num_components + j] = ((c >> shift) & ((1 << bits) - 1)) << (sizeof(frac31) * 8 - 1 - bits);
-    }
-    this->buf[i].frac_values_done = true;
-}
-
-int 
-gs_cached_color_index(gs_color_index_cache_t *this, const float *paint_values, gx_device_color *pdevc, frac31 *frac_values)
-{
-    /* Must return 2 if the color is not pure. 
-       See patch_color_to_device_color. */
-    const gs_color_space *pcs = this->direct_space;
-    int client_num_components = this->client_num_components;
-    int device_num_components = this->device_num_components;
-    uint i;
-    int code;
-
-    if (get_color_index_cache_elem(this, paint_values, &i)) {
-	if (pdevc != NULL) {
-	    pdevc->colors.pure = this->buf[i].cindex;
-	    pdevc->type = &gx_dc_type_data_pure;
-	    memcpy(pdevc->ccolor.paint.values, paint_values, sizeof(*paint_values) * client_num_components);
-	    pdevc->ccolor_valid = true;
-	}
-	if (frac_values != NULL && !this->buf[i].frac_values_done)
-	    compute_frac_values(this, i);
-    } else {
-	gx_device_color devc_local;
-	gs_client_color fcc;
-
-	if (pdevc == NULL)
-	    pdevc = &devc_local;
-	memcpy(this->paint_values + i * client_num_components, paint_values, sizeof(*paint_values) * client_num_components);
-	memcpy(fcc.paint.values, paint_values, sizeof(*paint_values) * client_num_components);
-	code = pcs->type->remap_color(&fcc, pcs, pdevc, this->pis, this->dev, gs_color_select_texture);
-	if (code < 0)
-	    return code;
-	if (pdevc->type != &gx_dc_type_data_pure)
-	    return 2;
-	this->buf[i].cindex = pdevc->colors.pure;
-	
-	if (frac_values != NULL)
-    	    compute_frac_values(this, i);
-	else
-	    this->buf[i].frac_values_done = false;
-    }
-    if (frac_values != NULL)
-	memcpy(frac_values, this->frac_values + i * device_num_components, sizeof(*frac_values) * device_num_components);
-    return 0;
-}
+/* Copyright (C) 2001-2007 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$ */
+/* A color index cache. */
+#include "gx.h"
+#include "gserrors.h"
+#include "gsccolor.h"
+#include "gxcspace.h"
+#include "gxdcolor.h"
+#include "gscicach.h"
+#include "memory_.h"
+
+#define COLOR_INDEX_CACHE_SIZE 256
+#define COLOR_INDEX_CACHE_CHAINS (COLOR_INDEX_CACHE_SIZE / 16)
+
+typedef struct gs_color_index_cache_elem_s gs_color_index_cache_elem_t;
+
+struct gs_color_index_cache_elem_s {
+    gx_color_index cindex;
+    uint chain;
+    uint prev, next; /* NULL for unused. */
+    uint touch_prev, touch_next;
+    bool frac_values_done;
+};
+
+struct gs_color_index_cache_s {
+    const gs_color_space *direct_space;
+    gs_imager_state *pis;
+    gx_device *dev;
+    int client_num_components;
+    int device_num_components;
+    gs_memory_t *memory;
+    int used;
+    gs_color_index_cache_elem_t *buf;
+    uint recent_touch;
+    float *paint_values;
+    frac31 *frac_values;
+    int chains[COLOR_INDEX_CACHE_CHAINS];
+    /* Note : the 0th element of buf, paint_values, frac_values is never used,
+       because we consider the index 0 as NULL
+       just for a faster initialization. */
+#   define MYNULL 0
+};
+
+
+
+gs_private_st_ptrs5(st_color_index_cache, gs_color_index_cache_t, "gs_color_index_cache_t",
+		    gs_color_index_cache_elem_ptrs, gs_color_index_cache_reloc_ptrs,
+		    direct_space, memory, buf, paint_values, frac_values);
+
+gs_color_index_cache_t *
+gs_color_index_cache_create(gs_memory_t *memory, const gs_color_space *direct_space, gx_device *dev, gs_imager_state *pis, bool need_frac)
+{
+    int client_num_components = cs_num_components(direct_space);
+    int device_num_components = dev->color_info.num_components;
+    gs_color_index_cache_elem_t *buf = ( gs_color_index_cache_elem_t *)gs_alloc_byte_array(memory, COLOR_INDEX_CACHE_SIZE, 
+		    sizeof(gs_color_index_cache_elem_t), "gs_color_index_cache_create");
+    float *paint_values = (float *)gs_alloc_byte_array(memory, COLOR_INDEX_CACHE_SIZE * client_num_components, 
+		    sizeof(float), "gs_color_index_cache_create");
+    frac31 *frac_values = (need_frac ? (frac31 *)gs_alloc_byte_array(memory, COLOR_INDEX_CACHE_SIZE * device_num_components, 
+					    sizeof(frac31), "gs_color_index_cache_create") : NULL);
+    gs_color_index_cache_t *pcic = gs_alloc_struct(memory, gs_color_index_cache_t, &st_color_index_cache, "gs_color_index_cache_create");
+
+    if (buf == NULL || paint_values == NULL || (need_frac && frac_values == NULL) || pcic == NULL) {
+	gs_free_object(memory, buf, "gs_color_index_cache_create");
+	gs_free_object(memory, paint_values, "gs_color_index_cache_create");
+	gs_free_object(memory, frac_values, "gs_color_index_cache_create");
+	gs_free_object(memory, pcic, "gs_color_index_cache_create");
+	return NULL;
+    }
+    memset(pcic, 0, sizeof(*pcic));
+    memset(buf, 0, COLOR_INDEX_CACHE_SIZE * sizeof(gs_color_index_cache_elem_t));
+    pcic->direct_space = direct_space;
+    pcic->pis = pis;
+    pcic->dev = dev;
+    pcic->device_num_components = device_num_components;
+    pcic->client_num_components = client_num_components;
+    pcic->memory = memory;
+    pcic->used = 1; /* Never use the 0th element. */
+    pcic->buf = buf;
+    pcic->recent_touch = MYNULL;
+    pcic->paint_values = paint_values;
+    pcic->frac_values = frac_values;
+    return pcic;
+}
+
+void 
+gs_color_index_cache_destroy(gs_color_index_cache_t *pcic)
+{
+    gs_free_object(pcic->memory, pcic->buf, "gs_color_index_cache_create");
+    gs_free_object(pcic->memory, pcic->paint_values, "gs_color_index_cache_create");
+    gs_free_object(pcic->memory, pcic->frac_values, "gs_color_index_cache_create");
+    pcic->buf = NULL;
+    pcic->paint_values = NULL;
+    pcic->frac_values = NULL;
+    gs_free_object(pcic->memory, pcic, "gs_color_index_cache_create");
+}
+
+private inline int 
+hash_paint_values(const gs_color_index_cache_t *this, const float *paint_values)
+{
+    int i;
+    float v = 0;
+    uint k = 0;
+    const uint a_prime = 79;
+
+    for (i = 0; i < this->client_num_components; i++) 
+	v = v * a_prime + paint_values[i];
+    /* Don't know the range of v, so hash its bytes : */
+    for(i = 0; i < sizeof(v); i++)
+	k = k * a_prime + ((byte *)&v)[i];
+    return k % COLOR_INDEX_CACHE_CHAINS;
+}
+
+private inline void
+exclude_from_chain(gs_color_index_cache_t *this, uint i)
+{
+    uint co = this->buf[i].chain;
+    uint ip = this->buf[i].prev, in = this->buf[i].next;
+
+    this->buf[ip].next = in;
+    this->buf[in].prev = ip;
+    if (this->chains[co] == i)
+	this->chains[co] = in;
+}
+
+private inline void
+include_into_chain(gs_color_index_cache_t *this, uint i, uint c)
+{
+    if (this->chains[c] != MYNULL) {
+	uint in = this->chains[c], ip = this->buf[in].prev;
+
+	this->buf[i].next = in;
+	this->buf[i].prev = ip;
+	this->buf[in].prev = i;
+	this->buf[ip].next = i;
+    } else
+	this->buf[i].prev = this->buf[i].next = i;
+    this->chains[c] = i;
+    this->buf[i].chain = c;
+}
+
+private inline void
+exclude_from_touch_list(gs_color_index_cache_t *this, uint i)
+{
+    uint ip = this->buf[i].touch_prev, in = this->buf[i].touch_next;
+
+    this->buf[ip].touch_next = in;
+    this->buf[in].touch_prev = ip;
+    if (this->recent_touch == i) {
+	if (i == in)
+	    this->recent_touch = MYNULL;
+	else
+	    this->recent_touch = in;
+    }
+}
+
+private inline void
+include_into_touch_list(gs_color_index_cache_t *this, uint i)
+{
+    if (this->recent_touch != MYNULL) {
+	uint in = this->recent_touch, ip = this->buf[in].touch_prev;
+
+	this->buf[i].touch_next = in;
+	this->buf[i].touch_prev = ip;
+	this->buf[in].touch_prev = i;
+	this->buf[ip].touch_next = i;
+    } else
+	this->buf[i].touch_prev = this->buf[i].touch_next = i;
+    this->recent_touch = i;
+}
+
+private int 
+get_color_index_cache_elem(gs_color_index_cache_t *this, const float *paint_values, uint *pi)
+{
+    int client_num_components = this->client_num_components;
+    uint c = hash_paint_values(this, paint_values);
+    uint i = this->chains[c], j;
+
+    if (i != MYNULL) {
+	uint tries = 16; /* Arbitrary. */
+
+	if (!memcmp(paint_values, this->paint_values + i * client_num_components, sizeof(*paint_values) * client_num_components)) {
+	    if (this->recent_touch != i) {
+		exclude_from_touch_list(this, i);
+		include_into_touch_list(this, i);
+	    }
+	    *pi = i;
+	    return 1;
+	}
+	for (j = this->buf[i].next; tries -- && j != i; j = this->buf[j].next) {
+	    if (!memcmp(paint_values, this->paint_values + j * client_num_components, sizeof(*paint_values) * client_num_components)) {
+		exclude_from_chain(this, j);
+		include_into_chain(this, j, c);
+		if (this->recent_touch != j) {
+		    exclude_from_touch_list(this, j);
+		    include_into_touch_list(this, j);
+		}
+		*pi = j;
+		return 1;
+	    }
+	}
+	tries+=0;
+    }
+    if (this->used < COLOR_INDEX_CACHE_SIZE) {
+	/* Use a new one */
+	i = this->used++;
+	include_into_touch_list(this, i);
+    } else {
+	i = this->recent_touch;
+	this->recent_touch = this->buf[i].touch_prev; /* Assuming the cyclic list, 
+						      just move the head pointer to the last element. */
+	exclude_from_chain(this, i);
+    }
+    include_into_chain(this, i, c);
+    *pi = i;
+    return 0;
+}
+
+private inline void
+compute_frac_values(gs_color_index_cache_t *this, uint i)
+{
+    gx_color_index c = this->buf[i].cindex;
+    const gx_device_color_info *cinfo = &this->dev->color_info;
+    int device_num_components = this->device_num_components;
+    int j;
+
+    for (j = 0; j < device_num_components; j++) {
+	    int shift = cinfo->comp_shift[j];
+	    int bits = cinfo->comp_bits[j];
+
+	    this->frac_values[i * device_num_components + j] = ((c >> shift) & ((1 << bits) - 1)) << (sizeof(frac31) * 8 - 1 - bits);
+    }
+    this->buf[i].frac_values_done = true;
+}
+
+int 
+gs_cached_color_index(gs_color_index_cache_t *this, const float *paint_values, gx_device_color *pdevc, frac31 *frac_values)
+{
+    /* Must return 2 if the color is not pure. 
+       See patch_color_to_device_color. */
+    const gs_color_space *pcs = this->direct_space;
+    int client_num_components = this->client_num_components;
+    int device_num_components = this->device_num_components;
+    uint i;
+    int code;
+
+    if (get_color_index_cache_elem(this, paint_values, &i)) {
+	if (pdevc != NULL) {
+	    pdevc->colors.pure = this->buf[i].cindex;
+	    pdevc->type = &gx_dc_type_data_pure;
+	    memcpy(pdevc->ccolor.paint.values, paint_values, sizeof(*paint_values) * client_num_components);
+	    pdevc->ccolor_valid = true;
+	}
+	if (frac_values != NULL && !this->buf[i].frac_values_done)
+	    compute_frac_values(this, i);
+    } else {
+	gx_device_color devc_local;
+	gs_client_color fcc;
+
+	if (pdevc == NULL)
+	    pdevc = &devc_local;
+	memcpy(this->paint_values + i * client_num_components, paint_values, sizeof(*paint_values) * client_num_components);
+	memcpy(fcc.paint.values, paint_values, sizeof(*paint_values) * client_num_components);
+	code = pcs->type->remap_color(&fcc, pcs, pdevc, this->pis, this->dev, gs_color_select_texture);
+	if (code < 0)
+	    return code;
+	if (pdevc->type != &gx_dc_type_data_pure)
+	    return 2;
+	this->buf[i].cindex = pdevc->colors.pure;
+	
+	if (frac_values != NULL)
+    	    compute_frac_values(this, i);
+	else
+	    this->buf[i].frac_values_done = false;
+    }
+    if (frac_values != NULL)
+	memcpy(frac_values, this->frac_values + i * device_num_components, sizeof(*frac_values) * device_num_components);
+    return 0;
+}


Property changes on: trunk/gs/src/gscicach.c
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native

Modified: trunk/gs/src/gscicach.h
===================================================================
--- trunk/gs/src/gscicach.h	2007-06-19 07:12:43 UTC (rev 8065)
+++ trunk/gs/src/gscicach.h	2007-06-19 07:16:20 UTC (rev 8066)
@@ -1,33 +1,33 @@
-/* Copyright (C) 2001-2007 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: gscicach.h 7765 2007-03-05 21:09:35Z raph $ */
-/* A color index conversion cache. */
-
-#ifndef gscicach_INCLUDED
-#  define gscicach_INCLUDED
-
-#include "gxdevcli.h" /* For frac31. */
-
-#ifndef gs_color_index_cache_DEFINED
-#  define gs_color_index_cache_DEFINED
-typedef struct gs_color_index_cache_s gs_color_index_cache_t;
-#endif
-
-gs_color_index_cache_t *gs_color_index_cache_create(gs_memory_t *memory, 
-		const gs_color_space *direct_space, gx_device *dev, gs_imager_state *pis, bool need_frac);
-void gs_color_index_cache_destroy(gs_color_index_cache_t *this);
-
-int gs_cached_color_index(gs_color_index_cache_t *this, const float *paint_values, gx_device_color *pdevc, frac31 *frac_values);
-
-#endif /* gscicach_INCLUDED */
+/* Copyright (C) 2001-2007 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$ */
+/* A color index conversion cache. */
+
+#ifndef gscicach_INCLUDED
+#  define gscicach_INCLUDED
+
+#include "gxdevcli.h" /* For frac31. */
+
+#ifndef gs_color_index_cache_DEFINED
+#  define gs_color_index_cache_DEFINED
+typedef struct gs_color_index_cache_s gs_color_index_cache_t;
+#endif
+
+gs_color_index_cache_t *gs_color_index_cache_create(gs_memory_t *memory, 
+		const gs_color_space *direct_space, gx_device *dev, gs_imager_state *pis, bool need_frac);
+void gs_color_index_cache_destroy(gs_color_index_cache_t *this);
+
+int gs_cached_color_index(gs_color_index_cache_t *this, const float *paint_values, gx_device_color *pdevc, frac31 *frac_values);
+
+#endif /* gscicach_INCLUDED */


Property changes on: trunk/gs/src/gscicach.h
___________________________________________________________________
Name: svn:keywords
   + Id
Name: svn:eol-style
   + native



More information about the gs-cvs mailing list