The simulator displays the U8g2 framebuffer through Qt6. It is the fastest way to visually check App, Widget, and animation changes.
Prerequisites
1 | git submodule update --init --recursive |
You need CMake, a C++20 compiler, and Qt6 Core, Gui, and Widgets. If CMake cannot find Qt, provide its prefix explicitly:
1 | cmake -S . -B build \ |
Run the simulator with:
1 | ./build/simulator/u8g2_emulator |
Regression tests
1 | ctest --test-dir build --output-on-failure |
Current tests cover App arena and ViewManager lifecycle, Chart buffers, inline Animation storage, the Popup pool, PopupValueDigits, FocusManager migration, and the Widget tree.
AddressSanitizer
1 | cmake -S . -B build-asan \ |
ASan is particularly useful for finding Widget, callback, or Animation references to destroyed App members.
Memory report
1 | ./build/tests/memory_metrics |
sizeof results apply only to the current compiler, ABI, and configuration. Measure again after porting to an MCU and inspect the linker map for RAM and flash use.
Minimum pre-commit checks
1 | git diff --check |
The second command is a quick scan. Keep the simulator’s Qt/STL boundary separate from PixelUI core findings.
