![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
Fully resolved input dab descriptor. More...
#include <brush.h>
Collaboration diagram for dt_drawlayer_brush_dab_t:Data Fields | |
| float | x |
| float | y |
| float | wx |
| float | wy |
| float | radius |
| float | dir_x |
| float | dir_y |
| float | sample_spacing |
| float | sample_opacity_scale |
| float | opacity |
| float | flow |
| float | sprinkles |
| float | sprinkle_size |
| float | sprinkle_coarseness |
| float | hardness |
| float | color [4] |
| float | display_color [3] |
| int | shape |
| int | mode |
| uint32_t | stroke_batch |
| uint8_t | stroke_pos |
Fully resolved input dab descriptor.
Instances are produced by the stroke-level paint API (or equivalent caller code) and consumed by the brush rasterizer.
| float dt_drawlayer_brush_dab_t::color[4] |
Premultiplied-space source RGBA, alpha conventionally set to 1.
Referenced by _apply_quadratic_dab_smoothing(), _paint_build_segment_window_sample(), and dt_drawlayer_brush_rasterize_dab_rgbaf().
| float dt_drawlayer_brush_dab_t::dir_x |
Unit direction X along local stroke tangent (or 0 when unknown).
Referenced by _brush_runtime_view_from_state(), _emit_dab(), _enforce_dab_center_spacing(), _flush_pending_initial_if_needed(), and _paint_build_segment_window_sample().
| float dt_drawlayer_brush_dab_t::dir_y |
Unit direction Y along local stroke tangent (or 1 when unknown).
Referenced by _brush_runtime_view_from_state(), _emit_dab(), _enforce_dab_center_spacing(), _flush_pending_initial_if_needed(), and _paint_build_segment_window_sample().
| float dt_drawlayer_brush_dab_t::display_color[3] |
Display-space RGB counterpart for GUI preview widgets.
Referenced by _apply_quadratic_dab_smoothing(), _paint_build_segment_window_sample(), and dt_drawlayer_brush_rasterize_dab_argb8().
| float dt_drawlayer_brush_dab_t::flow |
Per-dab flow in [0,1] after input mapping (API-level convention).
Referenced by _apply_quadratic_dab_smoothing(), _paint_build_segment_window_sample(), _prepare_analytic_pixel_context(), and dt_drawlayer_brush_rasterize().
| float dt_drawlayer_brush_dab_t::hardness |
Hardness/inner support control in [0,1].
Referenced by _apply_quadratic_dab_smoothing(), _paint_build_segment_window_sample(), _paint_stroke_sample_opacity_scale(), dt_drawlayer_brush_mass_primitive_eval(), and dt_drawlayer_brush_profile_eval().
| int dt_drawlayer_brush_dab_t::mode |
| float dt_drawlayer_brush_dab_t::opacity |
Per-dab target opacity in [0,1] after input mapping.
Referenced by _apply_quadratic_dab_smoothing(), _apply_smudge_stroke_mode(), _paint_build_segment_window_sample(), _prepare_analytic_pixel_context(), dt_drawlayer_brush_rasterize(), dt_drawlayer_brush_rasterize_dab_argb8(), dt_drawlayer_brush_rasterize_dab_rgbaf(), and dt_drawlayer_paint_runtime_prepare_dab_context().
| float dt_drawlayer_brush_dab_t::radius |
Dab radius in layer-space pixels (>0.0f expected).
Referenced by _advance_smudge_pickup_state(), _apply_quadratic_dab_smoothing(), _brush_runtime_view_from_state(), _ensure_cursor_stamp_surface(), _paint_build_segment_window_sample(), _paint_dab_sample_spacing(), _paint_segment_sample_spacing(), _paint_stroke_sample_opacity_scale(), dt_drawlayer_brush_mass_primitive_eval(), dt_drawlayer_brush_profile_eval(), dt_drawlayer_brush_rasterize(), dt_drawlayer_brush_rasterize_dab_argb8(), dt_drawlayer_brush_rasterize_dab_rgbaf(), dt_drawlayer_current_live_padding(), dt_drawlayer_paint_runtime_prepare_dab_context(), dt_drawlayer_widget_brush_radius(), and dt_drawlayer_worker_replay_finished_stroke_to_base_patch().
| float dt_drawlayer_brush_dab_t::sample_opacity_scale |
Precomputed spacing normalization consumed by rasterization.
Referenced by _freeze_emitted_dab_raster_state(), and dt_drawlayer_paint_rasterize_segment_to_buffer().
| float dt_drawlayer_brush_dab_t::sample_spacing |
Emission spacing chosen by the stroke sampler for this dab.
Referenced by _freeze_emitted_dab_raster_state(), and dt_drawlayer_paint_rasterize_segment_to_buffer().
| int dt_drawlayer_brush_dab_t::shape |
| float dt_drawlayer_brush_dab_t::sprinkle_coarseness |
Octave mix control in [0,1] from fine (0) to coarse (1).
Referenced by _apply_quadratic_dab_smoothing(), _brush_runtime_view_from_state(), _paint_build_segment_window_sample(), and _prepare_sprinkle_preview().
| float dt_drawlayer_brush_dab_t::sprinkle_size |
Sprinkle pattern spatial scale in pixels.
Referenced by _apply_quadratic_dab_smoothing(), _brush_runtime_view_from_state(), _paint_build_segment_window_sample(), and _prepare_sprinkle_preview().
| float dt_drawlayer_brush_dab_t::sprinkles |
Sprinkle/noise amount in [0,1].
Referenced by _apply_quadratic_dab_smoothing(), _brush_runtime_view_from_state(), _paint_build_segment_window_sample(), and _prepare_sprinkle_preview().
| uint32_t dt_drawlayer_brush_dab_t::stroke_batch |
Monotonic stroke id used for deterministic per-stroke noise seeding.
Referenced by _brush_runtime_view_from_state(), _paint_input_starts_new_stroke(), _paint_process_one_raw_input(), and _prepare_sprinkle_preview().
| uint8_t dt_drawlayer_brush_dab_t::stroke_pos |
Stroke position tag (first/middle/end), see paint API enum.
Referenced by _emit_first_sample_if_needed(), _paint_process_one_raw_input(), dt_drawlayer_paint_finalize_path(), and dt_drawlayer_paint_rasterize_segment_to_buffer().
| float dt_drawlayer_brush_dab_t::wx |
Dab center X in widget-space coordinates (for GUI overlays).
Referenced by _apply_quadratic_dab_smoothing(), _enforce_dab_center_spacing(), and _paint_build_segment_window_sample().
| float dt_drawlayer_brush_dab_t::wy |
Dab center Y in widget-space coordinates (for GUI overlays).
Referenced by _apply_quadratic_dab_smoothing(), _enforce_dab_center_spacing(), and _paint_build_segment_window_sample().
| float dt_drawlayer_brush_dab_t::x |
Dab center X in layer/buffer-space pixels.
Referenced by _advance_smudge_pickup_state(), _apply_quadratic_dab_smoothing(), _brush_runtime_view_from_state(), _build_raw_segment_cubic_arclen_lut(), _emit_dab(), _enforce_dab_center_spacing(), _flush_pending_initial_if_needed(), _paint_build_segment_window_sample(), _paint_process_one_raw_input(), _process_backend_dab(), _rasterize_pending_dab_batch(), _render_brush_profile_cell(), dt_drawlayer_build_worker_input_dab(), dt_drawlayer_paint_runtime_prepare_dab_context(), dt_drawlayer_widget_brush_radius(), dt_drawlayer_worker_replay_finished_stroke_to_base_patch(), and gui_post_expose().
| float dt_drawlayer_brush_dab_t::y |
Dab center Y in layer/buffer-space pixels.
Referenced by _advance_smudge_pickup_state(), _apply_quadratic_dab_smoothing(), _brush_runtime_view_from_state(), _build_raw_segment_cubic_arclen_lut(), _emit_dab(), _enforce_dab_center_spacing(), _flush_pending_initial_if_needed(), _paint_build_segment_window_sample(), _paint_process_one_raw_input(), _process_backend_dab(), _rasterize_pending_dab_batch(), dt_drawlayer_build_worker_input_dab(), dt_drawlayer_paint_runtime_prepare_dab_context(), dt_drawlayer_widget_brush_radius(), and dt_drawlayer_worker_replay_finished_stroke_to_base_patch().