![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
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 |
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.
| 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(), dt_drawlayer_paint_rasterize_segment_to_buffer(), and dt_drawlayer_paint_runtime_prepare_dab_context().
| GArray* dt_drawlayer_paint_stroke_t::dab_window |
Rolling local raster window (dt_drawlayer_brush_dab_t, max ~3).
Referenced by _destroy_fullres_replay_scratch(), _get_fullres_replay_scratch(), _paint_reset_path_runtime_state(), _process_backend_dab(), _stroke_create(), _stroke_destroy(), dt_drawlayer_paint_rasterize_segment_to_buffer(), dt_drawlayer_worker_replay_finished_stroke_to_base_patch(), and dt_drawlayer_worker_seal_for_commit().
| float dt_drawlayer_paint_stroke_t::distance_percent |
Last applied distance control in [0,1].
Referenced by _emit_first_sample_if_needed(), _paint_process_one_raw_input(), _paint_reset_path_runtime_state(), _process_backend_dab(), _rasterize_pending_dab_batch(), dt_drawlayer_paint_finalize_path(), and dt_drawlayer_worker_replay_finished_stroke_to_base_patch().
| gboolean dt_drawlayer_paint_stroke_t::have_last_input_dab |
TRUE when last_input_dab is initialized.
Referenced by _emit_first_sample_if_needed(), _paint_input_starts_new_stroke(), _paint_process_one_raw_input(), _paint_reset_path_runtime_state(), dt_drawlayer_build_worker_input_dab(), and dt_drawlayer_paint_finalize_path().
| gboolean dt_drawlayer_paint_stroke_t::have_prev_raw_dab |
TRUE when prev_raw_dab is initialized.
Referenced by _paint_process_one_raw_input(), _paint_reset_path_runtime_state(), and _sample_raw_segment_cubic_param().
| gboolean dt_drawlayer_paint_stroke_t::have_smudge_pickup |
TRUE when smudge pickup coordinates are valid.
Referenced by dt_drawlayer_paint_runtime_have_smudge_pickup(), dt_drawlayer_paint_runtime_private_reset(), and dt_drawlayer_paint_runtime_set_smudge_pickup().
| GArray* dt_drawlayer_paint_stroke_t::history |
Emitted, evenly-spaced dabs (dt_drawlayer_brush_dab_t).
Referenced by _apply_quadratic_dab_smoothing(), _destroy_fullres_replay_scratch(), _emit_dab(), _emit_first_sample_if_needed(), _enforce_dab_center_spacing(), _flush_pending_initial_if_needed(), _get_fullres_replay_scratch(), _paint_reset_path_runtime_state(), _stroke_begin(), _stroke_create(), dt_drawlayer_build_worker_input_dab(), dt_drawlayer_paint_finalize_path(), and dt_drawlayer_worker_replay_finished_stroke_to_base_patch().
| dt_drawlayer_brush_dab_t dt_drawlayer_paint_stroke_t::last_input_dab |
Last converted raw-input dab (pre-resampling).
Referenced by _emit_first_sample_if_needed(), _flush_pending_initial_if_needed(), _paint_input_starts_new_stroke(), _paint_process_one_raw_input(), _paint_reset_path_runtime_state(), dt_drawlayer_build_worker_input_dab(), and dt_drawlayer_paint_finalize_path().
| GArray* dt_drawlayer_paint_stroke_t::pending_dabs |
Newly emitted dabs not yet rasterized (dt_drawlayer_brush_dab_t).
Referenced by _backend_pending_dabs_locked(), _backend_worker_on_idle(), _destroy_fullres_replay_scratch(), _emit_dab(), _ensure_pending_dabs(), _get_fullres_replay_scratch(), _paint_reset_path_runtime_state(), _process_backend_input(), _rasterize_pending_dab_batch(), _stroke_create(), _stroke_destroy(), dt_drawlayer_worker_pending_dab_count(), dt_drawlayer_worker_replay_finished_stroke_to_base_patch(), and dt_drawlayer_worker_seal_for_commit().
| dt_drawlayer_brush_dab_t dt_drawlayer_paint_stroke_t::prev_raw_dab |
Previous raw segment anchor for cubic interpolation.
Referenced by _paint_process_one_raw_input(), _paint_reset_path_runtime_state(), and _sample_raw_segment_cubic_param().
| guint dt_drawlayer_paint_stroke_t::raw_input_cursor |
Cursor of next raw input to consume in raw_inputs.
Referenced by _paint_compact_raw_input_queue(), dt_drawlayer_paint_interpolate_path(), and dt_drawlayer_paint_path_state_reset().
| GArray* dt_drawlayer_paint_stroke_t::raw_inputs |
FIFO raw input queue (dt_drawlayer_paint_raw_input_t).
Referenced by _ensure_raw_inputs(), _paint_compact_raw_input_queue(), dt_drawlayer_paint_interpolate_path(), dt_drawlayer_paint_path_state_reset(), and dt_drawlayer_paint_queue_raw_input().
| float dt_drawlayer_paint_stroke_t::sampled_arc_length |
Cumulative arc position of last emitted sample.
Referenced by _emit_first_sample_if_needed(), _paint_process_one_raw_input(), _paint_reset_path_runtime_state(), and dt_drawlayer_paint_finalize_path().
| int dt_drawlayer_paint_stroke_t::smudge_height |
Smudge carry buffer height in pixels.
Referenced by dt_drawlayer_paint_runtime_ensure_smudge_pixels(), dt_drawlayer_paint_runtime_private_reset(), and dt_drawlayer_paint_runtime_smudge_height().
| float dt_drawlayer_paint_stroke_t::smudge_pickup_x |
Smudge pickup center X in layer coordinates.
Referenced by dt_drawlayer_paint_runtime_get_smudge_pickup(), dt_drawlayer_paint_runtime_private_reset(), and dt_drawlayer_paint_runtime_set_smudge_pickup().
| float dt_drawlayer_paint_stroke_t::smudge_pickup_y |
Smudge pickup center Y in layer coordinates.
Referenced by dt_drawlayer_paint_runtime_get_smudge_pickup(), dt_drawlayer_paint_runtime_private_reset(), and dt_drawlayer_paint_runtime_set_smudge_pickup().
| float* dt_drawlayer_paint_stroke_t::smudge_pixels |
Smudge carry buffer (RGBA float, local dab footprint).
Referenced by dt_drawlayer_paint_runtime_ensure_smudge_pixels(), dt_drawlayer_paint_runtime_private_reset(), and dt_drawlayer_paint_runtime_smudge_pixels().
| int dt_drawlayer_paint_stroke_t::smudge_width |
Smudge carry buffer width in pixels.
Referenced by dt_drawlayer_paint_runtime_ensure_smudge_pixels(), dt_drawlayer_paint_runtime_private_reset(), and dt_drawlayer_paint_runtime_smudge_width().
| float dt_drawlayer_paint_stroke_t::stroke_arc_length |
Cumulative raw-path arc length in layer coordinates.
Referenced by _paint_process_one_raw_input(), and _paint_reset_path_runtime_state().
| uint64_t dt_drawlayer_paint_stroke_t::stroke_seed |
Deterministic per-stroke seed (noise/sprinkles).
Referenced by _paint_process_one_raw_input(), _paint_reset_path_runtime_state(), dt_drawlayer_paint_runtime_get_stroke_seed(), and dt_drawlayer_paint_runtime_set_stroke_seed().