linebender / linebender/tiny-skia
`Rect::round_out` is either incorrect or documented wrong
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 1.6k
- Forks
- 99
- Avg merge
- 2h 52m
- Merged PRs (30d)
- 1
Description
The documentation claims that this function:
Converts into an IntRect rounding outwards.
However, the following code prints Some(IntRect { x: 1, y: 1, width: 2, height: 2 }) which is rounding the right and bottom edges inwards:
let r = Rect::from_ltrb(1.8, 1.8, 3.1, 3.1).unwrap();
println!("{:?}", r.round_out());
src/scan/path_aa.rs uses the "correct" implementation and calls out that Rect::round_out returns the wrong result.
I would suggest that the current implementation is useless, and replace it with the one from path_aa.rs that actually rounds out.
Contributor guide
No contributing guide indexed for this repository
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
Start by reproducing the example and reading Rect::round_out alongside the alternative implementation in src/scan/path_aa.rs. Determine whether the implementation or its documentation is wrong, then align the behavior and documentation so rounding extends all four edges outward and the example produces the expected result.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- computer-graphics
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100