Thanks for the clarification and the pointers. I was able to find the nxmu_sendserver <https://github.com/apache/incubator-nuttx/blob/master/libs/libnx/nxmu/nxmu_sendserver.c> function using the queues, from there it shouldn't be difficult to do a networked implementation.
On Tue, Oct 4, 2022 at 12:47 PM Gregory Nutt <spudan...@gmail.com> wrote: > Yes, NX is a server within the OS. The server side is in directories > under nuttx/graphics/; the client side is an application library in > libs/libnx. The client/server interface is via POSIX messages. > Serialization (and hence multi-threaded support) is guaranteed by the > POSIX message queues. > > Application use of framebuffers can get complicated in some memory > organization if the framebuffer memory is not naturally accessible from > user mode. Also, unlike multi-ported display memory, the per-Window > framebuffers require some additional action to trigger merging into the > device display memory. Per-Window framebuffers would probably require an > UPDATE IOCTL to determine when the Window framebuffer could be merged > into the device display memory. LVGL already supports such updates for > other cases. > > Those updates are a little awkward but on the upside guarantee > flicker-free updates. > > > On 10/4/2022 9:32 AM, Victor Suarez Rovere wrote: > > Hi Nutt thanks for the detailed description on the architecture. As far > as > > I understand, there's no client-server function like in X, am I right? > > I agree that doing a per-window framebuffer should not be hard. > > I plan to migrate other frameworks like ImGUI too since I have some > > experience with it > > > > On Tue, Oct 4, 2022 at 12:13 PM Gregory Nutt <spudan...@gmail.com> > wrote: > > > >> NxWidgets is a drawing tool in C++ that supports graphics objects. It > >> integrates naturally with NX. > >> > >> NX is the graphics server that supports multi-threaded 3D windowed > >> displays (3D in the since that X/Y windows exists in a Z plane). NX is > >> the embedded, moral equivalent of X in Linux. It is NX that supports > >> the multi-threading, not NxWidgets. > >> > >> LVGL is a drawing tool written in C. It integrates naturally with a > >> framebuffer driver. > >> > >> NX can be configured to support per-Window framebuffers. It would > >> require a small effort, but it would also be possible to create a > >> per-Window framebuffer driver that is compatible with LVGL. Then you > >> could have each thread manage a different window (but not true > >> multi-threading in a single window). > >> > >> On 10/4/2022 9:01 AM, Victor Suarez Rovere wrote: > >>> Many thanks of the links related to nxwidgets. I'm aware of LVGL and > >> other > >>> nice UI for embedded systems but I prefer a framework that would be > >> easier > >>> to manage in a client-server fashion for a project of muy own, and > >>> nxwidgets seems easier than LVGL besides less advanced. A modernization > >> of > >>> the drawing functions would be interesting toó while keeping the API. I > >>> don't know if there are some existing applications to determine the > >> impact > >>> of any change to the API > >>> > >>> Victor. > >>> > >>> El mar., 4 oct. 2022 11:54, Tomek CEDRO <to...@cedro.info> escribió: > >>> > >>>> On Tue, Oct 4, 2022 at 4:37 PM Alan C. Assis wrote: > >>>>> Hi Victor, > >>>>> Please see page 43 to see some nice interfaces developed using > >> NXWidgets: > >> > https://web.archive.org/web/20161019222034/http://dspace.cc.tut.fi/dpub/bitstream/handle/123456789/22051/Aimonen.pdf > >>>>> You can look the NXWM to see some examples of screens using > NXWidgets. > >>>> Thanks Alan for this detailed reference! :-) > >>>> > >>>> Victor, please note that NuttX also supports LVGL that is currently > >>>> getting a lot of traction in embedded world: > >>>> > >>>> https://lvgl.io/ > >>>> > >>>> Guys, do we have some demos ready to build out of the box on NuttX for > >>>> both NxWidgets and LVGL? > >>>> > >>>> -- > >>>> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info > >>>> > >> > >