pikers / piker

(e2e) foss trading for non-tinas
GNU Affero General Public License v3.0
104 stars 17 forks source link

Graphics caching for fast render: `QPixMap`, `QPainterPath`, `QBackingStore` or OpenGL? #124

Open goodboy opened 3 years ago

goodboy commented 3 years ago

In trying to squeeze performance for #109 I stumbled upon many resources for toying with avoidance of graphics re-drawing/rendering and have now a slew of place to get started if we decide to dig further on this optimization front in the Qt types and apis.

This also pertains to ongoing work discussed in #109 which has since moved to rendering OHLC bars using QPainterPath much like pyqtgraph's internal usage for line plots which are very performant even for moderately sized data sets.

As some preface please note the following:

QPainterPath (what we're using)

QBackingStore (what we should probably look into for further speedups)

OpenGL options in Qt (the distant goals of 3d UX)

QPixMap for painting images to screen (likely not what we want at all)

goodboy commented 3 years ago

Oh boy.. and now we have vulkan contenders from the vispy authors.. So I guess on the GL front we have some other stuff to look at.

goodboy commented 3 years ago

Some more graphics view hot tips: