darktable-org / darktable-org/darktable
scopes (histogram, waveform, rgb parade, vectorscope) improvements -- catch-all
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 13.1k
- Forks
- 1.4k
- Avg merge
- 22h 14m
- Merged PRs (30d)
- 198
Description
There's been a chat/thought about improving the scopes (histogram, waveform, rgb parade, vectorscope). So ideas do not get lost, here's a list, cross-referenced to other issues if possible. There is no guarantee that anything on this list is necessarily a good idea, much less will actually make its way into darktable.
Code internals
- Refactor/modularize scopes module, in progress, see #20367 and #20449
- make sure GTK4 ready and no changes break a GTK4 transition, #20465
GUI/Design
Features
- Add split mode which shows two scopes side by side (#20338)
- Split mode with waveform and vectorscope (#20349)
- Split mode with RGB parade and vectorscope side by side
- Flexible split mode which can allow arbitrary side-by-side scopes. UI could be to choose a mode by clicking its button, then control-clicking on the second mode to bring it up side-by-side in split mode.
- Improve "restrict scope to selection" colorpicker option for histogram and waveform with point sample: show full image scope (dimmed slightly), with the picked point emphasized on it, as with vectorscope
- Allow for moving scopes to a second monitor
- Implement scope modes (histogram, waveform, vectorscope) as a notebook/stack-style interface (while still not eating up vertical space with tabs)
- Update the utility modules UI (libs/lib.h) to allow side-by-side and/or notebook-style (overlayed) placement of modules, move each scope to a separate module, and rely on the utility modules UI to support side-by-side modules and mode switching
- Multi-scope tiling (horizontal and vertical) interface, either internal to scope module or for all utility modules
- Make vectorscope scalable or autoscale -- and this could mean zooming in/out or adjusting the logarithm base
Tweaks
- Move the RYB color harmony chooser to the right side of the scope, with other per-mode options (#20500)
- Split mode improvements
- Move the option buttons for each scope to the top right of that scope, rather than to the top right of the whole utility module (#20672)
- Make the divider between the two scopes draggable, rather than fixed at 50%
- Make the vectorscope always square in split mode, and the waveform take up the remainder of the space
- Add a bit of space between the two scopes, ideally via CSS
- Dragging scopes to change exposure can be laggy on slow systems. To give immediate feedback, dim the scope when it is out of date and move the highlight representing exposure or black point.
- Merge RGB parade into waveform scope, it becomes an option of waveform
- Use comboboxes instead of 3-way buttons (e.g. for switching between vectorscope options *u*v, azbz, and RYB)
- Make the on/off state of checkbox-style buttons (e.g. RGB channels) noticeable in the button
- Consider making the linear/logarithmic scale 2-way buttons be checkbox-style (logarithmic on/off, when off it is linear)
- Move the RYB color harmony chooser into a combobox instead of a bespoke scrolling set of buttons
- Pack the RGB channel buttons vertically, not horizontally, to save space
Scopes
New Scopes
- CIE scope
- 3D scope, show in 3-axis colorspace
Scope Options
- luminance-only waveform (#20704)
- add more colorspaces (which?) to the vectorscope
- raw histogram (and/or waveform?)
- just as dragging waveform/histogram changes exposure, dragging vectorscope changes hue/chroma
Happy for thoughts regarding more to add to this list (or refine/cull).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Review the unchecked items and linked issues #20338, #20349, #20367, #20449, #20465, #20704, and others to identify one independently scoped improvement. Read libs/lib.h for the utility-module UI context; done should be defined by narrowing this catch-all into a specific change with clear acceptance criteria.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- design, desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100