Hello PyQtGraph Mail List!
I'm happy to announce that PyQtGraph 0.14.0 has shipped. This is the first release in roughly 18 months, and includes ~185 PRs from both repeat contributors and 21 new contributors to the library.
There is no one big change in 0.14.0, there are bug fixes in virtually every part of the library from flowcharts (remember those?), to widgets, exporters and of course the graphics items themselves. Substantial changes were made to the ImageItem and PlotDataItem documentation, which includes more detailed description of how they work, and especially in the case of ImageItem, a very detailed performance section on how to get the most out of it. My hope is to use those changes as a template for further documentation changes. If you read the new documentation pages, please give feedback (even if it's "looks great, thanks!") in the form of a post on the discussions tab on the GitHub repo or here in the mail list.
The biggest change in the new release is the vast changes made to PyQtGraph's use of OpenGL. Almost everywhere, PyQtGraph now uses "modern" OpenGL (OpenGL 3.1+), with programmable shaders. The use of OpenGL in 2D plots is no longer hidden behind the enableExperimental flag, and especially with PlotCurveItem, has gotten widespread support. In rare cases, there are some subtle differences in the resulting plots between non-OpenGL and OpenGL usages, but for the most part they are similar. Also, not all plot options available in the non-OpenGL backend work with OpenGL yet. There is also an OpenGL implementation for PColorMeshItem and wow, ...it's fast.
Another exciting change for CuPy users is now there is some support for OpenGL/CuPy interop, allowing you to do both computation and rendering on the GPU. This is a brand new feature, if relevant to you, please provide feedback.
We also added a new plot type, BoxPlotItem. It has an example but no documentation yet, a wrong that will be righted before too long.
We have removed the MetaArray, MultiPlotItem and MultiPlotWidget after a long deprecation period. MetaArray now lives as a separate package on PyPI if it's still needed for you.
Upcoming changes will involve removing PySide2 support. PyQt5 support isn't going anywhere but we will require PyQt5 5.15.x. We expect to see more type annotations to the library as well.
Thanks for reading, and of course, feedback welcome!