Regarding darktable’s processing functions (Process), most of them share the same name, 'Process(). However, when examining pixelpipe_hb.h and pixelpipe_hd.c, it seems that they are stored in function pointers, ‘void (*process_plain)()’, within the structures dt_iop_module_so_t and dt_iop_module_t. The problem is that I couldn’t find where these process_plain function pointers are being set in the code. If anyone knows, could you please let me know where process_plain is being initialized? Thank you very much in advance!
dt_iop_load_module_so includes "iop/iop_api.h"after first defining INCLUDE_API_FROM_MODULE_LOAD. This will cause all functions defined in the module to be assigned to their respective function pointers (or throw an error if required ones are missing).
The mechanism (also used for lib and view apis) is defined in common/module_api.h