Login | ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/filter_foundry/trunk/TODO.md
Revision: 356
Committed: Fri Oct 15 17:12:06 2021 UTC (7 months ago) by daniel-marschall
Content type: text/markdown
File size: 8133 byte(s)
Log Message:
Fixed incompatibility with older versions of Wine (Windows emulator for Linux systems)

File Contents

# User Rev Content
1 daniel-marschall 220
2     Wishlist/ToDo-List
3     ==================
4    
5 daniel-marschall 274 Known bugs
6     ----------
7 daniel-marschall 220
8 daniel-marschall 311 (None)
9 daniel-marschall 220
10 daniel-marschall 249
11 daniel-marschall 220 Minor priority stuff or ideas
12     -----------------------------
13    
14 daniel-marschall 294 * Filter Factory is much faster than Filter Foundry (example rad.afs). Why?!
15    
16 daniel-marschall 276 * When a filter is created obfuscated and you click "Make" again, should then be the "obfuscate" checkbox be checked again?
17    
18 daniel-marschall 228 * The filter `r*(y&1)` looks horrible when you zoom out!
19 daniel-marschall 221
20 daniel-marschall 228 * Memory leak: `strdup()` and `my_strdup()` need `free()` !
21 daniel-marschall 220
22     * Why can't we edit *.rc files in Visual Studio?
23    
24 daniel-marschall 346 * `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.
25 daniel-marschall 220
26 daniel-marschall 228 * Create and evaluate more testcases, and either fix differences between FilterFactory and FilterFoundry, or document them in "Filter Factory Compatibility.md"
27 daniel-marschall 220
28 daniel-marschall 228 * Should an expression like "----r" be forbidden? (Multiple negate signs) On the other hand, FilterFactory didn't forbit them either.
29 daniel-marschall 220
30 daniel-marschall 228 * 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.
31 daniel-marschall 220
32 daniel-marschall 228 * I have found following in the source code... Do we need to do something here?
33 daniel-marschall 220
34 daniel-marschall 228 strcpy(gdata->parm.formula[i],expr[i] ? expr[i] : "bug! see builddlgitem");
35    
36 daniel-marschall 220 * Search for "TODO", "FIXME" and "Codereview" in the code
37    
38     * There is no warning if a formula contains a number that exceeds 32 bits.
39    
40 daniel-marschall 228 * 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.
41    
42 daniel-marschall 220 * Fast (double) click in [+]/[-] scroll buttons is not accepted as 2 clicks / zoom-requests
43    
44     * Support more colors modes and 16bit. Why is Lab color not accepted, although doesSupportLABColor is set?
45 daniel-marschall 228
46 daniel-marschall 220 * Add Unicode support? (Does PiPL support Unicode at all?)
47    
48     * Picture with 78x63 in grayscale mode: In preview on the left side there is a black bar
49    
50 daniel-marschall 346 * 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!
51 daniel-marschall 228
52 daniel-marschall 220 * Check why the plugin crashes Premiere 5 (called in image filter mode; obviously not as transition filter)
53    
54 daniel-marschall 311 * 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?
55     (Attention: make_win.c deletes icon #1 because it thinks that it is the exclamation icon, so this needs to be changed then)
56 daniel-marschall 220
57 daniel-marschall 346 * Let PIPL have resource ID 16 instead of 16000, so that other apps might be able to recognize it as Filter Factory plugin?
58 daniel-marschall 311
59 daniel-marschall 346 * Make Filter Foundry ready for translations? In Windows, put all strings in string lists (resources, `LoadStringA`), as well as in Mac resources.
60    
61     * Should the compiler flags in `funcs.h` placed as resource (binary bits), so that the behavior can be changed if required?
62    
63    
64 daniel-marschall 303 Questions
65     ---------
66    
67 daniel-marschall 346 * What is the exact purpose of the variable `needinput`?
68     It is set if we use rgbaiuvc or `cnv()`
69     But why isn't it set if we use `src()` or `rad()`. Is that OK???
70 daniel-marschall 312
71 daniel-marschall 346 * Why does everybody write that the Filter Factory `tan(x)` function is bounded?
72 daniel-marschall 303 The Filter Factory manual writes that it is bounded, and the Filter Factory Programming Guide
73     does also mention it (including a graphic).
74     Is it a bug that it goes infinity? Do we need to fix it in Filter Foundry???
75    
76     Following examples of Filter Factory show that it is going off-bound! (Also tested with PS 3.0.5)
77    
78     tan(255) == 167761 ? 255 : 0
79     tan(256) == -167772 ? 255 : 0
80     tan(-768) == 167772 ? 255 : 0
81    
82 daniel-marschall 335 * Is `D` is supposed to be a synonym `dmax` (then `D` should stay 512),
83     or is `D` supposed to be `dmax-dmin` (then `D` should be 1024 and `dmin` should be 512)?
84 daniel-marschall 303
85 daniel-marschall 353 * 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
86 daniel-marschall 346 - No:
87     * Photoshop does not accept if padding is not added to the length value
88 daniel-marschall 353 * pluginsdk\photoshopapi\pica_sp\SPPiPL.h states: "Number of characters in the data array. Rounded to a multiple of 4."
89 daniel-marschall 346 * 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).
90 daniel-marschall 353 * cnvtpipl.exe does the same
91 daniel-marschall 346 - Yes:
92     * 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."
93 daniel-marschall 353 * pluginsdk/documentation/html/struct_p_i_property.html writes the same thing
94 daniel-marschall 335
95 daniel-marschall 346 Is there really a defect in these documentations?
96    
97    
98 daniel-marschall 220 Design/UI Tweaks
99     ----------------
100    
101     * Should it be possible to zoom more than 100%?
102    
103 daniel-marschall 228 * The vertical scrollbar should auto-hide when the expression formula is short. (Also for Mac). Unfortunately, this task is very hard in WIN32 API.
104 daniel-marschall 220
105 daniel-marschall 343 * 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).
106 daniel-marschall 220
107     * Sliders are extremely tiny!
108    
109     * With some canvas formats, the initial zoom level is not "fully zoomed out"
110    
111 daniel-marschall 228 * If you load an AFS file which has multi-line expressions, then the first expression (R) is scrolled down (because it has the focus)
112 daniel-marschall 220
113 daniel-marschall 271
114     Regarding Macintosh
115     -------------------
116    
117 daniel-marschall 231 * Unsure regarding AppleScript !
118     https://developer.apple.com/library/archive/documentation/mac/pdf/Interapplication_Communication/AE_Term_Resources.pdf
119     1. Do we need an 'auet' resource?
120     2. Does our implementation work with AppleScript?
121     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)
122 daniel-marschall 228
123     * 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?
124 daniel-marschall 220
125 daniel-marschall 228 * Macintosh: Please look at the (*) marked entries in CHANGELOG.md and verify the bugs/fixes and/or apply the changes on Mac.
126 daniel-marschall 220
127 daniel-marschall 228 * 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!
128 daniel-marschall 220
129     * Some *.r files include "PiMI.r". Is this part of an old SDK or is a file missing?
130    
131 daniel-marschall 346 * Support BigDocument (Add "ms32" PiPL, set `pb->bigDocumentData->PluginUsing32BitCoordinates` and use `pb->bigDocumentData->*`)
132 daniel-marschall 220
133 daniel-marschall 347 * Correctly implement obfuscation version 6 (need to fix the binary executable code during build!)
134 daniel-marschall 232
135 daniel-marschall 346
136 daniel-marschall 220 Things to check/correct for other Telegraphics plugins (FIXED in FilterFoundry)
137     ------------------------------------------------------
138    
139 daniel-marschall 228 * The lengths of the PIPL TLV structure must include everything, including string paddings, with 1 zero padding guaranteed. See annotations in "GIMP Incompatibilities.md".
140 daniel-marschall 220
141 daniel-marschall 228 * The language/country code in VarFileInfo must be a code that exists in StringFileInfo. The translation strings "04900000" don't fit together "080904B0".
142 daniel-marschall 220
143     * 64 Bit Windows builds
144    
145     * XP Manifests (+ activation contexts)
146 daniel-marschall 230
147     * Fix AETE resources, make keys unique and remove scope in order to enable AppleScript
148 daniel-marschall 232
149 daniel-marschall 346 * Support BigDocument (Add "ms32" PiPL, set `pb->bigDocumentData->PluginUsing32BitCoordinates` and use `pb->bigDocumentData->*`)
150 daniel-marschall 303
151     * Place plugin dialogs on the correct screen