egui/crates/egui_kittest/src
Nicolas 77df407f50
`egui_kittest`: add `failed_pixel_count_threshold` (#7092)
I thought about this - so we have two options here:
1. adding it to `SnapshotOptions` 
2. adding it to every function which I do not like as this would be a
huge breaking change

## Summary

This pull request introduces a new feature to the `SnapshotOptions`
struct in the `egui_kittest` crate, allowing users to specify a
permissible percentage of pixel differences (`diff_percentage`) before a
snapshot comparison is considered a failure. This feature provides more
flexibility in handling minor visual discrepancies during snapshot
testing.

### Additions to `SnapshotOptions`:

* Added a new field `diff_percentage` of type `Option<f64>` to the
`SnapshotOptions` struct. This field allows users to define a tolerance
for pixel differences, with a default value of `None` (interpreted as 0%
tolerance).
* Updated the `Default` implementation of `SnapshotOptions` to
initialize `diff_percentage` to `None`.

### Integration into snapshot comparison logic:

* Updated the `try_image_snapshot_options` function to handle the new
`diff_percentage` field. If a `diff_percentage` is specified, the
function calculates the percentage of differing pixels and allows the
snapshot to pass if the difference is within the specified tolerance.
[[1]](diffhunk://#diff-6f481b5866b82a4fe126b7df2e6c9669040c79d1d200d76b87f376de5dec5065R204)
[[2]](diffhunk://#diff-6f481b5866b82a4fe126b7df2e6c9669040c79d1d200d76b87f376de5dec5065R294-R301)

* Closes <https://github.com/emilk/egui/issues/5683>
* [x] I have followed the instructions in the PR template

---------

Co-authored-by: lucasmerlin <hi@lucasmerlin.me>
Co-authored-by: Emil Ernerfeldt <emil.ernerfeldt@gmail.com>
2025-07-03 14:23:15 +02:00
..
app_kind.rs Fix some clippy issues found by 1.84.0 (#5603) 2025-01-13 08:29:13 +01:00
builder.rs `egui_kittest`: Add `HarnessBuilder::theme` (#7289) 2025-07-02 12:00:22 +02:00
lib.rs Add support for scrolling via accesskit / kittest (#7286) 2025-07-03 12:02:05 +02:00
node.rs Add support for scrolling via accesskit / kittest (#7286) 2025-07-03 12:02:05 +02:00
renderer.rs Wgpu resources are no longer wrapped in `Arc` (since they are now `Clone`) (#5612) 2025-01-20 18:06:35 +01:00
snapshot.rs `egui_kittest`: add `failed_pixel_count_threshold` (#7092) 2025-07-03 14:23:15 +02:00
texture_to_image.rs Update to wgpu 25 (#6744) 2025-05-10 13:16:49 +02:00
wgpu.rs Use Rust edition 2024 (#7280) 2025-06-30 14:01:57 +02:00