Hi Greg, sorry, I didn't quite understood your response. You mentioned NX functions which, when using an LCD driver backend, will ultimately always call info putrun(). To draw a rectangle, for example, you would need one putrun per line. This means multiple SPI/I2C transfers and all communication overhead involved. For devices supporting sending multiple lines in one go (the Sharp Memory LCD even supports updating the whole display at once) it is quite faster to do so.
Didn't quite understood what you mean by "crappy" driver interface. The proposal was to extend the LCD api, not modify it, so it would not intefere with any existing system which uses it. Also, implementing this call does not need to be mandatory. At the contrary, it would extend its possibilities. Moreover, NX is not the only system that could access an LCD in NuttX (for example, littlevgl is a popular choice), so I think it would be better to not constraint the ways an LCD driver could be interfaced with more efficiently. Best, Matias On Mon, Apr 20, 2020, at 11:49, Gregory Nutt wrote: > On 4/20/2020 8:45 AM, Gregory Nutt wrote: > > > >> when working with some LCDs (such as SSD1306 or Sharp Memory LCD) via > >> the LCD driver interface, the putrun() method greatly limits the > >> speed at which you can update the screen, since it imposes one > >> I2C/SPI transfer per putrun(). This type of graphical LCDs typically > >> support sending a transfer composed of many rows of data > >> simultaneously. This is of course much faster. > > > > This is a limitation of the direct LCD interfaces and fake LCD > > framebuffer interfaces. The graphics system supports putrectangle and > > puttrapezoid as well. Those drivers were are just minor add-ons. If > > you want to optimize performance, I would support that ONLY within the > > graphics system. I do not want those crappy low-level drivers > > controlling the system. They are not important and must not interface > > with the supported graphics system. > > > See nx_fill() and nx_filltrapzoind(0 here: > https://cwiki.apache.org/confluence/display/NUTTX/NX+Graphics+Subsystem > > >