From 21ad1be4deace138135b90f34d69418d3afae270 Mon Sep 17 00:00:00 2001 From: cepetr Date: Fri, 15 Mar 2024 14:04:44 +0100 Subject: [PATCH] WIP - drawlib - canvas moved to shape --- core/embed/rust/src/ui/display/font.rs | 2 +- core/embed/rust/src/ui/mod.rs | 1 - core/embed/rust/src/ui/{canvas => shape}/algo/blur.rs | 0 core/embed/rust/src/ui/{canvas => shape}/algo/circle.rs | 0 core/embed/rust/src/ui/{canvas => shape}/algo/line.rs | 0 core/embed/rust/src/ui/{canvas => shape}/algo/mod.rs | 0 core/embed/rust/src/ui/{canvas => shape}/algo/trigo.rs | 0 core/embed/rust/src/ui/shape/bar.rs | 4 ++-- core/embed/rust/src/ui/shape/base.rs | 4 ++-- core/embed/rust/src/ui/shape/blur.rs | 4 ++-- core/embed/rust/src/ui/shape/cache/blur_cache.rs | 6 ++---- core/embed/rust/src/ui/shape/cache/jpeg_cache.rs | 2 +- core/embed/rust/src/ui/{ => shape}/canvas/common.rs | 2 +- core/embed/rust/src/ui/{ => shape}/canvas/mod.rs | 1 - core/embed/rust/src/ui/{ => shape}/canvas/mono8.rs | 0 core/embed/rust/src/ui/{ => shape}/canvas/rgb565.rs | 0 core/embed/rust/src/ui/{ => shape}/canvas/rgba8888.rs | 0 core/embed/rust/src/ui/{ => shape}/canvas/viewport.rs | 0 core/embed/rust/src/ui/shape/circle.rs | 3 +-- core/embed/rust/src/ui/shape/jpeg.rs | 7 ++----- core/embed/rust/src/ui/shape/mod.rs | 9 +++++++++ core/embed/rust/src/ui/shape/{ => model}/memory.md | 0 core/embed/rust/src/ui/shape/model/model_tr.rs | 3 +-- core/embed/rust/src/ui/shape/model/model_tt.rs | 3 +-- core/embed/rust/src/ui/shape/qrcode.rs | 5 +++-- core/embed/rust/src/ui/shape/render.rs | 4 ++-- core/embed/rust/src/ui/shape/text.rs | 3 +-- core/embed/rust/src/ui/shape/toif.rs | 3 +-- 28 files changed, 32 insertions(+), 34 deletions(-) rename core/embed/rust/src/ui/{canvas => shape}/algo/blur.rs (100%) rename core/embed/rust/src/ui/{canvas => shape}/algo/circle.rs (100%) rename core/embed/rust/src/ui/{canvas => shape}/algo/line.rs (100%) rename core/embed/rust/src/ui/{canvas => shape}/algo/mod.rs (100%) rename core/embed/rust/src/ui/{canvas => shape}/algo/trigo.rs (100%) rename core/embed/rust/src/ui/{ => shape}/canvas/common.rs (99%) rename core/embed/rust/src/ui/{ => shape}/canvas/mod.rs (95%) rename core/embed/rust/src/ui/{ => shape}/canvas/mono8.rs (100%) rename core/embed/rust/src/ui/{ => shape}/canvas/rgb565.rs (100%) rename core/embed/rust/src/ui/{ => shape}/canvas/rgba8888.rs (100%) rename core/embed/rust/src/ui/{ => shape}/canvas/viewport.rs (100%) rename core/embed/rust/src/ui/shape/{ => model}/memory.md (100%) diff --git a/core/embed/rust/src/ui/display/font.rs b/core/embed/rust/src/ui/display/font.rs index 29f2baebf..6e8819f91 100644 --- a/core/embed/rust/src/ui/display/font.rs +++ b/core/embed/rust/src/ui/display/font.rs @@ -1,9 +1,9 @@ use crate::{ trezorhal::display, ui::{ - canvas::{Bitmap, BitmapFormat}, constant, geometry::{Offset, Point, Rect}, + shape::{Bitmap, BitmapFormat}, }, }; use core::slice; diff --git a/core/embed/rust/src/ui/mod.rs b/core/embed/rust/src/ui/mod.rs index 0a36fd280..8e3808713 100644 --- a/core/embed/rust/src/ui/mod.rs +++ b/core/embed/rust/src/ui/mod.rs @@ -2,7 +2,6 @@ pub mod macros; pub mod animation; -pub mod canvas; pub mod component; pub mod constant; pub mod display; diff --git a/core/embed/rust/src/ui/canvas/algo/blur.rs b/core/embed/rust/src/ui/shape/algo/blur.rs similarity index 100% rename from core/embed/rust/src/ui/canvas/algo/blur.rs rename to core/embed/rust/src/ui/shape/algo/blur.rs diff --git a/core/embed/rust/src/ui/canvas/algo/circle.rs b/core/embed/rust/src/ui/shape/algo/circle.rs similarity index 100% rename from core/embed/rust/src/ui/canvas/algo/circle.rs rename to core/embed/rust/src/ui/shape/algo/circle.rs diff --git a/core/embed/rust/src/ui/canvas/algo/line.rs b/core/embed/rust/src/ui/shape/algo/line.rs similarity index 100% rename from core/embed/rust/src/ui/canvas/algo/line.rs rename to core/embed/rust/src/ui/shape/algo/line.rs diff --git a/core/embed/rust/src/ui/canvas/algo/mod.rs b/core/embed/rust/src/ui/shape/algo/mod.rs similarity index 100% rename from core/embed/rust/src/ui/canvas/algo/mod.rs rename to core/embed/rust/src/ui/shape/algo/mod.rs diff --git a/core/embed/rust/src/ui/canvas/algo/trigo.rs b/core/embed/rust/src/ui/shape/algo/trigo.rs similarity index 100% rename from core/embed/rust/src/ui/canvas/algo/trigo.rs rename to core/embed/rust/src/ui/shape/algo/trigo.rs diff --git a/core/embed/rust/src/ui/shape/bar.rs b/core/embed/rust/src/ui/shape/bar.rs index 0c1df5dcd..b23623cde 100644 --- a/core/embed/rust/src/ui/shape/bar.rs +++ b/core/embed/rust/src/ui/shape/bar.rs @@ -1,6 +1,6 @@ -use crate::ui::{canvas::Canvas, display::Color, geometry::Rect}; +use crate::ui::{display::Color, geometry::Rect}; -use super::{DrawingCache, Renderer, Shape, ShapeClone}; +use super::{Canvas, DrawingCache, Renderer, Shape, ShapeClone}; use without_alloc::alloc::LocalAllocLeakExt; diff --git a/core/embed/rust/src/ui/shape/base.rs b/core/embed/rust/src/ui/shape/base.rs index 301fd1674..59e0a9990 100644 --- a/core/embed/rust/src/ui/shape/base.rs +++ b/core/embed/rust/src/ui/shape/base.rs @@ -1,6 +1,6 @@ -use crate::ui::{canvas::Canvas, geometry::Rect}; +use crate::ui::geometry::Rect; -use super::DrawingCache; +use super::{Canvas, DrawingCache}; use without_alloc::alloc::LocalAllocLeakExt; diff --git a/core/embed/rust/src/ui/shape/blur.rs b/core/embed/rust/src/ui/shape/blur.rs index 5d85b4327..8aca42951 100644 --- a/core/embed/rust/src/ui/shape/blur.rs +++ b/core/embed/rust/src/ui/shape/blur.rs @@ -1,6 +1,6 @@ -use crate::ui::{canvas::Canvas, geometry::Rect}; +use crate::ui::geometry::Rect; -use super::{DrawingCache, Renderer, Shape, ShapeClone}; +use super::{Canvas, DrawingCache, Renderer, Shape, ShapeClone}; use without_alloc::alloc::LocalAllocLeakExt; diff --git a/core/embed/rust/src/ui/shape/cache/blur_cache.rs b/core/embed/rust/src/ui/shape/cache/blur_cache.rs index a4255d65e..2d188f6b2 100644 --- a/core/embed/rust/src/ui/shape/cache/blur_cache.rs +++ b/core/embed/rust/src/ui/shape/cache/blur_cache.rs @@ -1,7 +1,5 @@ -use crate::ui::{ - canvas::algo::{BlurAlgorithm, BlurBuff}, - geometry::Offset, -}; +use super::super::algo::{BlurAlgorithm, BlurBuff}; +use crate::ui::geometry::Offset; use core::cell::UnsafeCell; use without_alloc::alloc::LocalAllocLeakExt; diff --git a/core/embed/rust/src/ui/shape/cache/jpeg_cache.rs b/core/embed/rust/src/ui/shape/cache/jpeg_cache.rs index fc8d11677..7e92dfd5f 100644 --- a/core/embed/rust/src/ui/shape/cache/jpeg_cache.rs +++ b/core/embed/rust/src/ui/shape/cache/jpeg_cache.rs @@ -1,7 +1,7 @@ use crate::ui::{ - canvas::{BasicCanvas, Bitmap, BitmapFormat, BitmapView, Canvas, Rgb565Canvas}, display::tjpgd, geometry::{Offset, Point, Rect}, + shape::{BasicCanvas, Bitmap, BitmapFormat, BitmapView, Canvas, Rgb565Canvas}, }; use core::cell::UnsafeCell; diff --git a/core/embed/rust/src/ui/canvas/common.rs b/core/embed/rust/src/ui/shape/canvas/common.rs similarity index 99% rename from core/embed/rust/src/ui/canvas/common.rs rename to core/embed/rust/src/ui/shape/canvas/common.rs index ace34425f..c6e9f2d57 100644 --- a/core/embed/rust/src/ui/canvas/common.rs +++ b/core/embed/rust/src/ui/shape/canvas/common.rs @@ -8,7 +8,7 @@ use super::{BitmapView, Viewport}; #[cfg(feature = "ui_blurring")] use crate::ui::shape::DrawingCache; -use super::algo::{circle_points, line_points, sin_i16, PI4}; +use super::super::algo::{circle_points, line_points, sin_i16, PI4}; pub trait BasicCanvas { /// Returns dimensions of the canvas in pixels. diff --git a/core/embed/rust/src/ui/canvas/mod.rs b/core/embed/rust/src/ui/shape/canvas/mod.rs similarity index 95% rename from core/embed/rust/src/ui/canvas/mod.rs rename to core/embed/rust/src/ui/shape/canvas/mod.rs index 7207a106a..2d228a063 100644 --- a/core/embed/rust/src/ui/canvas/mod.rs +++ b/core/embed/rust/src/ui/shape/canvas/mod.rs @@ -1,4 +1,3 @@ -pub mod algo; mod common; mod mono8; mod rgb565; diff --git a/core/embed/rust/src/ui/canvas/mono8.rs b/core/embed/rust/src/ui/shape/canvas/mono8.rs similarity index 100% rename from core/embed/rust/src/ui/canvas/mono8.rs rename to core/embed/rust/src/ui/shape/canvas/mono8.rs diff --git a/core/embed/rust/src/ui/canvas/rgb565.rs b/core/embed/rust/src/ui/shape/canvas/rgb565.rs similarity index 100% rename from core/embed/rust/src/ui/canvas/rgb565.rs rename to core/embed/rust/src/ui/shape/canvas/rgb565.rs diff --git a/core/embed/rust/src/ui/canvas/rgba8888.rs b/core/embed/rust/src/ui/shape/canvas/rgba8888.rs similarity index 100% rename from core/embed/rust/src/ui/canvas/rgba8888.rs rename to core/embed/rust/src/ui/shape/canvas/rgba8888.rs diff --git a/core/embed/rust/src/ui/canvas/viewport.rs b/core/embed/rust/src/ui/shape/canvas/viewport.rs similarity index 100% rename from core/embed/rust/src/ui/canvas/viewport.rs rename to core/embed/rust/src/ui/shape/canvas/viewport.rs diff --git a/core/embed/rust/src/ui/shape/circle.rs b/core/embed/rust/src/ui/shape/circle.rs index 669332f22..e390a26ae 100644 --- a/core/embed/rust/src/ui/shape/circle.rs +++ b/core/embed/rust/src/ui/shape/circle.rs @@ -1,10 +1,9 @@ use crate::ui::{ - canvas::Canvas, display::Color, geometry::{Point, Rect}, }; -use super::{DrawingCache, Renderer, Shape, ShapeClone}; +use super::{Canvas, DrawingCache, Renderer, Shape, ShapeClone}; use without_alloc::alloc::LocalAllocLeakExt; diff --git a/core/embed/rust/src/ui/shape/jpeg.rs b/core/embed/rust/src/ui/shape/jpeg.rs index 72a08e3b3..fd9859672 100644 --- a/core/embed/rust/src/ui/shape/jpeg.rs +++ b/core/embed/rust/src/ui/shape/jpeg.rs @@ -1,9 +1,6 @@ -use crate::ui::{ - canvas::{Bitmap, BitmapFormat, BitmapView, Canvas}, - geometry::{Alignment2D, Offset, Point, Rect}, -}; +use crate::ui::geometry::{Alignment2D, Offset, Point, Rect}; -use super::{DrawingCache, Renderer, Shape, ShapeClone}; +use super::{Bitmap, BitmapFormat, BitmapView, Canvas, DrawingCache, Renderer, Shape, ShapeClone}; use without_alloc::alloc::LocalAllocLeakExt; diff --git a/core/embed/rust/src/ui/shape/mod.rs b/core/embed/rust/src/ui/shape/mod.rs index 63f5fe786..877ba6966 100644 --- a/core/embed/rust/src/ui/shape/mod.rs +++ b/core/embed/rust/src/ui/shape/mod.rs @@ -1,8 +1,10 @@ +mod algo; mod bar; mod base; #[cfg(feature = "ui_blurring")] mod blur; mod cache; +mod canvas; mod circle; #[cfg(feature = "ui_jpeg_decoder")] mod jpeg; @@ -25,3 +27,10 @@ pub use qrcode::QrImage; pub use render::{DirectRenderer, ProgressiveRenderer, Renderer}; pub use text::Text; pub use toif::ToifImage; + +pub use canvas::{BasicCanvas, Canvas, Mono8Canvas, Rgb565Canvas, Rgba8888Canvas, Viewport}; + +use crate::trezorhal::bitmap; +pub use bitmap::{Bitmap, BitmapFormat, BitmapView}; + +pub use algo::PI4; diff --git a/core/embed/rust/src/ui/shape/memory.md b/core/embed/rust/src/ui/shape/model/memory.md similarity index 100% rename from core/embed/rust/src/ui/shape/memory.md rename to core/embed/rust/src/ui/shape/model/memory.md diff --git a/core/embed/rust/src/ui/shape/model/model_tr.rs b/core/embed/rust/src/ui/shape/model/model_tr.rs index 8f1e91d6c..3da0bd95d 100644 --- a/core/embed/rust/src/ui/shape/model/model_tr.rs +++ b/core/embed/rust/src/ui/shape/model/model_tr.rs @@ -1,9 +1,8 @@ use crate::ui::{ - canvas::{BasicCanvas, Canvas, Mono8Canvas, Viewport}, display, display::Color, geometry::{Offset, Rect}, - shape::{DirectRenderer, DrawingCache}, + shape::{BasicCanvas, Canvas, DirectRenderer, DrawingCache, Mono8Canvas, Viewport}, }; use static_alloc::Bump; diff --git a/core/embed/rust/src/ui/shape/model/model_tt.rs b/core/embed/rust/src/ui/shape/model/model_tt.rs index c080878cc..4319eff91 100644 --- a/core/embed/rust/src/ui/shape/model/model_tt.rs +++ b/core/embed/rust/src/ui/shape/model/model_tt.rs @@ -1,8 +1,7 @@ use crate::ui::{ - canvas::{BasicCanvas, Viewport}, display::Color, geometry::{Offset, Rect}, - shape::{DrawingCache, ProgressiveRenderer}, + shape::{BasicCanvas, DrawingCache, ProgressiveRenderer, Viewport}, }; use crate::trezorhal::bitmap::{BitmapView, Dma2d}; diff --git a/core/embed/rust/src/ui/shape/qrcode.rs b/core/embed/rust/src/ui/shape/qrcode.rs index 52460ab9f..c9f956eb2 100644 --- a/core/embed/rust/src/ui/shape/qrcode.rs +++ b/core/embed/rust/src/ui/shape/qrcode.rs @@ -1,12 +1,13 @@ use crate::ui::{ - canvas::{algo::line_points, Bitmap, BitmapFormat, Canvas}, display::Color, geometry::{Offset, Rect}, }; use qrcodegen::QrCode; -use super::{DrawingCache, Renderer, Shape, ShapeClone}; +use super::{ + algo::line_points, Bitmap, BitmapFormat, Canvas, DrawingCache, Renderer, Shape, ShapeClone, +}; use without_alloc::alloc::LocalAllocLeakExt; diff --git a/core/embed/rust/src/ui/shape/render.rs b/core/embed/rust/src/ui/shape/render.rs index e7e839275..5b11055ea 100644 --- a/core/embed/rust/src/ui/shape/render.rs +++ b/core/embed/rust/src/ui/shape/render.rs @@ -1,10 +1,10 @@ use crate::ui::{ - canvas::{BasicCanvas, Canvas, Rgb565Canvas, Viewport}, display::Color, geometry::{Offset, Point, Rect}, - shape::{DrawingCache, Shape, ShapeClone}, }; +use super::{BasicCanvas, Canvas, DrawingCache, Rgb565Canvas, Shape, ShapeClone, Viewport}; + use without_alloc::{alloc::LocalAllocLeakExt, FixedVec}; // ========================================================================== diff --git a/core/embed/rust/src/ui/shape/text.rs b/core/embed/rust/src/ui/shape/text.rs index 4f0a0618b..cc83da8b2 100644 --- a/core/embed/rust/src/ui/shape/text.rs +++ b/core/embed/rust/src/ui/shape/text.rs @@ -1,10 +1,9 @@ use crate::ui::{ - canvas::{BitmapView, Canvas}, display::{Color, Font}, geometry::{Alignment, Offset, Point, Rect}, }; -use super::{DrawingCache, Renderer, Shape, ShapeClone}; +use super::{BitmapView, Canvas, DrawingCache, Renderer, Shape, ShapeClone}; use without_alloc::alloc::LocalAllocLeakExt; diff --git a/core/embed/rust/src/ui/shape/toif.rs b/core/embed/rust/src/ui/shape/toif.rs index 15bafdcec..7830e4ece 100644 --- a/core/embed/rust/src/ui/shape/toif.rs +++ b/core/embed/rust/src/ui/shape/toif.rs @@ -1,10 +1,9 @@ use crate::ui::{ - canvas::{Bitmap, BitmapFormat, Canvas}, display::{toif::Toif, Color}, geometry::{Alignment2D, Offset, Point, Rect}, }; -use super::{DrawingCache, Renderer, Shape, ShapeClone}; +use super::{Bitmap, BitmapFormat, Canvas, DrawingCache, Renderer, Shape, ShapeClone}; use without_alloc::alloc::LocalAllocLeakExt;