Adds high-precision compositing in overlay module#21345
Open
masterpiga wants to merge 1 commit into
Open
Conversation
Collaborator
Author
|
@TurboGit I have a couple more PRs ready, all about masks (as discussed on Pxls). Should I wait to send them out or do you prefer if I wait for the release? TIA! |
Member
|
You can create the PR now. I'll tag them for 5.8 and review will start when I have time. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The
overlaymodule previously composited its overlay through an 8-bit Cairo path. The overlay image was rendered to a linear 8-bit buffer before blending, which posterized smooth gradients (visible banding in skies andsoft shadows); the in-module hint to "move after the output color profile" was only a workaround.
What changed
dt_dev_image()gained awant_floatargument; when set,gamma(which stays the terminal module) passes the 4-channel float straight through instead of packing 8-bit ARGB. A new two-stage float resampler (anti-aliased Lanczos minification + per-pixel bicubic placement) replaces Cairo for scaling/rotation. CPU and OpenCL paths included.compositingalgorithm selector at the top of the module:legacy_params()migrates every existing edit to legacy 8bit, so nothing changes appearance on upgrade. Only newly added overlays default to high-precision.8 bit (left) vs high-precision (right)
Notes
Co-authored with Claude.