Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
highlights.c File Reference
#include "widgets/bauhaus.h"
#include "common/opencl.h"
#include "control/user_message.h"
#include "develop/develop.h"
#include "develop/imageop.h"
#include "develop/imageop_gui.h"
#include "develop/imageop_math.h"
#include "develop/tiling.h"
#include <assert.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "iop/iop_api.h"
#include "iop/highlights/clip.h"
#include "iop/highlights/common.h"
#include "iop/highlights/inpaint.h"
#include "iop/highlights/laplacian.h"
#include "iop/highlights/lch.h"
#include "iop/highlights/process.h"
#include <gtk/gtk.h>
#include <inttypes.h>
#include "widgets/label.h"
+ Include dependency graph for highlights.c:

Go to the source code of this file.

Data Structures

struct  dt_iop_highlights_gui_data_t
 

Typedefs

typedef struct dt_iop_highlights_gui_data_t dt_iop_highlights_gui_data_t
 

Functions

const char * name ()
 
const char ** description (struct dt_iop_module_t *self)
 
int default_group ()
 
int flags ()
 
int default_colorspace (dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece)
 
void output_format (dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece, dt_iop_buffer_dsc_t *dsc)
 
void autoset (struct dt_iop_module_t *self, const struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, const void *input)
 
int legacy_params (dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, const int new_version)
 
static void _hl_count_thresholds (const int mode, const float user_clip, const dt_aligned_pixel_t pmax, const float clip, dt_aligned_pixel_t thresholds)
 
static size_t _hl_count_clipped (const dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, const dt_iop_roi_t *const roi_out, const dt_aligned_pixel_t thresholds)
 
static void _hl_copy_input (const dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid, const dt_iop_roi_t *const roi_out)
 
static cl_int _hl_cl_visualize (dt_iop_highlights_global_data_t *gd, const int devid, cl_mem dev_in, cl_mem dev_out, const int width, const int height, const dt_iop_roi_t *const roi_out, const uint32_t filters, const dt_aligned_pixel_t clips)
 
static cl_int _hl_cl_count_clipped (dt_iop_highlights_global_data_t *gd, const int devid, cl_mem dev_in, const int width, const int height, const dt_aligned_pixel_t thresholds, const int is_raw, size_t *const clipped)
 
static cl_int _hl_cl_clip (dt_iop_highlights_global_data_t *gd, const int devid, cl_mem dev_in, cl_mem dev_out, const int width, const int height, const dt_iop_roi_t *const roi_out, const uint32_t filters, const int mode, const float clip)
 
static cl_int _hl_cl_lch_bayer (dt_iop_highlights_global_data_t *gd, const int devid, cl_mem dev_in, cl_mem dev_out, const int width, const int height, const dt_iop_roi_t *const roi_out, const uint32_t filters, const float clip)
 
static cl_int _hl_cl_lch_xtrans (dt_iop_highlights_global_data_t *gd, const int devid, cl_mem dev_in, cl_mem dev_out, const int width, const int height, const dt_iop_roi_t *const roi_out, const dt_dev_pixelpipe_iop_t *piece, const float clip)
 
int process_cl (struct dt_iop_module_t *self, const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, cl_mem dev_in, cl_mem dev_out)
 
void tiling_callback (struct dt_iop_module_t *self, const struct dt_dev_pixelpipe_t *pipe, const struct dt_dev_pixelpipe_iop_t *piece, struct dt_develop_tiling_t *tiling)
 
static const char * _highlights_mode_name (const dt_iop_highlights_mode_t mode)
 
static gboolean _highlights_mode_supported (const dt_iop_highlights_mode_t mode, const uint32_t filters)
 
__DT_CLONE_TARGETS__ int process (struct dt_iop_module_t *self, const dt_dev_pixelpipe_t *pipe, const dt_dev_pixelpipe_iop_t *piece, const void *const ivoid, void *const ovoid)
 
void commit_params (struct dt_iop_module_t *self, dt_iop_params_t *p1, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
static gboolean _highlights_image_supported (const dt_image_t *image)
 
static gboolean enable (const dt_image_t *image)
 
gboolean force_enable (struct dt_iop_module_t *self, const gboolean current_state)
 
void init_global (dt_iop_module_so_t *module)
 
void cleanup_global (dt_iop_module_so_t *module)
 
void init_pipe (struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
void cleanup_pipe (struct dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
void gui_changed (dt_iop_module_t *self, GtkWidget *w, void *previous)
 
void gui_update (struct dt_iop_module_t *self)
 Refresh GUI controls from current params and configuration.
 
void reload_defaults (dt_iop_module_t *module)
 
static void _visualize_callback (GtkWidget *quad, gpointer user_data)
 
void gui_focus (struct dt_iop_module_t *self, gboolean in)
 
void gui_init (struct dt_iop_module_t *self)
 

Typedef Documentation

◆ dt_iop_highlights_gui_data_t

Function Documentation

◆ _highlights_image_supported()

static gboolean _highlights_image_supported ( const dt_image_t *  image)
static

Definition at line 871 of file highlights.c.

References dt_image_is_monochrome(), and dt_image_is_mosaiced().

Referenced by force_enable(), and gui_update().

◆ _highlights_mode_name()

◆ _highlights_mode_supported()

static gboolean _highlights_mode_supported ( const dt_iop_highlights_mode_t  mode,
const uint32_t  filters 
)
static

◆ _hl_cl_clip()

static cl_int _hl_cl_clip ( dt_iop_highlights_global_data_t *  gd,
const int  devid,
cl_mem  dev_in,
cl_mem  dev_out,
const int  width,
const int  height,
const dt_iop_roi_t *const  roi_out,
const uint32_t  filters,
const int  mode,
const float  clip 
)
static

◆ _hl_cl_count_clipped()

static cl_int _hl_cl_count_clipped ( dt_iop_highlights_global_data_t *  gd,
const int  devid,
cl_mem  dev_in,
const int  width,
const int  height,
const dt_aligned_pixel_t  thresholds,
const int  is_raw,
size_t *const  clipped 
)
static

◆ _hl_cl_lch_bayer()

static cl_int _hl_cl_lch_bayer ( dt_iop_highlights_global_data_t *  gd,
const int  devid,
cl_mem  dev_in,
cl_mem  dev_out,
const int  width,
const int  height,
const dt_iop_roi_t *const  roi_out,
const uint32_t  filters,
const float  clip 
)
static

◆ _hl_cl_lch_xtrans()

◆ _hl_cl_visualize()

static cl_int _hl_cl_visualize ( dt_iop_highlights_global_data_t *  gd,
const int  devid,
cl_mem  dev_in,
cl_mem  dev_out,
const int  width,
const int  height,
const dt_iop_roi_t *const  roi_out,
const uint32_t  filters,
const dt_aligned_pixel_t  clips 
)
static

◆ _hl_copy_input()

static void _hl_copy_input ( const dt_dev_pixelpipe_iop_t *  piece,
const void *const  ivoid,
void *const  ovoid,
const dt_iop_roi_t *const  roi_out 
)
static

Definition at line 296 of file highlights.c.

References ch, dt_iop_image_copy_by_size(), dt_iop_roi_t::height, L, ovoid, piece, and dt_iop_roi_t::width.

Referenced by process().

◆ _hl_count_clipped()

static size_t _hl_count_clipped ( const dt_dev_pixelpipe_iop_t *  piece,
const void *const  ivoid,
const dt_iop_roi_t *const  roi_out,
const dt_aligned_pixel_t  thresholds 
)
static

Definition at line 266 of file highlights.c.

References __OMP_PARALLEL_FOR__, __OMP_PARALLEL_FOR_SIMD__, ch, dt_iop_roi_t::height, k, L, MIN, piece, and dt_iop_roi_t::width.

Referenced by process().

◆ _hl_count_thresholds()

static void _hl_count_thresholds ( const int  mode,
const float  user_clip,
const dt_aligned_pixel_t  pmax,
const float  clip,
dt_aligned_pixel_t  thresholds 
)
inlinestatic

◆ _visualize_callback()

◆ autoset()

◆ cleanup_global()

void cleanup_global ( dt_iop_module_so_t *  module)

Definition at line 1055 of file highlights.c.

References dt_free, dt_opencl_free_kernel(), and L.

◆ cleanup_pipe()

void cleanup_pipe ( struct dt_iop_module_t *  self,
dt_dev_pixelpipe_t *  pipe,
dt_dev_pixelpipe_iop_t *  piece 
)

Definition at line 1207 of file highlights.c.

References dt_free_align, L, and piece.

◆ commit_params()

◆ default_colorspace()

int default_colorspace ( dt_iop_module_t *  self,
dt_dev_pixelpipe_t *  pipe,
const dt_dev_pixelpipe_iop_t *  piece 
)

Definition at line 127 of file highlights.c.

References IOP_CS_RAW, IOP_CS_RGB, and piece.

◆ default_group()

int default_group ( )

Definition at line 117 of file highlights.c.

References IOP_GROUP_REPAIR.

◆ description()

const char ** description ( struct dt_iop_module_t *  self)

Definition at line 110 of file highlights.c.

References dt_iop_set_description(), and L.

◆ enable()

◆ flags()

int flags ( )

Definition at line 122 of file highlights.c.

References IOP_FLAGS_ALLOW_TILING, and IOP_FLAGS_SUPPORTS_BLENDING.

◆ force_enable()

gboolean force_enable ( struct dt_iop_module_t *  self,
const gboolean  current_state 
)

◆ gui_changed()

◆ gui_focus()

◆ gui_init()

◆ gui_update()

◆ init_global()

◆ init_pipe()

void init_pipe ( struct dt_iop_module_t *  self,
dt_dev_pixelpipe_t *  pipe,
dt_dev_pixelpipe_iop_t *  piece 
)

Definition at line 1201 of file highlights.c.

References dt_calloc_align(), and piece.

◆ legacy_params()

int legacy_params ( dt_iop_module_t *  self,
const void *const  old_params,
const int  old_version,
void *  new_params,
const int  new_version 
)

◆ name()

const char * name ( )

Definition at line 105 of file highlights.c.

References L.

◆ output_format()

void output_format ( dt_iop_module_t *  self,
dt_dev_pixelpipe_t *  pipe,
dt_dev_pixelpipe_iop_t *  piece,
dt_iop_buffer_dsc_t *  dsc 
)

Definition at line 133 of file highlights.c.

References default_output_format(), piece, and pipe.

◆ process()

◆ process_cl()

◆ reload_defaults()

void reload_defaults ( dt_iop_module_t *  module)

Definition at line 1262 of file highlights.c.

References dt_image_pipe_class(), dt_image_pipe_class_name(), dt_iop_fmt_log, and L.

◆ tiling_callback()