Rev 247 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 247 | Rev 503 | ||
---|---|---|---|
1 | Incompatibilities with GIMP / PSPI |
1 | Incompatibilities with GIMP / PSPI |
2 | ---------------------------------- |
2 | ---------------------------------- |
3 | 3 | ||
4 | 1. Filter cannot be loaded by PSPI, because of a memory error. |
4 | 1. Filter cannot be loaded by PSPI, because of a memory error. |
5 | 5 | ||
6 | Status: FIXED (Bug in FF) in FilterFoundry 1.7 |
6 | Status: FIXED (Bug in FF) in FilterFoundry 1.7 |
7 | 7 | ||
8 | FilterFoundry 1.6 used wrong length values for the TLV (Type, Length, Value) members |
8 | FilterFoundry 1.6 used wrong length values for the TLV (Type, Length, Value) members |
9 | of the PIPL structure (in RC files, and in fixpipl()). |
9 | of the PIPL structure (in RC files, and in fixpipl()). |
10 | The length value must include everything, including paddings of strings. |
10 | The length value must include everything, including paddings of strings. |
11 | 11 | ||
12 | Adobe writes in SPPiPL.h: |
12 | In regards propertyLength, Adobe writes in SPPiPL.h: |
13 | "Number of characters in the data array. Rounded to a multiple of 4." |
13 | "Number of characters in the data array. Rounded to a multiple of 4." |
14 | 14 | ||
15 | On the other hand, the 1997 PICA documentation (page 23) and |
15 | On the other hand, the 1997 PICA documentation (page 23) and |
16 | 1996 "Cross-Application Plug-in Development Resource Guide" describes: |
16 | 1996 "Cross-Application Plug-in Development Resource Guide" describes: |
17 | "Contains the length of the propertyData field. It does not include any padding bytes after |
17 | "[propertyLength] contains the length of the propertyData field. It does not include any padding bytes after |
18 | propertyData to achieve four byte alignment. This field may be zero." |
18 | propertyData to achieve four byte alignment. This field may be zero." |
19 | 19 | ||
20 | I think this is not correct, since even official plugins of Adobe (e.g. "3D Transform.8bf") |
20 | I think this is not correct, since even official plugins of Adobe (e.g. "3D Transform.8bf") and cnvtpipl |
21 | are rounding the length to a multiple of 4 (actually, rounding to the next possible multiple 4, |
21 | are rounding the length to a multiple of 4 (actually, rounding to the next possible multiple 4, |
22 | so that padding is always guaranteed). |
22 | so that padding is always guaranteed). |
- | 23 | Photoshop (tested with Photoshop 7) will crash if the propertyLength follows the definition of PICA. |
|
23 | 24 | ||
24 | 2. Filters will only fill the bottom of the picture, not the whole canvas. |
25 | 2. Filters will only fill the bottom of the picture, not the whole canvas. |
25 | 26 | ||
26 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
27 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
27 | 28 | ||
28 | The reason is that OnContinue/main.c:RequestNext() processes the image in chunks, |
29 | The reason is that OnContinue/main.c:RequestNext() processes the image in chunks, |
29 | and probably due to a bug, PSPI only applies the image data of the last chunk. |
30 | and probably due to a bug, PSPI only applies the image data of the last chunk. |
30 | 31 | ||
31 | Workaround applied in FF 1.7: If the host signature is "GIMP" (PMIG), then we set |
32 | Workaround applied in FF 1.7: If the host signature is "GIMP" (PMIG), then we set |
32 | needall=1 to disable chunked processing. |
33 | needall=1 to disable chunked processing. |
33 | 34 | ||
34 | 3. When you re-open the main window, the formulas of the previous session vanish. |
35 | 3. When you re-open the main window, the formulas of the previous session vanish. |
35 | 36 | ||
36 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
37 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
37 | 38 | ||
38 | The reason is a bug in PSPI: The host should preserve the value of pb->parameters, which PSPI doesn't do. |
39 | The reason is a bug in PSPI: The host should preserve the value of pb->parameters, which PSPI doesn't do. |
39 | Also, all global variables are unloaded, so the plugin cannot preserve any data. |
40 | Also, all global variables are unloaded, so the plugin cannot preserve any data. |
40 | 41 | ||
41 | Workaround in FF 1.7: If the host GIMP is detected, the new function "host_preserves_parameters" returns "true". |
42 | Workaround in FF 1.7: If the host GIMP is detected, the new function "host_preserves_parameters" returns "true". |
42 | This mode saves the filter data into a temporary AFS file and loads it |
43 | This mode saves the filter data into a temporary AFS file and loads it |
43 | when the window is opened again. |
44 | when the window is opened again. |
44 | 45 | ||
45 | Exactly the same problem applies to the IfanView 8BF host. |
46 | Exactly the same problem applies to the IfanView 8BF host. |
46 | 47 | ||
47 | 4. Saving does not work |
48 | 4. Saving does not work |
48 | 49 | ||
49 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
50 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
50 | 51 | ||
51 | Filters could not be saved as AFS files because PSPI can't handle zero-sized handles |
52 | Filters could not be saved as AFS files because PSPI can't handle zero-sized handles |
52 | (PINEWHANDLE), so FF 1.7 is now assigning 1 byte for these. |
53 | (PINEWHANDLE), so FF 1.7 is now assigning 1 byte for these. |
53 | 54 | ||
54 | 5. For a 1920x1080 picture, the fitzoom in GIMP/PSPI is not correct. It is 8% on GIMP but should be 7%. |
55 | 5. For a 1920x1080 picture, the fitzoom in GIMP/PSPI is not correct. It is 8% on GIMP but should be 7%. |
55 | 56 | ||
56 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
57 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
57 | 58 | ||
58 | The reason is that FilterFoundry adjusts the zoom level if the available memory is low. |
59 | The reason is that FilterFoundry adjusts the zoom level if the available memory is low. |
59 | PSPI sets maxSpace to 100 MB hardcoded. It is probably only a dummy value and doesn't |
60 | PSPI sets maxSpace to 100 MB hardcoded. It is probably only a dummy value and doesn't |
60 | resemble the actual space GIMP can assign to the plugin. |
61 | resemble the actual space GIMP can assign to the plugin. |
61 | In Photoshop, maxSpace is 825 MB. |
62 | In Photoshop, maxSpace is 825 MB. |
62 | 63 | ||
63 | Workaround in FF 1.7: If GIMP/PSPI is detected, the adjustment of the zoom level is disabled. |
64 | Workaround in FF 1.7: If GIMP/PSPI is detected, the adjustment of the zoom level is disabled. |
64 | 65 | ||
65 | 6. Standalone filters don't work correctly |
66 | 6. Standalone filters don't work correctly |
66 | 67 | ||
67 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
68 | Status: FIXED (Workaround) in FilterFoundry 1.7 |
68 | 69 | ||
69 | PSPI does not preserve the data of the EntryPoint argument "intptr_t *data". |
70 | PSPI does not preserve the data of the EntryPoint argument "intptr_t *data". |
70 | Therefore, the global data (gdata) object cannot preserved, |
71 | Therefore, the global data (gdata) object cannot preserved, |
71 | and the standalone plugin doesn't "know" that it is a standalone plugin. |
72 | and the standalone plugin doesn't "know" that it is a standalone plugin. |
72 | Exactly the same problem applies to the IfanView 8BF host. |
73 | Exactly the same problem applies to the IfanView 8BF host. |
73 | => The handling in checkandinitparams() has been changed to address this issue. |
74 | => The handling in checkandinitparams() has been changed to address this issue. |
74 | 75 | ||
75 | Furthermore, the preserved "pb->parameters" are in a TEMP file which has |
76 | Furthermore, the preserved "pb->parameters" are in a TEMP file which has |
76 | the same name for each FilterFoundry plugin. Therefore, the "pb->parameters" |
77 | the same name for each FilterFoundry plugin. Therefore, the "pb->parameters" |
77 | are shared between main plugin and all standalone plugins. |
78 | are shared between main plugin and all standalone plugins. |
78 | => In FilterFoundry 1.7.0.4, the file name will contain a hash of the plugin |
79 | => In FilterFoundry 1.7.0.4, the file name will contain a hash of the plugin |
79 | or 0 for the main plugin. |
80 | or 0 for the main plugin. |