#[inline]
pub fn round_half_toward_zero(value: f32) -> f32 {
(value.abs() - 0.5).ceil().copysign(value)
}
#[inline]
pub fn round_half_toward_zero_f64(value: f64) -> f64 {
(value.abs() - 0.5).ceil().copysign(value)
}
#[inline]
pub fn round_to_device_pixel(logical: f32, scale_factor: f32) -> f32 {
round_half_toward_zero(logical * scale_factor)
}
#[inline]
pub fn round_stroke_to_device_pixel(logical: f32, scale_factor: f32) -> f32 {
if logical == 0.0 {
0.0
} else {
round_to_device_pixel(logical.max(0.0), scale_factor).max(1.0)
}
}
#[inline]
pub fn floor_to_device_pixel(logical: f32, scale_factor: f32) -> f32 {
(logical * scale_factor).floor()
}
#[inline]
pub fn ceil_to_device_pixel(logical: f32, scale_factor: f32) -> f32 {
(logical * scale_factor).ceil()
}