rcore-os / rCore-Tutorial-v3

Let's write an OS which can run on RISC-V in Rust from scratch!
https://rcore-os.github.io/rCore-Tutorial-Book-v3/index.html
GNU General Public License v3.0
1.58k stars 452 forks source link

GUI绘制性能过低 #148

Closed wyfcyx closed 2 months ago

wyfcyx commented 3 months ago

原因分析:原有的gui_rect等用例绘制时间过长,原因在于使用的embedded_graphics库会将一个复杂图形拆分为多次Display上的draw操作(次数可能跟图形大小正相关),而原先的实现中,每在Displaydraw一次都会触发framebuffer_flush系统调用,该系统调用会将整块framebuffer上的内容送显,十分耗时。 解决方案:在Displaydraw函数中不要调用framebuffer_flush函数,而交给应用在合适的时机手动调用。