- Reduces aliasing when zoomed out
- Improves performance and memory usage for large images
Merge branch 'image_downsampling' into develop
Conflicts:
pyqtgraph/graphicsItems/ImageItem.py
- isosurface works for arrays with shapes > 255
- Fixed ImageItem exception building histogram when image has only one value
- Fixed MeshData exception caused when vertexes have no matching faces
- Fixed GLViewWidget exception handler
A new function profiling system is implemented. Most importantly, this
allows one to profile various internal functions directly by setting the
`PYQTGRAPHPROFILE` environment variable to a comma separated list of
function and method names, e.g.
PYQTGRAPHPROFILE=functions.makeARGB,ImageItem.render \
python -mexamples
Specifically, items in `PYQTGRAPHPROFILE` must be of the form
`classname.methodname` or `dotted_module_name.functionname`, with the
initial "pyqtgraph." stripped from the dotted module name.
Moreover, the overhead of inactive profilers has been kept minimal: an
introspective check of the caller's name (only if `PYQTGRAPHPROFILE` is
set) and a trivial function (not method) call per profiler call.
The new profilers rely on `sys._getframe` to find the caller's name,
although the previous system (passing the caller's name explicitely)
could certainly have been kept instead.
Finally the API of profilers has been changed: register a
profiling point simply by calling the profiler, and profilers are
automatically flushed on garbage collection. See the docstring of
`pyqtgraph.debug.Profiler` for more details.
- Added 'connect' option to PlotDataItem and PlotCurveItem to affect which line segments are drawn
- arrayToQPath() added 'finite' connection mode which omits non-finite values from connections
- Support for dynamic downsampling and view clipping in PlotDataItem / PlotItem
- fixed __truediv__ handling
- ViewBox updates to fix aspect locking (still broken)
- AxisItem tries to be more clever about when to display tick text
- Fix segmentation fault caused by exception inside GraphicsItem.paint()
- Added 'x' scatter plot symbol
- pg.mkPen supports dashes
This fixes memory leaks with PyQt 4.10 _except_ when using makeQImage(copy=False).
Tested on 4.9.3 and 4.10.2; need to be tested against other versions.
- GraphicsItem.pixelVectors copies cached results before returning
- Multiprocess fixes for Windows:
- mmap/shm uses anonymous maps rather than tempfiles
- avoid use of getppid and setpgrp
- work around hmac authentication bug (use os.urandom to generate key)