I’ll only be reviewing active authors’ code review in gmic-community. So, for now, I will review @garagecoder code, and @afre if he plans to get back any time soon. I won’t be doing joan_rake or others since they won’t be here to review their code or look at this feedback. I’ll also be looking into reviews of my own code and see where I can do improvement.
For garagecoder:
- If there is any slow GUI filters, then _persistent should be somewhere here or there if possible. It’s hard to work with _persistent in some case, but the boost is interactivity is worth it. For a example of how difficult it is to write with _persistent at time, see my GUI filter named Lavander Binary Map and theorize a version without _persistent. Without _persistent, a lot less code, but also, you don’t have the benefit of storing the results in memory, so you’d have to do calculation again.
- If there is any inaccurate previews, then there should be a * denoting full-size preview on the title portion of #@gui filters.
- On filters with
repeat $! l[$>] done done
, these can be replaced with foreach {} blocks. gcd_aurora is one of them that doesn’t have this replacement. It seems that there can be more cases of { } blocks instead of done in the end sentences. This makes it easier for one to use text editors that automatically select the other brackets to understand the code structure. - More new lines should be placed. In the case of code as large as fx_gcd_layeretch, it would be easier to parse if there was more new lines. gcd_hsl is more of a example of what I see as more understandable.
- gcd_force_rgba seems to be redundant when to_rgba exists. There’s also to_automode to look at (not the same command or function, but it’s nice to know we have a command that automatically reduces image to lowest spectrum count without changing the image.
Other than those, I do think the algorithm are sound and the usage of C++ calls are all perfect.