Subversion Repositories filter_foundry

Rev

Rev 246 | Go to most recent revision | 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
 
169 dmarschall 12
	Adobe writes in SPPiPL.h:
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:
17
	"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."
19
 
20
	I think this is not correct, since even official plugins of Adobe (e.g. "3D Transform.8bf")
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).
169 dmarschall 23
 
167 dmarschall 24
2. Filters will only fill the bottom of the picture, not the whole canvas.
25
 
26
	Status: FIXED (Workaround) in FilterFoundry 1.7
27
 
28
	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
 
182 dmarschall 31
	Workaround applied in FF 1.7: If the host signature is "GIMP" (PMIG), then we set
167 dmarschall 32
	needall=1 to disable chunked processing.
33
 
34
3. When you re-open the main window, the formulas of the previous session vanish.
35
 
36
	Status: FIXED (Workaround) in FilterFoundry 1.7
37
 
246 daniel-mar 38
	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.
167 dmarschall 40
 
247 daniel-mar 41
	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
167 dmarschall 43
	when the window is opened again.
44
 
246 daniel-mar 45
	Exactly the same problem applies to the IfanView 8BF host.
46
 
167 dmarschall 47
4. Saving does not work
48
 
49
	Status: FIXED (Workaround) in FilterFoundry 1.7
50
 
51
	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.
169 dmarschall 53
 
192 daniel-mar 54
5. For a 1920x1080 picture, the fitzoom in GIMP/PSPI is not correct. It is 8% on GIMP but should be 7%.
169 dmarschall 55
 
56
	Status: FIXED (Workaround) in FilterFoundry 1.7
57
 
58
	The reason is that FilterFoundry adjusts the zoom level if the available memory is low.
192 daniel-mar 59
	PSPI sets maxSpace to 100 MB hardcoded. It is probably only a dummy value and doesn't
174 dmarschall 60
	resemble the actual space GIMP can assign to the plugin.
169 dmarschall 61
	In Photoshop, maxSpace is 825 MB.
62
 
63
	Workaround in FF 1.7: If GIMP/PSPI is detected, the adjustment of the zoom level is disabled.
246 daniel-mar 64
 
247 daniel-mar 65
6. Standalone filters don't work correctly
246 daniel-mar 66
 
247 daniel-mar 67
	Status: FIXED (Workaround) in FilterFoundry 1.7
246 daniel-mar 68
 
69
	PSPI does not preserve the data of the EntryPoint argument "intptr_t *data".
70
	Therefore, the global data (gdata) object cannot preserved,
71
	and the standalone plugin doesn't "know" that it is a standalone plugin.
247 daniel-mar 72
	Exactly the same problem applies to the IfanView 8BF host.
73
	=> The handling in checkandinitparams() has been changed to address this issue.
246 daniel-mar 74
 
75
	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
	are shared between main plugin and all standalone plugins.
247 daniel-mar 78
	=> In FilterFoundry 1.7.0.4, the file name will contain a hash of the plugin
79
	   or 0 for the main plugin.