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)

◆ DT_DRAW_RADIUS_NODE_SELECTED

#define DT_DRAW_RADIUS_NODE_SELECTED   (1.25f * DT_DRAW_RADIUS_NODE)

◆ DT_DRAW_SCALE_ARROW

#define DT_DRAW_SCALE_ARROW   DT_PIXEL_APPLY_DPI_DPP(18.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)

◆ DT_DRAW_SCALE_DASH

#define DT_DRAW_SCALE_DASH   DT_PIXEL_APPLY_DPI_DPP(12.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)

stuff's scale

◆ DT_DRAW_SELECTION_ROTATION_AREA

#define DT_DRAW_SELECTION_ROTATION_AREA   DT_PIXEL_APPLY_DPI_DPP(50.0f)

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

◆ DT_DRAW_SIZE_CROSS

#define DT_DRAW_SIZE_CROSS   DT_PIXEL_APPLY_DPI_DPP(7.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)

◆ 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

◆ 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

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

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

◆ DT_DRAW_SIZE_LINE_SELECTED

#define DT_DRAW_SIZE_LINE_SELECTED   DT_PIXEL_APPLY_DPI_DPP(3.0f * DT_DRAW_SIZE_GLOBAL_FACTOR)

◆ M_PI

#define M_PI   3.141592654

some common drawing routines.

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)

Enumeration Type Documentation

◆ dt_draw_dash_type_t

dash type

Enumerator
DT_MASKS_NO_DASH 
DT_MASKS_DASH_STICK 
DT_MASKS_DASH_ROUND 

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

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

References dt_draw_line().

Referenced by dt_draw_arrow().

◆ _draw_fill_clear()

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

◆ _fill_clear()

static void _fill_clear ( cairo_t *  cr)
static

References _draw_fill_clear(), and FALSE.

Referenced by dt_draw_handle().

◆ _fill_clear_preserve()

static void _fill_clear_preserve ( cairo_t *  cr)
static

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

◆ dt_curve_to_mouse()

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

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

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

References a, b, 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

◆ 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

◆ 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

◆ 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

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

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

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

◆ 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

References 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

References 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

References 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

References height, 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

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_SCALED, FALSE, M_PI, TRUE, darktable_t::unmuted, and x.

Referenced by _brush_events_post_expose(), _ellipse_draw_node(), _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

◆ 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

◆ 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

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

References d, 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

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

◆ dt_log_scale_axis()

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