Release Notes¶
MicroEJ Architecture Compatibility Version¶
The current UI Pack version is 13.4.1. The following tables describe the compatibility ranges between MicroEJ UI Packs and MicroEJ Architectures.
Standard Versions¶
UI Pack Range | Architecture Range | Comment |
---|---|---|
[13.0.0-13.4.1] | [7.13.0-8.0.0[ | SNI 1.3 |
[12.0.0-12.1.5] | [7.11.0-8.0.0[ | Move Front Panel in MicroEJ Architecture |
[11.0.0-11.2.0] | [7.0.0-8.0.0[ | SNI Callback feature |
[9.3.1-10.0.2] | [6.13.0-7.0.0[ | LLEXT link error with Architecture 6.13+ and UI 9+ |
[9.2.0-9.3.0] | [6.12.0-6.13.0[ | SOAR can exclude some resources |
[9.1.0-9.1.2] | [6.8.0-6.12.0[ | Internal scripts |
[8.0.0-9.0.2] | [6.4.0-6.12.0[ | Manage external memories like byte addressable memories |
[6.0.0-7.4.7] | [6.1.0-6.12.0[ |
Maintenance Versions¶
UI Pack Version | UI Pack Base Version | Architecture Range | Comment |
---|---|---|---|
(maint) 8.0.0 | 7.4.7 | [7.0.0-8.0.0[ | SNI Callback feature |
Foundation Libraries¶
The following table describes Foundation Libraries API versions implemented in MicroEJ UI Packs.
UI Pack Range | MicroUI | Drawing |
---|---|---|
[13.2.0-13.4.1] | 3.1.1 | 1.0.4 |
13.1.0 | 3.1.0 | 1.0.3 |
[13.0.4-13.0.7] | 3.0.3 | 1.0.2 |
13.0.3 | 3.0.2 | 1.0.1 |
[13.0.1-13.0.2] | 3.0.1 | 1.0.0 |
13.0.0 | 3.0.0 | 1.0.0 |
[12.1.0-12.1.5] | 2.4.0 | |
[11.1.0-11.2.0] | 2.3.0 | |
[9.2.0-11.0.1] | 2.2.0 | |
[9.1.1-9.1.2] | 2.1.3 | |
9.1.0 | 2.1.2 | |
[9.0.0-9.0.2] | 2.0.6 | |
[6.0.0-8.1.0] | 2.0.0 |
Abstraction Layer Interface¶
The following sections briefly describes Abstraction Layer interface changes. For more details, refer to the Migration Guide.
Display¶
UI Pack Range | Changes |
---|---|
[13.0.0-13.4.1] | UI3 format: implement
|
[10.0.0-12.1.5] | Remove:
|
[8.0.0-9.4.1] | Merge in
|
[6.0.0-7.4.7] | UI2 format: implement one of header file:
|
Input¶
UI Pack Range | Changes |
---|---|
[13.0.0-13.4.1] | UI3 format: implement
|
[6.0.0-12.1.5] | UI2 format: implement
|
LED¶
UI Pack Range | Changes |
---|---|
[13.0.0-13.4.1] | UI3 format: implement
|
[6.0.0-12.1.5] | UI2 format: implement
|
Front Panel API¶
Since MicroEJ UI Pack 13.0.0
, the Front Panel project must depend on module com.microej.pack.ui.ui-pack(frontpanel).
The module version is the MicroEJ Generic UI Pack version, that is always aligned with the MicroEJ UI Packs specific for MCUs.
UI Pack Range | Module | Version |
---|---|---|
[13.0.0-13.4.1] | com.microej.pack.ui.ui-pack(frontpanel) | 13.4.1 |
[12.0.0-12.1.5] | ej.tool.frontpanel.widget-microui |
1.0.0 |
Note
Before MicroEJ UI Pack 12.0.0
, the Front Panel project must depend on classpath variable FRONTPANEL_WIDGETS_HOME
.
Image Generator API¶
Since MicroEJ UI Pack 13.0.0
, the Image Generator extension project must depend on module com.microej.pack.ui.ui-pack(imagegenerator).
The module version is the MicroEJ Generic UI Pack version, that is always aligned with the MicroEJ UI Packs specific for MCUs.
UI Pack Range | Module | Version |
---|---|---|
[13.0.0-13.4.1] | com.microej.pack.ui.ui-pack(imagegenerator) | 13.4.1 |
Note
Before MicroEJ UI Pack 13.0.0
, the Image Generator extension project must depend on classpath variable IMAGE-GENERATOR-x.x
.
C Modules¶
MicroUI C Module¶
The MicroUI C module com.microej.clibrary.llimpl(microui) is available on MicroEJ Central Repository. This C module is mandatory and provides default implementations for:
LLUI_PAINTER_impl.h
andLLDW_PAINTER_impl.h
: see Low Level API,- Images heap allocator: see Memory,
LLUI_INPUT_IMPL_log_queue_xxx()
: see Event Buffer.
The following table describes the compatibility versions between the C modules and the MicroEJ UI Packs:
C Module Range | UI Pack Range |
---|---|
[2.0.0-2.0.1] | [13.3.0-13.4.1] |
[1.1.0-1.1.1] | [13.1.0-13.2.0] |
[1.0.0-1.0.3] | [13.0.0-13.1.0] |
Extended C Modules¶
Some C modules extend the main MicroUI C module. They override the default implementation to use a GPU to perform some drawings. Contrary to the main MicroUI C module, they are optional: when they are not available, the default implementation of drawings is used. The default implementations use the Graphics Engine software algorithms.
STM32 Chrom-ART
The DMA2D C module com.microej.clibrary.llimpl(display-dma2d) targets the STM32 CPU that provides the Chrom-ART accelerator.
The following table describes the accelerated features:
Feature | Comment |
---|---|
Fill rectangle | |
Draw image | ARGB8888, RGB888, RGB565, ARGB1555, ARGB4444, A8, A4 |
Flush (copy) | Copy of data from back buffer to frame buffer |
The following table describes the version compatibility between the C module and the MicroEJ UI Packs:
C Module Range | UI Pack Range |
---|---|
[3.0.0-3.0.2] | [13.3.0-13.4.1] |
[2.0.0-2.1.0] | [13.1.0-13.2.0] |
[1.0.6-1.0.8] | [13.0.0-13.0.7] |
Vivante VG-Lite
The VG-Lite C module com.microej.clibrary.llimpl(microui-vglite) targets the NXP CPU that provides the Vivante VG-Lite accelerator.
This C module provides some drawing algorithms that are disabled by default.
- The rendering time of a simple shape with the GPU (time in the VG-Lite library + GPU setup time + rendering time) is longer than with software rendering. To enable the hardware rendering for simple shapes, uncomment the definition of
VGLITE_USE_GPU_FOR_SIMPLE_DRAWINGS
indisplay_configuration.h
. - The rendering time of an RGB565 image into an RGB565 buffer without applying an opacity (alpha == 0xff) is longer than with software rendering (as this kind of drawing consists in performing a mere memory copy). To enable the hardware rendering for RGB565 images, uncomment the definition of
VGLITE_USE_GPU_FOR_RGB565_IMAGES
indisplay_configuration.h
. - ARGB8888, ARGB1555 and ARGB4444 transparent images are not compatible with some revisions of the VG-Lite GPU. Older GPU revisions do not render correctly transparent images because the pre-multiplication of the pixel opacity is not propagated to the pixel color components. To enable the hardware rendering for transparent images, uncomment the definition of
VGLITE_USE_GPU_FOR_TRANSPARENT_IMAGES
indisplay_configuration.h
. Note that this limitation does not concern the A8 and A4 formats.
The following table describes the accelerated features:
Feature | Comment |
---|---|
Draw line | Disabled by default (see above) |
Fill rectangle | Disabled by default (see above) |
Draw rounded rectangle | Disabled by default (see above) |
Fill rounded rectangle | |
Draw circle arc | Disabled by default (see above) |
Fill circle arc | |
Draw ellipse arc | Disabled by default (see above) |
Fill ellipse arc | |
Draw ellipse arc | Disabled by default (see above) |
Fill ellipse arc | |
Draw circle | Disabled by default (see above) |
Fill circle | |
Draw image | RGB565, A8, A4 + ARGB8888, ARGB1555, ARGB4444 (see above) |
Draw thick faded point | Only with fade <= 1 |
Draw thick faded line | Only with fade <= 1 |
Draw thick faded circle | Only with fade <= 1 |
Draw thick faded circle arc | Only with fade <= 1 |
Draw thick faded ellipse | Only with fade <= 1 |
Draw thick line | |
Draw thick circle | |
Draw thick circle arc | |
Draw thick ellipse | |
Draw flipped image | See draw image |
Draw rotated image | See draw image |
Draw scaled image | See draw image |
The following table describes the version compatibility between the C module and the MicroEJ UI Packs:
C Module Range | UI Pack Range |
---|---|
[3.0.0-5.0.1] | [13.3.0-13.4.1] |
[1.0.0-2.0.0] | [13.1.0-13.2.0] |
The following table describes the version compatibility between the C module and the VG-Lite libraries (officially supported):
C Module Range | VG-Lite Libraries Range |
---|---|
[4.0.0-5.0.1] | 3.0.15_rev4 |
[2.0.0-3.0.0] | 3.0.11_rev3 |
1.0.0 | 3.0.4_rev2 and 3.0.4_rev4 |