Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
borders.c File Reference
#include "bauhaus/bauhaus.h"
#include "common/debug.h"
#include "common/imagebuf.h"
#include "common/opencl.h"
#include "control/conf.h"
#include "control/control.h"
#include "develop/develop.h"
#include "develop/imageop.h"
#include "develop/imageop_gui.h"
#include "dtgtk/button.h"
#include "dtgtk/resetlabel.h"
#include "dtgtk/togglebutton.h"
#include "gui/color_picker_proxy.h"
#include "gui/draw.h"
#include "gui/gtk.h"
#include "gui/presets.h"
#include "iop/iop_api.h"
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
#include <inttypes.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
+ Include dependency graph for borders.c:

Data Structures

struct  dt_iop_borders_params_t
 
struct  dt_iop_borders_gui_data_t
 
struct  dt_iop_borders_global_data_t
 
struct  border_positions_t
 

Macros

#define DT_IOP_BORDERS_ASPECT_COUNT   12
 
#define DT_IOP_BORDERS_ASPECT_IMAGE_IDX   0
 
#define DT_IOP_BORDERS_ASPECT_CONSTANT_IDX   11
 
#define DT_IOP_BORDERS_ASPECT_IMAGE_VALUE   0.0f
 
#define DT_IOP_BORDERS_ASPECT_CONSTANT_VALUE   -1.0f
 
#define DT_IOP_BORDERS_ASPECT_ORIENTATION_AUTO   0
 
#define DT_IOP_BORDERS_ASPECT_ORIENTATION_PORTRAIT   1
 
#define DT_IOP_BORDERS_ASPECT_ORIENTATION_LANDSCAPE   2
 
#define DT_IOP_BORDERS_POSITION_H_COUNT   5
 
#define DT_IOP_BORDERS_POSITION_V_COUNT   5
 

Typedefs

typedef struct dt_iop_borders_params_t dt_iop_borders_params_t
 
typedef struct dt_iop_borders_gui_data_t dt_iop_borders_gui_data_t
 
typedef struct dt_iop_borders_global_data_t dt_iop_borders_global_data_t
 
typedef struct dt_iop_borders_params_t dt_iop_borders_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 operation_tags ()
 
int flags ()
 
int default_colorspace (dt_iop_module_t *self, dt_dev_pixelpipe_t *pipe, dt_dev_pixelpipe_iop_t *piece)
 
int distort_transform (dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *const restrict points, size_t points_count)
 
int distort_backtransform (dt_iop_module_t *self, dt_dev_pixelpipe_iop_t *piece, float *const restrict points, size_t points_count)
 
void 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)
 
void modify_roi_out (struct dt_iop_module_t *self, struct dt_dev_pixelpipe_iop_t *piece, dt_iop_roi_t *roi_out, const dt_iop_roi_t *roi_in)
 
void 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)
 
static void set_pixels (float *buf, const dt_aligned_pixel_t color, const int npixels)
 
static void copy_pixels (float *out, const float *const in, const int npixels)
 
void copy_image_with_border (float *out, const float *const in, const struct border_positions_t *binfo)
 
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 init_global (dt_iop_module_so_t *module)
 
void cleanup_global (dt_iop_module_so_t *module)
 
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 init_presets (dt_iop_module_so_t *self)
 
void color_picker_apply (dt_iop_module_t *self, GtkWidget *picker, dt_dev_pixelpipe_iop_t *piece)
 
static void aspect_changed (GtkWidget *combo, dt_iop_module_t *self)
 
static void position_h_changed (GtkWidget *combo, dt_iop_module_t *self)
 
static void position_v_changed (GtkWidget *combo, dt_iop_module_t *self)
 
void gui_changed (dt_iop_module_t *self, GtkWidget *w, void *previous)
 
static void colorpick_color_set (GtkColorButton *widget, dt_iop_module_t *self)
 
static void frame_colorpick_color_set (GtkColorButton *widget, dt_iop_module_t *self)
 
void gui_update (struct dt_iop_module_t *self)
 
static void gui_init_aspect (struct dt_iop_module_t *self)
 
static void gui_init_positions (struct dt_iop_module_t *self)
 
void gui_init (struct dt_iop_module_t *self)
 
void init (dt_iop_module_t *self)
 

Macro Definition Documentation

◆ DT_IOP_BORDERS_ASPECT_CONSTANT_IDX

#define DT_IOP_BORDERS_ASPECT_CONSTANT_IDX   11

◆ DT_IOP_BORDERS_ASPECT_CONSTANT_VALUE

#define DT_IOP_BORDERS_ASPECT_CONSTANT_VALUE   -1.0f

◆ DT_IOP_BORDERS_ASPECT_COUNT

#define DT_IOP_BORDERS_ASPECT_COUNT   12

◆ DT_IOP_BORDERS_ASPECT_IMAGE_IDX

#define DT_IOP_BORDERS_ASPECT_IMAGE_IDX   0

◆ DT_IOP_BORDERS_ASPECT_IMAGE_VALUE

#define DT_IOP_BORDERS_ASPECT_IMAGE_VALUE   0.0f

◆ DT_IOP_BORDERS_ASPECT_ORIENTATION_AUTO

#define DT_IOP_BORDERS_ASPECT_ORIENTATION_AUTO   0

◆ DT_IOP_BORDERS_ASPECT_ORIENTATION_LANDSCAPE

#define DT_IOP_BORDERS_ASPECT_ORIENTATION_LANDSCAPE   2

◆ DT_IOP_BORDERS_ASPECT_ORIENTATION_PORTRAIT

#define DT_IOP_BORDERS_ASPECT_ORIENTATION_PORTRAIT   1

◆ DT_IOP_BORDERS_POSITION_H_COUNT

#define DT_IOP_BORDERS_POSITION_H_COUNT   5

◆ DT_IOP_BORDERS_POSITION_V_COUNT

#define DT_IOP_BORDERS_POSITION_V_COUNT   5

Typedef Documentation

◆ dt_iop_borders_data_t

◆ dt_iop_borders_global_data_t

◆ dt_iop_borders_gui_data_t

◆ dt_iop_borders_params_t

Function Documentation

◆ aspect_changed()

◆ cleanup_global()

◆ cleanup_pipe()

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

◆ color_picker_apply()

◆ colorpick_color_set()

static void colorpick_color_set ( GtkColorButton *  widget,
dt_iop_module_t self 
)
static

◆ commit_params()

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 
)

◆ copy_image_with_border()

◆ copy_pixels()

static void copy_pixels ( float *  out,
const float *const  in,
const int  npixels 
)
inlinestatic

Referenced by copy_image_with_border().

◆ 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_EFFECTS.

◆ description()

const char ** description ( struct dt_iop_module_t self)

◆ distort_backtransform()

◆ distort_mask()

◆ distort_transform()

◆ flags()

int flags ( )

◆ frame_colorpick_color_set()

static void frame_colorpick_color_set ( GtkColorButton *  widget,
dt_iop_module_t self 
)
static

◆ gui_changed()

◆ gui_init()

◆ gui_init_aspect()

◆ gui_init_positions()

static void gui_init_positions ( struct dt_iop_module_t self)
static

◆ gui_update()

◆ init()

◆ init_global()

◆ init_pipe()

◆ init_presets()

◆ legacy_params()

◆ modify_roi_in()

void 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 
)
Todo:
: clamping to 1 leads to a one-pixel visual glitch if the right/bottom border completely fills the
Todo:
Todo:
: viewport, but changing it to 0 breaks all of the tiling_callback functions with a division by zero

References dt_dev_pixelpipe_iop_t::buf_in, dt_dev_pixelpipe_iop_t::buf_out, dt_dev_pixelpipe_iop_t::data, dt_iop_roi_t::height, MAX, MIN, dt_iop_borders_params_t::pos_h, dt_iop_borders_params_t::pos_v, dt_iop_roi_t::scale, dt_iop_roi_t::width, dt_iop_roi_t::x, and dt_iop_roi_t::y.

◆ modify_roi_out()

◆ name()

const char * name ( )

◆ operation_tags()

int operation_tags ( )

◆ position_h_changed()

◆ position_v_changed()

◆ process()

◆ set_pixels()

static void set_pixels ( float *  buf,
const dt_aligned_pixel_t  color,
const int  npixels 
)
inlinestatic

Referenced by copy_image_with_border().