An oxivgl 0.6.0 release: the dependency moves 0.4.0 → 0.6.0 (breaking for
crates that pinned oxivgl 0.4.x, hence the minor bump — oxiforge's own API and
generated code are unchanged), and the bundled examples now run their LVGL
heaps in PSRAM on both M5Stack Fire (ESP32) and CoreS3 (ESP32-S3).
Changed
- oxivgl dependency bumped 0.4.0 → 0.6.0. Generated code is unchanged
across both steps — 0.5.0 (POINTER touchscreen indev, keypad hold-to-repeat)
and 0.6.0 (ESP32-S3/CoreS3 support, theoxivgl::memPSRAM pool, LVGL's
built-in TLSF allocator, a panickingLV_ASSERT_HANDLER) are additive or
runtime-only, and the sole widget-API deprecation (Label::text_long) is one
oxiforge never emitted. The bump is carried so consuming crates resolve a
single oxivgl version across the build-dep (oxiforge) and runtime-dep. - Font references now require the face to be enabled in the app's
lv_conf.h. oxivgl 0.5.0 gates each built-inFontconst to the faces the
LVGL build exposes, so atext_font:naming a disabled face is now acannot find value …error against the generated code (documented in the YAML spec).
Apps may drop unused Montserrat faces to save flash.
Examples
- All three examples now put LVGL's heap in PSRAM and build for both boards.
The example crates were ported to the oxivgl 0.6.0 harness: afire27/
cores3board feature selects M5Stack Fire (ESP32) or CoreS3 (ESP32-S3), the
m5stack-coreBSP handles bring-up, andexample_main_psram!(nav examples
use the underlyingboard_body!(…, nav, …)) hands a 512 KiB PSRAM region to
oxivgl::mem::reserve_poolso the generated widget tree allocates from
external RAM. The sharedlv_conf.hswitched toLV_STDLIB_BUILTINwith
LV_MEM_POOL_EXPAND_SIZEsized for the pool. The three crates share one
examples/cargo workspace carrying the esp-hal[patch.crates-io]fork
(examples/HIL only —cargo publishstrips it, so the published library
still resolves stock crates.io esp-hal). Host (SDL2) builds are unchanged and
run on LVGL's internal pool. - Example
LV_ASSERT_HANDLERnow panics instead ofwhile(1);(#38). The
sharedexamples/conf/lv_conf.hroutes LVGL assertions (a failed
lv_malloc, a NULL object) through oxivgl 0.6.0'soxivgl_lv_assert_handler
→ the platform panic path (esp-backtrace on target, a failing test on host),
ending the silent-spin freeze class instead of hanging with no message.