Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
colorin.c File Reference
#include "bauhaus/bauhaus.h"
#include "common/imagebuf.h"
#include "common/iop_profile.h"
#include "common/colormatrices.c"
#include "common/colorspaces.h"
#include "common/colorspaces_inline_conversions.h"
#include "common/file_location.h"
#include "common/image_cache.h"
#include "common/opencl.h"
#include "control/control.h"
#include "develop/develop.h"
#include "gui/gtk.h"
#include "common/imageio_jpeg.h"
#include "common/imageio_png.h"
#include "common/imageio_tiff.h"
#include "develop/imageop_math.h"
#include "develop/imageop_gui.h"
#include "iop/iop_api.h"
#include <assert.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <strings.h>
#include <lcms2.h>
+ Include dependency graph for colorin.c:

Data Structures

struct  dt_iop_colorin_params_t
 
struct  dt_iop_colorin_gui_data_t
 
struct  dt_iop_colorin_global_data_t
 
struct  dt_iop_colorin_data_t
 

Macros

#define DT_IOP_COLOR_ICC_LEN   512
 
#define LUT_SAMPLES   0x10000
 
#define DT_IOP_COLOR_ICC_LEN_V5   100
 

Typedefs

typedef enum dt_iop_color_normalize_t dt_iop_color_normalize_t
 
typedef struct dt_iop_colorin_params_t dt_iop_colorin_params_t
 
typedef struct dt_iop_colorin_gui_data_t dt_iop_colorin_gui_data_t
 
typedef struct dt_iop_colorin_global_data_t dt_iop_colorin_global_data_t
 
typedef struct dt_iop_colorin_data_t dt_iop_colorin_data_t
 

Enumerations

enum  dt_iop_color_normalize_t {
  DT_NORMALIZE_OFF ,
  DT_NORMALIZE_SRGB ,
  DT_NORMALIZE_ADOBE_RGB ,
  DT_NORMALIZE_LINEAR_REC709_RGB ,
  DT_NORMALIZE_LINEAR_REC2020_RGB
}
 

Functions

static void update_profile_list (dt_iop_module_t *self)
 
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)
 
static dt_iop_colorspace_type_t _colorin_format_cst (dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece)
 
void input_format (dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece, dt_iop_buffer_dsc_t *dsc)
 
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)
 
static void _resolve_work_profile (dt_colorspaces_color_profile_type_t *work_type, char *work_filename)
 
int legacy_params (dt_iop_module_t *self, const void *const old_params, const int old_version, void *new_params, const int new_version)
 
void init_global (dt_iop_module_so_t *module)
 
void cleanup_global (dt_iop_module_so_t *module)
 
static void profile_changed (GtkWidget *widget, gpointer user_data)
 
static void workicc_changed (GtkWidget *widget, gpointer user_data)
 
static void apply_blue_mapping (const float *const in, float *const out)
 
static __attribute__ ((always_inline))
 
static __DT_CLONE_TARGETS__ void process_cmatrix_bm (struct dt_iop_module_t *self, const 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)
 
static __DT_CLONE_TARGETS__ void process_cmatrix_fastpath_simple (struct dt_iop_module_t *self, const 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)
 
static __DT_CLONE_TARGETS__ void process_cmatrix_fastpath_clipping (struct dt_iop_module_t *self, const 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)
 
static __DT_CLONE_TARGETS__ void process_cmatrix_fastpath (struct dt_iop_module_t *self, const 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)
 
static void process_cmatrix_proper (struct dt_iop_module_t *self, const 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)
 
static void process_cmatrix (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, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
 
static void process_lcms2_bm (struct dt_iop_module_t *self, const 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)
 
static void process_lcms2_proper (struct dt_iop_module_t *self, const 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)
 
static void process_lcms2 (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, const dt_iop_roi_t *const roi_in, const dt_iop_roi_t *const roi_out)
 
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)
 
static void _reset_input_transforms (dt_iop_colorin_data_t *d)
 
static void _reset_processing_state (dt_iop_colorin_data_t *d, dt_dev_pixelpipe_iop_t *piece)
 
static void _select_normalization_profile (const dt_iop_colorin_params_t *p, dt_iop_colorin_data_t *d)
 
static dt_colorspaces_color_profile_type_t _resolve_input_profile (const dt_iop_colorin_params_t *p, dt_dev_pixelpipe_t *pipe, dt_iop_colorin_data_t *d)
 
static void _set_input_profile_metadata (dt_iop_colorin_data_t *d, const dt_iop_colorin_params_t *p, const dt_colorspaces_color_profile_type_t type)
 
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)
 
void reload_defaults (dt_iop_module_t *module)
 
void gui_init (struct dt_iop_module_t *self)
 
void gui_cleanup (struct dt_iop_module_t *self)
 

Macro Definition Documentation

◆ DT_IOP_COLOR_ICC_LEN

#define DT_IOP_COLOR_ICC_LEN   512

◆ DT_IOP_COLOR_ICC_LEN_V5

#define DT_IOP_COLOR_ICC_LEN_V5   100

◆ LUT_SAMPLES

#define LUT_SAMPLES   0x10000

Typedef Documentation

◆ dt_iop_color_normalize_t

◆ dt_iop_colorin_data_t

◆ dt_iop_colorin_global_data_t

◆ dt_iop_colorin_gui_data_t

◆ dt_iop_colorin_params_t

Enumeration Type Documentation

◆ dt_iop_color_normalize_t

Enumerator
DT_NORMALIZE_OFF 
DT_NORMALIZE_SRGB 
DT_NORMALIZE_ADOBE_RGB 
DT_NORMALIZE_LINEAR_REC709_RGB 
DT_NORMALIZE_LINEAR_REC2020_RGB 

Function Documentation

◆ __attribute__()

static __attribute__ ( (always_inline)  )
inlinestatic

◆ _colorin_format_cst()

◆ _reset_input_transforms()

static void _reset_input_transforms ( dt_iop_colorin_data_t d)
static

References d.

Referenced by commit_params().

◆ _reset_processing_state()

static void _reset_processing_state ( dt_iop_colorin_data_t d,
dt_dev_pixelpipe_iop_t piece 
)
static

◆ _resolve_input_profile()

◆ _resolve_work_profile()

◆ _select_normalization_profile()

◆ _set_input_profile_metadata()

static void _set_input_profile_metadata ( dt_iop_colorin_data_t d,
const dt_iop_colorin_params_t p,
const dt_colorspaces_color_profile_type_t  type 
)
static

References d, DT_COLORSPACE_FILE, p, and type.

Referenced by commit_params().

◆ apply_blue_mapping()

static void apply_blue_mapping ( const float *const  in,
float *const  out 
)
inlinestatic

References out, and t.

Referenced by process_cmatrix_bm(), and process_lcms2_bm().

◆ cleanup_global()

◆ cleanup_pipe()

◆ commit_params()

◆ default_colorspace()

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

References IOP_CS_RGB.

◆ default_group()

int default_group ( )

References IOP_GROUP_TECHNICAL.

◆ description()

const char ** description ( struct dt_iop_module_t self)

◆ flags()

◆ gui_cleanup()

void gui_cleanup ( struct dt_iop_module_t self)

◆ gui_init()

◆ gui_update()

◆ init_global()

◆ init_pipe()

◆ input_format()

◆ legacy_params()

◆ name()

const char * name ( )

◆ output_format()

◆ process()

◆ process_cmatrix()

static void process_cmatrix ( 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,
const dt_iop_roi_t *const  roi_in,
const dt_iop_roi_t *const  roi_out 
)
static

◆ process_cmatrix_bm()

static __DT_CLONE_TARGETS__ void process_cmatrix_bm ( struct dt_iop_module_t self,
const 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 
)
static

◆ process_cmatrix_fastpath()

static __DT_CLONE_TARGETS__ void process_cmatrix_fastpath ( struct dt_iop_module_t self,
const 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 
)
static

◆ process_cmatrix_fastpath_clipping()

static __DT_CLONE_TARGETS__ void process_cmatrix_fastpath_clipping ( struct dt_iop_module_t self,
const 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 
)
static

◆ process_cmatrix_fastpath_simple()

static __DT_CLONE_TARGETS__ void process_cmatrix_fastpath_simple ( struct dt_iop_module_t self,
const 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 
)
static

◆ process_cmatrix_proper()

static void process_cmatrix_proper ( struct dt_iop_module_t self,
const 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 
)
static

◆ process_lcms2()

static void process_lcms2 ( 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,
const dt_iop_roi_t *const  roi_in,
const dt_iop_roi_t *const  roi_out 
)
static

◆ process_lcms2_bm()

static void process_lcms2_bm ( struct dt_iop_module_t self,
const 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 
)
static

◆ process_lcms2_proper()

static void process_lcms2_proper ( struct dt_iop_module_t self,
const 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 
)
static

◆ profile_changed()

◆ reload_defaults()

void reload_defaults ( dt_iop_module_t module)

◆ update_profile_list()

◆ workicc_changed()