Rev 182 | Rev 221 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
167 | dmarschall | 1 | |
169 | dmarschall | 2 | Incompatibilities with GIMP / PSPI Daniel Marschall |
3 | ---------------------------------- 19 Jan 2019 |
||
167 | dmarschall | 4 | |
5 | 1. Filter cannot be loaded by PSPI, because of a memory error. |
||
6 | |||
7 | Status: FIXED (Bug in FF) in FilterFoundry 1.7 |
||
8 | |||
9 | FilterFoundry 1.6 used wrong length values for the TLV (Type, Length, Value) members |
||
178 | dmarschall | 10 | of the PIPL structure (in RC files, and in fixpipl()). |
167 | dmarschall | 11 | The length value must include everything, including paddings of strings. |
12 | |||
169 | dmarschall | 13 | Adobe writes in SPPiPL.h: |
14 | "Number of characters in the data array. Rounded to a multiple of 4." |
||
15 | |||
16 | On the other hand, the 1997 PICA documentation (page 23) and |
||
17 | 1996 "Cross-Application Plug-in Development Resource Guide" describes: |
||
18 | "Contains the length of the propertyData field. It does not include any padding bytes after |
||
19 | propertyData to achieve four byte alignment. This field may be zero." |
||
20 | |||
21 | I think this is not correct, since even official plugins of Adobe (e.g. "3D Transform.8bf") |
||
22 | are rounding the length to a multiple of 4 (actually, rounding to the next possible multiple 4, |
||
192 | daniel-mar | 23 | so that padding is always guaranteed). |
169 | dmarschall | 24 | |
25 | |||
167 | dmarschall | 26 | 2. Filters will only fill the bottom of the picture, not the whole canvas. |
27 | |||
28 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
||
29 | |||
30 | The reason is that OnContinue/main.c:RequestNext() processes the image in chunks, |
||
31 | and probably due to a bug, PSPI only applies the image data of the last chunk. |
||
32 | |||
182 | dmarschall | 33 | Workaround applied in FF 1.7: If the host signature is "GIMP" (PMIG), then we set |
167 | dmarschall | 34 | needall=1 to disable chunked processing. |
35 | |||
169 | dmarschall | 36 | |
167 | dmarschall | 37 | 3. When you re-open the main window, the formulas of the previous session vanish. |
38 | |||
39 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
||
40 | |||
41 | The reason is a bug in PSPI: The host should preserve the value of pb->parameters, which PSPI does not do. |
||
42 | Also, all global variables are unloaded, so the plugin cannot preserve any data. |
||
43 | |||
44 | Workaround in FF 1.7: If the host GIMP is detected, the new flag persistent_savestate will be set. |
||
45 | This mode saves the filter data into a temporary file "tmp.afs" and loads it |
||
46 | when the window is opened again. |
||
47 | |||
169 | dmarschall | 48 | |
167 | dmarschall | 49 | 4. Saving does not work |
50 | |||
51 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
||
52 | |||
53 | Filters could not be saved as AFS files because PSPI can't handle zero-sized handles |
||
54 | (PINEWHANDLE), so FF 1.7 is now assigning 1 byte for these. |
||
169 | dmarschall | 55 | |
56 | |||
192 | daniel-mar | 57 | 5. For a 1920x1080 picture, the fitzoom in GIMP/PSPI is not correct. It is 8% on GIMP but should be 7%. |
169 | dmarschall | 58 | |
59 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
||
60 | |||
61 | The reason is that FilterFoundry adjusts the zoom level if the available memory is low. |
||
192 | daniel-mar | 62 | PSPI sets maxSpace to 100 MB hardcoded. It is probably only a dummy value and doesn't |
174 | dmarschall | 63 | resemble the actual space GIMP can assign to the plugin. |
169 | dmarschall | 64 | In Photoshop, maxSpace is 825 MB. |
65 | |||
66 | Workaround in FF 1.7: If GIMP/PSPI is detected, the adjustment of the zoom level is disabled. |