![]() |
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 "win/main_wrapper.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 32 /* per channel, of 255 */ |
| #define | MASKS_BASELINE_MAX_SHARE 0.0004 /* 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 68 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 67 of file masks_geometry.c.
| #define MASKS_BASELINE_MAX_DELTA 32 /* per channel, of 255 */ |
Definition at line 651 of file masks_geometry.c.
| #define MASKS_BASELINE_MAX_SHARE 0.0004 /* share of pixels allowed to differ at all */ |
Definition at line 652 of file masks_geometry.c.
| #define MASKS_BASELINE_NOISE_PX 64 |
Definition at line 664 of file masks_geometry.c.
| #define OVERLAY_SCREEN_H 1440 |
Definition at line 1356 of file masks_geometry.c.
| #define OVERLAY_SCREEN_W 2560 |
Definition at line 1355 of file masks_geometry.c.
| #define PATH_SAMPLES_PER_SEGMENT 2001 |
Definition at line 1019 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 159 of file masks_geometry.c.
| enum _runs_mode_t |
| Enumerator | |
|---|---|
| RUNS_MISSING | |
| RUNS_EXCESS | |
Definition at line 265 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 736 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 184 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 130 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 857 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 74 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 1691 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 317 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 278 of file masks_geometry.c.
Referenced by _coverage_runs().
|
static |
Definition at line 1746 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 949 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 371 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 891 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 716 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 1380 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 1410 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 1423 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 1480 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 1369 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 1360 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 1656 of file masks_geometry.c.
References FALSE, MAX, MIN, p, TRUE, and x.
Referenced by _check_hidpi_placement().
|
static |
Definition at line 1023 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 1119 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 1089 of file masks_geometry.c.
References _row_table_put(), i, MAX, MIN, and t.
Referenced by _path_interior().
|
static |
Definition at line 1179 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 103 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 88 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 1072 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 1280 of file masks_geometry.c.
References _run_brush_case_at(), IMG_H, IMG_W, and name.
Referenced by main().
|
static |
Definition at line 1274 of file masks_geometry.c.
References _brush_from_table11(), and _run_brush_nodes_at().
Referenced by main().
|
static |
Definition at line 1268 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 1235 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 1335 of file masks_geometry.c.
References _run_case_at(), IMG_H, IMG_W, and name.
Referenced by main().
|
static |
Definition at line 1287 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 1211 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 591 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 163 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 670 of file masks_geometry.c.
Referenced by _baseline_check().
|
static |
Definition at line 1507 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 1846 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 1730 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 1572 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 1765 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 824 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 1901 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 559 of file masks_geometry.c.
Referenced by _time_overlay_all(), and main().
|
static |
Definition at line 577 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 115 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 544 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 492 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 477 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 440 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 448 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 467 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 456 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 712 of file masks_geometry.c.
Referenced by _baseline_check(), _outline_density_apply(), and main().
|
static |
Definition at line 604 of file masks_geometry.c.
Referenced by _time_overlay_all(), _time_overlay_group(), and main().
|
static |
Definition at line 703 of file masks_geometry.c.
Referenced by _baseline_check(), and main().
|
static |
Definition at line 732 of file masks_geometry.c.
Referenced by _baseline_check(), and main().
|
static |
Definition at line 729 of file masks_geometry.c.
Referenced by _baseline_check(), and main().
|
static |
Definition at line 70 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 730 of file masks_geometry.c.
Referenced by main().
|
static |
Definition at line 731 of file masks_geometry.c.
Referenced by main().