xref: /plan9/sys/src/cmd/gs/doc/Details.htm (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
1*593dc095SDavid du Colombier<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"   "http://www.w3.org/TR/html4/strict.dtd">
2*593dc095SDavid du Colombier<html>
3*593dc095SDavid du Colombier<head>
4*593dc095SDavid du Colombier<title>Ghostscript change history (detailed)</title></title>
5*593dc095SDavid du Colombier<!-- generated by split_changelog.py from the output of cvs2cl.pl -->
6*593dc095SDavid du Colombier<!-- $Id: Details.htm,v 1.20 2005/10/20 20:14:37 ray Exp $ -->
7*593dc095SDavid du Colombier<link rel=stylesheet type="text/css" href="gs.css">
8*593dc095SDavid du Colombier</head>
9*593dc095SDavid du Colombier<body>
10*593dc095SDavid du Colombier
11*593dc095SDavid du Colombier<p><strong><a name="2005-10-20_1946"></a>
12*593dc095SDavid du Colombier2005-10-20 19:46 Ray Johnston</strong></p>
13*593dc095SDavid du Colombier<blockquote>
14*593dc095SDavid du Colombier<pre>
15*593dc095SDavid du ColombierUpdate doc files and version files for 8.53 release.</pre>
16*593dc095SDavid du Colombier<p>[doc/API.htm 1.53, doc/Bug-form.htm 1.49, doc/Bug-info.htm 1.49, doc/C-style.htm 1.55, doc/Commprod.htm 1.41, doc/Copying.htm 1.39, doc/DLL.htm 1.43, doc/Deprecated.htm 1.20, doc/Details8.htm 1.24, doc/Develop.htm 1.159, doc/Devices.htm 1.90, doc/Drivers.htm 1.58, doc/Fonts.htm 1.51, doc/Helpers.htm 1.44, doc/History1.htm 1.39, doc/History2.htm 1.39, doc/History3.htm 1.39, doc/History4.htm 1.39, doc/History5.htm 1.41, doc/History6.htm 1.56, doc/History7.htm 1.44, doc/History8.htm 1.29, doc/Htmstyle.htm 1.44, doc/Install.htm 1.56, doc/Issues.htm 1.52, doc/Language.htm 1.98, doc/Lib.htm 1.43, doc/Maintain.htm 1.50, doc/Make.htm 1.90, doc/News.htm 1.168, doc/Projects.htm 1.67, doc/Ps-style.htm 1.37, doc/Ps2epsi.htm 1.42, doc/Ps2pdf.htm 1.88, doc/Ps2ps2.htm 1.7, doc/Psfiles.htm 1.68, doc/Readme.htm 1.71, doc/Release.htm 1.95, doc/Source.htm 1.39, doc/Testing.htm 1.37, doc/Unix-lpr.htm 1.39, doc/Use.htm 1.136, doc/Xfonts.htm 1.39, doc/gs-vms.hlp 1.37, man/dvipdf.1 1.37, man/font2c.1 1.37, man/gs.1 1.38, man/gslp.1 1.37, man/gsnd.1 1.37, man/pdf2dsc.1 1.36, man/pdf2ps.1 1.38, man/pdfopt.1 1.36, man/pf2afm.1 1.37, man/pfbtopfa.1 1.38, man/printafm.1 1.37, man/ps2ascii.1 1.37, man/ps2epsi.1 1.35, man/ps2pdf.1 1.42, man/ps2pdfwr.1 1.41, man/ps2ps.1 1.44, man/wftopfa.1 1.37, src/gscdef.c 1.58, src/version.mak 1.87]</p>
17*593dc095SDavid du Colombier</blockquote>
18*593dc095SDavid du Colombier
19*593dc095SDavid du Colombier<p><strong><a name="2005-10-20_1942"></a>
20*593dc095SDavid du Colombier2005-10-20 19:42 Ray Johnston</strong></p>
21*593dc095SDavid du Colombier<blockquote>
22*593dc095SDavid du Colombier<pre>
23*593dc095SDavid du ColombierRemove trailing ^M (<cr>) characters.</pre>
24*593dc095SDavid du Colombier<p>[src/gdevbmp.c 1.12, src/slzwd.c 1.7]</p>
25*593dc095SDavid du Colombier</blockquote>
26*593dc095SDavid du Colombier
27*593dc095SDavid du Colombier<p><strong><a name="2005-10-20_1851"></a>
28*593dc095SDavid du Colombier2005-10-20 18:51 Raph Levien</strong></p>
29*593dc095SDavid du Colombier<blockquote>
30*593dc095SDavid du Colombier<pre>
31*593dc095SDavid du ColombierFixes broken compile on amd64 platforms (see bug #688047 for details).
32*593dc095SDavid du ColombierThis patch should be safe on all platforms with 32-bit longs, and is
33*593dc095SDavid du Colombiermy best guess as to the right thing to do on Tru64 (where long is 64
34*593dc095SDavid du Colombierbits).</pre>
35*593dc095SDavid du Colombier<p>[src/tttypes.h 1.3]</p>
36*593dc095SDavid du Colombier</blockquote>
37*593dc095SDavid du Colombier
38*593dc095SDavid du Colombier<p><strong><a name="2005-10-20_1304"></a>
39*593dc095SDavid du Colombier2005-10-20 13:04 Igor Melichev</strong></p>
40*593dc095SDavid du Colombier<blockquote>
41*593dc095SDavid du Colombier<pre>
42*593dc095SDavid du ColombierFix (pdfwrite) : Suppress floating point number format in pdfmark operands (continued 2).
43*593dc095SDavid du Colombier
44*593dc095SDavid du ColombierDETAILS :
45*593dc095SDavid du Colombier
46*593dc095SDavid du ColombierBug 688167 "change of real number fomat from fixed to exponential format".
47*593dc095SDavid du Colombier
48*593dc095SDavid du ColombierThe last patch doesn't correctly handle numbers between 1e-7 and 1e-2.
49*593dc095SDavid du Colombier
50*593dc095SDavid du ColombierEXPECTED DIFFERENCES :
51*593dc095SDavid du Colombier
52*593dc095SDavid du ColombierNone.</pre>
53*593dc095SDavid du Colombier<p>[lib/gs_pdfwr.ps 1.52]</p>
54*593dc095SDavid du Colombier</blockquote>
55*593dc095SDavid du Colombier
56*593dc095SDavid du Colombier<p><strong><a name="2005-10-18_2031"></a>
57*593dc095SDavid du Colombier2005-10-18 20:31 Igor Melichev</strong></p>
58*593dc095SDavid du Colombier<blockquote>
59*593dc095SDavid du Colombier<pre>
60*593dc095SDavid du ColombierFix (pdfwrite) : Suppress floating point number format in pdfmark operands (continued).
61*593dc095SDavid du Colombier
62*593dc095SDavid du ColombierDETAILS :
63*593dc095SDavid du Colombier
64*593dc095SDavid du ColombierBug 688167 "change of real number fomat from fixed to exponential format".
65*593dc095SDavid du Colombier
66*593dc095SDavid du ColombierThis improves the patch
67*593dc095SDavid du Colombierhttp://ghostscript.com/pipermail/gs-cvs/2005-September/005717.html
68*593dc095SDavid du Colombierwith writing small reals in a fixed point number format.
69*593dc095SDavid du Colombier
70*593dc095SDavid du ColombierWe did it after Raph's request in Comment #5 of the bug 688167.
71*593dc095SDavid du ColombierBut we don't see a visible difference against the old implementation with any viewer.
72*593dc095SDavid du ColombierTherefore we believe that we shouldn't have done it (as we did before the implementation).
73*593dc095SDavid du ColombierStoring it now mainly for archiving purpose.
74*593dc095SDavid du Colombier
75*593dc095SDavid du ColombierIf this change causes a problem, the author has no objection for unwinding it.
76*593dc095SDavid du Colombier
77*593dc095SDavid du ColombierEXPECTED DIFFERENCES :
78*593dc095SDavid du Colombier
79*593dc095SDavid du ColombierNone.</pre>
80*593dc095SDavid du Colombier<p>[lib/gs_pdfwr.ps 1.51]</p>
81*593dc095SDavid du Colombier</blockquote>
82*593dc095SDavid du Colombier
83*593dc095SDavid du Colombier<p><strong><a name="2005-10-18_0905"></a>
84*593dc095SDavid du Colombier2005-10-18 09:05 Igor Melichev</strong></p>
85*593dc095SDavid du Colombier<blockquote>
86*593dc095SDavid du Colombier<pre>
87*593dc095SDavid du ColombierFix (pdfwrite) : Indexed colors were distorsed with encryption.
88*593dc095SDavid du Colombier
89*593dc095SDavid du ColombierDETAILS :
90*593dc095SDavid du Colombier
91*593dc095SDavid du ColombierBug 688313 "pdfwrite : image colors depend on encryption".
92*593dc095SDavid du Colombier
93*593dc095SDavid du ColombierThe old code applied encryption with a wrong (zero) object id to
94*593dc095SDavid du Colombierthe palette of the indexed color space. After a viewer decrypts
95*593dc095SDavid du Colombierthe palette with a right object id, colors appear wrong.
96*593dc095SDavid du Colombier
97*593dc095SDavid du Colombier1. Use the PS string encoding instead the hexadecimal string encoding
98*593dc095SDavid du Colombierwhile converting the palette to PDF format (gdevpdfc.c).
99*593dc095SDavid du ColombierIt provides a correct work of the part 3 below.
100*593dc095SDavid du ColombierSee also part 4 below.
101*593dc095SDavid du Colombier
102*593dc095SDavid du Colombier2. Don't apply encryption when adding the palette
103*593dc095SDavid du Colombierto cos object (gdevpdfc.c, devs.mak).
104*593dc095SDavid du ColombierThe old code was hacky, and new one is based on a general convention.
105*593dc095SDavid du Colombier
106*593dc095SDavid du Colombier3. Apply encryption with a right object id
107*593dc095SDavid du Colombierto the string which represents the palette
108*593dc095SDavid du Colombierwhen writing the cos object to the output PDF file.
109*593dc095SDavid du ColombierThis is an implicit consequence of
110*593dc095SDavid du Colombierusing the PS string encoding in the part 1
111*593dc095SDavid du Colombierdue to a general convention about
112*593dc095SDavid du Colombierapplying encryption when writing cos objects to the output file.
113*593dc095SDavid du Colombier
114*593dc095SDavid du Colombier4. Disable writing hexadecimal strings because their
115*593dc095SDavid du Colombierencryption is not yet implemented (gdevpdfu.c).
116*593dc095SDavid du Colombier
117*593dc095SDavid du ColombierThe generated PDF may become longer in 1-2 kilobytes per palette
118*593dc095SDavid du Colombierdue to PS encoding is less effective for palettes.
119*593dc095SDavid du ColombierThis could be optimized with implelenting an encryption method
120*593dc095SDavid du Colombierfor hexadecimal encoded strings in pdf_put_encoded_hex_string,
121*593dc095SDavid du Colombierand undo the part 1. The method should apply 3 filters :
122*593dc095SDavid du Colombierhexadecimal string decode, arc4 encode, hexadecimal string encode,
123*593dc095SDavid du Colombierbecause cos object stores strings in the outer format.
124*593dc095SDavid du ColombierDelaying this optimization for better times.
125*593dc095SDavid du Colombier
126*593dc095SDavid du ColombierEXPECTED DIFFERENCES :
127*593dc095SDavid du Colombier
128*593dc095SDavid du ColombierNone.</pre>
129*593dc095SDavid du Colombier<p>[src/devs.mak 1.140, src/gdevpdfc.c 1.54, src/gdevpdfo.c 1.35, src/gdevpdfu.c 1.89]</p>
130*593dc095SDavid du Colombier</blockquote>
131*593dc095SDavid du Colombier
132*593dc095SDavid du Colombier<p><strong><a name="2005-10-18_0758"></a>
133*593dc095SDavid du Colombier2005-10-18 07:58 Igor Melichev</strong></p>
134*593dc095SDavid du Colombier<blockquote>
135*593dc095SDavid du Colombier<pre>
136*593dc095SDavid du ColombierFix (pdfwrite) : Propagate error codes from pdf_write_value.
137*593dc095SDavid du Colombier
138*593dc095SDavid du ColombierDETAILS :
139*593dc095SDavid du Colombier
140*593dc095SDavid du ColombierThis is a preparation for fixing the bug
141*593dc095SDavid du Colombier688313 "pdfwrite : image colors depend on encryption".
142*593dc095SDavid du Colombier
143*593dc095SDavid du ColombierIn cases when no error happens, this code is algorithmocally equivalent.
144*593dc095SDavid du Colombier
145*593dc095SDavid du ColombierEXPECTED DIFFERENCES :
146*593dc095SDavid du Colombier
147*593dc095SDavid du ColombierNone.</pre>
148*593dc095SDavid du Colombier<p>[src/gdevpdfo.c 1.34, src/gdevpdfu.c 1.88, src/gdevpdfx.h 1.138]</p>
149*593dc095SDavid du Colombier</blockquote>
150*593dc095SDavid du Colombier
151*593dc095SDavid du Colombier<p><strong><a name="2005-10-17_1923"></a>
152*593dc095SDavid du Colombier2005-10-17 19:23 Igor Melichev</strong></p>
153*593dc095SDavid du Colombier<blockquote>
154*593dc095SDavid du Colombier<pre>
155*593dc095SDavid du ColombierFix (pdfwrite) : /BP pdfmark could create dead PDF objects (continiued).
156*593dc095SDavid du Colombier
157*593dc095SDavid du ColombierDETAILS :
158*593dc095SDavid du Colombier
159*593dc095SDavid du ColombierBug 687560 "Invalid PDF if /BP pdfmarks with non-unique /_objdef".
160*593dc095SDavid du Colombier
161*593dc095SDavid du Colombier1. Prevent a potential crash while dereferencing NULL.
162*593dc095SDavid du Colombier2. Don't put unnamed objects into local_named_objects.
163*593dc095SDavid du Colombier
164*593dc095SDavid du ColombierThanks to SaGS for pointing these problems out.
165*593dc095SDavid du Colombier
166*593dc095SDavid du ColombierEXPECTED DIFFERENCES :
167*593dc095SDavid du Colombier
168*593dc095SDavid du ColombierNone.</pre>
169*593dc095SDavid du Colombier<p>[src/gdevpdfm.c 1.50]</p>
170*593dc095SDavid du Colombier</blockquote>
171*593dc095SDavid du Colombier
172*593dc095SDavid du Colombier<p><strong><a name="2005-10-12_1759"></a>
173*593dc095SDavid du Colombier2005-10-12 17:59 Igor Melichev</strong></p>
174*593dc095SDavid du Colombier<blockquote>
175*593dc095SDavid du Colombier<pre>
176*593dc095SDavid du ColombierFix : Don't instantiate pattern when rendering to null device.
177*593dc095SDavid du Colombier
178*593dc095SDavid du ColombierDETAILS :
179*593dc095SDavid du Colombier
180*593dc095SDavid du ColombierBug 688308 "Error: undefined; OffendingCommand: .type1execchar".
181*593dc095SDavid du Colombier
182*593dc095SDavid du ColombierThe test case executes cshow or kshow with intrevene changing
183*593dc095SDavid du Colombierthe current color space, causing a color load callout from fill_with_rule
184*593dc095SDavid du Colombier_after_ the callout completes. After that the check
185*593dc095SDavid du Colombierctile->depth == dev->color_info.depth in gx_pattern_cache_lookup fails
186*593dc095SDavid du Colombier(not sure why - probably due to gsave-grestore in the pattern procedure).
187*593dc095SDavid du ColombierThis patch skips entire character drawing when the device is null,
188*593dc095SDavid du Colombierso that those cumbersome stuff isn't envolved.
189*593dc095SDavid du Colombier
190*593dc095SDavid du ColombierEXPECTED DIFFERENCES :
191*593dc095SDavid du Colombier
192*593dc095SDavid du ColombierNone.</pre>
193*593dc095SDavid du Colombier<p>[src/gsdevice.c 1.25, src/gspaint.c 1.10, src/gxdevcli.h 1.41]</p>
194*593dc095SDavid du Colombier</blockquote>
195*593dc095SDavid du Colombier
196*593dc095SDavid du Colombier<p><strong><a name="2005-10-12_1105"></a>
197*593dc095SDavid du Colombier2005-10-12 11:05 Igor Melichev</strong></p>
198*593dc095SDavid du Colombier<blockquote>
199*593dc095SDavid du Colombier<pre>
200*593dc095SDavid du ColombierImplementing a pointer stability validation in the garbager, continued.
201*593dc095SDavid du Colombier
202*593dc095SDavid du ColombierDETAILS :
203*593dc095SDavid du Colombier
204*593dc095SDavid du ColombierThis patch is currently disabled, so the change is syntactically equivalent.
205*593dc095SDavid du Colombier
206*593dc095SDavid du ColombierBug 688226 "The garbager must check a pointer stability.".
207*593dc095SDavid du Colombier
208*593dc095SDavid du ColombierThis fixes a minor bug in the last patch.
209*593dc095SDavid du Colombier
210*593dc095SDavid du ColombierEXPECTED DIFFERENCES :
211*593dc095SDavid du Colombier
212*593dc095SDavid du ColombierNone.</pre>
213*593dc095SDavid du Colombier<p>[src/ilocate.c 1.14]</p>
214*593dc095SDavid du Colombier</blockquote>
215*593dc095SDavid du Colombier
216*593dc095SDavid du Colombier<p><strong><a name="2005-10-12_1045"></a>
217*593dc095SDavid du Colombier2005-10-12 10:45 Igor Melichev</strong></p>
218*593dc095SDavid du Colombier<blockquote>
219*593dc095SDavid du Colombier<pre>
220*593dc095SDavid du ColombierImplementing a pointer stability validation in the garbager.
221*593dc095SDavid du Colombier
222*593dc095SDavid du ColombierDETAILS :
223*593dc095SDavid du Colombier
224*593dc095SDavid du ColombierThis patch is currently disabled, so the change is syntacticly equivalent.
225*593dc095SDavid du Colombier
226*593dc095SDavid du ColombierBug 688226 "The garbager must check a pointer stability.".
227*593dc095SDavid du Colombier
228*593dc095SDavid du ColombierThis patch extends the object header with a space order number field,
229*593dc095SDavid du Colombierand compares the origin and the destination order numbers for each pointer
230*593dc095SDavid du Colombierwhile validating the heap. The enhanced object header is still
231*593dc095SDavid du Colombierwithin 16 bytes with the 32-bits architecture. See ialloc_validate_pointer_stability
232*593dc095SDavid du Colombierabout the order number definition.
233*593dc095SDavid du Colombier
234*593dc095SDavid du ColombierThis patch detected so many problems while running any document,
235*593dc095SDavid du Colombieras we can't enable it now. It is disabled with IGC_PTR_STABILITY_CHECK
236*593dc095SDavid du Colombiermacro defined in gxobj.h .
237*593dc095SDavid du Colombier
238*593dc095SDavid du ColombierEXPECTED DIFFERENCES :
239*593dc095SDavid du Colombier
240*593dc095SDavid du ColombierNone.</pre>
241*593dc095SDavid du Colombier<p>[src/gsalloc.c 1.24, src/gxalloc.h 1.12, src/gxobj.h 1.7, src/ialloc.c 1.8, src/ilocate.c 1.13]</p>
242*593dc095SDavid du Colombier</blockquote>
243*593dc095SDavid du Colombier
244*593dc095SDavid du Colombier<p><strong><a name="2005-10-12_0816"></a>
245*593dc095SDavid du Colombier2005-10-12 08:16 Igor Melichev</strong></p>
246*593dc095SDavid du Colombier<blockquote>
247*593dc095SDavid du Colombier<pre>
248*593dc095SDavid du ColombierFix (pdfwrite) : Skip a clip path, which is set by setcachedevice (continued after July 28 205).
249*593dc095SDavid du Colombier
250*593dc095SDavid du ColombierDETAILS :
251*593dc095SDavid du Colombier
252*593dc095SDavid du ColombierBug 687678 "pdfwrite : A Type 3 character cut-off".
253*593dc095SDavid du ColombierBug 688327 "incorrect masking fill in pdfwrite".
254*593dc095SDavid du Colombier
255*593dc095SDavid du ColombierThe old patch for this problem appears to define a too weak
256*593dc095SDavid du Colombiercondition for recognizing a clipping set by setcachedevice, sectachedevice2.
257*593dc095SDavid du Colombier
258*593dc095SDavid du ColombierNow we think that a special stuff for this condition isn't needed because
259*593dc095SDavid du Colombierthe condition may be united with the contition for "setcharwidth" :
260*593dc095SDavid du Colombierboth things need to skip the clipping path, which was set exactly by
261*593dc095SDavid du Colombiersetcachedevice, sectachedevice2 or setcharwidth.
262*593dc095SDavid du ColombierChecking the rectangle coordinates is not relevant.
263*593dc095SDavid du Colombier
264*593dc095SDavid du ColombierTherefore the change consists of 2 parts :
265*593dc095SDavid du Colombier1. Unwinding the patch http://ghostscript.com/pipermail/gs-cvs/2005-July/005625.html (IM1358)
266*593dc095SDavid du Colombier   (see also http://ghostscript.com/pipermail/gs-cvs/2005-July/005626.html).
267*593dc095SDavid du Colombier2. Remowing the (control == TEXT_SET_CHAR_WIDTH) check from pdf_text_set_cache,
268*593dc095SDavid du Colombier   so that the "caching" clipping path will be skipped in any case.
269*593dc095SDavid du Colombier
270*593dc095SDavid du ColombierWill add Bug688327.ps to comparefiles.
271*593dc095SDavid du Colombier
272*593dc095SDavid du ColombierEXPECTED DIFFERENCES :
273*593dc095SDavid du Colombier
274*593dc095SDavid du ColombierNone.</pre>
275*593dc095SDavid du Colombier<p>[src/gdevpdfb.h 1.14, src/gdevpdfd.c 1.71, src/gdevpdfx.h 1.137, src/gdevpdti.c 1.53, src/gdevpdtt.c 1.104]</p>
276*593dc095SDavid du Colombier</blockquote>
277*593dc095SDavid du Colombier
278*593dc095SDavid du Colombier<p><strong><a name="2005-10-11_1004"></a>
279*593dc095SDavid du Colombier2005-10-11 10:04 Igor Melichev</strong></p>
280*593dc095SDavid du Colombier<blockquote>
281*593dc095SDavid du Colombier<pre>
282*593dc095SDavid du ColombierFix (PS interpreter) : Allocate gs_screen_enum in same space as its components.
283*593dc095SDavid du Colombier
284*593dc095SDavid du ColombierDETAILS :
285*593dc095SDavid du Colombier
286*593dc095SDavid du ColombierBug 688330 "A dangling pointer in gx_screen_enum.".
287*593dc095SDavid du Colombier
288*593dc095SDavid du ColombierThe old code allocates gs_screen_enum in current memory space and frees to
289*593dc095SDavid du Colombierthe memory space of its components, which is obtained from
290*593dc095SDavid du Colombierthe 'setscreen' operand (the spot function).
291*593dc095SDavid du ColombierIn the test case the first memory space is local, and the second one is global.
292*593dc095SDavid du ColombierWe guess the last statement became true after a recent change to the PDF interpreter.
293*593dc095SDavid du Colombier
294*593dc095SDavid du ColombierThis patch allocates gs_screen_enum in same space as its components.
295*593dc095SDavid du ColombierThe pritotype of zscreen_enum_init has been changed due to no method for
296*593dc095SDavid du Colombierobtaining a space attribute value for iref from a gs_memory_t instance
297*593dc095SDavid du Colombier(well, generally it is impossible, but one could solve if the memory
298*593dc095SDavid du Colombierallocator is a PS interpreter's allocator except stable ones).
299*593dc095SDavid du Colombier
300*593dc095SDavid du ColombierWe noticed that components of gs_screen_enum have pointers to memory
301*593dc095SDavid du Colombierallocator structures, but don't list them in the related memory descriptors.
302*593dc095SDavid du ColombierWe're not sure whether a memory allocator structure may relocate or not -
303*593dc095SDavid du Colombierour investigation through code didn't give an unique answer.
304*593dc095SDavid du ColombierFor now we leave component descriptors as they were before the patch.
305*593dc095SDavid du Colombier
306*593dc095SDavid du ColombierEXPECTED DIFFERENCES :
307*593dc095SDavid du Colombier
308*593dc095SDavid du ColombierNone.</pre>
309*593dc095SDavid du Colombier<p>[src/iht.h 1.6, src/zht.c 1.8, src/zht1.c 1.7, src/zht2.c 1.14]</p>
310*593dc095SDavid du Colombier</blockquote>
311*593dc095SDavid du Colombier
312*593dc095SDavid du Colombier<p><strong><a name="2005-10-10_1909"></a>
313*593dc095SDavid du Colombier2005-10-10 19:09 Igor Melichev</strong></p>
314*593dc095SDavid du Colombier<blockquote>
315*593dc095SDavid du Colombier<pre>
316*593dc095SDavid du ColombierFix: Cygwin/gcc warninhs.
317*593dc095SDavid du Colombier
318*593dc095SDavid du ColombierEXPECTED DIFFERENCES :
319*593dc095SDavid du Colombier
320*593dc095SDavid du ColombierNone.</pre>
321*593dc095SDavid du Colombier<p>[src/devs.mak 1.139, src/gdevpdfb.c 1.34]</p>
322*593dc095SDavid du Colombier</blockquote>
323*593dc095SDavid du Colombier
324*593dc095SDavid du Colombier<p><strong><a name="2005-10-10_1858"></a>
325*593dc095SDavid du Colombier2005-10-10 18:58 Igor Melichev</strong></p>
326*593dc095SDavid du Colombier<blockquote>
327*593dc095SDavid du Colombier<pre>
328*593dc095SDavid du ColombierOptimizing the transparency compositor.
329*593dc095SDavid du Colombier
330*593dc095SDavid du ColombierDETAILS :
331*593dc095SDavid du Colombier
332*593dc095SDavid du ColombierBug 688255 "ai7 pdf fails on 7.03, runs for ten + minutes on 8.51".
333*593dc095SDavid du Colombier
334*593dc095SDavid du ColombierThe old code always allocates a transparency buffers for entire band.
335*593dc095SDavid du ColombierThe new code accounts group bbox to minimize buffers.
336*593dc095SDavid du ColombierDue to that buffers appear empty for many of bands.
337*593dc095SDavid du ColombierThe time consumption for the test case of the bug 688255 is dropped in about 100 times
338*593dc095SDavid du Colombier(from 8000 seconds to 71 seconds on a 3.07GHz machine, measured with debug build).
339*593dc095SDavid du Colombier
340*593dc095SDavid du Colombier1. The transparency bbox computes in pdf14_begin_transparency_group from
341*593dc095SDavid du Colombier   the group bbox and the CTM (gdevp14.c).
342*593dc095SDavid du Colombier2. Handle an empty buffer pdf14_buf_new, pdf14_pop_transparency_group (gdevp14.c).
343*593dc095SDavid du Colombier3. Fixed a bug in the rectangle clipping in
344*593dc095SDavid du Colombier   pdf14_mark_fill_rectangle, pdf14_mark_fill_rectangle_ko_simple.
345*593dc095SDavid du Colombier   The old code didn't sense it because bbox always covered entire band (gdevp14.c).
346*593dc095SDavid du Colombier4. Write the bbox to clist in c_pdf14trans_write and read it in c_pdf14trans_read.
347*593dc095SDavid du Colombier5. The pdf14 compositor needs CTM to transform the group bbox to the device space.
348*593dc095SDavid du Colombier   Forced the writing of CTM to clist before writing the compositor in clist_create_compositor.
349*593dc095SDavid du Colombier   (Sorry, it appears some ugly due to pcte->type->procs.write creates a body
350*593dc095SDavid du Colombier   of a command, but we need to create a set of two commands;
351*593dc095SDavid du Colombier   Another minor optimization - a narrowing the set of bands - is delayed,
352*593dc095SDavid du Colombier   see comments in code in clist_create_compositor) (gxclimag.c).
353*593dc095SDavid du Colombier6. New functions cmd_write_ctm_return_length, cmd_write_ctm are factored out for (5)
354*593dc095SDavid du Colombier   (gxclpath.c, gxclpath.h). This part of the change is algorithmically eqiuivalent.
355*593dc095SDavid du Colombier7. Minor change : fixed coding style of "} else {" in gdevp14.c .
356*593dc095SDavid du Colombier
357*593dc095SDavid du ColombierEXPECTED DIFFERENCES :
358*593dc095SDavid du Colombier
359*593dc095SDavid du ColombierNone.</pre>
360*593dc095SDavid du Colombier<p>[src/gdevp14.c 1.35, src/gxclimag.c 1.13, src/gxclpath.c 1.21, src/gxclpath.h 1.13]</p>
361*593dc095SDavid du Colombier</blockquote>
362*593dc095SDavid du Colombier
363*593dc095SDavid du Colombier<p><strong><a name="2005-10-07_1949"></a>
364*593dc095SDavid du Colombier2005-10-07 19:49 Ray Johnston</strong></p>
365*593dc095SDavid du Colombier<blockquote>
366*593dc095SDavid du Colombier<pre>
367*593dc095SDavid du ColombierAdd missing space in CVS PRE-RELEASE string.</pre>
368*593dc095SDavid du Colombier<p>[src/gscdef.c 1.57]</p>
369*593dc095SDavid du Colombier</blockquote>
370*593dc095SDavid du Colombier
371*593dc095SDavid du Colombier<p><strong><a name="2005-10-07_1946"></a>
372*593dc095SDavid du Colombier2005-10-07 19:46 Ray Johnston</strong></p>
373*593dc095SDavid du Colombier<blockquote>
374*593dc095SDavid du Colombier<pre>
375*593dc095SDavid du ColombierBump version after the 8.52 release (to 8.53 CVS PRE-RELEASE).</pre>
376*593dc095SDavid du Colombier<p>[doc/News.htm 1.167, lib/gs_init.ps 1.120, src/gscdef.c 1.56, src/version.mak 1.86]</p>
377*593dc095SDavid du Colombier</blockquote>
378*593dc095SDavid du Colombier</body>
379*593dc095SDavid du Colombier</html>
380