Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
atrous.c File Reference
#include "bauhaus/bauhaus.h"
#include "common/debug.h"
#include "common/eaw.h"
#include "common/imagebuf.h"
#include "common/opencl.h"
#include "control/conf.h"
#include "control/control.h"
#include "develop/imageop.h"
#include "develop/imageop_gui.h"
#include "develop/imageop_math.h"
#include "develop/tiling.h"
#include "dtgtk/drawingarea.h"
#include "gui/draw.h"
#include "gui/gtk.h"
#include "gui/presets.h"
#include "iop/iop_api.h"
#include <math.h>
#include <memory.h>
#include <stdlib.h>
+ Include dependency graph for atrous.c:

Data Structures

struct  dt_iop_atrous_params_t
 
struct  dt_iop_atrous_gui_data_t
 
struct  dt_iop_atrous_global_data_t
 
struct  dt_iop_atrous_data_t
 

Macros

#define INSET   DT_PIXEL_APPLY_DPI(5)
 
#define INFL   .3f
 
#define BANDS   6
 
#define MAX_NUM_SCALES   8
 
#define RES   64
 
#define dt_atrous_show_upper_label(cr, text, layout, ink)
 
#define dt_atrous_show_lower_label(cr, text, layout, ink)
 
#define GAUSS(x, sigma)   expf( -(1.0f - x) * (1.0f - x) / (sigma * sigma)) / (2.0 * sigma * powf(M_PI, 0.5f))
 

Typedefs

typedef enum atrous_channel_t atrous_channel_t
 
typedef struct dt_iop_atrous_params_t dt_iop_atrous_params_t
 
typedef struct dt_iop_atrous_gui_data_t dt_iop_atrous_gui_data_t
 
typedef struct dt_iop_atrous_global_data_t dt_iop_atrous_global_data_t
 
typedef struct dt_iop_atrous_data_t dt_iop_atrous_data_t
 

Enumerations

enum  atrous_channel_t {
  atrous_L = 0 ,
  atrous_c = 1 ,
  atrous_s = 2 ,
  atrous_Lt = 3 ,
  atrous_ct = 4 ,
  atrous_none = 5
}
 

Functions

const char * name ()
 
const char * aliases ()
 
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, dt_dev_pixelpipe_iop_t *piece)
 
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 int get_samples (float *t, const dt_iop_atrous_data_t *const d, const dt_iop_roi_t *roi_in, const dt_dev_pixelpipe_iop_t *const piece)
 
static int get_scales (float(*thrs)[4], float(*boost)[4], float *sharp, const dt_iop_atrous_data_t *const d, const dt_iop_roi_t *roi_in, const dt_dev_pixelpipe_iop_t *const piece)
 
static void process_wavelets (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const void *const i, void *const o, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out, const eaw_decompose_t decompose, const eaw_synthesize_t synthesize)
 
void process (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, const void *const i, void *const o, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
 
void 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)
 
void init (dt_iop_module_t *module)
 
void init_global (dt_iop_module_so_t *module)
 
void cleanup_global (dt_iop_module_so_t *module)
 
static void _apply_mix (dt_iop_module_t *self, const int ch, const int k, const float mix, const float px, const float py, float *x, float *y)
 
void commit_params (struct dt_iop_module_t *self, dt_iop_params_t *params, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
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 init_presets (dt_iop_module_so_t *self)
 
static void reset_mix (dt_iop_module_t *self)
 
void gui_update (struct dt_iop_module_t *self)
 
static gboolean area_enter_notify (GtkWidget *widget, GdkEventCrossing *event, gpointer user_data)
 
static gboolean area_leave_notify (GtkWidget *widget, GdkEventCrossing *event, gpointer user_data)
 
static void get_params (dt_iop_atrous_params_t *p, const int ch, const double mouse_x, const double mouse_y, const float rad)
 
static gboolean area_draw (GtkWidget *widget, cairo_t *crf, gpointer user_data)
 
static gboolean area_motion_notify (GtkWidget *widget, GdkEventMotion *event, gpointer user_data)
 
static gboolean area_button_press (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
 
static gboolean area_button_release (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
 
static gboolean area_scrolled (GtkWidget *widget, GdkEventScroll *event, gpointer user_data)
 
static void tab_switch (GtkNotebook *notebook, GtkWidget *page, guint page_num, gpointer user_data)
 
static void mix_callback (GtkWidget *slider, gpointer user_data)
 
void gui_init (struct dt_iop_module_t *self)
 
void gui_cleanup (struct dt_iop_module_t *self)
 

Macro Definition Documentation

◆ BANDS

#define BANDS   6

◆ dt_atrous_show_lower_label

#define dt_atrous_show_lower_label (   cr,
  text,
  layout,
  ink 
)
Value:
pango_layout_set_text(layout, text, -1); \
pango_layout_get_pixel_extents(layout, &ink, NULL); \
cairo_move_to(cr, .5 * (width - ink.width), (.98 * height) - ink.height); \
pango_cairo_show_layout(cr, layout);
int width
Definition bilateral.h:1
int height
Definition bilateral.h:1

◆ dt_atrous_show_upper_label

#define dt_atrous_show_upper_label (   cr,
  text,
  layout,
  ink 
)
Value:
pango_layout_set_text(layout, text, -1); \
pango_layout_get_pixel_extents(layout, &ink, NULL); \
cairo_move_to(cr, .5 * (width - ink.width), (.08 * height) - ink.height); \
pango_cairo_show_layout(cr, layout);

◆ GAUSS

#define GAUSS (   x,
  sigma 
)    expf( -(1.0f - x) * (1.0f - x) / (sigma * sigma)) / (2.0 * sigma * powf(M_PI, 0.5f))

◆ INFL

#define INFL   .3f

◆ INSET

#define INSET   DT_PIXEL_APPLY_DPI(5)

◆ MAX_NUM_SCALES

#define MAX_NUM_SCALES   8

◆ RES

#define RES   64

Typedef Documentation

◆ atrous_channel_t

◆ dt_iop_atrous_data_t

◆ dt_iop_atrous_global_data_t

◆ dt_iop_atrous_gui_data_t

◆ dt_iop_atrous_params_t

Enumeration Type Documentation

◆ atrous_channel_t

Enumerator
atrous_L 
atrous_c 
atrous_s 
atrous_Lt 
atrous_ct 
atrous_none 

Function Documentation

◆ _apply_mix()

static void _apply_mix ( dt_iop_module_t self,
const int  ch,
const int  k,
const float  mix,
const float  px,
const float  py,
float *  x,
float *  y 
)
inlinestatic

◆ aliases()

const char * aliases ( )

◆ area_button_press()

◆ area_button_release()

static gboolean area_button_release ( GtkWidget *  widget,
GdkEventButton *  event,
gpointer  user_data 
)
static

References FALSE, dt_iop_module_t::gui_data, reset_mix(), and TRUE.

Referenced by gui_init().

◆ area_draw()

◆ area_enter_notify()

static gboolean area_enter_notify ( GtkWidget *  widget,
GdkEventCrossing *  event,
gpointer  user_data 
)
static

References dt_iop_module_t::gui_data, and TRUE.

Referenced by gui_init().

◆ area_leave_notify()

static gboolean area_leave_notify ( GtkWidget *  widget,
GdkEventCrossing *  event,
gpointer  user_data 
)
static

References FALSE, dt_iop_module_t::gui_data, and TRUE.

Referenced by gui_init().

◆ area_motion_notify()

static gboolean area_motion_notify ( GtkWidget *  widget,
GdkEventMotion *  event,
gpointer  user_data 
)
static

◆ area_scrolled()

static gboolean area_scrolled ( GtkWidget *  widget,
GdkEventScroll *  event,
gpointer  user_data 
)
static

◆ cleanup_global()

◆ cleanup_pipe()

◆ commit_params()

◆ default_colorspace()

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

References IOP_CS_LAB.

◆ default_group()

int default_group ( )

References IOP_GROUP_SHARPNESS.

◆ description()

const char ** description ( struct dt_iop_module_t self)

◆ flags()

int flags ( )

◆ get_params()

static void get_params ( dt_iop_atrous_params_t p,
const int  ch,
const double  mouse_x,
const double  mouse_y,
const float  rad 
)
static

References BANDS, f(), MAX, and MIN.

Referenced by area_draw(), and area_motion_notify().

◆ get_samples()

static int get_samples ( float *  t,
const dt_iop_atrous_data_t *const  d,
const dt_iop_roi_t roi_in,
const dt_dev_pixelpipe_iop_t *const  piece 
)
static

◆ get_scales()

static int get_scales ( float(*)  thrs[4],
float(*)  boost[4],
float *  sharp,
const dt_iop_atrous_data_t *const  d,
const dt_iop_roi_t roi_in,
const dt_dev_pixelpipe_iop_t *const  piece 
)
static

◆ gui_cleanup()

◆ gui_init()

◆ gui_update()

◆ init()

◆ init_global()

◆ init_pipe()

◆ init_presets()

◆ 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 
)

◆ mix_callback()

static void mix_callback ( GtkWidget *  slider,
gpointer  user_data 
)
static

◆ name()

const char * name ( )

◆ process()

void process ( struct dt_iop_module_t self,
struct dt_dev_pixelpipe_iop_t piece,
const void *const  i,
void *const  o,
const dt_iop_roi_t *const  roi_in,
const dt_iop_roi_t *const  roi_out 
)

◆ process_wavelets()

◆ reset_mix()

◆ tab_switch()

static void tab_switch ( GtkNotebook *  notebook,
GtkWidget *  page,
guint  page_num,
gpointer  user_data 
)
static

◆ tiling_callback()

void 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 
)