Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
basecurve.c File Reference
#include "bauhaus/bauhaus.h"
#include "common/colorspaces_inline_conversions.h"
#include "common/debug.h"
#include "common/math.h"
#include "common/opencl.h"
#include "common/rgb_norms.h"
#include "control/control.h"
#include "develop/develop.h"
#include "develop/imageop.h"
#include "develop/imageop_math.h"
#include "develop/imageop_gui.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 <assert.h>
#include <gtk/gtk.h>
#include <inttypes.h>
#include <stdlib.h>
#include <string.h>
+ Include dependency graph for basecurve.c:

Data Structures

struct  dt_iop_basecurve_node_t
 
struct  dt_iop_basecurve_params_t
 
struct  dt_iop_basecurve_params5_t
 
struct  dt_iop_basecurve_params3_t
 
struct  dt_iop_basecurve_params2_t
 
struct  dt_iop_basecurve_params1_t
 
struct  dt_iop_basecurve_gui_data_t
 
struct  basecurve_preset_t
 
struct  dt_iop_basecurve_data_t
 
struct  dt_iop_basecurve_global_data_t
 

Macros

#define DT_GUI_CURVE_EDITOR_INSET   DT_PIXEL_APPLY_DPI(5)
 
#define DT_GUI_CURVE_INFL   .3f
 
#define DT_IOP_TONECURVE_RES   256
 
#define MAXNODES   20
 
#define m   MONOTONE_HERMITE
 
#define BASECURVE_DEFAULT_STEP   (0.001f)
 

Typedefs

typedef struct dt_iop_basecurve_node_t dt_iop_basecurve_node_t
 
typedef struct dt_iop_basecurve_params_t dt_iop_basecurve_params_t
 
typedef struct dt_iop_basecurve_params5_t dt_iop_basecurve_params5_t
 
typedef struct dt_iop_basecurve_params3_t dt_iop_basecurve_params3_t
 
typedef dt_iop_basecurve_params3_t dt_iop_basecurve_params4_t
 
typedef struct dt_iop_basecurve_params2_t dt_iop_basecurve_params2_t
 
typedef struct dt_iop_basecurve_params1_t dt_iop_basecurve_params1_t
 
typedef struct dt_iop_basecurve_gui_data_t dt_iop_basecurve_gui_data_t
 
typedef struct basecurve_preset_t basecurve_preset_t
 
typedef struct dt_iop_basecurve_data_t dt_iop_basecurve_data_t
 
typedef struct dt_iop_basecurve_global_data_t dt_iop_basecurve_global_data_t
 

Functions

int legacy_params (dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, const int new_version)
 
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, dt_dev_pixelpipe_iop_t *piece)
 
static void set_presets (dt_iop_module_so_t *self, const basecurve_preset_t *presets, int count, gboolean camera)
 
void init_presets (dt_iop_module_so_t *self)
 
static float exposure_increment (float stops, int e, float fusion, float bias)
 
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)
 
static void apply_legacy_curve (const float *const in, float *const out, const int width, const int height, const float mul, const float *const table, const float *const unbounded_coeffs)
 
static void 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)
 
static void compute_features (float *const col, const int wd, const int ht)
 
static void gauss_blur (const float *const input, float *const output, const size_t wd, const size_t ht)
 
static void gauss_expand (const float *const input, float *const fine, const size_t wd, const size_t ht)
 
static void gauss_reduce (const float *const input, float *const coarse, float *const detail, const size_t wd, const size_t ht)
 
void process_fusion (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)
 
void 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)
 
void 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)
 
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)
 
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_update (struct dt_iop_module_t *self)
 
static float eval_grey (float x)
 
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 gboolean dt_iop_basecurve_enter_notify (GtkWidget *widget, GdkEventCrossing *event, gpointer user_data)
 
static gboolean dt_iop_basecurve_leave_notify (GtkWidget *widget, GdkEventCrossing *event, gpointer user_data)
 
static float to_log (const float x, const float base)
 
static float to_lin (const float x, const float base)
 
static gboolean dt_iop_basecurve_draw (GtkWidget *widget, cairo_t *crf, gpointer user_data)
 
static int _add_node (dt_iop_basecurve_node_t *basecurve, int *nodes, float x, float y)
 
static void dt_iop_basecurve_sanity_check (dt_iop_module_t *self, GtkWidget *widget)
 
static gboolean _move_point_internal (dt_iop_module_t *self, GtkWidget *widget, float dx, float dy, guint state)
 
static gboolean dt_iop_basecurve_motion_notify (GtkWidget *widget, GdkEventMotion *event, gpointer user_data)
 
static gboolean dt_iop_basecurve_button_press (GtkWidget *widget, GdkEventButton *event, gpointer user_data)
 
static gboolean area_resized (GtkWidget *widget, GdkEvent *event, gpointer user_data)
 
static gboolean _scrolled (GtkWidget *widget, GdkEventScroll *event, gpointer user_data)
 
static gboolean dt_iop_basecurve_key_press (GtkWidget *widget, GdkEventKey *event, gpointer user_data)
 
void gui_changed (dt_iop_module_t *self, GtkWidget *w, void *previous)
 
static void logbase_callback (GtkWidget *slider, gpointer user_data)
 
void gui_init (struct dt_iop_module_t *self)
 
void gui_cleanup (struct dt_iop_module_t *self)
 

Variables

static const char neutral [] = N_("neutral")
 
static const char canon_eos [] = N_("canon eos like")
 
static const char canon_eos_alt [] = N_("canon eos like alternate")
 
static const char nikon [] = N_("nikon like")
 
static const char nikon_alt [] = N_("nikon like alternate")
 
static const char sony_alpha [] = N_("sony alpha like")
 
static const char pentax [] = N_("pentax like")
 
static const char ricoh [] = N_("ricoh like")
 
static const char olympus [] = N_("olympus like")
 
static const char olympus_alt [] = N_("olympus like alternate")
 
static const char panasonic [] = N_("panasonic like")
 
static const char leica [] = N_("leica like")
 
static const char kodak_easyshare [] = N_("kodak easyshare like")
 
static const char konica_minolta [] = N_("konica minolta like")
 
static const char samsung [] = N_("samsung like")
 
static const char fujifilm [] = N_("fujifilm like")
 
static const char nokia [] = N_("nokia like")
 
static const basecurve_preset_t basecurve_camera_presets []
 
static const int basecurve_camera_presets_cnt = sizeof(basecurve_camera_presets) / sizeof(basecurve_preset_t)
 
static const basecurve_preset_t basecurve_presets []
 
static const int basecurve_presets_cnt = sizeof(basecurve_presets) / sizeof(basecurve_preset_t)
 

Macro Definition Documentation

◆ BASECURVE_DEFAULT_STEP

#define BASECURVE_DEFAULT_STEP   (0.001f)

◆ DT_GUI_CURVE_EDITOR_INSET

#define DT_GUI_CURVE_EDITOR_INSET   DT_PIXEL_APPLY_DPI(5)

◆ DT_GUI_CURVE_INFL

#define DT_GUI_CURVE_INFL   .3f

◆ DT_IOP_TONECURVE_RES

#define DT_IOP_TONECURVE_RES   256

◆ m

#define m   MONOTONE_HERMITE

◆ MAXNODES

#define MAXNODES   20

Typedef Documentation

◆ basecurve_preset_t

◆ dt_iop_basecurve_data_t

◆ dt_iop_basecurve_global_data_t

◆ dt_iop_basecurve_gui_data_t

◆ dt_iop_basecurve_node_t

◆ dt_iop_basecurve_params1_t

◆ dt_iop_basecurve_params2_t

◆ dt_iop_basecurve_params3_t

◆ dt_iop_basecurve_params4_t

◆ dt_iop_basecurve_params5_t

◆ dt_iop_basecurve_params_t

Function Documentation

◆ _add_node()

static int _add_node ( dt_iop_basecurve_node_t basecurve,
int *  nodes,
float  x,
float  y 
)
inlinestatic

◆ _move_point_internal()

static gboolean _move_point_internal ( dt_iop_module_t self,
GtkWidget *  widget,
float  dx,
float  dy,
guint  state 
)
static

◆ _scrolled()

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

◆ apply_curve()

static void 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 
)
inlinestatic
Todo:
: Determine if we can get rid of the conditionals within this function in some way to improve performance.

References dt_iop_eval_exp(), dt_rgb_norm(), height, and width.

Referenced by process_fusion(), and process_lut().

◆ apply_legacy_curve()

static void apply_legacy_curve ( const float *const  in,
float *const  out,
const int  width,
const int  height,
const float  mul,
const float *const  table,
const float *const  unbounded_coeffs 
)
inlinestatic

References dt_iop_eval_exp(), f(), height, and width.

Referenced by process_fusion(), and process_lut().

◆ area_resized()

static gboolean area_resized ( GtkWidget *  widget,
GdkEvent *  event,
gpointer  user_data 
)
static

References TRUE.

Referenced by gui_init().

◆ cleanup_global()

◆ cleanup_pipe()

◆ commit_params()

◆ compute_features()

static void compute_features ( float *const  col,
const int  wd,
const int  ht 
)
inlinestatic

References dt_fast_expf(), MAX, and MIN.

Referenced by process_fusion().

◆ default_colorspace()

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

References IOP_CS_RGB.

◆ default_group()

int default_group ( )

References IOP_GROUP_TONES.

◆ description()

const char ** description ( struct dt_iop_module_t self)

◆ dt_iop_basecurve_button_press()

◆ dt_iop_basecurve_draw()

◆ dt_iop_basecurve_enter_notify()

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

References TRUE.

Referenced by gui_init().

◆ dt_iop_basecurve_key_press()

static gboolean dt_iop_basecurve_key_press ( GtkWidget *  widget,
GdkEventKey *  event,
gpointer  user_data 
)
static

◆ dt_iop_basecurve_leave_notify()

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

References TRUE.

Referenced by gui_init().

◆ dt_iop_basecurve_motion_notify()

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

◆ dt_iop_basecurve_sanity_check()

static void dt_iop_basecurve_sanity_check ( dt_iop_module_t self,
GtkWidget *  widget 
)
static

◆ eval_grey()

static float eval_grey ( float  x)
static

Referenced by logbase_callback().

◆ exposure_increment()

static float exposure_increment ( float  stops,
int  e,
float  fusion,
float  bias 
)
static

Referenced by process_fusion().

◆ flags()

◆ gauss_blur()

static void gauss_blur ( const float *const  input,
float *const  output,
const size_t  wd,
const size_t  ht 
)
inlinestatic

References dt_alloc_align_float(), dt_free_align, MAX, and MIN.

Referenced by gauss_expand(), and gauss_reduce().

◆ gauss_expand()

static void gauss_expand ( const float *const  input,
float *const  fine,
const size_t  wd,
const size_t  ht 
)
inlinestatic

References gauss_blur().

Referenced by gauss_reduce(), and process_fusion().

◆ gauss_reduce()

static void gauss_reduce ( const float *const  input,
float *const  coarse,
float *const  detail,
const size_t  wd,
const size_t  ht 
)
inlinestatic
Todo:

: 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.

References dt_alloc_align_float(), dt_free_align, gauss_blur(), and gauss_expand().

Referenced by process_fusion().

◆ gui_changed()

void gui_changed ( dt_iop_module_t self,
GtkWidget *  w,
void previous 
)

◆ gui_cleanup()

◆ gui_init()

◆ gui_update()

◆ init()

◆ init_global()

◆ init_pipe()

◆ init_presets()

◆ legacy_params()

◆ logbase_callback()

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

◆ name()

const char * name ( )

Referenced by set_presets().

◆ process()

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

◆ process_fusion()

◆ process_lut()

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

◆ set_presets()

◆ tiling_callback()

◆ to_lin()

static float to_lin ( const float  x,
const float  base 
)
static

◆ to_log()

static float to_log ( const float  x,
const float  base 
)
static

Variable Documentation

◆ basecurve_camera_presets

const basecurve_preset_t basecurve_camera_presets[]
static

Referenced by init_presets().

◆ basecurve_camera_presets_cnt

const int basecurve_camera_presets_cnt = sizeof(basecurve_camera_presets) / sizeof(basecurve_preset_t)
static

Referenced by init_presets().

◆ basecurve_presets

const basecurve_preset_t basecurve_presets[]
static
Initial value:
= {
{ N_("cubic spline"), "", "", 0, FLT_MAX, { { { { 0.0, 0.0}, { 1.0, 1.0 }, { 0., 0.}, { 0., 0.}, { 0., 0.}, { 0., 0.}, { 0., 0.}, { 0., 0.} } }, { 2 }, { CUBIC_SPLINE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ neutral, "", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.005000, 0.002500 }, { 0.150000, 0.300000 }, { 0.400000, 0.700000 }, { 0.750000, 0.950000 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE } , 0, 0, 0, DT_RGB_NORM_LUMINANCE}, 0, 1 },
{ canon_eos, "Canon", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.028226, 0.029677 }, { 0.120968, 0.232258 }, { 0.459677, 0.747581 }, { 0.858871, 0.967742 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ canon_eos_alt, "Canon", "EOS 5D Mark%", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.026210, 0.029677 }, { 0.108871, 0.232258 }, { 0.350806, 0.747581 }, { 0.669355, 0.967742 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ nikon, "NIKON", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.036290, 0.036532 }, { 0.120968, 0.228226 }, { 0.459677, 0.759678 }, { 0.858871, 0.983468 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ nikon_alt, "NIKON", "%D____%", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.012097, 0.007322 }, { 0.072581, 0.130742 }, { 0.310484, 0.729291 }, { 0.611321, 0.951613 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ sony_alpha, "SONY", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.031949, 0.036532 }, { 0.105431, 0.228226 }, { 0.434505, 0.759678 }, { 0.855738, 0.983468 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ pentax, "PENTAX", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.032258, 0.024596 }, { 0.120968, 0.166419 }, { 0.205645, 0.328527 }, { 0.604839, 0.790171 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ ricoh, "RICOH", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.032259, 0.024596 }, { 0.120968, 0.166419 }, { 0.205645, 0.328527 }, { 0.604839, 0.790171 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ olympus, "OLYMPUS", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.033962, 0.028226 }, { 0.249057, 0.439516 }, { 0.501887, 0.798387 }, { 0.750943, 0.955645 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ olympus_alt, "OLYMPUS", "E-M%", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.012097, 0.010322 }, { 0.072581, 0.167742 }, { 0.310484, 0.711291 }, { 0.645161, 0.956855 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ panasonic, "Panasonic", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.036290, 0.024596 }, { 0.120968, 0.166419 }, { 0.205645, 0.328527 }, { 0.604839, 0.790171 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ leica, "Leica", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.036291, 0.024596 }, { 0.120968, 0.166419 }, { 0.205645, 0.328527 }, { 0.604839, 0.790171 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ kodak_easyshare, "EASTMAN KODAK COMPANY", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.044355, 0.020967 }, { 0.133065, 0.154322 }, { 0.209677, 0.300301 }, { 0.572581, 0.753477 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ konica_minolta, "MINOLTA", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.020161, 0.010322 }, { 0.112903, 0.167742 }, { 0.500000, 0.711291 }, { 0.899194, 0.956855 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ samsung, "SAMSUNG", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.040323, 0.029677 }, { 0.133065, 0.232258 }, { 0.447581, 0.747581 }, { 0.842742, 0.967742 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ fujifilm, "FUJIFILM", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.028226, 0.029677 }, { 0.104839, 0.232258 }, { 0.387097, 0.747581 }, { 0.754032, 0.967742 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
{ nokia, "Nokia", "", 0, FLT_MAX, { { { { 0.000000, 0.000000 }, { 0.041825, 0.020161 }, { 0.117871, 0.153226 }, { 0.319392, 0.500000 }, { 0.638783, 0.842742 }, { 1.000000, 1.000000 } } }, { 6 }, { MONOTONE_HERMITE }, 0, 0, 0, DT_RGB_NORM_LUMINANCE }, 0, 0 },
}
static const char sony_alpha[]
Definition basecurve.c:206
static const char nokia[]
Definition basecurve.c:217
static const char fujifilm[]
Definition basecurve.c:216
static const char pentax[]
Definition basecurve.c:207
static const char nikon_alt[]
Definition basecurve.c:205
static const char olympus[]
Definition basecurve.c:209
static const char neutral[]
Definition basecurve.c:201
static const char konica_minolta[]
Definition basecurve.c:214
static const char leica[]
Definition basecurve.c:212
static const char canon_eos_alt[]
Definition basecurve.c:203
static const char canon_eos[]
Definition basecurve.c:202
static const char ricoh[]
Definition basecurve.c:208
static const char olympus_alt[]
Definition basecurve.c:210
static const char nikon[]
Definition basecurve.c:204
static const char samsung[]
Definition basecurve.c:215
static const char panasonic[]
Definition basecurve.c:211
static const char kodak_easyshare[]
Definition basecurve.c:213
#define CUBIC_SPLINE
Definition curve_tools.h:25
#define MONOTONE_HERMITE
Definition curve_tools.h:27
@ DT_RGB_NORM_LUMINANCE
Definition data/kernels/rgb_norms.h:22

Referenced by init_presets().

◆ basecurve_presets_cnt

const int basecurve_presets_cnt = sizeof(basecurve_presets) / sizeof(basecurve_preset_t)
static

Referenced by init_presets().

◆ canon_eos

const char canon_eos[] = N_("canon eos like")
static

◆ canon_eos_alt

const char canon_eos_alt[] = N_("canon eos like alternate")
static

◆ fujifilm

const char fujifilm[] = N_("fujifilm like")
static

◆ kodak_easyshare

const char kodak_easyshare[] = N_("kodak easyshare like")
static

◆ konica_minolta

const char konica_minolta[] = N_("konica minolta like")
static

◆ leica

const char leica[] = N_("leica like")
static

◆ neutral

const char neutral[] = N_("neutral")
static

Referenced by color_finetuning_slider().

◆ nikon

const char nikon[] = N_("nikon like")
static

◆ nikon_alt

const char nikon_alt[] = N_("nikon like alternate")
static

◆ nokia

const char nokia[] = N_("nokia like")
static

◆ olympus

const char olympus[] = N_("olympus like")
static

◆ olympus_alt

const char olympus_alt[] = N_("olympus like alternate")
static

◆ panasonic

const char panasonic[] = N_("panasonic like")
static

◆ pentax

const char pentax[] = N_("pentax like")
static

◆ ricoh

const char ricoh[] = N_("ricoh like")
static

◆ samsung

const char samsung[] = N_("samsung like")
static

◆ sony_alpha

const char sony_alpha[] = N_("sony alpha like")
static