Subversion Repositories filter_foundry

Rev

Rev 521 | Rev 537 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 521 Rev 523
1
 
1
 
2
Wishlist/ToDo-List
2
Wishlist/ToDo-List
3
==================
3
==================
4
 
4
 
5
ToDo for the next release
5
ToDo for the next release
6
-------------------------
6
-------------------------
7
 
7
 
8
* OpenWatcom (32 bit) build cannot handle German characters, see bug report: https://github.com/open-watcom/open-watcom-v2/issues/863
-
 
-
 
8
(None)
9
 
9
 
10
 
10
 
11
Known problems
11
Known problems
12
--------------
12
--------------
13
 
13
 
14
* The preview will show the manipulation on the whole rectangle. It does not accurately exclude areas which aren't in a polygon selection area!
14
* The preview will show the manipulation on the whole rectangle. It does not accurately exclude areas which aren't in a polygon selection area!
15
	see wishlist\bug_rectangle.png
15
	see wishlist\bug_rectangle.png
16
 
16
 
17
* When you receive the error "Could not build preview at chosen zoom level..." because you zoomed out too far, you cannot recover from it, even if you zoom in again!
17
* When you receive the error "Could not build preview at chosen zoom level..." because you zoomed out too far, you cannot recover from it, even if you zoom in again!
18
 
18
 
19
* In regards color modes...
19
* In regards color modes...
20
	"Bitmap" => what is this mode and why isn't it supported?
20
	"Bitmap" => what is this mode and why isn't it supported?
21
	"IndexedColor" => enabled in PiPL 'mode' and 'enbl', but is still not enabled. disabled in 1.7.0.17, as it makes no sense.
21
	"IndexedColor" => enabled in PiPL 'mode' and 'enbl', but is still not enabled. disabled in 1.7.0.17, as it makes no sense.
22
	"HSL" => how do you set this color space in Photoshop?! It is a sub-space of RGB, so why is it a thing in the PiPL `mode` resource?
22
	"HSL" => how do you set this color space in Photoshop?! It is a sub-space of RGB, so why is it a thing in the PiPL `mode` resource?
23
	"HSB" => how do you set this color space in Photoshop?! It is a sub-space of RGB, so why is it a thing in the PiPL `mode` resource?
23
	"HSB" => how do you set this color space in Photoshop?! It is a sub-space of RGB, so why is it a thing in the PiPL `mode` resource?
24
	"Duotone" => The preview background is white (TODO)
24
	"Duotone" => The preview background is white (TODO)
25
	"Lab" => The preview background is red (TODO)
25
	"Lab" => The preview background is red (TODO)
26
 
26
 
27
 
27
 
28
Minor priority stuff or ideas
28
Minor priority stuff or ideas
29
-----------------------------
29
-----------------------------
30
 
30
 
31
* Import FFL format (but which filter to select?)
31
* Import FFL format (but which filter to select?)
32
 
32
 
33
* Import GUF format ( http://gimpuserfilter.sourceforge.net/ )
33
* Import GUF format ( http://gimpuserfilter.sourceforge.net/ )
34
 
34
 
35
* If controls are ambigous e.g. ctl(3+c), then you should be able to disable control in the "Make" dialog. Like in Filter Factory.
35
* If controls are ambigous e.g. ctl(3+c), then you should be able to disable control in the "Make" dialog. Like in Filter Factory.
36
 
36
 
37
* When you open a file, e.g. "Test.8bf" and you want to save it again, it would be good, if the default output filename is "Test".
37
* When you open a file, e.g. "Test.8bf" and you want to save it again, it would be good, if the default output filename is "Test".
38
 
38
 
39
* Can we still improve the speed? Filter Factory still seems to be faster!
39
* Can we still improve the speed? Filter Factory still seems to be faster!
40
 
40
 
41
* Should we completely remove all Apple code? It will make things much easier, and newer Apple ports need completely remake anyway. On the other hand, we lose a potential back port to ancient Mac.
41
* Should we completely remove all Apple code? It will make things much easier, and newer Apple ports need completely remake anyway. On the other hand, we lose a potential back port to ancient Mac.
42
 
42
 
43
* Right to the sliders you can enter numbers which are outside the range of 0..255 . Prevent that, please.
43
* Right to the sliders you can enter numbers which are outside the range of 0..255 . Prevent that, please.
44
 
44
 
45
* Win95 cannot detect a 64 bit obfuscated filter, because it cannot read the resources. Should there be a different mechanism for detecting an obfuscated filter? (e.g. a signature in PiPL which can be found using binary search?)
45
* Win95 cannot detect a 64 bit obfuscated filter, because it cannot read the resources. Should there be a different mechanism for detecting an obfuscated filter? (e.g. a signature in PiPL which can be found using binary search?)
46
 
46
 
47
* compat_win_resource.c (compatibility for Win9x resource generation): Cannot delete resources, see https://bugs.winehq.org/show_bug.cgi?id=52046
47
* compat_win_resource.c (compatibility for Win9x resource generation): Cannot delete resources, see https://bugs.winehq.org/show_bug.cgi?id=52046
48
 
48
 
49
* Add functionality to save to FFX (Filters Unlimited) filters. But we must use the "Make" dialog, because it contains title/category/author/copyright?
49
* Add functionality to save to FFX (Filters Unlimited) filters. But we must use the "Make" dialog, because it contains title/category/author/copyright?
50
 
50
 
51
* When a filter is created protected and you click "Make" again, should then be the "protection" checkbox be checked again?
51
* When a filter is created protected and you click "Make" again, should then be the "protection" checkbox be checked again?
52
 
52
 
53
* The filter `r*(y&1)` looks horrible when you zoom out!
53
* The filter `r*(y&1)` looks horrible when you zoom out!
54
 
54
 
55
* Verify if there are memory leaks: `strdup()` and `my_strdup()` need `free()` !
55
* Verify if there are memory leaks: `strdup()` and `my_strdup()` need `free()` !
56
 
56
 
57
* Why can't we edit *.rc files in Visual Studio? (As text) Visual Studio 2022 crashes if you try to edit the code of win_res.rc
57
* Why can't we edit *.rc files in Visual Studio? (As text) Visual Studio 2022 crashes if you try to edit the code of win_res.rc
58
 
58
 
59
* `host_preserves_parameters` (enabled with GIMP/PSPI) should somehow delete the temporary AFS file at each restart of GIMP. Otherwise, the user would always see the previous session when they re-open GIMP.
59
* `host_preserves_parameters` (enabled with GIMP/PSPI) should somehow delete the temporary AFS file at each restart of GIMP. Otherwise, the user would always see the previous session when they re-open GIMP.
60
 
60
 
61
* Create and evaluate more testcases, and either fix differences between FilterFactory and FilterFoundry, or document them in "Filter Factory Compatibility.md"
61
* Create and evaluate more testcases, and either fix differences between FilterFactory and FilterFoundry, or document them in "Filter Factory Compatibility.md"
62
 
62
 
63
* Should an expression like "----r" be forbidden? (Multiple negate signs) On the other hand, FilterFactory didn't forbit them either.
63
* Should an expression like "----r" be forbidden? (Multiple negate signs) On the other hand, FilterFactory didn't forbit them either.
64
  
64
  
65
* CMYK mode is possible (although a bit misleading to have r=c, g=m, b=y, a=k), but then it is impossible to control the alpha channel.
65
* CMYK mode is possible (although a bit misleading to have r=c, g=m, b=y, a=k), but then it is impossible to control the alpha channel.
66
 
66
 
67
* I have found the following in the source code... Do we need to do something here?
67
* I have found the following in the source code... Do we need to do something here?
68
 
68
 
69
        strcpy(gdata->parm.formula[i],expr[i] ? expr[i] : "bug! see builddlgitem");
69
        strcpy(gdata->parm.formula[i],expr[i] ? expr[i] : "bug! see builddlgitem");
70
 
70
 
71
* Search for "TODO", "FIXME" and "Codereview" in the code
71
* Search for "TODO", "FIXME" and "Codereview" in the code
72
 
72
 
73
* There is no warning if a formula contains a number that exceeds 32 bits.
73
* There is no warning if a formula contains a number that exceeds 32 bits.
74
 
74
 
75
* Minor bug: Testcase testcases/rst_3.afs applied to a 1000x1000 canvas: When the preview is zoomed in to 29% or 59%, and the preview is panned, the bars change during panning. It does not look "smooth" like in 100%, 50%, or 25% zoom. The problem is that the offset of the preview area is always different, and if the zoom level is not a multiple of two, you will always "pick" other bars.
75
* Minor bug: Testcase testcases/rst_3.afs applied to a 1000x1000 canvas: When the preview is zoomed in to 29% or 59%, and the preview is panned, the bars change during panning. It does not look "smooth" like in 100%, 50%, or 25% zoom. The problem is that the offset of the preview area is always different, and if the zoom level is not a multiple of two, you will always "pick" other bars.
76
 
76
 
77
* Support more colors modes and 16bit. Why is Lab color not accepted, although doesSupportLABColor is set?
77
* Support more colors modes and 16bit. Why is Lab color not accepted, although doesSupportLABColor is set?
78
 
78
 
79
* Picture with 78x63 in grayscale mode: In preview on the left side there is a black bar
79
* Picture with 78x63 in grayscale mode: In preview on the left side there is a black bar
80
 
80
 
81
* With the change in 1.7 in re "*preview evaluates whole picture if state changing functions rst,put,rnd are used*": Is there anything we can do to make it more performant when the user changes sliders? Especially with large pictures, the process becomes a bit laggy! => This feature was removed in 1.7.0.9, because it was extremely slow for some filters!
81
* With the change in 1.7 in re "*preview evaluates whole picture if state changing functions rst,put,rnd are used*": Is there anything we can do to make it more performant when the user changes sliders? Especially with large pictures, the process becomes a bit laggy! => This feature was removed in 1.7.0.9, because it was extremely slow for some filters!
82
 
82
 
83
* Check why the plugin crashes Premiere 5 (called in image filter mode; obviously not as transition filter)
83
* Check why the plugin crashes Premiere 5 (called in image filter mode; obviously not as transition filter)
84
 
84
 
85
* Cosmetics: Include a plugin-like-icon as icon #1 so that there would be a good icon in case some apps try to display an icon from the 8BF file?
85
* Cosmetics: Include a plugin-like-icon as icon #1 so that there would be a good icon in case some apps try to display an icon from the 8BF file?
86
(Attention: make_win.c deletes icon #1 because it thinks that it is the exclamation icon, so this needs to be changed then)
86
(Attention: make_win.c deletes icon #1 because it thinks that it is the exclamation icon, so this needs to be changed then)
87
 
87
 
88
* Let PIPL have resource ID 16 instead of 16000, so that other apps might be able to recognize it as Filter Factory plugin?
88
* Let PIPL have resource ID 16 instead of 16000, so that other apps might be able to recognize it as Filter Factory plugin?
89
 
89
 
90
* Should the compiler flags in `funcs.h` as well as settings like `use_plugin_dll_sliders` be placed as resource (binary bits), so that the behavior can be changed if required?
90
* Should the compiler flags in `funcs.h` as well as settings like `use_plugin_dll_sliders` be placed as resource (binary bits), so that the behavior can be changed if required?
91
 
91
 
92
* Implement MonitorScalingAware ('pmsa')? What is 'cmpt'? Do we fully support 'flly'?
92
* Implement MonitorScalingAware ('pmsa')? What is 'cmpt'? Do we fully support 'flly'?
93
 
93
 
94
 
94
 
95
Big ideas
95
Big ideas
96
---------
96
---------
97
 
97
 
98
* How about implementing the "Filters Unlimited" (FFX) language?
98
* How about implementing the "Filters Unlimited" (FFX) language?
99
 
99
 
100
 
100
 
101
Questions
101
Questions
102
---------
102
---------
103
 
103
 
104
* What is the exact purpose of the variable `needinput`?
104
* What is the exact purpose of the variable `needinput`?
105
  It is set if we use rgbaiuvc or `cnv()`
105
  It is set if we use rgbaiuvc or `cnv()`
106
  But why isn't it set if we use `src()` or `rad()`. Is that OK???
106
  But why isn't it set if we use `src()` or `rad()`. Is that OK???
107
 
107
 
108
* Is `D` is supposed to be a synonym `dmax` (then `D` should stay 512),
108
* Is `D` is supposed to be a synonym `dmax` (then `D` should stay 512),
109
  or is `D` supposed to be `dmax-dmin` (then `D` should be 1024 and `dmin` should be 512)?
109
  or is `D` supposed to be `dmax-dmin` (then `D` should be 1024 and `dmin` should be 512)?
110
 
110
 
111
* In regards length of the PIPL TLV, should it contain padding or not? Asked in https://community.adobe.com/t5/photoshop-ecosystem-discussions/question-about-pipl-tlv-encoding/m-p/12377822
111
* In regards length of the PIPL TLV, should it contain padding or not? Asked in https://community.adobe.com/t5/photoshop-ecosystem-discussions/question-about-pipl-tlv-encoding/m-p/12377822
112
   - No:
112
   - No:
113
	* Photoshop does not accept if padding is not added to the length value
113
	* Photoshop does not accept if padding is not added to the length value
114
	* pluginsdk\photoshopapi\pica_sp\SPPiPL.h states: "Number of characters in the data array. Rounded to a multiple of 4."
114
	* pluginsdk\photoshopapi\pica_sp\SPPiPL.h states: "Number of characters in the data array. Rounded to a multiple of 4."
115
	* Official Adobe plugins, e.g. „3D Transform.8bf“ are rounding the length to a multiple of 4 (actually, rounding to the next possible multiple 4, so that padding is always guaranteed).
115
	* Official Adobe plugins, e.g. „3D Transform.8bf“ are rounding the length to a multiple of 4 (actually, rounding to the next possible multiple 4, so that padding is always guaranteed).
116
	* cnvtpipl.exe does the same
116
	* cnvtpipl.exe does the same
117
   - Yes:
117
   - Yes:
118
	* The 1997 PICA documentation (page 23) and 1996 "Cross-Application Plug-in Development Resource Guide" describe both: "Contains the length of the propertyData field. It does not include any padding bytes after propertyData to achieve four byte alignment. This field may be zero."
118
	* The 1997 PICA documentation (page 23) and 1996 "Cross-Application Plug-in Development Resource Guide" describe both: "Contains the length of the propertyData field. It does not include any padding bytes after propertyData to achieve four byte alignment. This field may be zero."
119
	* pluginsdk/documentation/html/struct_p_i_property.html writes the same thing
119
	* pluginsdk/documentation/html/struct_p_i_property.html writes the same thing
120
 
120
 
121
  Is there really a defect in these documentations?
121
  Is there really a defect in these documentations?
122
 
122
 
123
* Do we need "#define ISOLATION_AWARE_ENABLED 1" ???
123
* Do we need "#define ISOLATION_AWARE_ENABLED 1" ???
124
 
124
 
125
 
125
 
126
Design/UI Tweaks
126
Design/UI Tweaks
127
----------------
127
----------------
128
 
128
 
129
* ctl(i) edit controls: Use a spinedit control so you can +1 and -1 with the mouse. Maybe `ControlTextWndProc` isn't neccessary anymore?
129
* ctl(i) edit controls: Use a spinedit control so you can +1 and -1 with the mouse. Maybe `ControlTextWndProc` isn't neccessary anymore?
130
 
130
 
131
* Should it be possible to zoom more than 100%?
131
* Should it be possible to zoom more than 100%?
132
 
132
 
133
* The vertical scrollbar should auto-hide when the expression formula is short. (Also for Mac). Unfortunately, this task is very hard in WIN32 API.
133
* The vertical scrollbar should auto-hide when the expression formula is short. (Also for Mac). Unfortunately, this task is very hard in WIN32 API.
134
 
134
 
135
* Should there be more (visual) space for expressions, like in Filter Factory? Also, Filter Factory had more visual space for slider names (e.g. required in Alf's Power Tools).
135
* Should there be more (visual) space for expressions, like in Filter Factory? Also, Filter Factory had more visual space for slider names (e.g. required in Alf's Power Tools).
136
 
136
 
137
* With some canvas formats, the initial zoom level is not "fully zoomed out"
137
* With some canvas formats, the initial zoom level is not "fully zoomed out"
138
 
138
 
139
* If you load an AFS file which has multi-line expressions, then the first expression (R) is scrolled down (because it has the focus)
139
* If you load an AFS file which has multi-line expressions, then the first expression (R) is scrolled down (because it has the focus)
140
 
140
 
141
 
141
 
142
Regarding Macintosh
142
Regarding Macintosh
143
-------------------
143
-------------------
144
 
144
 
145
* Please make a port to the latest Apple versions (and possible builds for older MacOS versions, too?)
145
* Please make a port to the latest Apple versions (and possible builds for older MacOS versions, too?)
146
 
146
 
147
* Unsure regarding AppleScript !
147
* Unsure regarding AppleScript !
148
	https://developer.apple.com/library/archive/documentation/mac/pdf/Interapplication_Communication/AE_Term_Resources.pdf
148
	https://developer.apple.com/library/archive/documentation/mac/pdf/Interapplication_Communication/AE_Term_Resources.pdf
149
	1. Do we need an 'auet' resource?
149
	1. Do we need an 'auet' resource?
150
	2. Does our implementation work with AppleScript?
150
	2. Does our implementation work with AppleScript?
151
	3. Must the human-language term REALLY be unique?! So only one plugin on the whole system may use the word "ctl(0)" or "red" or "size"??? Why do we have unique keys if the human language needs to be unique too?!  (see "Important" section at page 8-14)
151
	3. Must the human-language term REALLY be unique?! So only one plugin on the whole system may use the word "ctl(0)" or "red" or "size"??? Why do we have unique keys if the human language needs to be unique too?!  (see "Important" section at page 8-14)
152
 
152
 
153
* In ui_mac.c, there does not seem to be a limit for the expressions. So, is it possible to write an expression longer than 1023 bytes, which would lead to a crash?
153
* In ui_mac.c, there does not seem to be a limit for the expressions. So, is it possible to write an expression longer than 1023 bytes, which would lead to a crash?
154
 
154
 
155
* Macintosh: Please look at the (*) marked entries in CHANGELOG.md and verify the bugs/fixes and/or apply the changes on Mac.
155
* Macintosh: Please look at the (*) marked entries in CHANGELOG.md and verify the bugs/fixes and/or apply the changes on Mac.
156
 
156
 
157
* Macintosh: Is it possible to create a 64 bit version of FilterFoundry? Do we need to rewrite the UI code because the Carbon Framework is replaced by Cocoa!
157
* Macintosh: Is it possible to create a 64 bit version of FilterFoundry? Do we need to rewrite the UI code because the Carbon Framework is replaced by Cocoa!
158
 
158
 
159
* Some *.r files include "PiMI.r". Is this part of an old SDK or is a file missing?
159
* Some *.r files include "PiMI.r". Is this part of an old SDK or is a file missing?
160
 
160
 
161
* Support BigDocument (Add "ms32" PiPL, set `pb->bigDocumentData->PluginUsing32BitCoordinates` and use `pb->bigDocumentData->*`)
161
* Support BigDocument (Add "ms32" PiPL, set `pb->bigDocumentData->PluginUsing32BitCoordinates` and use `pb->bigDocumentData->*`)
162
 
162
 
163
* Correctly implement obfuscation version 6 (need to fix the binary executable code during build!)
163
* Correctly implement obfuscation version 6 (need to fix the binary executable code during build!)
164
 
164
 
165
 
165
 
166
Things to check/correct for other Telegraphics plugins (FIXED in FilterFoundry)
166
Things to check/correct for other Telegraphics plugins (FIXED in FilterFoundry)
167
------------------------------------------------------
167
------------------------------------------------------
168
 
168
 
169
* The lengths of the PIPL TLV structure must include everything, including string paddings, with 1 zero padding guaranteed. See annotations in "GIMP Incompatibilities.md".
169
* The lengths of the PIPL TLV structure must include everything, including string paddings, with 1 zero padding guaranteed. See annotations in "GIMP Incompatibilities.md".
170
 
170
 
171
* The language/country code in VarFileInfo must be a code that exists in StringFileInfo. The translation strings "04900000" don't fit together "080904B0".
171
* The language/country code in VarFileInfo must be a code that exists in StringFileInfo. The translation strings "04900000" don't fit together "080904B0".
172
 
172
 
173
* 64 Bit Windows builds
173
* 64 Bit Windows builds
174
 
174
 
175
* XP Manifests (+ activation contexts)
175
* XP Manifests (+ activation contexts)
176
 
176
 
177
* Fix AETE resources, make keys unique and remove scope in order to enable AppleScript
177
* Fix AETE resources, make keys unique and remove scope in order to enable AppleScript
178
 
178
 
179
* Support BigDocument (Add "ms32" PiPL, set `pb->bigDocumentData->PluginUsing32BitCoordinates` and use `pb->bigDocumentData->*`)
179
* Support BigDocument (Add "ms32" PiPL, set `pb->bigDocumentData->PluginUsing32BitCoordinates` and use `pb->bigDocumentData->*`)
180
 
180
 
181
* Place plugin dialogs on the correct screen
181
* Place plugin dialogs on the correct screen