Skip to content

v0.2.4 - Parity version

Latest

Choose a tag to compare

@iraabbott iraabbott released this 18 Jun 01:10
5187ce0

v0.2.4 - Parity version

Highlights

  • Substrate (Waves 0–1, LPAR-02…LPAR-10): object/event/focus/input,
    invalidation, scroll, tick-driven timers + object animations, the
    LPAR-07 style/theme cascade, the LPAR-08 text/draw/image/mask layer
    (shaped-text glyph coverage, image
    blit + transforms, rounded/arc masks, gradients/shadows, dirty-rect
    adapter), the LPAR-09 asset/filesystem source runtime, and the LPAR-10
    flex+grid layout substrate.
  • Widget families (LPAR-11…LPAR-15): primitive (bar, led, line, arc,
    spinner, scale), control, selection/navigation, data/rich-content, and
    canvas/media/property/observer waves.
  • LPAR-16 conformance: deterministic-runtime, geometry, and widget
    pixel-golden fixtures, plus release alignment and an initiative
    retrospective.

Font selection & anti-aliased text (FONT-00…FONT-05)

  • core::font::WidgetFont + a uniform set_font(&'static dyn FontMetrics)
    on every text widget (additive — no constructor or Widget-trait
    signature changed).
  • AA-by-font-choice through the shaped-text pipeline;
    Renderer::draw_glyph helper; ArcLabel migrated to real glyph coverage;
    rotated-renderer glyph throughput; and FontRegistry +
    Widget::widget_font_mut + apply_font_registry bridging
    the style cascade to per-widget fonts.

Editable text, gestures, clipping, animation

  • WID-01 editable Input/Textarea with caret + key routing; INPUT-01
    DragRecognizer (click-vs-drag); REND-01 ClipRenderer + ScrollView with
    edge-crop goldens; ANIM-01 core::anim tick-driven tweens.

Chakra-style UI layer (rlvgl-ui)

  • New composition primitives and components (bar, button_matrix,
    checkbox/radio, list, progress, select, switch, tabs, led, spinner,
    divider, spacer, layout stacks/grid, theme tokens) wrapping the base
    widgets.

Image tooling — rlvgl-creator (new this cycle)

  • compress gains --emit bin|c|rust to embed the RLEC blob as a C/Rust
    array.
  • lvgl (new): converts images to LVGL v9 .bin — color
    (rgb565/rgb888/argb8888/xrgb8888) and alpha-coverage (a8/a4,
    Floyd–Steinberg dithered) formats, with --coverage auto|alpha|luminance,
    optional LVGL-RLE, and --emit c|rust
    (lv_image_dsc_t / pixel-map). A matching rlvgl coverage+tint draw path
    (rlvgl_decomp::lvgl::blend_alpha_bin_into_argb) renders the same alpha
    asset in-engine.

Platform: audio & ESP32-P4

  • AUDIO-01d: fixes WM8994 AIF1ADC serializer corruption (coherent MCLK1
    sourcing + arm-before-frame-clock via LRCLK_DIR deferral); 10/10 clean
    resets.
  • BEETLE-03…07: DFR0550 bring-up on ESP32-P4 — bit-bang I2C bridge wake,
    DSI DPHY calibration/PLL-lock, rlvgl-over-IDF hybrid, FT5x06 touch,
    backlight PWM, and running the shared disco-demo payload. Plus a
    pointer-platform backlight
    slider panel.

Versions

  • Workspace crates aligned to 0.2.4 (rlvgl-core, -platform, -widgets,
    -fs-sim, -app-demo, -app-disco-demo).
  • rlvgl-ui → 0.2.5 (UI bugfixes), rlvgl-decomp → 0.2.3 (additive lvgl
    module), rlvgl-chips-microchip 0.2.2.

Release engineering / fixes

  • Broke the rlvgl-core ↔ rlvgl-widgets dev-dependency cycle so cargo
    package (Gate P) succeeds; fixed KeySpec::Backspace non-exhaustive match
    in the creator-UI automation; UI font-registry bridge / themed-tabs /
    Grid panic-guard fixes;
    clippy/fmt cleanups.

Validation

  • Pre-publish phases green: fmt --check, clippy --workspace -D warnings,
    workspace tests, playit no_std cross-check, simulator/creator tests,
    chipdb BSP render/CLI/compile-verify, ARM-Linux consumer checks,
    embedded make build-disco.
  • CRATES-CI Gate P (cargo package in publish order) clears the two
    cycle/feature-gated breakers fixed above.

Known issues / deferred

  • LPAR-09 FATFS-over-SimBlockDevice (coupled to unimplemented
    FatfsAssetSource); optional media widgets (Lottie/DashLottie/Texture3d)
    outside the pixel-golden set; rustdoc still reports broken intra-doc
    links (not yet
    warnings-as-errors). LVGL RGB565A8 (compact alpha) not yet implemented —
    argb8888/a8/a4 cover the alpha cases today.