mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-02 06:41:14 +00:00
Janitor: Replace float comparison dance with approx_eq from euclid
Sixtyfps uses euclid already, so let's use euclid for float comparisons as well. I changed the code to decide whether a number is a positive integer to make do without a comparison along the way.
This commit is contained in:
parent
e45635656d
commit
02bdcbf6ff
6 changed files with 11 additions and 11 deletions
|
@ -20,6 +20,7 @@ use std::cell::RefCell;
|
|||
use std::pin::Pin;
|
||||
use std::rc::Rc;
|
||||
|
||||
use euclid::approxeq::ApproxEq;
|
||||
use sixtyfps_corelib::graphics::{
|
||||
Brush, Color, FontRequest, Image, IntRect, Point, Rect, RenderingCache, Size,
|
||||
};
|
||||
|
@ -457,9 +458,7 @@ fn rect_with_radius_to_path(rect: Rect, border_radius: f32) -> femtovg::Path {
|
|||
// If we're drawing a circle, use directly connected bezier curves instead of
|
||||
// ones with intermediate LineTo verbs, as `rounded_rect` creates, to avoid
|
||||
// rendering artifacts due to those edges.
|
||||
if (width - height).abs() < 10.0 * f32::EPSILON
|
||||
&& (border_radius * 2. - width).abs() < 10.0 * f32::EPSILON
|
||||
{
|
||||
if width.approx_eq(&height) && (border_radius * 2.).approx_eq(&width) {
|
||||
path.circle(x + border_radius, y + border_radius, border_radius);
|
||||
} else {
|
||||
path.rounded_rect(x, y, width, height, border_radius);
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
LICENSE END */
|
||||
|
||||
use cpp::*;
|
||||
use euclid::approxeq::ApproxEq;
|
||||
use items::{ImageFit, TextHorizontalAlignment, TextVerticalAlignment};
|
||||
use sixtyfps_corelib::graphics::{Brush, FontRequest, Image, Point, Rect, RenderingCache, Size};
|
||||
use sixtyfps_corelib::input::{InternalKeyCode, KeyEvent, KeyEventType, MouseEvent};
|
||||
|
@ -889,8 +890,8 @@ impl QtItemRenderer<'_> {
|
|||
rect.is_valid()
|
||||
&& (rect.x != 0.
|
||||
|| rect.y != 0.
|
||||
|| (rect.width - target_width).abs() > 100. * f64::EPSILON
|
||||
|| (rect.height - target_height).abs() > 100. * f64::EPSILON)
|
||||
|| rect.width.approx_eq(&target_width)
|
||||
|| rect.height.approx_eq(&target_height))
|
||||
});
|
||||
let source_size = if !has_source_clipping {
|
||||
Some(qttypes::QSize { width: target_width as u32, height: target_height as u32 })
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue