On 6/13/2024 11:56 AM, Gregory Nutt wrote:
Changing the existing driver interface would break the NX graphics. NX graphics is mis-named.  It is not a graphics system like LVGL, but a windowing system like X.  Whatever you do should not break the windowing system and, in fact, really should optionally integrate with the windowing system.

There is some graphics support in apps/ now (called NxGraphics), but that was never really fully developed.  LVGL has the better 2D graphics.  NxGraphics can provide a Z-axis as well if properly integrated with LVGL.  There are several examples of window managers that run on top of NX graphics  NxTerms, NxWM, a tiny port of a TWM-like window manger called Twm4Nx.  These must not be broken.

So you have a few options:  (1) Provide dual graphics that are completely separate so that the existing graphic framework is not trashed.  That would not be cool.  Or (2) Integrate LVGL with NX Windows, or (3) both.  Then you could have multiple LVGL windows.. which is really pretty cool.  There would possible be some performance hit, however.  The simplest LVGL integration would be to use per Window framebuffers.  The current framebuffer driver supports the whole screen.  That is not the way other graphic systems work.  Rather they provide a framebuffer per Window.  That naturally supports Windows and cleanly provides multi-threaded access to the display.

Here are URLs to some relevant documentation.  I may or may not have ever been leveraged into  nuttx/Documentation.

 * 
https://cwiki.apache.org/confluence/display/NUTTX/Framebuffer+Character+Driver
 * https://cwiki.apache.org/confluence/display/NUTTX/NX+Graphics+Subsystem

 * https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=139629474
 * https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=139629473

Reply via email to