Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
dt_drawlayer_paint_stroke_t Struct Reference

Mutable stroke runtime state owned by worker/backend code. More...

#include <paint.h>

+ Collaboration diagram for dt_drawlayer_paint_stroke_t:

Data Fields

GArray * history
 
GArray * raw_inputs
 
GArray * pending_dabs
 
guint raw_input_cursor
 
GArray * dab_window
 
dt_drawlayer_brush_dab_t last_input_dab
 
gboolean have_last_input_dab
 
dt_drawlayer_brush_dab_t prev_raw_dab
 
gboolean have_prev_raw_dab
 
float stroke_arc_length
 
float sampled_arc_length
 
float distance_percent
 
uint64_t stroke_seed
 
dt_drawlayer_damaged_rect_t bounds
 
float * smudge_pixels
 
int smudge_width
 
int smudge_height
 
float smudge_pickup_x
 
float smudge_pickup_y
 
gboolean have_smudge_pickup
 

Detailed Description

Mutable stroke runtime state owned by worker/backend code.

The same object carries path generation state and raster-time transient data. It is reset at stroke boundaries by the worker lifecycle.

Field Documentation

◆ bounds

dt_drawlayer_damaged_rect_t dt_drawlayer_paint_stroke_t::bounds

Last dab footprint bounds in target buffer coordinates.

Referenced by _brush_runtime_view_from_state(), dt_drawlayer_brush_rasterize(), and dt_drawlayer_paint_rasterize_segment_to_buffer().

◆ dab_window

GArray* dt_drawlayer_paint_stroke_t::dab_window

◆ distance_percent

float dt_drawlayer_paint_stroke_t::distance_percent

Last applied distance control in [0,1].

Referenced by _process_backend_dab(), and _rasterize_pending_dab_batch().

◆ have_last_input_dab

gboolean dt_drawlayer_paint_stroke_t::have_last_input_dab

TRUE when last_input_dab is initialized.

◆ have_prev_raw_dab

gboolean dt_drawlayer_paint_stroke_t::have_prev_raw_dab

TRUE when prev_raw_dab is initialized.

◆ have_smudge_pickup

gboolean dt_drawlayer_paint_stroke_t::have_smudge_pickup

TRUE when smudge pickup coordinates are valid.

◆ history

GArray* dt_drawlayer_paint_stroke_t::history

Emitted, evenly-spaced dabs (dt_drawlayer_brush_dab_t).

Referenced by _stroke_begin(), and _stroke_create().

◆ last_input_dab

dt_drawlayer_brush_dab_t dt_drawlayer_paint_stroke_t::last_input_dab

Last converted raw-input dab (pre-resampling).

◆ pending_dabs

◆ prev_raw_dab

dt_drawlayer_brush_dab_t dt_drawlayer_paint_stroke_t::prev_raw_dab

Previous raw segment anchor for cubic interpolation.

◆ raw_input_cursor

guint dt_drawlayer_paint_stroke_t::raw_input_cursor

Cursor of next raw input to consume in raw_inputs.

◆ raw_inputs

GArray* dt_drawlayer_paint_stroke_t::raw_inputs

FIFO raw input queue (dt_drawlayer_paint_raw_input_t).

◆ sampled_arc_length

float dt_drawlayer_paint_stroke_t::sampled_arc_length

Cumulative arc position of last emitted sample.

◆ smudge_height

int dt_drawlayer_paint_stroke_t::smudge_height

Smudge carry buffer height in pixels.

◆ smudge_pickup_x

float dt_drawlayer_paint_stroke_t::smudge_pickup_x

Smudge pickup center X in layer coordinates.

◆ smudge_pickup_y

float dt_drawlayer_paint_stroke_t::smudge_pickup_y

Smudge pickup center Y in layer coordinates.

◆ smudge_pixels

float* dt_drawlayer_paint_stroke_t::smudge_pixels

Smudge carry buffer (RGBA float, local dab footprint).

◆ smudge_width

int dt_drawlayer_paint_stroke_t::smudge_width

Smudge carry buffer width in pixels.

◆ stroke_arc_length

float dt_drawlayer_paint_stroke_t::stroke_arc_length

Cumulative raw-path arc length in layer coordinates.

◆ stroke_seed

uint64_t dt_drawlayer_paint_stroke_t::stroke_seed

Deterministic per-stroke seed (noise/sprinkles).


The documentation for this struct was generated from the following file: