graphics/microwindows: add Nano-X client/server support and examples for NuttX - #3689
Draft
Acfboy wants to merge 4 commits into
Draft
graphics/microwindows: add Nano-X client/server support and examples for NuttX#3689Acfboy wants to merge 4 commits into
Acfboy wants to merge 4 commits into
Conversation
Without this Make variable, Objects.rules does not add font_fnt.o to the build, causing undefined reference to fnt_createfont at link time. Signed-off-by: Acfboy <AcfboyU@outlook.com>
…support for NuttX Build the Nano-X client library, server and (optional) built-in window manager from the bundled Microwindows tree Signed-off-by: Acfboy <AcfboyU@outlook.com>
* Port the nxcalc demo from Microwindows * Connects to the Nano-X server started by examples/nanoxterm * Requires CONFIG_LIBC_FLOATINGPOINT for the result formatting Signed-off-by: Acfboy <AcfboyU@outlook.com>
* Port the nxterm demo from Microwindows * Starts the Nano-X server as a separate task before connecting * Runs an NSH shell instance on a pseudo terminal in the forked child instead of exec /bin/sh (no filesystem binaries in flat builds) Signed-off-by: Acfboy <AcfboyU@outlook.com>
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR ports the Nano-X windowing system from Microwindows to NuttX so that X11-style client/server applications can run in a flat build. It contains three logical parts:
graphics/microwindows: build the Nano-X client library and server from the bundled Microwindows tree, with two new Kconfig options:MICROWINDOWS_NANOX: build the Nano-X client library and server.MICROWINDOWS_NANOX_NANOWM: optionally link the Microwindows window manager into the server so the server task draws and decorates windows itself.examples/nanoxcalc: port of the nxcalc demo. It connects to the running Nano-X server and shows a calculator keypad.examples/nanoxterm: port of the nxterm demo. It is a terminal emulator that opens a pseudo terminal, forks, and runs an NSH instance (nsh_consolemain) in the child instead of exec'ing /bin/sh, since flat builds have no filesystem binaries. It starts the Nano-X server as a separate task before connecting, so it can be used as the init entry point: booting sim:nanox opens the nxterm window directly, and typing nanoxcalc in it opens the calculator.Note
There are still some remaining issues, for example, have some problem when running on qemu, so this is just a draft PR. When it is fully ready, I will add the documentation and open it up for review.