![]() |
Ansel 0.0
A darktable fork - bloat + design vision
|
#include "darktable.h"#include "develop/develop.h"#include "develop/dev_geometry.h"#include "develop/geometry/geometry.h"#include "develop/masks.h"#include "develop/masks_debug.h"#include "develop/masks/masks_functions.h"#include "develop/masks/masks_distort.h"#include "widgets/widget_settings.h"#include "math/math.h"#include "system/mem_alloc.h"#include <cairo/cairo.h>#include <glib.h>#include <glib/gstdio.h>#include <stdio.h>#include <stdint.h>#include <stdlib.h>#include <string.h>
Include dependency graph for masks_geometry.c:Go to the source code of this file.
Data Structures | |
| struct | _runs_t |
| struct | _band_t |
| struct | _brush_case_t |
| struct | _row_table_t |
| struct | _overlay_timing_t |
Macros | |
| #define | IMG_W 5184 |
| #define | IMG_H 3888 |
| #define | MASKS_BASELINE_MAX_DELTA 8 /* per channel, of 255 */ |
| #define | MASKS_BASELINE_MAX_SHARE 0.0002 /* share of pixels allowed to differ at all */ |
| #define | MASKS_BASELINE_NOISE_PX 64 |
| #define | PATH_SAMPLES_PER_SEGMENT 2001 |
| #define | OVERLAY_SCREEN_W 2560 |
| #define | OVERLAY_SCREEN_H 1440 |
Typedefs | |
| typedef enum _disc_pick_t | _disc_pick_t |
| typedef enum _runs_mode_t | _runs_mode_t |
| typedef struct _runs_t | _runs_t |
| typedef struct _band_t | _band_t |
| typedef struct _brush_case_t | _brush_case_t |
| typedef struct _row_table_t | _row_table_t |
| typedef struct _overlay_timing_t | _overlay_timing_t |
Enumerations | |
| enum | _disc_pick_t { DISC_OWED , DISC_PERMITTED } |
| enum | _runs_mode_t { RUNS_MISSING , RUNS_EXCESS } |
Functions | |
| static dt_masks_node_brush_t * | _brush_node (const float x, const float y, const float c1x, const float c1y, const float c2x, const float c2y, const float radius) |
| static dt_masks_node_polygon_t * | _polygon_node_state (const float x, const float y, const float c1x, const float c1y, const float c2x, const float c2y, const float radius, const dt_masks_points_states_t state) |
| static dt_masks_node_polygon_t * | _polygon_node (const float x, const float y, const float c1x, const float c1y, const float c2x, const float c2y, const float radius) |
| static GList * | _brush_from_table (const float table[][9], const int count) |
| static void | _stamp_disc_rows (int32_t *const diff, const size_t stride, const int w, const int h, const int cx, const int cy, const int r_i) |
| static void | _brush_disc_union (const GList *const nodes, const int w, const int h, const _disc_pick_t pick, uint8_t *const map) |
| static void | _flood_component (const uint8_t *const flag, uint8_t *const seen, int *const stack, const int w, const int h, const size_t seed, long *const sum) |
| static void | _coverage_runs (const float *mask, const uint8_t *reference, const int w, const int h, const _runs_mode_t mode, _runs_t *const out) |
| static void | _measure (const float *mask, const int w, const int h, double *coverage, int *hole_count, int *largest_hole) |
| static void | _set_frame (dt_develop_t *dev, const int w, const int h) |
| static void | _surface_diff (cairo_surface_t *const a, cairo_surface_t *const b, size_t *const differing, int *const worst, int *const wx, int *const wy) |
| static void | _outline_density_apply (dt_develop_t *dev, const double image_px_per_device_px) |
| static gboolean | _baseline_check (const char *path, const char *name) |
| static void | _write_missing_map (const char *dir, const char *name, const float *const mask, const uint8_t *const reference, const int w, const int h) |
| static GList * | _brush_from_table11 (const float table[][11], const int count) |
| static _band_t | _outline_band_check (dt_develop_t *dev, dt_masks_form_t *form, const uint8_t *owed, const uint8_t *permitted, const int w, const int h) |
| static void | _judge_raster (dt_develop_t *dev, dt_masks_form_t *form, const _brush_case_t *const c, const float *const mask, const uint8_t *const owed, const uint8_t *const permitted) |
| static int | _path_dense_samples (const GList *const nodes, const int w, const int h, const _disc_pick_t pick, float *const px, float *const py, int32_t *const diff) |
| static gboolean | _row_table_put (const _row_table_t *const t, const int y, const float x) |
| static void | _path_row_crossings (const float *const px, const float *const py, const int count, const int h, const _row_table_t *const t) |
| static void | _path_interior (const float *const px, const float *const py, const int count, const int w, const int h, int32_t *const diff, const size_t stride) |
| static void | _polygon_disc_union (const GList *const nodes, const int w, const int h, const _disc_pick_t pick, uint8_t *const map) |
| static void | _run_polygon_form_at (dt_develop_t *dev, dt_masks_form_t *form, const _brush_case_t *const c) |
| static void | _run_brush_nodes_at (dt_develop_t *dev, GList *nodes, const _brush_case_t *const c) |
| static void | _run_brush_case_at (dt_develop_t *dev, const float table[][9], const int count, const _brush_case_t *const c) |
| static void | _run_brush_case11_at (dt_develop_t *dev, const float table[][11], const int count, const _brush_case_t *const c) |
| static void | _run_brush_case (dt_develop_t *dev, const float table[][9], const int count, const char *name, const char *dir, const int budget_px) |
| static void | _run_case_at (dt_develop_t *dev, dt_masks_form_t *form, const char *name, const char *dir, const int max_holes, const int max_hole_px, const int img_w, const int img_h) |
| static void | _run_case (dt_develop_t *dev, dt_masks_form_t *form, const char *name, const char *dir, const int max_holes, const int max_hole_px) |
| static void | _overlay_skipped (const dt_masks_form_gui_points_t *const gp, int *skipped, int *ranges) |
| static int | _overlay_skip_of (const dt_masks_form_gui_points_t *const gp, const int i) |
| static void | _overlay_dump_skips (const dt_masks_form_gui_points_t *const gp, const char *name, const dt_masks_overlay_transform_t *const transform) |
| static void | _overlay_frame (dt_develop_t *dev, cairo_surface_t *surface, const dt_masks_overlay_transform_t *const transform) |
| static long | _overlay_leftovers (dt_develop_t *dev, cairo_surface_t *surface, const dt_masks_overlay_transform_t *const transform) |
| static void | _overlay_report (dt_develop_t *dev, const char *name, const int img_w, const int img_h, const gboolean selected, const _overlay_timing_t *const timing, const dt_masks_overlay_transform_t *const transform) |
| static void | _time_hit_test (dt_develop_t *dev, dt_masks_form_t *form, const char *name, const int img_w, const int img_h) |
| static void | _time_overlay_form (dt_develop_t *dev, dt_masks_form_t *form, const char *name, const char *dir, const int img_w, const int img_h, const int frames) |
| static gboolean | _painted_bbox (cairo_surface_t *surface, int *x0, int *y0, int *x1, int *y1) |
| static void | _check_hidpi_placement (dt_develop_t *dev, dt_masks_form_t *form, const char *name, const int img_w, const int img_h) |
| static void | _time_overlay_brush (dt_develop_t *dev, GList *nodes, const char *name, const char *dir, const int img_w, const int img_h, const int frames) |
| static dt_masks_form_t * | _group_member (dt_develop_t *dev, const dt_masks_type_t type, const dt_masks_functions_t *functions, GList *nodes, const int formid, const char *name) |
| static void | _time_overlay_group (dt_develop_t *dev, const char *dir, const int frames) |
| static void | _time_overlay_all (dt_develop_t *dev, const char *dir, const int frames) |
| int | main (int argc, char *argv[]) |
Variables | |
| static int | failures = 0 |
| static const float | _brush_1313 [11][9] |
| static const float | _brush_cusp_tbl [3][9] |
| static const float | _brush_hairpin_tbl [3][9] |
| static const float | _brush_zigzag_tbl [6][9] |
| static const float | _brush_selfcross_tbl [5][9] |
| static const float | _brush_concave_tbl [5][9] |
| static const float | _brush_1360 [43][11] |
| static const float | _brush_1352 [7][11] |
| static const float | _brush_1074 [8][11] |
| static const float | _brush_1074b [8][11] |
| static const float | _polygon_1788045925 [15][8] |
| static const char * | baseline_dir = NULL |
| static int | _outline_step_override = 0 |
| static gboolean | baseline_update = FALSE |
| static gboolean | time_overlay = FALSE |
| static int | time_overlay_frames = 30 |
| static int | baseline_missing = 0 |
| #define IMG_H 3888 |
Definition at line 64 of file masks_geometry.c.
| #define IMG_W 5184 |
Rasterised geometry for mask shapes that are known to break.
Every shape here is a defect that shipped, reduced to the geometry that causes it. The runner rasterises each one, writes the alpha as a PNG, and reports simple, stable measures of it – coverage, and the count and size of enclosed holes. Those numbers are the regression signal; the PNGs are how a human sees what the numbers mean.
Why measures and not a golden-image diff: the rasteriser's exact anti-aliasing is allowed to change, and a byte comparison would fail on every legitimate improvement while still missing a hole that moved. A hole is what these bugs ARE, so a hole is what is counted.
The overlay is rendered too, over the alpha, because the two layers are confused so easily: a brush cusp losing coverage and a dashed outline drawing self-intersecting circles are different bugs, and an always-FALSE flag once deleted geometry the rasteriser needed in order to tidy a line the GUI drew. Seeing them superimposed is what tells them apart.
Run: ansel-test-masks-geometry [output-dir]
Definition at line 63 of file masks_geometry.c.
| #define MASKS_BASELINE_MAX_DELTA 8 /* per channel, of 255 */ |
Definition at line 637 of file masks_geometry.c.
| #define MASKS_BASELINE_MAX_SHARE 0.0002 /* share of pixels allowed to differ at all */ |
Definition at line 638 of file masks_geometry.c.
| #define MASKS_BASELINE_NOISE_PX 64 |
Definition at line 646 of file masks_geometry.c.
| #define OVERLAY_SCREEN_H 1440 |
Definition at line 1338 of file masks_geometry.c.
| #define OVERLAY_SCREEN_W 2560 |
Definition at line 1337 of file masks_geometry.c.
| #define PATH_SAMPLES_PER_SEGMENT 2001 |
Definition at line 1001 of file masks_geometry.c.
The drawn outline against the disc union.
What the GUI draws is meant to be the boundary of what the pipe paints. The two maps the raster is judged against bound that boundary from both sides – a boundary point is outside the owed map (the union shrunk by two pixels) and inside the permitted one (grown by three) – so every border sample the outline keeps must land in that band. One that lands deep inside the union is a fold, a joint arc or a crossing the outline failed to hide (issue #1352's chords); one outside the permitted map is a spoke to nowhere (issue #1360). Counts both, and how long the GUI-side build took, which is the cost a drag pays.
| typedef struct _brush_case_t _brush_case_t |
One brush case: what to call it, where to write, what to tolerate, at what frame size.
| typedef enum _disc_pick_t _disc_pick_t |
| typedef struct _overlay_timing_t _overlay_timing_t |
| typedef struct _row_table_t _row_table_t |
| typedef enum _runs_mode_t _runs_mode_t |
How much coverage disagrees with the reference, and where the largest connected run is.
| enum _disc_pick_t |
| Enumerator | |
|---|---|
| DISC_OWED | |
| DISC_PERMITTED | |
Definition at line 155 of file masks_geometry.c.
| enum _runs_mode_t |
| Enumerator | |
|---|---|
| RUNS_MISSING | |
| RUNS_EXCESS | |
Definition at line 261 of file masks_geometry.c.
|
static |
Compare path against its baseline, or create the baseline when updating. Returns TRUE when the render is acceptable (or there is nothing to compare against).
Definition at line 718 of file masks_geometry.c.
References _outline_step_override, _surface_diff(), baseline_dir, baseline_missing, baseline_update, double(), FALSE, IS_NULL_PTR, MASKS_BASELINE_MAX_DELTA, MASKS_BASELINE_MAX_SHARE, MASKS_BASELINE_NOISE_PX, name, and TRUE.
Referenced by _judge_raster(), and _run_case_at().
|
static |
Definition at line 180 of file masks_geometry.c.
References _stamp_disc_rows(), dt_masks_node_brush_t::border, dt_masks_node_brush_t::ctrl1, dt_masks_node_brush_t::ctrl2, DISC_OWED, IS_NULL_PTR, k, MAX, MIN, dt_masks_node_brush_t::node, r, t, and x.
Referenced by _run_brush_nodes_at().
|
static |
Definition at line 126 of file masks_geometry.c.
References _brush_node(), and i.
Referenced by _run_brush_case_at(), _time_overlay_all(), and _time_overlay_group().
|
static |
Definition at line 839 of file masks_geometry.c.
References _brush_node(), i, and n.
Referenced by _run_brush_case11_at(), _time_overlay_all(), and _time_overlay_group().
|
static |
Definition at line 70 of file masks_geometry.c.
References DT_MASKS_POINT_STATE_NORMAL, n, dt_masks_node_brush_t::node, and x.
Referenced by _brush_from_table(), and _brush_from_table11().
|
static |
Definition at line 1673 of file masks_geometry.c.
References _painted_bbox(), _set_frame(), bbox, dt_dev_geometry_set_processed_size(), dt_masks_events_post_expose_with(), failures, FALSE, dt_develop_t::form_gui, dt_masks_form_gui_t::form_visible, dt_masks_form_gui_t::formid, dt_masks_form_gui_t::geometry_generation, dt_masks_form_gui_t::group_selected, i, MIN, name, OVERLAY_SCREEN_H, OVERLAY_SCREEN_W, dt_masks_overlay_transform_t::scale, and transform().
Referenced by _time_overlay_all(), and _time_overlay_brush().
|
static |
Largest connected run of coverage that disagrees with the reference, and its total: MISSING is owed and unpainted, EXCESS is painted and not permitted.
Definition at line 313 of file masks_geometry.c.
References _flood_component(), flag, i, IS_NULL_PTR, out, reference(), RUNS_MISSING, and _runs_t::total.
Referenced by _judge_raster().
|
inlinestatic |
Definition at line 274 of file masks_geometry.c.
Referenced by _coverage_runs().
|
static |
Definition at line 1728 of file masks_geometry.c.
References dt_masks_append_form(), dt_masks_create(), dt_masks_form_t::formid, dt_masks_form_t::functions, IS_NULL_PTR, name, dt_masks_form_t::name, dt_masks_form_t::points, type, and dt_masks_form_t::version.
Referenced by _time_overlay_group().
|
static |
Definition at line 931 of file masks_geometry.c.
References _baseline_check(), _coverage_runs(), _outline_band_check(), _write_missing_map(), _runs_t::cx, _runs_t::cy, DT_MASKS_DEBUG_BACKDROP_RASTER, dt_masks_debug_write_outline_csv(), dt_masks_debug_write_png(), failures, FALSE, _band_t::inside, IS_NULL_PTR, _band_t::kept, _runs_t::largest, _band_t::off_frame, _band_t::outside, RUNS_EXCESS, RUNS_MISSING, _band_t::seconds, _runs_t::total, TRUE, and dt_masks_debug_request_t::width.
Referenced by _run_brush_nodes_at(), and _run_polygon_form_at().
|
static |
Coverage plus enclosed holes: an unpainted component that does not touch the border.
Definition at line 367 of file masks_geometry.c.
References double(), FALSE, i, IS_NULL_PTR, k, size, top, TRUE, and x.
Referenced by _run_case_at().
|
static |
Definition at line 873 of file masks_geometry.c.
References _outline_density_apply(), dt_get_wtime(), dt_masks_get_points_border(), DT_MASKS_RASTER_OK, dt_masks_skip_contains(), dt_pixelpipe_cache_free_align, i, _band_t::inside, IS_NULL_PTR, _band_t::kept, _band_t::off_frame, _band_t::outside, dt_masks_form_t::points, _band_t::seconds, and x.
Referenced by _judge_raster().
|
static |
Definition at line 698 of file masks_geometry.c.
References _outline_step_override, dt_masks_gui_set_outline_density(), dt_masks_init_form_gui(), dt_develop_t::form_gui, and IS_NULL_PTR.
Referenced by _outline_band_check().
|
static |
Definition at line 1362 of file masks_geometry.c.
References _overlay_skip_of(), dt_masks_form_gui_points_t::border, dt_masks_form_gui_points_t::border_count, dt_masks_form_gui_points_t::border_skip_count, dt_masks_form_gui_points_t::border_skips, f, i, IS_NULL_PTR, dt_masks_skip_range_t::jump_from, k, MIN, name, dt_masks_form_gui_points_t::points, dt_masks_skip_range_t::resume_at, and transform().
Referenced by _overlay_report().
|
static |
Definition at line 1392 of file masks_geometry.c.
References dt_masks_events_post_expose_with(), OVERLAY_SCREEN_H, OVERLAY_SCREEN_W, and transform().
Referenced by _overlay_leftovers(), and _time_overlay_form().
|
static |
Definition at line 1405 of file masks_geometry.c.
References _overlay_frame(), dt_develop_t::form_gui, dt_masks_form_gui_t::formid, dt_masks_form_gui_t::geometry_generation, IS_NULL_PTR, MAX, MIN, OVERLAY_SCREEN_H, OVERLAY_SCREEN_W, dt_masks_overlay_transform_t::scale, transform(), and x.
Referenced by _time_overlay_form().
|
static |
Definition at line 1462 of file masks_geometry.c.
References _overlay_dump_skips(), _overlay_skipped(), dt_masks_form_gui_points_t::border_count, _overlay_timing_t::build_ms, dt_masks_gui_outline_step(), dt_develop_t::form_gui, IS_NULL_PTR, name, _overlay_timing_t::per_frame_ms, dt_masks_form_gui_t::points, dt_masks_form_gui_points_t::points_count, selected, and transform().
Referenced by _time_overlay_form().
|
static |
Definition at line 1351 of file masks_geometry.c.
References dt_masks_form_gui_points_t::border_skip_count, dt_masks_form_gui_points_t::border_skips, i, dt_masks_skip_range_t::jump_from, and k.
Referenced by _overlay_dump_skips().
|
static |
Definition at line 1342 of file masks_geometry.c.
References dt_masks_form_gui_points_t::border_skip_count, dt_masks_form_gui_points_t::border_skips, dt_masks_skip_range_t::jump_from, k, and dt_masks_skip_range_t::resume_at.
Referenced by _overlay_report().
|
static |
Definition at line 1638 of file masks_geometry.c.
References FALSE, MAX, MIN, p, TRUE, and x.
Referenced by _check_hidpi_placement().
|
static |
Definition at line 1005 of file masks_geometry.c.
References _stamp_disc_rows(), dt_masks_node_polygon_t::border, dt_masks_node_polygon_t::ctrl1, dt_masks_node_polygon_t::ctrl2, DISC_OWED, k, MAX, MIN, dt_masks_node_polygon_t::node, PATH_SAMPLES_PER_SEGMENT, r, and t.
Referenced by _polygon_disc_union().
|
static |
Definition at line 1101 of file masks_geometry.c.
References _path_row_crossings(), _row_table_t::count, IS_NULL_PTR, m, MAX, MIN, row, and v.
Referenced by _polygon_disc_union().
|
static |
Definition at line 1071 of file masks_geometry.c.
References _row_table_put(), i, MAX, MIN, and t.
Referenced by _path_interior().
|
static |
Definition at line 1161 of file masks_geometry.c.
References _path_dense_samples(), _path_interior(), IS_NULL_PTR, n, PATH_SAMPLES_PER_SEGMENT, and x.
Referenced by _run_polygon_form_at().
|
static |
Definition at line 99 of file masks_geometry.c.
References _polygon_node_state(), DT_MASKS_POINT_STATE_NORMAL, and x.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 84 of file masks_geometry.c.
References n, dt_masks_node_polygon_t::node, state, and x.
Referenced by _polygon_node(), and main().
|
inlinestatic |
Definition at line 1054 of file masks_geometry.c.
References _row_table_t::at, FALSE, IS_NULL_PTR, t, TRUE, and x.
Referenced by _path_row_crossings().
|
static |
Definition at line 1262 of file masks_geometry.c.
References _run_brush_case_at(), IMG_H, IMG_W, and name.
Referenced by main().
|
static |
Definition at line 1256 of file masks_geometry.c.
References _brush_from_table11(), and _run_brush_nodes_at().
Referenced by main().
|
static |
Definition at line 1250 of file masks_geometry.c.
References _brush_from_table(), and _run_brush_nodes_at().
Referenced by _run_brush_case(), and main().
|
static |
Run one brush through both consumers and judge it. Takes ownership of nodes.
Definition at line 1217 of file masks_geometry.c.
References _brush_disc_union(), _judge_raster(), _set_frame(), DISC_OWED, DISC_PERMITTED, dt_free_align, DT_MASKS_BRUSH, dt_masks_debug_rasterise(), dt_masks_functions_brush, failures, dt_masks_form_t::formid, dt_masks_form_t::functions, IS_NULL_PTR, dt_masks_form_t::name, dt_masks_form_t::points, dt_masks_form_t::type, and dt_masks_form_t::version.
Referenced by _run_brush_case11_at(), and _run_brush_case_at().
|
static |
Definition at line 1317 of file masks_geometry.c.
References _run_case_at(), IMG_H, IMG_W, and name.
Referenced by main().
|
static |
Definition at line 1269 of file masks_geometry.c.
References _baseline_check(), _measure(), _set_frame(), dt_free_align, DT_MASKS_DEBUG_BACKDROP_RASTER, dt_masks_debug_rasterise(), dt_masks_debug_write_outline_csv(), dt_masks_debug_write_png(), failures, FALSE, IS_NULL_PTR, name, TRUE, and dt_masks_debug_request_t::width.
Referenced by _run_case().
|
static |
Run one polygon through both consumers and judge it. The form is the caller's.
Definition at line 1193 of file masks_geometry.c.
References _judge_raster(), _polygon_disc_union(), _set_frame(), DISC_OWED, DISC_PERMITTED, dt_free_align, dt_masks_debug_rasterise(), failures, IS_NULL_PTR, and dt_masks_form_t::points.
Referenced by main().
|
static |
Definition at line 587 of file masks_geometry.c.
References dt_dev_geometry_set_processed_size(), dt_dev_geometry_set_raw_size(), dt_geometry_chain_rebuild(), and TRUE.
Referenced by _check_hidpi_placement(), _run_brush_nodes_at(), _run_case_at(), _run_polygon_form_at(), and _time_overlay_form().
|
inlinestatic |
Definition at line 159 of file masks_geometry.c.
Referenced by _brush_disc_union(), and _path_dense_samples().
|
static |
Compare two same-sized ARGB surfaces: how many pixels differ at all, and the worst per-channel delta with where it is. Lifted out of the baseline check because "are these the same picture" is a separate question from "what do I do about it", and nesting a triple loop inside the decision made both harder to read.
Definition at line 652 of file masks_geometry.c.
Referenced by _baseline_check().
|
static |
Definition at line 1489 of file masks_geometry.c.
References dist(), dt_get_wtime(), dt_masks_get_from_id(), DT_MASKS_GROUP, dt_masks_gui_outline_step(), dt_masks_gui_reset_dragging(), dt_widget_set_mouse_radius(), dt_develop_t::form_gui, dt_masks_form_group_t::formid, dt_masks_form_t::functions, dt_masks_functions_t::get_distance, dt_masks_form_gui_t::group_selected, IS_NULL_PTR, name, p, dt_masks_form_t::points, dt_masks_form_gui_t::pos, dt_masks_form_gui_t::raw_pos, selected, and dt_masks_form_t::type.
Referenced by _time_overlay_form().
|
static |
Definition at line 1828 of file masks_geometry.c.
References _brush_1074, _brush_1074b, _brush_1313, _brush_1352, _brush_1360, _brush_concave_tbl, _brush_cusp_tbl, _brush_from_table(), _brush_from_table11(), _brush_hairpin_tbl, _brush_selfcross_tbl, _brush_zigzag_tbl, _check_hidpi_placement(), _polygon_1788045925, _polygon_node(), _time_overlay_brush(), _time_overlay_form(), _time_overlay_group(), dt_masks_functions_polygon, DT_MASKS_POLYGON, dt_masks_form_t::formid, dt_masks_form_t::functions, i, IMG_H, IMG_W, dt_masks_form_t::name, OVERLAY_SCREEN_H, OVERLAY_SCREEN_W, dt_masks_form_t::points, r, dt_masks_form_t::type, dt_masks_form_t::version, and x.
Referenced by main().
|
static |
Definition at line 1712 of file masks_geometry.c.
References _check_hidpi_placement(), _time_overlay_form(), DT_MASKS_BRUSH, dt_masks_functions_brush, dt_masks_form_t::formid, dt_masks_form_t::functions, name, dt_masks_form_t::name, dt_masks_form_t::points, dt_masks_form_t::type, and dt_masks_form_t::version.
Referenced by _time_overlay_all().
|
static |
Definition at line 1554 of file masks_geometry.c.
References _overlay_frame(), _overlay_leftovers(), _overlay_report(), _set_frame(), _time_hit_test(), _overlay_timing_t::build_ms, dt_masks_form_gui_t::dev, dt_dev_geometry_set_processed_size(), dt_get_wtime(), dt_masks_init_form_gui(), f, failures, FALSE, dt_develop_t::form_gui, dt_masks_form_gui_t::form_selected, dt_masks_form_gui_t::form_visible, dt_masks_form_gui_t::formid, dt_masks_form_gui_t::geometry_generation, dt_masks_form_gui_t::group_selected, i, IS_NULL_PTR, MAX, MIN, name, OVERLAY_SCREEN_H, OVERLAY_SCREEN_W, _overlay_timing_t::per_frame_ms, dt_masks_overlay_transform_t::scale, selected, transform(), v, and view.
Referenced by _time_overlay_all(), _time_overlay_brush(), and _time_overlay_group().
|
static |
Definition at line 1747 of file masks_geometry.c.
References _brush_1074b, _brush_1313, _brush_1352, _brush_1360, _brush_concave_tbl, _brush_cusp_tbl, _brush_from_table(), _brush_from_table11(), _brush_hairpin_tbl, _brush_selfcross_tbl, _brush_zigzag_tbl, _group_member(), _polygon_1788045925, _polygon_node(), _time_overlay_form(), DT_MASKS_BRUSH, dt_masks_create(), dt_masks_form_unref(), dt_masks_functions_brush, dt_masks_functions_polygon, DT_MASKS_GROUP, DT_MASKS_POLYGON, DT_MASKS_STATE_SHOW, DT_MASKS_STATE_USE, dt_masks_form_t::formid, dt_masks_form_group_t::formid, dt_develop_t::forms, i, IMG_H, IMG_W, IS_NULL_PTR, name, dt_masks_form_t::name, dt_masks_form_group_t::opacity, dt_masks_form_group_t::parentid, dt_masks_form_t::points, r, dt_masks_form_group_t::state, and x.
Referenced by _time_overlay_all().
|
static |
A picture of exactly what is owed and missing: red where the disc union covers a pixel the rasteriser left empty, over the mask itself. This is the artefact to look at first when a case fails – it says WHERE the stroke went missing, which no scalar can.
Definition at line 806 of file masks_geometry.c.
References CLAMPF, g, i, name, reference(), row, and x.
Referenced by _judge_raster().
| int main | ( | int | argc, |
| char * | argv[] | ||
| ) |
Definition at line 1883 of file masks_geometry.c.
References _brush_1074, _brush_1074b, _brush_1313, _brush_1352, _brush_1360, _brush_concave_tbl, _brush_cusp_tbl, _brush_hairpin_tbl, _brush_selfcross_tbl, _brush_zigzag_tbl, _outline_step_override, _polygon_1788045925, _polygon_node(), _polygon_node_state(), _run_brush_case(), _run_brush_case11_at(), _run_brush_case_at(), _run_case(), _run_polygon_form_at(), _time_overlay_all(), ANSEL_TEST_BINARY_DIR, ANSEL_TEST_SOURCE_DIR, baseline_dir, baseline_missing, baseline_update, dt_masks_node_ellipse_t::border, dt_masks_node_ellipse_t::center, dt_masks_anchor_gradient_t::center, dt_cleanup(), dt_dev_geometry_init(), dt_dev_geometry_set_processed_size(), dt_dev_geometry_set_raw_size(), dt_geometry_chain_authoritative(), dt_geometry_chain_new(), dt_geometry_chain_rebuild(), dt_init(), DT_MASKS_CIRCLE, DT_MASKS_ELLIPSE, DT_MASKS_ELLIPSE_EQUIDISTANT, dt_masks_functions_circle, dt_masks_functions_ellipse, dt_masks_functions_gradient, dt_masks_functions_polygon, DT_MASKS_GRADIENT, DT_MASKS_GRADIENT_STATE_SIGMOIDAL, DT_MASKS_POLYGON, dt_pthread_rwlock_destroy(), dt_pthread_rwlock_init(), f, failures, FALSE, dt_masks_node_ellipse_t::flags, dt_masks_form_t::formid, dt_masks_form_t::functions, g, dt_develop_t::geometry_chain, dt_develop_t::history_mutex, i, IMG_H, IMG_W, IS_NULL_PTR, dt_develop_t::masks_mutex, MAX, dt_masks_form_t::name, dt_masks_form_t::points, r, dt_masks_node_ellipse_t::radius, dt_masks_node_ellipse_t::rotation, time_overlay, time_overlay_frames, TRUE, dt_masks_form_t::type, dt_masks_form_t::version, and x.
|
static |
Definition at line 555 of file masks_geometry.c.
Referenced by _time_overlay_all(), and main().
|
static |
Definition at line 573 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 111 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 540 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 488 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 473 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 436 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 444 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 463 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 452 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 694 of file masks_geometry.c.
Referenced by _baseline_check(), _outline_density_apply(), and main().
|
static |
Definition at line 600 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 685 of file masks_geometry.c.
Referenced by _baseline_check(), and main().
|
static |
Definition at line 714 of file masks_geometry.c.
Referenced by _baseline_check(), and main().
|
static |
Definition at line 711 of file masks_geometry.c.
Referenced by _baseline_check(), and main().
|
static |
Definition at line 66 of file masks_geometry.c.
Referenced by _check_hidpi_placement(), _judge_raster(), _run_brush_nodes_at(), _run_case_at(), _run_polygon_form_at(), _time_overlay_form(), and main().
|
static |
Definition at line 712 of file masks_geometry.c.
Referenced by main().
|
static |
Definition at line 713 of file masks_geometry.c.
Referenced by main().