- Global _blendop_blendif_channel_mask_view (GtkWidget *widget, dt_iop_module_t *module, dt_dev_pixelpipe_display_mask_t mode)
- : there are more than 3 functions getting clever about how to setup module->request_mask_display depending on user input.
- Global _blendop_blendif_channel_mask_view_toggle (GtkWidget *widget, dt_iop_module_t *module, dt_dev_pixelpipe_display_mask_t mode)
- : there are more than 3 functions getting clever about how to setup module->request_mask_display depending on user input.
- Global _blendop_blendif_enter (GtkWidget *widget, GdkEventCrossing *event, dt_iop_module_t *module)
- : there are more than 3 functions getting clever about how to setup module->request_mask_display depending on user input.
- Global _blendop_blendif_leave_delayed (gpointer data)
- : there are more than 3 functions getting clever about how to setup module->request_mask_display depending on user input.
- Global _blendop_blendif_showmask_clicked (GtkToggleButton *button, GdkEventButton *event, dt_iop_module_t *module)
- : there are more than 3 functions getting clever about how to setup module->request_mask_display depending on user input.
- Global _brush_events_button_pressed (struct dt_iop_module_t *module, float pzx, float pzy, double pressure, int which, int type, uint32_t state, dt_masks_form_t *form, int parentid, dt_masks_form_gui_t *gui, int index)
: WTF does that do ?
: map that to context menu
: why do we allow selecting an invalid segment index ???
: handle that in context menu
- Global _brush_events_button_released (struct dt_iop_module_t *module, float pzx, float pzy, int which, uint32_t state, dt_masks_form_t *form, int parentid, dt_masks_form_gui_t *gui, int index)
- : handle this at the mask.c level
- Global _brush_events_post_expose (cairo_t *cr, float zoom_scale, dt_masks_form_gui_t *gui, int index, int nb)
- : WTF are we checking there ?
- Global _brush_set_hint_message (const dt_masks_form_gui_t *const gui, const dt_masks_form_t *const form, const int opacity, char *const restrict msgbuf, const size_t msgbuf_len)
- : check if it would be good idea to have same controls on creation and for selected brush
- Global _changes_tooltip_callback (GtkWidget *widget, gint x, gint y, gboolean keyboard_mode, GtkTooltip *tooltip)
- : workaround added in order to fix #9908, probably a Gtk issue, remove when fixed upstream
- Global _color_picker_proxy_preview_pipe_callback (gpointer instance, gpointer user_data)
- : It appears that DT_SIGNAL_DEVELOP_UI_PIPE_FINISHED –
- Global _colorchecker_rebuild_patch_list (struct dt_iop_module_t *self)
- : why not just use g->patch for everything?
- Global _create_library_schema (dt_database_t *db)
- : make sure to bump CURRENT_DATABASE_VERSION_LIBRARY and add a
- Global _darkroom_pickers_draw (dt_view_t *self, cairo_t *cri, int32_t width, int32_t height, dt_dev_zoom_t zoom, int closeup, float zoom_x, float zoom_y, GSList *samples, gboolean is_primary_sample)
: if an area sample is selected, when selected should fill it with colorpicker color?
: to be really accurate, the colorpicker should render precisely over the nearest pixelpipe pixel, but this gets particularly tricky to do with iop pickers with transformations after them in the pipeline
: instead of going to all this effort to show how error-prone a preview pipe sample can be, just produce a better point sample
: use dt_dev_get_processed_size() for this?
- Global _default_process_tiling_ptp (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const int in_bpp)
: check if there really can be differences between tiles and take appropriate action (calculate minimum, maximum, average, ...?)
: can we make this more efficient to minimize total overlap between tiles?
- Global _default_process_tiling_roi (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const int in_bpp)
: can we make this more efficient to minimize total overlap between tiles?
: check if there really can be differences between tiles and take appropriate action (calculate minimum, maximum, average, ...?)
- Global _deflicker_prepare_histogram (dt_iop_module_t *self, uint32_t **histogram, dt_dev_histogram_stats_t *histogram_stats)
- : get those from rawprepare IOP somehow !!!
- Global _develop_ui_pipe_finished_callback (gpointer instance, dt_iop_module_t *self)
- : this doesn't seems the right place to update params and GUI ...
- Global _develop_ui_pipe_finished_callback (gpointer instance, gpointer user_data)
- : this doesn't seems the right place to update params and GUI ...
- Global _drag_and_drop_received (GtkWidget *widget, GdkDragContext *context, gint x, gint y, GtkSelectionData *selection_data, guint target_type, guint time, gpointer data)
- redraw the image group
- Global _dt_full_locale_name (const char *locale)
- : check a way to do above on windows
- Global _ellipse_events_mouse_moved (struct dt_iop_module_t *module, float pzx, float pzy, double pressure, int which, dt_masks_form_t *form, int parentid, dt_masks_form_gui_t *gui, int index)
- gcc7 false-positive
- Global _ensure_rgb_profile (cmsHPROFILE profile)
- : we still use prequantized primaries here, we will probably want to rework this
- Global _event_dnd_begin (GtkWidget *widget, GdkDragContext *context, dt_lib_module_t *self)
- : try to put the anchor point on left bottom corner as for images
- Global _event_dnd_end (GtkWidget *widget, GdkDragContext *context, dt_lib_module_t *self)
- (see gtk_tree_view_set_drag_dest_row above)
- Global _event_dnd_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *selection_data, const guint target_type, const guint time, gpointer user_data)
- : should we add the host?
- Global _event_dnd_motion (GtkWidget *widget, GdkDragContext *context, gint x, gint y, guint time, dt_lib_module_t *self)
- - no row highlihted... workartound with selection above
- Global _exif_decode_exif_data (dt_image_t *img, Exiv2::ExifData &exifData)
: Should the UserComment go into the description? Or do we need an extra field for this?
: "Other" illuminant is currently unsupported
: This is still a workaround
- Global _exif_decode_iptc_data (dt_image_t *img, Exiv2::IptcData &iptcData)
- : according to http://www.exiv2.org/doc/classExiv2_1_1Metadatum.html#63c2b87249ba96679c29e01218169124
- Global _exif_decode_xmp_data (dt_image_t *img, Exiv2::XmpData &xmpData, int version, bool exif_read)
- : according to http://www.exiv2.org/doc/classExiv2_1_1Metadatum.html#63c2b87249ba96679c29e01218169124
- Global _exif_xmp_read_data (Exiv2::XmpData &xmpData, const int32_t imgid)
- : Add tags to IPTC namespace as well
- Global _file_chooser_response (GtkDialog *dialog, gint response_id, dt_lib_import_t *d)
- : print "pending" message on modal window
- Global _file_filters (GtkWidget *file_chooser)
- : use dt_supported_extensions list ?
- Global _find_closest_handle (struct dt_iop_module_t *module, float pzx, float pzy, dt_masks_form_t *form, int parentid, dt_masks_form_gui_t *gui, int index)
- : why ???
- Global _get_base_value (dt_variables_params_t *params, char **variable)
- : currently we concatenate all the color labels with a ',' as a separator. Maybe it's better to
- Global _gui_delete_callback (GtkButton *button, dt_iop_module_t *module)
- : ?????
- Global _gui_reset_callback (GtkButton *button, GdkEventButton *event, dt_iop_module_t *module)
- : can we stop with all the easter-eggs key modifiers doing undocumented stuff all along ?
- Global _half_to_float (uint16_t h)
- : use intrinsics when possible
- Global _handle_get_property (GDBusConnection *connection, const gchar *sender, const gchar *object_path, const gchar *interface_name, const gchar *property_name, GError **error, gpointer user_data)
- : expose the conf? partly? completely?
- Global _init_f (dt_mipmap_buffer_t *mipmap_buf, float *buf, uint32_t *width, uint32_t *height, float *iscale, const int32_t imgid)
- : do we need that information in this buffer?
- Global _iop_validate_params (dt_introspection_field_t *field, gpointer params, gboolean report)
- : special case float2
- Global _key_pressed (GtkWidget *textview, GdkEventKey *event, dt_lib_module_t *self)
- : on Mac, remap Ctrl to Cmd key
- Global _lib_geotagging_get_timezones (void)
- : Solaris test
- Global _lib_history_change_callback (gpointer instance, gpointer user_data)
- : is that a memleak ?
- Global _lib_history_change_text (dt_introspection_field_t *field, const char *d, gpointer params, gpointer oldpar)
- : special case float2
- Global _lib_location_parser_start_element (GMarkupParseContext *cxt, const char *element_name, const char **attribute_names, const gchar **attribute_values, gpointer user_data, GError **error)
- : support holes in POLYGON and several forms in MULTIPOLYGON?
- Global _magic_schwalm_offset (dt_develop_t *dev, dt_view_t *self, float *offx, float *offy)
- : find out why this is necessary and fix it.
- Global _main_do_event_help (GdkEvent *event, gpointer data)
- : find a better way to tell the user that the hovered widget has a help link
- Global _menuitem_preferences (GtkMenuItem *menuitem, dt_lib_module_t *self)
- : NO!!!!!one!
- Global _on_drag_begin (GtkWidget *widget, GdkDragContext *context, gpointer user_data)
: this centers the icon on the mouse – instead translate such that the label doesn't jump when mouse down?
: default highlight for the dnd is barely visible
- Global _panel_handle_motion_callback (GtkWidget *w, GdkEventButton *e, gpointer user_data)
- : can work with the event x,y to skip the gdk_window_get_device_position() call?
- Global _pdf_stream_encoder_ASCIIHex (dt_pdf_t *pdf, const unsigned char *data, size_t len)
- : maybe OpenMP-ify, it's quite fast already (the fwrite is the slowest part), but wouldn't hurt
- Global _print_backup_progress (int remaining, int total)
- if we have closing splashpage - this can be used to advance progressbar :)
- Global _print_button_clicked (GtkWidget *widget, gpointer user_data)
: getting these from conf as w/prior code, but switch to getting them from ps
: in metadata_view.c, non-printables are filtered, should we do this here?
: getting this from conf as w/prior code, but switch to getting from ps
: ellipsize title/printer as the export completed message is ellipsized
- Global _sample_tooltip_callback (GtkWidget *widget, gint x, gint y, gboolean keyboard_mode, GtkTooltip *tooltip, const dt_colorpicker_sample_t *sample)
- : workaround added in order to fix #9908, probably a Gtk issue, remove when fixed upstream
- Global _snap_to_grid (dt_lib_print_settings_t *ps, float *x, float *y)
- : should clamp values to page size here?
- Global _transform_lab_to_rgb_matrix (const float *const image_in, float *const image_out, const int width, const int height, const dt_iop_order_iccprofile_info_t *const profile_info)
- : maybe optimize that path like _transform_matrix_rgb
- Global _transform_rgb_to_lab_matrix (const float *const restrict image_in, float *const restrict image_out, const int width, const int height, const dt_iop_order_iccprofile_info_t *const profile_info)
- : maybe optimize that path like _transform_matrix_rgb
- Global _tree_button_pressed (GtkWidget *treeview, GdkEventButton *event, dt_lib_module_t *self)
- ??? this SHOULD be named "delete group" but because of string freeze for 3.8
- Global _update_darkroom_roi (dt_develop_t *dev, dt_dev_pixelpipe_t *pipe, int *x, int *y, int *wd, int *ht, float *scale, float *zoom_x, float *zoom_y)
- : That belongs to darkroom GUI code if it's even needed
- Global _update_slider (dt_lib_print_settings_t *ps)
- : why doesn't this update when units are changed?
- Global _variable_get_value (dt_variables_params_t *params, char **variable)
: is there a strstr_len that limits the length of pattern?
: write a dt_util_str_replace that can deal with pattern_length ^^
- Global amaze_demosaic_RT (dt_dev_pixelpipe_iop_t *piece, const float *const in, float *out, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const int filters)
- (darktable): we have the pixel colors interleaved so writing them in blocks using SSE2 is
- Global apply_curve (const float *const in, float *const out, const int width, const int height, const int preserve_colors, const float mul, const float *const table, const float *const unbounded_coeffs, const dt_iop_order_iccprofile_info_t *const work_profile)
- : Determine if we can get rid of the conditionals within this function in some way to improve performance.
- Global bad_opencl_drivers []
- : in the future, we may want to also take DRIVER_VERSION into account
- Global button_pressed (dt_view_t *self, double x, double y, double pressure, int which, int type, uint32_t state)
: this work is only necessary for left-click in box mode or right-click of point live sample
: here and in mouse move use to dt_lib_colorpicker_set_{box_area,point} interface? – would require a different hack for figuring out base of the drag
: this is a naive implementation, nicer would be to cycle through overlapping samples then reset
: color_pixer_proxy should have an dt_iop_color_picker_clear_area() function for this
: this overlaps with work in dt_dev_get_pointer_zoom_pos() above
- Global cleanup (dt_view_t *self)
- : it would be nice to cleanly destroy the object, but we are doing this inside expose() so
- Global color_picker_helper_bayer_parallel (const dt_iop_buffer_dsc_t *const dsc, const float *const pixel, const dt_iop_roi_t *const roi, const int *const box, dt_aligned_pixel_t picked_color, dt_aligned_pixel_t picked_color_min, dt_aligned_pixel_t picked_color_max)
- : convert to use dt_alloc_perthread
- Global color_picker_helper_xtrans_parallel (const dt_iop_buffer_dsc_t *const dsc, const float *const pixel, const dt_iop_roi_t *const roi, const int *const box, dt_aligned_pixel_t picked_color, dt_aligned_pixel_t picked_color_min, dt_aligned_pixel_t picked_color_max)
- : convert to use dt_alloc_perthread
- Global commit_params (struct dt_iop_module_t *self, dt_iop_params_t *p1, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
: the use of bpc should be userconfigurable either from module or preference pane
: even though this is allowed/works, dt_ioppr_generate_profile_info still complains about these profiles
:
: this is utter shit and should be made into a GUI "mode".
- Global create_notebook_page_process (dt_lut_t *self)
- : it might make sense to limit this to a smaller range and/or use a slider
- Global darktable_t::exiv2_threadsafe
- : Is it now ?
- Global distort_backtransform (dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *const restrict points, size_t points_count)
- : this is just a quick hack. we need a major revamp of this module!
- Global distort_mask (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const float *const in, float *const out, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
: Shall we keep LF_MODIFY_TCA in the modifiers?
: optimize with scanlines and linear steps between?
- Global distort_transform (dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *const restrict points, size_t points_count)
- : this is just a quick hack. we need a major revamp of this module!
- Global dn_weight (const float *c1, const float *c2, const float inv_sigma2)
- : this should ideally depend on the image before noise stabilizing transforms!
- Global dt_action_button_new (dt_lib_module_t *self, const gchar *label, gpointer callback, gpointer data, const gchar *tooltip, guint accel_key, GdkModifierType mods)
- : figure out where to handle that
- Global dt_bh_init (DtBauhausWidget *class)
- : the common code from bauhaus_widget_init() could go here.
- Global dt_box_max (float *const buf, const size_t height, const size_t width, const int ch, const int radius)
- : 4ch version if needed
- Global dt_box_min (float *const buf, const size_t height, const size_t width, const int ch, const int radius)
- : 4ch version if needed
- Global DT_COLOR_PICKER_AREA
- : s/AREA/BOX/
- Global dt_color_picker_helper (const dt_iop_buffer_dsc_t *dsc, const float *const pixel, const dt_iop_roi_t *roi, const int *const box, dt_aligned_pixel_t picked_color, dt_aligned_pixel_t picked_color_min, dt_aligned_pixel_t picked_color_max, const dt_iop_colorspace_type_t image_cst, const dt_iop_colorspace_type_t picker_cst, const dt_iop_order_iccprofile_info_t *const profile)
- : alloc in caller
- Global dt_colorlabels_to_string (int label)
- : XMP uses Red, Green, ... while we use red, green, ... What should this function return?
- Global dt_colorspaces_cygm_apply_coeffs_to_rgb (float *out, const float *in, int num, double RGB_to_CAM[4][3], double CAM_to_RGB[3][4], dt_aligned_pixel_t coeffs)
- : CRITICAL: why is this function NOT used anywhere ???
- Global dt_colorspaces_get_work_profile (const int32_t imgid)
- : does this work when using JPEG thumbs and the image was never opened?
- Global dt_colorspaces_init ()
: what about display?
: do want to filter out non-RGB profiles for cases besides histogram profile? colorin is OK with RGB or XYZ, print is OK with anything which LCMS likes, otherwise things are more choosey
- Global dt_colorspaces_set_display_profile (const dt_colorspaces_color_profile_type_t profile_type)
- : benchmark if the try is really needed when moving/resizing the window. Maybe we can just lock it
- Global dt_conf_get_var (const char *name)
- : why insert garbage?
- Global dt_control_add_job_res (struct dt_control_t *s, dt_job_t *job, int32_t res)
- : pthread cancel and restart in tough cases?
- Global dt_control_cleanup (dt_control_t *s)
- : optional?
- Global dt_control_crawler_run ()
: decide if we want to remove the flag for images that lost
: allow for a few seconds difference?
: shall we report these?
- Global dt_control_crawler_show_image_list (GList *images)
- : do we need to free that later ?
- Global dt_control_expose (void *voidptr)
- : control_expose: only redraw the part not overlapped by temporary control panel show!
- Global dt_control_running ()
- : when shutdown, run_mutex is not inited anymore!
- Global dt_control_t::dev_zoom_x
- : move these to some darkroom struct
- Global dt_control_t::proxy
- : this is unused now, but deleting it makes free(darktable.control)
- Global dt_dbus_init ()
-
- Global dt_dev_add_history_item_ext (struct dt_develop_t *dev, struct dt_iop_module_t *module, gboolean enable, gboolean force_new_item, gboolean no_image, gboolean include_masks)
- : this copies ALL drawn masks AND masks groups used by all modules to any module history using masks.
- Global dt_dev_get_raster_mask (dt_dev_pixelpipe_t *pipe, const dt_iop_module_t *raster_mask_source, const int raster_mask_id, const dt_iop_module_t *target_module, gboolean *free_mask, int *error)
- : refactor this mess to limit for/if nesting
- Global dt_dev_hash (dt_develop_t *dev, struct dt_dev_pixelpipe_t *pipe)
- : this should have its own hash
- Global dt_dev_init (dt_develop_t *dev, int32_t gui_attached)
- : these are uint32_t, setting to -1 is confusing
- Global dt_dev_invalidate_history_module (GList *list, struct dt_iop_module_t *module)
- : why is that needed ?
- Global dt_dev_pixelpipe_create_nodes (dt_dev_pixelpipe_t *pipe, struct dt_develop_t *dev)
- : don't add deprecated modules that are not enabled are not added to pipeline.
- Global dt_dev_pixelpipe_process_rec (dt_dev_pixelpipe_t *pipe, dt_develop_t *dev, void **output, void **cl_mem_output, dt_iop_buffer_dsc_t **out_format, const dt_iop_roi_t *roi_out, GList *modules, GList *pieces, int pos)
- : on CPU path and GPU path with tiling, when 2 modules taking different color spaces are back to back,
- Global dt_dev_read_history_ext (struct dt_develop_t *dev, const int32_t imgid, gboolean no_image)
- : ask user for confirmation before saving updated history
- Global dt_develop_blend_process (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const void *const i, void *const o, const struct dt_iop_roi_t *const roi_in, const struct dt_iop_roi_t *const roi_out)
- : should we skip raster masks?
- Global dt_exif_read_blob (uint8_t **blob, const char *path, const int32_t imgid, const int sRGB, const int out_width, const int out_height, const int dng_mode)
- : find a nice place for the missing metadata (tags, publisher, colorlabels?). Additionally find out
- Global dt_exif_read_from_blob (dt_image_t *img, uint8_t *blob, const int size)
- : can this blob also contain xmp and iptc data?
- Global dt_exif_xmp_attach_export (const int32_t imgid, const char *filename, void *metadata)
- if an element of the list contains a ", " it is not correctly exported
- Global dt_exif_xmp_read (dt_image_t *img, const char *filename, const int history_only)
- : make this configurable? or remove it altogether?
- Global dt_film_open (const int32_t id)
- : prefetch to cache using image_open
- Global dt_focus_draw_clusters (cairo_t *cr, int width, int height, int32_t imgid, int buffer_width, int buffer_height, dt_focus_cluster_t *focus, int frows, int fcols, float full_zoom, float full_x, float full_y)
: get those from rawprepare IOP somehow !!!
: get those from rawprepare IOP somehow !!!
- Global dt_gui_add_help_link (GtkWidget *widget, const char *link)
- : should that go to another place than gtk.c?
- Global dt_gui_gtk_init (dt_gui_gtk_t *gui)
- : make that an user param ?
- Global dt_guides_init ()
- : make the number of lines configurable with a slider?
- Global dt_image_cache_init (dt_image_cache_t *cache)
- : actually an independent conf var?
- Global dt_image_cache_write_release (dt_image_cache_t *cache, dt_image_t *img, dt_image_cache_write_mode_t mode)
: make this work in relaxed mode, too.
: protect XMP saving from concurrent accesses to DB history
- Global dt_image_rename (const int32_t imgid, const int32_t filmid, const gchar *newname)
: several places where string truncation could occur unnoticed
: map that to a background job
- Global dt_image_synch_xmp (const int selected)
- : if fucking act_on bullshit was only targeting selected files,
- Global dt_image_t
- : add color labels and such as cacheable
- Global dt_image_write_sidecar_file (const int32_t imgid)
: compute hash and don't write if not needed!
: [CRITICAL] should lock the image history at the app level
- Global dt_imageio_j2k_read_profile (const char *filename, uint8_t **out)
- : how to do it without fully-decoding the whole image?
- Global dt_imageio_jpeg_compress (const uint8_t *in, uint8_t *out, const int width, const int height, const int quality)
- : find out why this function is not used anymore. Where do we compress ???
- Global dt_imageio_large_thumbnail (const char *filename, uint8_t **buffer, int32_t *th_width, int32_t *th_height, dt_colorspaces_color_profile_type_t *color_space, const int width, const int height)
- : check if the embedded thumbs have a color space set! currently we assume that it's always sRGB
- Global dt_imageio_open_exr (dt_image_t *img, const char *filename, dt_mipmap_buffer_t *buf)
: is this really needed?
open exr cleanup...
- Global dt_imageio_open_rawspeed (dt_image_t *img, const char *filename, dt_mipmap_buffer_t *buf)
-
- Global dt_imageio_xcf_gui_t
- :
- Global dt_init (int argc, char *argv[], const gboolean init_gui, const gboolean load_data, lua_State *L)
: Make a single call to unified GUI API initializing everything graphical at once.
: is this also useful in non-gui mode?
: move there into dt_database_t
- Global dt_introspection_type_header_t::so
- : use start of parent struct instead?
- Global dt_iop_color_picker_is_visible (const dt_develop_t *dev)
- : should this be here or perhaps lib.c?
- Global dt_iop_copy_image_roi (float *const __restrict__ out, const float *const __restrict__ in, const size_t ch, const dt_iop_roi_t *const __restrict__ roi_in, const dt_iop_roi_t *const __restrict__ roi_out, const int zero_pad)
- Global dt_iop_gui_blending_lose_focus (dt_iop_module_t *module)
- : there are more than 3 functions getting clever about how to setup module->request_mask_display depending on user input.
- Global dt_iop_gui_update_blendif (dt_iop_module_t *module)
- : there are more than 3 functions getting clever about how to setup module->request_mask_display depending on user input.
- Global dt_iop_have_required_input_format (const int req_ch, struct dt_iop_module_t *const module, const int ch, const void *const restrict ivoid, void *const restrict ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
- : pop up a toast message?
- Global dt_iop_tonecurve_draw (GtkWidget *widget, cairo_t *crf, gpointer user_data)
- : if darktable becomes HDR-10bits compatible (for output), this needs to be updated
- Global dt_iop_useless_type_t
- : some build system to support dt-less compilation and translation!
- Global dt_key_modifier_state ()
- double check correct way of doing this (merge conflict with Input System NG 20210319) GdkKeymap *keymap = gdk_keymap_get_for_display(gdk_display_get_default()); return gdk_keymap_get_modifier_state(keymap) & gdk_keymap_get_modifier_mask(keymap, GDK_MODIFIER_INTENT_DEFAULT_MOD_MASK);
- Global dt_lib_gui_get_expander (dt_lib_module_t *module)
- separately define as darkroom widget shortcut/action, because not automatically registered via lib
- Global dt_lib_init_module (void *m)
: look for active view. Do we know it at init time ?
: handle the other views
- Global dt_lib_presets_popup_menu_show (dt_lib_module_info_t *minfo)
- : this doesn't seem to work.
- Global dt_lua_gtk_wrap_callback (gpointer data)
- : propre stack unwinding
- Global dt_masks_calculate_source_pos_value (dt_masks_form_gui_t *gui, const int mask_type, const float initial_xpos, const float initial_ypos, const float xpos, const float ypos, float *px, float *py, const int adding)
- : replace individual cases with this generic one (will require passing 'form' through multiple layers...)
- Global dt_masks_iop_value_changed_callback (GtkWidget *widget, struct dt_iop_module_t *module)
- : these values should use binary enums
- Global dt_masks_legacy_params_v1_to_v2 (dt_develop_t *dev, void *params)
- : new ones have wrong rotation.
- Global dt_masks_point_in_form_near (float x, float y, float *points, int points_start, int points_count, float distance, int *near)
- : distance is only evaluated in x, not y...
- Global dt_masks_reset_show_masks_icons (void)
- : this doesn't look right. Why do we break the while look as soon as one module has no blend_data?
- Global dt_metadata_set_import (const int32_t imgid, const char *key, const char *value)
- : what does XMP writing preference has to do with anything here ???
- Global dt_modifier_is (const GdkModifierType state, const GdkModifierType desired_modifier_mask)
- : on Macs, remap the GDK_CONTROL_MASK bit in desired_modifier_mask to be the bit for the Cmd key
- Global dt_modifiers_include (const GdkModifierType state, const GdkModifierType desired_modifier_mask)
- : on Macs, remap the GDK_CONTROL_MASK bit in desired_modifier_mask to be the bit for the Cmd key
- Global dt_noiseprofile_init (const char *alternative)
- : shall we cache the content? for now this looks fast enough(TM)
- Global dt_pdf_add_image (dt_pdf_t *pdf, const unsigned char *image, int width, int height, int bpp, int icc_id, float border)
- : allow setting it from the outside
- Global dt_pdf_finish (dt_pdf_t *pdf, dt_pdf_page_t **pages, int n_pages)
- find something less necrophilic, maybe hash of image + history? or just of filename + date :)
- Global dt_printing_setup_image (dt_images_box *imgs, const int idx, const int32_t imgid, const int32_t width, const int32_t height, const dt_alignment_t alignment)
- : broken by design
- Global dt_rgb_norm (const float *in, const int norm, const dt_iop_order_iccprofile_info_t *const work_profile)
- : unpack work_profile members higher, at loop level, to enable more optimizations
- Global dt_set_signal_handlers ()
- : what about SIGABRT?
- Global DT_SIGNAL_IMAGE_INFO_CHANGED
- check if tag and metadata could be included there
- Global dt_styles_apply_style_item (dt_develop_t *dev, dt_style_item_t *style_item, GList **modules_used)
: this is copied from dt_dev_read_history_ext(), maybe do a helper with this?
: not sure how to handle this here...
- Global dt_styles_import_from_file (const char *style_path)
- : ferror?
- Global dt_tag_import (const char *filename)
- not possible with our db
- Global dtgtk_cairo_paint_jzazbz (cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
- : change icon to "AzBz" or just "z"
- Global dtgtk_cairo_paint_luv (cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)
- : change icon to "u*v*"
- Global expose (dt_view_t *self, cairo_t *cri, int32_t width, int32_t height, int32_t pointerx, int32_t pointery)
: draw picker in gui_post_expose() hook in libs/colorpicker.c – catch would be that live samples would appear over guides, softproof/gamut text overlay would be hidden by picker
: these four dt_control_get_dev_*() calls each lock/unlock global_mutex – consolidate this work
- Global extrapolate_lut (const float *const lut, const float v, const int lutsize)
- : check if optimization is worthwhile!
- Global filmrolls_updated (gpointer instance, gpointer self)
- : We should update the count of images here
- Global FILTERS_ARE_4BAYER (filters)
- : kill this pls.
- Global find_closest_corner (point_t *bb, float x, float y)
- : only react when the distance < some threshold?
- Global flags (dt_imageio_module_data_t *data)
- (jinxos): support embedded ICC
- Global gauss_reduce (const float *const input, float *const coarse, float *const detail, const size_t wd, const size_t ht)
: we'll need to pad up the image to get a good boundary condition!
: downsampling will not result in an energy conserving pattern (every 4 pixels one sample)
: neither will a mirror boundary condition (mirrors in subsampled values at random density)
: copy laplacian code from local laplacian filters, it's faster.
- Global get_autoscale (dt_iop_module_t *self, dt_iop_lensfun_params_t *p, const lfCamera *camera)
- : get those from rawprepare IOP somehow !!!
- Global get_help_url (GtkWidget *widget)
- : this doesn't work for all widgets. the reason being that the GtkEventBox we put libs/iops into catches events.
- Global get_params (dt_imageio_module_format_t *self)
- : Move to legacy eventually
- Global get_params (dt_lib_module_t *self, int *size)
: get this stuff from gui and not from conf, so it will be sanity-checked (you can never delete an
: also the web preset has to be applied twice to be known as preset! (other dimension magic going on
- Global get_shade_from_luminance (cairo_t *cr, const float luminance, const float alpha)
- : fetch screen gamma from ICC display profile
- Global gui_cleanup (dt_lib_module_t *self)
- : Make sure we are cleaning up all allocations
- Global gui_init (dt_imageio_module_format_t *self)
-
- Global gui_init (struct dt_iop_module_t *self)
- : that tooltip goes in the way of the numbers when you hover a node to get a reading
- Global gui_init (dt_imageio_module_format_t *self)
: some quality/compression stuff in case "off" is selected
: options for "off"
- Global gui_init (dt_view_t *self)
- can't use DT_BAUHAUS_COMBOBOX_NEW_FULL because of (unnecessary?) translation context
- Global gui_init (dt_imageio_module_format_t *self)
- : add more options: subsample dreggn
- Global gui_init (struct dt_iop_module_t *self)
- : that tooltip goes in the way of the numbers when you hover a node to get a reading
- Global gui_init (dt_imageio_module_format_t *self)
- : Move to legacy eventually
- Global gui_init (dt_lib_module_t *self)
: set digits/increments on all of these by calling _unit_changed() later?
: add labels to x/y/width/height as otherwise are obscure – and there is the horizontal space to do this
- Global gui_init (dt_imageio_module_format_t *self)
- : some quality/compression stuff?
- Global gui_post_expose (struct dt_iop_module_t *self, cairo_t *cr, int32_t width, int32_t height, int32_t pointerx, int32_t pointery)
- : For portrait images the overlay is a bit off. The coordinates in mouse_moved seem to be ok though.
- Global gui_post_expose (struct dt_lib_module_t *self, cairo_t *cr, int32_t width, int32_t height, int32_t pointerx, int32_t pointery)
- : here and elsewhere eliminate hardcoded RGB values – use CSS
- Global gui_update (dt_iop_module_t *self)
- check why needed
- Global gui_update (struct dt_iop_module_t *self)
- by hand
- Global histogram_helper_cs_Lab_LCh (const dt_dev_histogram_collection_params_t *const histogram_params, const void *pixel, uint32_t *histogram, int j, const dt_iop_order_iccprofile_info_t *const profile_info)
- : process aligned pixels with SSE
- Global icc_intents ()
- : Can this be automated to keep in sync with colorspaces.h?
- Global icc_types ()
- : Can this be automated to keep in sync with colorspaces.h?
- Global init_presets (dt_lib_module_t *self)
- : store presets in db:
- Global initialize_store_wrapper (struct dt_imageio_module_storage_t *self, dt_imageio_module_data_t *data, dt_imageio_module_format_t **format, dt_imageio_module_data_t **fdata, GList **images, const gboolean high_quality)
- : return 0 on success and 1 on error!
- Global kmeans (const float *col, const dt_iop_roi_t *const roi, const int n, float2 *mean_out, float2 *var_out)
- : check params here:
- Global legacy_params (dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, const int new_version)
- : the calling logic needs to be improved to call upgrades from consecutive version in sequence.
- Global lerp_lut (const float *const lut, const float v)
: check if optimization is worthwhile!
: check if optimization is worthwhile!
- Global levels (dt_imageio_module_data_t *p)
- : adapt as soon as this module supports various bitdepths
- Global ll_pad_input (const float *const input, const int wd, const int ht, const int max_supp, int *wd2, int *ht2, local_laplacian_boundary_t *b)
: linear interpolation?
: linear interpolation?
: linear interpolation?
: linear interpolation?
- Global load_profile_from_dir (const char *subdir)
- : add support for grayscale profiles, then remove _ensure_rgb_profile() from here
- Global load_xmp_callback (GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
- : only when needed, check imgid
- Class Lock
- : check again once we rely on 0.27
- Global main (int argc, char *arg[])
: test if file with replaced ext exists
: add a callback to set the bpp without going through the config
: have a parameter in command line to get the export presets
- Global main_csv (dt_lut_t *self, int argc, char *argv[])
- : add command line options to control what modules to include
- Global mat3SSEmul (dt_colormatrix_t dest, const dt_colormatrix_t m1, const dt_colormatrix_t m2)
- : see if that refactors with the previous
- Global match_color_to_background (cairo_t *cr, const float exposure, const float alpha)
- : put that as a preference in anselrc
- Global mime (dt_imageio_module_data_t *data)
- : revisit this when IANA makes it official.
- Global modify_roi_in (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const dt_iop_roi_t *roi_out, dt_iop_roi_t *roi_in)
: viewport, but changing it to 0 breaks all of the tiling_callback functions with a division by zero
: clamping to 1 leads to a one-pixel visual glitch if the right/bottom border completely fills the
- Global mouse_moved (struct dt_iop_module_t *self, double x, double y, double pressure, int which)
: When going over the 1.0 boundary from narrow to wide (>1.0 -> <=1.0) the width slightly
: When going over the 1.0 boundary from wide to narrow (>1.0 -> <=1.0) the height slightly
s further down.
- Global name ()
- : handle all the branching uniformingly
- Global new_color_image (int width, int height, int ch)
- : the code consuming color_image doesn't check if we actually allocated the buffer
- Global new_gray_image (int width, int height)
- : the code consuming gray_image doesn't check if we actually allocated the buffer
- Global open_doc_callback (GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
- : use translated URL when doc gets translated
- Global open_donate_callback (GtkAccelGroup *group, GObject *acceleratable, guint keyval, GdkModifierType mods, gpointer user_data)
- : use translated URL when doc gets translated
- Global post_history_commit (dt_iop_module_t *self)
- : share this code with gui_update()
- Global process (struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
- : this returns nan!!
- Global process (dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
- : optimize with scanlines and linear steps between?
- Global process (struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
: fixed alloc for data piece at capped resolution?
: optimize with scanlines and linear steps between?
: it could be wise to make this a NOP when picking colors. not sure about that though.
- Global process (dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
- : optimize with scanlines and linear steps between?
- Global process_data (dt_lut_t *self, double *target_L, double *target_a, double *target_b, double *colorchecker_Lab, int N, int sparsity)
- : is the rank interesting, too?
- Global process_lut (struct dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
comments in apply_curve for more potential performance improvements
, determine what possible data formats and channel
- Global rcd_demosaic (dt_dev_pixelpipe_iop_t *piece, float *const restrict out, const float *const restrict in, dt_iop_roi_t *const roi_out, const dt_iop_roi_t *const roi_in, const uint32_t filters)
: CRITICAL: need to handle the case where we couldn't alloc the memory,
: figure out what part of rgb is being accessed without initialization on partial tiles
- Global read_history_v2 (Exiv2::XmpData &xmpData, const char *filename)
- : support human readable params via introspection with something like this:
- Global read_masks (Exiv2::XmpData &xmpData, const char *filename, const int version)
- : turn that into something like Xmp.darktable.history!
- Global read_masks_v3 (Exiv2::XmpData &xmpData, const char *filename, const int version)
- : support human readable params via introspection with something like this:
- Global reload_defaults (dt_iop_module_t *module)
- : fetch actual exposure in module, don't assume 1.
- Global reload_defaults (dt_iop_module_t *self)
- : does not work.
- Global reload_defaults (dt_iop_module_t *module)
- : update the gui when we add/remove the eprofile or ematrix
- Global reload_defaults (dt_iop_module_t *self)
- : does not work.
- Global rt_develop_ui_pipe_finished_callback (gpointer instance, gpointer user_data)
- : this doesn't seems the right place to update params and GUI ...
- Global rt_process_forms (float *layer, dwt_params_t *const wt_p, const int scale1)
- : we get this error when user go back in history, so forms are the same but the array has changed
- Global saturation_gui_to_internal (float saturation_percent)
- : there is a flaw in conversion of saturation from gui value to
- Global scrolled (dt_view_t *self, double x, double y, int up, int state)
- : use invalidate_top in the future
- Global set_params (dt_imageio_module_storage_t *self, const void *params, const int size)
- : store name/hash in kwallet/etc module and get encrypted stuff from there!
- Global style_item_gc (lua_State *L)
- : Can't we use dt_style_item_free() instead? Or may the pointer itself not be freed?
- Global temp2mul (dt_iop_module_t *self, double TempK, double tint, double mul[4])
- : This is baaad!
- Global temperature_tint_to_XYZ (double TempK, double tint)
- : This is baaad!
- Global temperature_to_XYZ (double TempK)
- : temperature and tint cannot be disjoined! (here it assumes no tint)
- Global test_filmic_desaturate_v1 (void **state)
- : take 100%
- Global test_filmic_spline (void **state)
- : write tests for the method test_filmic_spline
- Global test_get_pixel_norm (void **state)
s below
: find out how to mock inline functions!
: find out how to mock inline functions!
- Global tiling_callback (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const dt_iop_roi_t *roi_in, const dt_iop_roi_t *roi_out, struct dt_develop_tiling_t *tiling)
the above are worst case values, we might iterate through the dt_iop_retouch_form_data_t to get
: check if that's sufficiently large
- Global tree_row_activated_presets (GtkTreeView *tree, GtkTreePath *path, GtkTreeViewColumn *column, gpointer data)
- : remember which sections were collapsed/expanded and where the view was scrolled to and restore that
- Global view_popup_menu_onRemove (GtkWidget *menuitem, gpointer userdata)
- :
- Global wavelets_process (const float *const restrict in, float *const restrict reconstructed, const float *const restrict clipping_mask, const size_t width, const size_t height, const int scales, float *const restrict HF, float *const restrict LF_odd, float *const restrict LF_even, const diffuse_reconstruct_variant_t variant, const float noise_level, const int salt, const float first_order_factor)
- : alloc in caller
- Global wavelets_process (const float *const restrict in, float *const restrict reconstructed, const uint8_t *const restrict mask, const size_t width, const size_t height, const dt_iop_diffuse_data_t *const data, const float final_radius, const float zoom, const int scales, const int has_mask, float *const restrict HF[10], float *const restrict LF_odd, float *const restrict LF_even)
- : alloc in caller
- Global write_image (dt_imageio_module_data_t *data, const char *filename, const void *in, dt_colorspaces_color_profile_type_t over_type, const char *over_filename, void *exif, int exif_len, int32_t imgid, int num, int total, struct dt_dev_pixelpipe_t *pipe, const gboolean export_masks)
-
- Global write_image (dt_imageio_module_data_t *webp, const char *filename, const void *in_tmp, dt_colorspaces_color_profile_type_t over_type, const char *over_filename, void *exif, int exif_len, int32_t imgid, int num, int total, struct dt_dev_pixelpipe_t *pipe, const gboolean export_masks)
- (jinxos): these values should be adjusted as needed and ideally determined at runtime.
- Global write_image (dt_imageio_module_data_t *data, const char *filename, const void *in, dt_colorspaces_color_profile_type_t over_type, const char *over_filename, void *exif, int exif_len, int32_t imgid, int num, int total, struct dt_dev_pixelpipe_t *pipe, const gboolean export_masks)
: escape ')' and maybe also '('
- Global write_image (dt_imageio_module_data_t *data, const char *filename, const void *ivoid, dt_colorspaces_color_profile_type_t over_type, const char *over_filename, void *exif, int exif_len, int32_t imgid, int num, int total, struct dt_dev_pixelpipe_t *pipe, const gboolean export_masks)
- : this needs to be serialized, together with the exif data
- Global write_image (lua_State *L)
- : expose icc overwrites to the user!
- Global write_image (dt_imageio_module_data_t *j2k_tmp, const char *filename, const void *in_tmp, dt_colorspaces_color_profile_type_t over_type, const char *over_filename, void *exif, int exif_len, int32_t imgid, int num, int total, struct dt_dev_pixelpipe_t *pipe, const gboolean export_masks)
- : allow other bitdepths!
- Global write_image (struct dt_imageio_module_data_t *data, const char *filename, const void *in, dt_colorspaces_color_profile_type_t over_type, const char *over_filename, void *exif, int exif_len, int32_t imgid, int num, int total, struct dt_dev_pixelpipe_t *pipe, const gboolean export_masks)
- : workaround; remove when exiv2 implements AVIF write support and update flags()
- Global write_image (dt_imageio_module_data_t *data, const char *filename, const void *in, dt_colorspaces_color_profile_type_t over_type, const char *over_filename, void *exif, int exif_len, int32_t imgid, int num, int total, struct dt_dev_pixelpipe_t *pipe, const gboolean export_masks)
- : we can't rely on darktable to avoid file overwriting – it doesn't know the filename (extension).
- Global write_image (dt_imageio_module_data_t *webp, const char *filename, const void *in_tmp, dt_colorspaces_color_profile_type_t over_type, const char *over_filename, void *exif, int exif_len, int32_t imgid, int num, int total, struct dt_dev_pixelpipe_t *pipe, const gboolean export_masks)
- (jinxos): expose more config options in the UI
- Global write_image (lua_State *L)
- : expose these to the user!
- Global xtrans_fdc_interpolate (struct dt_iop_module_t *self, float *out, const float *const in, const dt_iop_roi_t *const roi_out, const dt_iop_roi_t *const roi_in, const uint8_t(*const xtrans)[6])
- : these constants come from integer math constants in
- Global xtrans_markesteijn_interpolate (float *out, const float *const in, const dt_iop_roi_t *const roi_out, const dt_iop_roi_t *const roi_in, const uint8_t(*const xtrans)[6], const int passes)
- : these constants come from integer math constants in
- Global XYZ_to_temperature (cmsCIEXYZ XYZ, float *TempK, float *tint)
- : Fix this to move orthogonally to planckian locus