1
#! /bin/sh /usr/share/dpatch/dpatch-run
2
## gs-cups-rgb-gamma.dpatch by <till.kamppeter@gmail.com>
4
## All lines beginning with `## DP:' are a description of the patch.
8
diff -urNad ghostscript-8.70.dfsg.1~/cups/gdevcups.c ghostscript-8.70.dfsg.1/cups/gdevcups.c
9
--- ghostscript-8.70.dfsg.1~/cups/gdevcups.c 2009-05-21 00:30:48.000000000 +0200
10
+++ ghostscript-8.70.dfsg.1/cups/gdevcups.c 2009-12-07 20:21:40.295937509 +0100
12
frac k, /* I - Black value */
13
frac *out) /* O - Device colors */
15
- int c0, c1, c2; /* Temporary color values */
16
+ int c0, c1, c2, c3; /* Temporary color values */
17
float rr, rg, rb, /* Real RGB colors */
18
ciex, ciey, ciez, /* CIE XYZ colors */
19
ciey_yn, /* Normalized luminance */
20
@@ -1090,44 +1090,56 @@
21
switch (cups->header.cupsColorSpace)
24
- c0 = frac_1 - (c * 31 + m * 61 + y * 8) / 100 - k;
26
+ c0 = (c * 31 + m * 61 + y * 8) / 100 + k;
32
- out[0] = (frac)cupsDensity[frac_1];
34
- out[0] = (frac)cupsDensity[c0];
36
+ out[0] = frac_1 - (frac)cupsDensity[c0];
39
case CUPS_CSPACE_RGBA :
42
case CUPS_CSPACE_RGB :
43
- c0 = frac_1 - c - k;
44
- c1 = frac_1 - m - k;
45
- c2 = frac_1 - y - k;
46
+ case CUPS_CSPACE_RGBW :
47
+ if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) {
62
- out[0] = (frac)cupsDensity[frac_1];
64
- out[0] = (frac)cupsDensity[c0];
66
+ out[0] = frac_1 - (frac)cupsDensity[c0];
72
- out[1] = (frac)cupsDensity[frac_1];
74
- out[1] = (frac)cupsDensity[c1];
76
+ out[1] = frac_1 - (frac)cupsDensity[c1];
82
- out[2] = (frac)cupsDensity[frac_1];
84
- out[2] = (frac)cupsDensity[c2];
86
+ out[2] = frac_1 - (frac)cupsDensity[c2];
88
+ if (cups->header.cupsColorSpace == CUPS_CSPACE_RGBW) {
91
+ else if (c3 > frac_1)
93
+ out[3] = frac_1 - (frac)cupsDensity[c3];
98
@@ -1196,11 +1208,6 @@
99
out[2] = (frac)cupsDensity[c2];
102
- case CUPS_CSPACE_RGBW :
107
case CUPS_CSPACE_CMYK :