mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-07-06 06:42:33 +00:00
fix(core): ensure circles with radius zero are not rendered
[no changelog]
This commit is contained in:
parent
67fe334dc2
commit
3a8595b43a
@ -375,6 +375,10 @@ pub trait Canvas: BasicCanvas {
|
|||||||
// Draws circle with the specified center and the radius.
|
// Draws circle with the specified center and the radius.
|
||||||
#[cfg(not(feature = "ui_antialiasing"))]
|
#[cfg(not(feature = "ui_antialiasing"))]
|
||||||
fn draw_circle(&mut self, center: Point, radius: i16, color: Color, alpha: u8) {
|
fn draw_circle(&mut self, center: Point, radius: i16, color: Color, alpha: u8) {
|
||||||
|
if radius == 0 {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let split = unwrap!(circle_points(radius).last()).v;
|
let split = unwrap!(circle_points(radius).last()).v;
|
||||||
|
|
||||||
let r = Rect::new(
|
let r = Rect::new(
|
||||||
@ -437,6 +441,10 @@ pub trait Canvas: BasicCanvas {
|
|||||||
/// Draws filled circle with the specified center and the radius.
|
/// Draws filled circle with the specified center and the radius.
|
||||||
#[cfg(not(feature = "ui_antialiasing"))]
|
#[cfg(not(feature = "ui_antialiasing"))]
|
||||||
fn fill_circle(&mut self, center: Point, radius: i16, color: Color, alpha: u8) {
|
fn fill_circle(&mut self, center: Point, radius: i16, color: Color, alpha: u8) {
|
||||||
|
if radius == 0 {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let split = unwrap!(circle_points(radius).last()).v;
|
let split = unwrap!(circle_points(radius).last()).v;
|
||||||
|
|
||||||
let r = Rect::new(
|
let r = Rect::new(
|
||||||
@ -500,6 +508,10 @@ pub trait Canvas: BasicCanvas {
|
|||||||
/// radius.
|
/// radius.
|
||||||
#[cfg(feature = "ui_antialiasing")]
|
#[cfg(feature = "ui_antialiasing")]
|
||||||
fn fill_circle(&mut self, center: Point, radius: i16, color: Color, alpha: u8) {
|
fn fill_circle(&mut self, center: Point, radius: i16, color: Color, alpha: u8) {
|
||||||
|
if radius == 0 {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let split = unwrap!(circle_points(radius).last()).v;
|
let split = unwrap!(circle_points(radius).last()).v;
|
||||||
|
|
||||||
let alpha_mul = |a: u8| -> u8 { ((a as u16 * alpha as u16) / 255) as u8 };
|
let alpha_mul = |a: u8| -> u8 { ((a as u16 * alpha as u16) / 255) as u8 };
|
||||||
@ -590,6 +602,10 @@ pub trait Canvas: BasicCanvas {
|
|||||||
mut end: f32,
|
mut end: f32,
|
||||||
color: Color,
|
color: Color,
|
||||||
) {
|
) {
|
||||||
|
if radius == 0 {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
start = (360.0 + start % 360.0) % 360.0;
|
start = (360.0 + start % 360.0) % 360.0;
|
||||||
end = (360.0 + end % 360.0) % 360.0;
|
end = (360.0 + end % 360.0) % 360.0;
|
||||||
|
|
||||||
@ -715,6 +731,10 @@ fn fill_octant(
|
|||||||
mut u2: i16,
|
mut u2: i16,
|
||||||
fill: &mut impl FnMut(Option<Point>, u8, Point, u8),
|
fill: &mut impl FnMut(Option<Point>, u8, Point, u8),
|
||||||
) {
|
) {
|
||||||
|
if radius == 0 {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Starting end ending points on
|
// Starting end ending points on
|
||||||
if u1 > u2 {
|
if u1 > u2 {
|
||||||
(u1, u2) = (u2, u1);
|
(u1, u2) = (u2, u1);
|
||||||
|
Loading…
Reference in New Issue
Block a user