Subversion Repositories filter_foundry

Rev

Rev 247 | Details | Compare with Previous | Last modification | View Log | RSS feed

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