Subversion Repositories filter_foundry

Rev

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.