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
> >>>>
> >>
>
>

Reply via email to