Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
draw.h File Reference
#include "common/curve_tools.h"
#include "common/darktable.h"
#include "common/splines.h"
#include "control/conf.h"
#include "develop/develop.h"
#include <cairo.h>
#include <glib.h>
#include <math.h>
#include <stdint.h>
#include <stdlib.h>
#include <gui/gtk.h>
+ Include dependency graph for draw.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  dt_draw_curve_t
 

Macros

#define M_PI   3.141592654
 
#define DT_DRAW_SIZE_GLOBAL_FACTOR   0.75f
 
#define DT_DRAW_SIZE_LINE   DT_PIXEL_APPLY_DPI_DPP(1.5f * DT_DRAW_SIZE_GLOBAL_FACTOR)
 
#define DT_DRAW_SIZE_LINE_SELECTED   DT_PIXEL_APPLY_DPI_DPP(3.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)
 
#define DT_DRAW_SIZE_LINE_HIGHLIGHT   (DT_PIXEL_APPLY_DPI_DPP(4.0f * DT_DRAW_SIZE_GLOBAL_FACTOR) + DT_DRAW_SIZE_LINE)
 
#define DT_DRAW_SIZE_LINE_HIGHLIGHT_SELECTED   (DT_PIXEL_APPLY_DPI_DPP(5.0f * DT_DRAW_SIZE_GLOBAL_FACTOR) + DT_DRAW_SIZE_LINE_SELECTED)
 
#define DT_DRAW_SIZE_CROSS   DT_PIXEL_APPLY_DPI_DPP(7.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)
 
#define DT_DRAW_SCALE_DASH   DT_PIXEL_APPLY_DPI_DPP(12.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)
 
#define DT_DRAW_SCALE_ARROW   DT_PIXEL_APPLY_DPI_DPP(18.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)
 
#define DT_DRAW_RADIUS_NODE   DT_PIXEL_APPLY_DPI_DPP(5.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)
 
#define DT_DRAW_RADIUS_NODE_SELECTED   (1.25f * DT_DRAW_RADIUS_NODE)
 
#define DT_DRAW_SELECTION_ROTATION_AREA   DT_PIXEL_APPLY_DPI_DPP(50.0f)
 
#define DT_DRAW_SELECTION_ROTATION_RADIUS(dev)   (DT_DRAW_SELECTION_ROTATION_AREA / dt_dev_get_zoom_level((dt_develop_t *)dev))
 

Typedefs

typedef enum dt_draw_dash_type_t dt_draw_dash_type_t
 
typedef struct dt_draw_curve_t dt_draw_curve_t
 
typedef void(* shape_draw_function_t) (cairo_t *cr, const float *points, const int points_count, const int nb, const gboolean border, const gboolean source)
 

Enumerations

enum  dt_draw_dash_type_t {
  DT_MASKS_NO_DASH = 0 ,
  DT_MASKS_DASH_STICK = 1 ,
  DT_MASKS_DASH_ROUND = 2
}
 

Functions

static void dt_draw_set_color_overlay (cairo_t *cr, gboolean bright, double alpha)
 
static void dt_draw_star (cairo_t *cr, float x, float y, float r1, float r2)
 
static void dt_draw_line (cairo_t *cr, float left, float top, float right, float bottom)
 
static void dt_draw_grid (cairo_t *cr, const int num, const int left, const int top, const int right, const int bottom)
 
static float dt_curve_to_mouse (const float x, const float zoom_factor, const float offset)
 
static void dt_draw_grid_zoomed (cairo_t *cr, const int num, const float left, const float top, const float right, const float bottom, const float width, const float height, const float zoom_factor, const float zoom_offset_x, const float zoom_offset_y)
 
static float dt_log_scale_axis (const float x, const float base)
 
static void dt_draw_loglog_grid (cairo_t *cr, const int num, const int left, const int top, const int right, const int bottom, const float base)
 
static void dt_draw_semilog_x_grid (cairo_t *cr, const int num, const int left, const int top, const int right, const int bottom, const float base)
 
static void dt_draw_semilog_y_grid (cairo_t *cr, const int num, const int left, const int top, const int right, const int bottom, const float base)
 
static void dt_draw_vertical_lines (cairo_t *cr, const int num, const int left, const int top, const int right, const int bottom)
 
static void dt_draw_horizontal_lines (cairo_t *cr, const int num, const int left, const int top, const int right, const int bottom)
 
static dt_draw_curve_tdt_draw_curve_new (const float min, const float max, unsigned int type)
 
static void dt_draw_curve_destroy (dt_draw_curve_t *c)
 
static void dt_draw_curve_set_point (dt_draw_curve_t *c, const int num, const float x, const float y)
 
static void dt_draw_curve_smaple_values (dt_draw_curve_t *c, const float min, const float max, const int res, float *x, float *y)
 
static void dt_draw_curve_calc_values (dt_draw_curve_t *c, const float min, const float max, const int res, float *x, float *y)
 
static void dt_draw_curve_calc_values_V2_nonperiodic (dt_draw_curve_t *c, const float min, const float max, const int res, float *x, float *y)
 
static void dt_draw_curve_calc_values_V2_periodic (dt_draw_curve_t *c, const float min, const float max, const int res, float *x, float *y)
 
static void dt_draw_curve_calc_values_V2 (dt_draw_curve_t *c, const float min, const float max, const int res, float *x, float *y, const gboolean periodic)
 
static float dt_draw_curve_calc_value (dt_draw_curve_t *c, const float x)
 
static int dt_draw_curve_add_point (dt_draw_curve_t *c, const float x, const float y)
 
static void dt_draw_histogram_8_linxliny (cairo_t *cr, const uint32_t *hist, int32_t channels, int32_t channel)
 
static void dt_draw_histogram_8_zoomed (cairo_t *cr, const uint32_t *hist, int32_t channels, int32_t channel, const float zoom_factor, const float zoom_offset_x, const float zoom_offset_y, gboolean linear)
 
static void dt_draw_histogram_8_logxliny (cairo_t *cr, const uint32_t *hist, int32_t channels, int32_t channel, float base_log)
 
static void dt_draw_histogram_8_logxlogy (cairo_t *cr, const uint32_t *hist, int32_t channels, int32_t channel, float base_log)
 
static void dt_draw_histogram_8_linxlogy (cairo_t *cr, const uint32_t *hist, int32_t channels, int32_t channel)
 
static void dt_draw_histogram_8_log_base (cairo_t *cr, const uint32_t *hist, int32_t channels, int32_t channel, const gboolean linear, float base_log)
 
static void dt_draw_histogram_8 (cairo_t *cr, const uint32_t *hist, int32_t channels, int32_t channel, const gboolean linear)
 
static void dt_draw_cairo_to_gdk_pixbuf (uint8_t *data, unsigned int width, unsigned int height)
 
static void dt_cairo_perceptual_gradient (cairo_pattern_t *grad, double alpha)
 
static GdkPixbuf * dt_draw_paint_to_pixbuf (GtkWidget *widget, const guint pixbuf_size, const int flags, void(*dtgtk_cairo_paint_fct)(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data))
 
static void _draw_fill_clear (cairo_t *cr, gboolean preserve)
 
static void _fill_clear (cairo_t *cr)
 
static void _fill_clear_preserve (cairo_t *cr)
 
static void dt_draw_set_dash_style (cairo_t *cr, dt_draw_dash_type_t type, float zoom_scale)
 
static void dt_draw_node (cairo_t *cr, const gboolean square, const gboolean point_action, const gboolean selected, const float zoom_scale, const float x, const float y)
 Draw an node point of a mask.
 
static void dt_draw_handle (cairo_t *cr, const float pt[2], const float zoom_scale, const float handle[2], const gboolean selected, const gboolean square)
 Draw a control handle attached to a point with a tail between the node and the handle.
 
static void dt_draw_shape_lines (const dt_draw_dash_type_t dash_type, const gboolean source, cairo_t *cr, const int nb, const gboolean selected, const float zoom_scale, const float *points, const int points_count, const shape_draw_function_t *draw_shape_func, const cairo_line_cap_t line_cap)
 Draw the lines of a mask shape.
 
static void dt_draw_stroke_line (const dt_draw_dash_type_t dash_type, const gboolean source, cairo_t *cr, const gboolean selected, const float zoom_scale, const cairo_line_cap_t line_cap)
 Stroke a line with style.
 
static void _draw_arrow_head (cairo_t *cr, const float arrow[2], const float arrow_x_a, const float arrow_y_a, const float arrow_x_b, const float arrow_y_b)
 
static void _draw_arrow_tail (cairo_t *cr, const float arrow_bud_x, const float arrow_bud_y, const float tail[2], const gboolean draw_tail)
 
static void dt_draw_arrow (cairo_t *cr, const float zoom_scale, const gboolean selected, const gboolean draw_tail, const dt_draw_dash_type_t dash_style, const float arrow[2], const float tail[2], const float angle)
 Draw an arrow with head and, if needed, tail. The length of the arrow head is defined by DT_DRAW_SCALE_ARROW. This is used for the clone mask source indicator.
 
static void dt_draw_cross (cairo_t *cr, const float zoom_scale, const float x, const float y)
 
static void dt_draw_source_shape (cairo_t *cr, const float zoom_scale, const gboolean selected, const float *source_pts, const int source_pts_count, const int nodes_nb, const shape_draw_function_t *draw_shape_func)
 
static GdkPixbuf * dt_draw_get_pixbuf_from_cairo (DTGTKCairoPaintIconFunc paint, const int width, const int height)
 

Macro Definition Documentation

◆ DT_DRAW_RADIUS_NODE

#define DT_DRAW_RADIUS_NODE   DT_PIXEL_APPLY_DPI_DPP(5.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)

Definition at line 83 of file draw.h.

◆ DT_DRAW_RADIUS_NODE_SELECTED

#define DT_DRAW_RADIUS_NODE_SELECTED   (1.25f * DT_DRAW_RADIUS_NODE)

Definition at line 84 of file draw.h.

◆ DT_DRAW_SCALE_ARROW

#define DT_DRAW_SCALE_ARROW   DT_PIXEL_APPLY_DPI_DPP(18.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)

Definition at line 80 of file draw.h.

◆ DT_DRAW_SCALE_DASH

#define DT_DRAW_SCALE_DASH   DT_PIXEL_APPLY_DPI_DPP(12.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)

stuff's scale

Definition at line 79 of file draw.h.

◆ DT_DRAW_SELECTION_ROTATION_AREA

#define DT_DRAW_SELECTION_ROTATION_AREA   DT_PIXEL_APPLY_DPI_DPP(50.0f)

Definition at line 87 of file draw.h.

◆ DT_DRAW_SELECTION_ROTATION_RADIUS

#define DT_DRAW_SELECTION_ROTATION_RADIUS (   dev)    (DT_DRAW_SELECTION_ROTATION_AREA / dt_dev_get_zoom_level((dt_develop_t *)dev))

Definition at line 88 of file draw.h.

◆ DT_DRAW_SIZE_CROSS

#define DT_DRAW_SIZE_CROSS   DT_PIXEL_APPLY_DPI_DPP(7.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)

Definition at line 76 of file draw.h.

◆ DT_DRAW_SIZE_GLOBAL_FACTOR

#define DT_DRAW_SIZE_GLOBAL_FACTOR   0.75f
Todo:
: enter directly the values applied to this factor in each following macro later once

Definition at line 69 of file draw.h.

◆ DT_DRAW_SIZE_LINE

#define DT_DRAW_SIZE_LINE   DT_PIXEL_APPLY_DPI_DPP(1.5f * DT_DRAW_SIZE_GLOBAL_FACTOR)

line sizes for drawing

Definition at line 72 of file draw.h.

◆ DT_DRAW_SIZE_LINE_HIGHLIGHT

#define DT_DRAW_SIZE_LINE_HIGHLIGHT   (DT_PIXEL_APPLY_DPI_DPP(4.0f * DT_DRAW_SIZE_GLOBAL_FACTOR) + DT_DRAW_SIZE_LINE)

Definition at line 74 of file draw.h.

◆ DT_DRAW_SIZE_LINE_HIGHLIGHT_SELECTED

#define DT_DRAW_SIZE_LINE_HIGHLIGHT_SELECTED   (DT_PIXEL_APPLY_DPI_DPP(5.0f * DT_DRAW_SIZE_GLOBAL_FACTOR) + DT_DRAW_SIZE_LINE_SELECTED)

Definition at line 75 of file draw.h.

◆ DT_DRAW_SIZE_LINE_SELECTED

#define DT_DRAW_SIZE_LINE_SELECTED   DT_PIXEL_APPLY_DPI_DPP(3.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)

Definition at line 73 of file draw.h.

◆ M_PI

#define M_PI   3.141592654

some common drawing routines.

Definition at line 64 of file draw.h.

Typedef Documentation

◆ dt_draw_curve_t

wrapper around nikon curve.

◆ dt_draw_dash_type_t

dash type

◆ shape_draw_function_t

typedef void(* shape_draw_function_t) (cairo_t *cr, const float *points, const int points_count, const int nb, const gboolean border, const gboolean source)

Definition at line 719 of file draw.h.

Enumeration Type Documentation

◆ dt_draw_dash_type_t

dash type

Enumerator
DT_MASKS_NO_DASH 
DT_MASKS_DASH_STICK 
DT_MASKS_DASH_ROUND 

Definition at line 91 of file draw.h.

Function Documentation

◆ _draw_arrow_head()

static void _draw_arrow_head ( cairo_t *  cr,
const float  arrow[2],
const float  arrow_x_a,
const float  arrow_y_a,
const float  arrow_x_b,
const float  arrow_y_b 
)
static

Definition at line 790 of file draw.h.

Referenced by dt_draw_arrow().

◆ _draw_arrow_tail()

static void _draw_arrow_tail ( cairo_t *  cr,
const float  arrow_bud_x,
const float  arrow_bud_y,
const float  tail[2],
const gboolean  draw_tail 
)
static

Definition at line 801 of file draw.h.

References dt_draw_line().

Referenced by dt_draw_arrow().

◆ _draw_fill_clear()

static void _draw_fill_clear ( cairo_t *  cr,
gboolean  preserve 
)
static

Definition at line 529 of file draw.h.

Referenced by _fill_clear(), and _fill_clear_preserve().

◆ _fill_clear()

static void _fill_clear ( cairo_t *  cr)
static

Definition at line 539 of file draw.h.

References _draw_fill_clear(), and FALSE.

Referenced by dt_draw_handle().

◆ _fill_clear_preserve()

static void _fill_clear_preserve ( cairo_t *  cr)
static

Definition at line 544 of file draw.h.

References _draw_fill_clear(), and TRUE.

Referenced by dt_draw_arrow(), and dt_draw_node().

◆ dt_cairo_perceptual_gradient()

static void dt_cairo_perceptual_gradient ( cairo_pattern_t *  grad,
double  alpha 
)
inlinestatic

Definition at line 491 of file draw.h.

Referenced by _init_drawing(), and dt_iop_tonecurve_draw().

◆ dt_curve_to_mouse()

static float dt_curve_to_mouse ( const float  x,
const float  zoom_factor,
const float  offset 
)
inlinestatic

Definition at line 158 of file draw.h.

References x.

Referenced by dt_draw_grid_zoomed().

◆ dt_draw_arrow()

static void dt_draw_arrow ( cairo_t *  cr,
const float  zoom_scale,
const gboolean  selected,
const gboolean  draw_tail,
const dt_draw_dash_type_t  dash_style,
const float  arrow[2],
const float  tail[2],
const float  angle 
)
inlinestatic

Draw an arrow with head and, if needed, tail. The length of the arrow head is defined by DT_DRAW_SCALE_ARROW. This is used for the clone mask source indicator.

Parameters
crthe cairo context to draw into
zoom_scalethe current zoom scale of the image
selectedTRUE if the shape needs to be highlighted
draw_tailTRUE to draw the tail line
dash_stylethe dash style to use for the tail line
arrowthe position of the arrow tip
tailthe position of the tail point

Definition at line 820 of file draw.h.

References _draw_arrow_head(), _draw_arrow_tail(), _fill_clear_preserve(), DT_DRAW_SCALE_ARROW, dt_draw_set_color_overlay(), dt_draw_set_dash_style(), DT_DRAW_SIZE_LINE, DT_DRAW_SIZE_LINE_HIGHLIGHT, DT_DRAW_SIZE_LINE_HIGHLIGHT_SELECTED, DT_MASKS_NO_DASH, FALSE, and TRUE.

Referenced by dt_masks_draw_source().

◆ dt_draw_cairo_to_gdk_pixbuf()

static void dt_draw_cairo_to_gdk_pixbuf ( uint8_t *  data,
unsigned int  width,
unsigned int  height 
)
inlinestatic

transform a data blob from cairo's premultiplied rgba/bgra to GdkPixbuf's un-premultiplied bgra/rgba

Definition at line 464 of file draw.h.

References g, height, r, width, and x.

Referenced by _draw_ellipse(), _draw_rectangle(), _init_image_pin(), _init_place_pin(), _view_map_images_count(), dt_draw_get_pixbuf_from_cairo(), dt_draw_paint_to_pixbuf(), and tree_insert_presets().

◆ dt_draw_cross()

static void dt_draw_cross ( cairo_t *  cr,
const float  zoom_scale,
const float  x,
const float  y 
)
inlinestatic

◆ dt_draw_curve_add_point()

static int dt_draw_curve_add_point ( dt_draw_curve_t c,
const float  x,
const float  y 
)
inlinestatic

◆ dt_draw_curve_calc_value()

◆ dt_draw_curve_calc_values()

static void dt_draw_curve_calc_values ( dt_draw_curve_t c,
const float  min,
const float  max,
const int  res,
float *  x,
float *  y 
)
inlinestatic

◆ dt_draw_curve_calc_values_V2()

static void dt_draw_curve_calc_values_V2 ( dt_draw_curve_t c,
const float  min,
const float  max,
const int  res,
float *  x,
float *  y,
const gboolean  periodic 
)
inlinestatic

◆ dt_draw_curve_calc_values_V2_nonperiodic()

static void dt_draw_curve_calc_values_V2_nonperiodic ( dt_draw_curve_t c,
const float  min,
const float  max,
const int  res,
float *  x,
float *  y 
)
inlinestatic

Definition at line 318 of file draw.h.

References CurveDataSampleV2(), dt_draw_curve_smaple_values(), max, min, and x.

Referenced by dt_draw_curve_calc_values_V2().

◆ dt_draw_curve_calc_values_V2_periodic()

static void dt_draw_curve_calc_values_V2_periodic ( dt_draw_curve_t c,
const float  min,
const float  max,
const int  res,
float *  x,
float *  y 
)
inlinestatic

Definition at line 327 of file draw.h.

References CurveDataSampleV2Periodic(), dt_draw_curve_smaple_values(), max, min, and x.

Referenced by dt_draw_curve_calc_values_V2().

◆ dt_draw_curve_destroy()

◆ dt_draw_curve_new()

static dt_draw_curve_t * dt_draw_curve_new ( const float  min,
const float  max,
unsigned int  type 
)
inlinestatic

◆ dt_draw_curve_set_point()

static void dt_draw_curve_set_point ( dt_draw_curve_t c,
const int  num,
const float  x,
const float  y 
)
inlinestatic

◆ dt_draw_curve_smaple_values()

static void dt_draw_curve_smaple_values ( dt_draw_curve_t c,
const float  min,
const float  max,
const int  res,
float *  x,
float *  y 
)
inlinestatic

◆ dt_draw_get_pixbuf_from_cairo()

static GdkPixbuf * dt_draw_get_pixbuf_from_cairo ( DTGTKCairoPaintIconFunc  paint,
const int  width,
const int  height 
)
inlinestatic

◆ dt_draw_grid()

static void dt_draw_grid ( cairo_t *  cr,
const int  num,
const int  left,
const int  top,
const int  right,
const int  bottom 
)
inlinestatic

◆ dt_draw_grid_zoomed()

static void dt_draw_grid_zoomed ( cairo_t *  cr,
const int  num,
const float  left,
const float  top,
const float  right,
const float  bottom,
const float  width,
const float  height,
const float  zoom_factor,
const float  zoom_offset_x,
const float  zoom_offset_y 
)
inlinestatic

Definition at line 164 of file draw.h.

References dt_curve_to_mouse(), dt_draw_line(), height, k, top, and width.

Referenced by _area_draw_callback().

◆ dt_draw_handle()

static void dt_draw_handle ( cairo_t *  cr,
const float  pt[2],
const float  zoom_scale,
const float  handle[2],
const gboolean  selected,
const gboolean  square 
)
inlinestatic

Draw a control handle attached to a point with a tail between the node and the handle.

Parameters
crthe cairo context to draw into
ptthe node point position (pt[0]=x, pt[1]=y, use NULL if no tail should be drawn)
zoom_scalethe current zoom scale of the image
handlethe handle point position (handle[0]=x, handle[1]=y)
selectedTRUE if the shape is selected
squareTRUE to draw a square handle, FALSE to draw a round handle

Definition at line 648 of file draw.h.

References _fill_clear(), DT_DRAW_RADIUS_NODE, DT_DRAW_RADIUS_NODE_SELECTED, dt_draw_set_color_overlay(), DT_DRAW_SIZE_LINE, DT_DRAW_SIZE_LINE_HIGHLIGHT, DT_DRAW_SIZE_LINE_HIGHLIGHT_SELECTED, DT_DRAW_SIZE_LINE_SELECTED, FALSE, M_PI, and TRUE.

Referenced by _brush_events_post_expose(), and _polygon_events_post_expose().

◆ dt_draw_histogram_8()

static void dt_draw_histogram_8 ( cairo_t *  cr,
const uint32_t *  hist,
int32_t  channels,
int32_t  channel,
const gboolean  linear 
)
inlinestatic

◆ dt_draw_histogram_8_linxliny()

static void dt_draw_histogram_8_linxliny ( cairo_t *  cr,
const uint32_t *  hist,
int32_t  channels,
int32_t  channel 
)
inlinestatic

Definition at line 373 of file draw.h.

References k.

Referenced by dt_draw_histogram_8().

◆ dt_draw_histogram_8_linxlogy()

static void dt_draw_histogram_8_linxlogy ( cairo_t *  cr,
const uint32_t *  hist,
int32_t  channels,
int32_t  channel 
)
inlinestatic

Definition at line 432 of file draw.h.

References k.

Referenced by dt_draw_histogram_8().

◆ dt_draw_histogram_8_log_base()

static void dt_draw_histogram_8_log_base ( cairo_t *  cr,
const uint32_t *  hist,
int32_t  channels,
int32_t  channel,
const gboolean  linear,
float  base_log 
)
inlinestatic

Definition at line 443 of file draw.h.

References dt_draw_histogram_8_logxliny(), dt_draw_histogram_8_logxlogy(), and linear.

Referenced by dt_iop_tonecurve_draw().

◆ dt_draw_histogram_8_logxliny()

static void dt_draw_histogram_8_logxliny ( cairo_t *  cr,
const uint32_t *  hist,
int32_t  channels,
int32_t  channel,
float  base_log 
)
inlinestatic

Definition at line 400 of file draw.h.

References k, and x.

Referenced by dt_draw_histogram_8_log_base().

◆ dt_draw_histogram_8_logxlogy()

static void dt_draw_histogram_8_logxlogy ( cairo_t *  cr,
const uint32_t *  hist,
int32_t  channels,
int32_t  channel,
float  base_log 
)
inlinestatic

Definition at line 416 of file draw.h.

References k, and x.

Referenced by dt_draw_histogram_8_log_base().

◆ dt_draw_histogram_8_zoomed()

static void dt_draw_histogram_8_zoomed ( cairo_t *  cr,
const uint32_t *  hist,
int32_t  channels,
int32_t  channel,
const float  zoom_factor,
const float  zoom_offset_x,
const float  zoom_offset_y,
gboolean  linear 
)
inlinestatic

Definition at line 383 of file draw.h.

References k, linear, and value.

Referenced by _area_draw_callback(), and _area_draw_callback().

◆ dt_draw_horizontal_lines()

static void dt_draw_horizontal_lines ( cairo_t *  cr,
const int  num,
const int  left,
const int  top,
const int  right,
const int  bottom 
)
inlinestatic

Definition at line 253 of file draw.h.

References height, k, and top.

Referenced by dt_guides_draw_grid().

◆ dt_draw_line()

◆ dt_draw_loglog_grid()

static void dt_draw_loglog_grid ( cairo_t *  cr,
const int  num,
const int  left,
const int  top,
const int  right,
const int  bottom,
const float  base 
)
inlinestatic

◆ dt_draw_node()

static void dt_draw_node ( cairo_t *  cr,
const gboolean  square,
const gboolean  point_action,
const gboolean  selected,
const float  zoom_scale,
const float  x,
const float  y 
)
inlinestatic

Draw an node point of a mask.

Parameters
crthe cairo context to draw into
squareTRUE to draw a square node, FALSE to draw a round node
point_actionTRUE if the point is selected or dragged
selectedTRUE if the shape is selected
zoom_scalethe current zoom scale of the image
xthe center x position of the anchor
ythe center y position of the anchor

Definition at line 597 of file draw.h.

References _fill_clear_preserve(), darktable, DT_DEBUG_MASKS, DT_DRAW_RADIUS_NODE, DT_DRAW_RADIUS_NODE_SELECTED, dt_draw_set_color_overlay(), DT_DRAW_SIZE_LINE, DT_DRAW_SIZE_LINE_SELECTED, DT_GUI_MOUSE_EFFECT_RADIUS, FALSE, M_PI, TRUE, darktable_t::unmuted, and x.

Referenced by _brush_events_post_expose(), _draw_end_marker(), _ellipse_draw_handles(), _ellipse_events_post_expose(), _gradient_draw_arrow(), and _polygon_events_post_expose().

◆ dt_draw_paint_to_pixbuf()

static GdkPixbuf * dt_draw_paint_to_pixbuf ( GtkWidget widget,
const guint  pixbuf_size,
const int  flags,
void(*)(cairo_t *cr, gint x, gint y, gint w, gint h, gint flags, void *data)  dtgtk_cairo_paint_fct 
)
inlinestatic

◆ dt_draw_semilog_x_grid()

static void dt_draw_semilog_x_grid ( cairo_t *  cr,
const int  num,
const int  left,
const int  top,
const int  right,
const int  bottom,
const float  base 
)
inlinestatic

Definition at line 207 of file draw.h.

References dt_draw_line(), dt_log_scale_axis(), height, k, top, width, and x.

Referenced by dt_iop_tonecurve_draw().

◆ dt_draw_semilog_y_grid()

static void dt_draw_semilog_y_grid ( cairo_t *  cr,
const int  num,
const int  left,
const int  top,
const int  right,
const int  bottom,
const float  base 
)
inlinestatic

Definition at line 223 of file draw.h.

References dt_draw_line(), dt_log_scale_axis(), height, k, top, width, and x.

Referenced by dt_iop_tonecurve_draw().

◆ dt_draw_set_color_overlay()

◆ dt_draw_set_dash_style()

static void dt_draw_set_dash_style ( cairo_t *  cr,
dt_draw_dash_type_t  type,
float  zoom_scale 
)
inlinestatic

◆ dt_draw_shape_lines()

static void dt_draw_shape_lines ( const dt_draw_dash_type_t  dash_type,
const gboolean  source,
cairo_t *  cr,
const int  nb,
const gboolean  selected,
const float  zoom_scale,
const float *  points,
const int  points_count,
const shape_draw_function_t draw_shape_func,
const cairo_line_cap_t  line_cap 
)
inlinestatic

Draw the lines of a mask shape.

Parameters
dash_typethe dash type to use
sourceTRUE if we draw the source shape (clone mask)
crthe cairo context to draw into
nbthe number of coord by node
selectedTRUE if the shape is selected
zoom_scalethe current zoom scale of the image
pointsthe points of the shape to draw
points_countthe number of points in the shape
functionsthe functions table of the shape

Definition at line 734 of file draw.h.

References dt_draw_set_color_overlay(), dt_draw_set_dash_style(), DT_DRAW_SIZE_LINE, DT_DRAW_SIZE_LINE_HIGHLIGHT, DT_DRAW_SIZE_LINE_HIGHLIGHT_SELECTED, DT_DRAW_SIZE_LINE_SELECTED, DT_MASKS_NO_DASH, FALSE, and TRUE.

Referenced by _brush_events_post_expose(), _circle_events_post_expose(), _ellipse_events_post_expose(), _gradient_events_post_expose(), _polygon_events_post_expose(), dt_draw_stroke_line(), and dt_masks_draw_preview_shape().

◆ dt_draw_source_shape()

static void dt_draw_source_shape ( cairo_t *  cr,
const float  zoom_scale,
const gboolean  selected,
const float *  source_pts,
const int  source_pts_count,
const int  nodes_nb,
const shape_draw_function_t draw_shape_func 
)
inlinestatic

◆ dt_draw_star()

static void dt_draw_star ( cairo_t *  cr,
float  x,
float  y,
float  r1,
float  r2 
)
inlinestatic

draws a rating star

Definition at line 120 of file draw.h.

References d, k, M_PI, and x.

Referenced by dtgtk_cairo_paint_overlays(), dtgtk_cairo_paint_star(), and dtgtk_cairo_paint_unratestar().

◆ dt_draw_stroke_line()

static void dt_draw_stroke_line ( const dt_draw_dash_type_t  dash_type,
const gboolean  source,
cairo_t *  cr,
const gboolean  selected,
const float  zoom_scale,
const cairo_line_cap_t  line_cap 
)
inlinestatic

Stroke a line with style.

Parameters
dash_typethe dash type to use
sourceTRUE if we draw the source shape (clone mask)
crthe cairo context to draw into
selectedTRUE if the shape is selected
zoom_scalethe current zoom scale of the image

Definition at line 784 of file draw.h.

References dt_draw_shape_lines().

Referenced by _brush_events_post_expose(), _gradient_draw_arrow(), and dt_masks_draw_path_seg_by_seg().

◆ dt_draw_vertical_lines()

static void dt_draw_vertical_lines ( cairo_t *  cr,
const int  num,
const int  left,
const int  top,
const int  right,
const int  bottom 
)
inlinestatic

Definition at line 240 of file draw.h.

References k, top, and width.

Referenced by _area_draw_callback(), dt_guides_draw_grid(), and dt_iop_levels_area_draw().

◆ dt_log_scale_axis()

static float dt_log_scale_axis ( const float  x,
const float  base 
)
inlinestatic

Definition at line 186 of file draw.h.

References x.

Referenced by dt_draw_loglog_grid(), dt_draw_semilog_x_grid(), dt_draw_semilog_y_grid(), and dt_iop_tonecurve_draw().