vispy 0.14.3__tar.gz → 0.15.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of vispy might be problematic. Click here for more details.
- {vispy-0.14.3 → vispy-0.15.1}/.github/workflows/main.yml +2 -2
- {vispy-0.14.3 → vispy-0.15.1}/.github/workflows/wheels.yml +7 -47
- {vispy-0.14.3 → vispy-0.15.1}/.gitignore +2 -1
- {vispy-0.14.3 → vispy-0.15.1}/CHANGELOG.md +48 -0
- {vispy-0.14.3 → vispy-0.15.1}/LICENSE.txt +1 -1
- {vispy-0.14.3/vispy.egg-info → vispy-0.15.1}/PKG-INFO +25 -2
- {vispy-0.14.3 → vispy-0.15.1}/ci/requirements/linux_full_deps_apt.txt +2 -0
- {vispy-0.14.3 → vispy-0.15.1}/ci/requirements/linux_full_deps_conda.txt +2 -2
- {vispy-0.14.3 → vispy-0.15.1}/ci/requirements/linux_full_newqtdeps_apt.txt +1 -1
- {vispy-0.14.3 → vispy-0.15.1}/doc/getting_started/modern-gl.rst +1 -1
- {vispy-0.14.3 → vispy-0.15.1}/doc/installation.rst +1 -1
- vispy-0.15.1/examples/scene/instanced_mesh_picking.py +96 -0
- vispy-0.15.1/pyproject.toml +27 -0
- {vispy-0.14.3 → vispy-0.15.1}/setup.py +1 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_qt.py +46 -11
- {vispy-0.14.3 → vispy-0.15.1}/vispy/color/colormap.py +106 -27
- {vispy-0.14.3 → vispy-0.15.1}/vispy/color/tests/test_color.py +27 -1
- {vispy-0.14.3 → vispy-0.15.1}/vispy/ext/cocoapy.py +1 -21
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/meshdata.py +3 -1
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/tests/test_triangulation.py +88 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/triangulation.py +11 -13
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/program.py +2 -2
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/arcball.py +1 -2
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/base_camera.py +63 -50
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/panzoom.py +4 -1
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/perspective.py +6 -1
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/turntable.py +11 -1
- {vispy-0.14.3 → vispy-0.15.1}/vispy/version.py +9 -4
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/_scalable_textures.py +5 -4
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/filters/mesh.py +6 -1
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/gridlines.py +61 -5
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/image.py +19 -7
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/surface_plot.py +1 -1
- vispy-0.15.1/vispy/visuals/tests/test_gridlines.py +30 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_image.py +17 -15
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_scalable_textures.py +16 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_surface_plot.py +8 -3
- {vispy-0.14.3 → vispy-0.15.1/vispy.egg-info}/PKG-INFO +25 -2
- {vispy-0.14.3 → vispy-0.15.1}/vispy.egg-info/SOURCES.txt +2 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy.egg-info/requires.txt +8 -0
- vispy-0.14.3/pyproject.toml +0 -13
- {vispy-0.14.3 → vispy-0.15.1}/.coveragerc +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/.git_archival.txt +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/.gitattributes +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/.github/dependabot.yml +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/.github_changelog_generator +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/CITATION.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/CODE_OF_CONDUCT.md +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/CONTRIBUTING.md +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/MANIFEST.in +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/README.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/ci/build_website.sh +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/ci/requirements/linux_full_deps_pip.txt +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/ci/requirements/linux_full_newqtdeps_conda.txt +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/ci/requirements/linux_full_newqtdeps_pip.txt +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/ci/requirements/linux_min_deps_conda.txt +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/ci/requirements/linux_osmesa_deps_conda.txt +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/ci/requirements/linux_website_deps_pip.txt +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/ci/requirements/py310.yml +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/ci/requirements/py39.yml +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/.gitignore +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/.nojekyll +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/CNAME +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/Makefile +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/README.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/ViewFrustum.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/ViewFrustum.svg +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/carousel/galaxy.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/carousel/high-frequency.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/carousel/mandelbrot.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/carousel/signals.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/favicon.ico +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/frustum-matrix.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/gl-history.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/gl-pipeline.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/gl-pipeline.svg +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/ortho-matrix.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/perspective-matrix.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/style.css +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/vispy-logo-V.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/vispy-logo-V.svg +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/vispy-teaser-short.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/vispy-teaser-short.svg +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/vispy-teaser.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/vispy-teaser.svg +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/vispy-text-white.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/_static/vispy-text-white.svg +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/api/.gitkeep +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/community.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/conf.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/dev_guide/contributor_guide.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/dev_guide/index.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/dev_guide/writing_examples.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/faq.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/gallery/index.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/getting_started/_canvas_app.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/getting_started/gloo.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/getting_started/index.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/getting_started/plot.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/getting_started/scene.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/getting_started/visuals.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/governance/GOVERNANCE.md +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/governance/MAINTAINERS.md +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/index.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/news.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/org/ANTITRUST.md +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/org/CHARTER.md +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/org/STEERING-COMMITTEE.md +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/org/TRADEMARKS.md +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/overview.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/raspberry.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/resources.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/roadmap.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/doc/thirdparty.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/README.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/scene/modular_shaders/editor.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/scene/modular_shaders/sandbox.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/scene/shared_context.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/scene/stereo.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/arcball.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/arrows.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/arrows_quiver.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/axially_symmetric_surfaces.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/bezier.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/box.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/colorbar_visual.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/colorbar_visual_types.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/custom_visual.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/dynamic_polygon.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/graph.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/grid_mesh.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/image_transforms.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/image_visual.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/line.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/line_draw.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/line_plot.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/line_plot3d.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/line_plot_axes.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/line_prototype.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/line_transform.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/markers.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/mesh.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/networkx_layout.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/plane.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/polygon_visual.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/rescalingmarkers.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/rotating_box.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/text_scatter.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/text_visual.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/tube.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/visual_filters.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/basics/visuals/windbarb_quiver.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/benchmark/scene_test_1.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/benchmark/scene_test_2.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/benchmark/simple_glut.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/benchmark/simple_vispy.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/collections/chloropleth.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/collections/path_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/collections/point_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/collections/polygon_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/collections/segment_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/collections/tiger.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/collections/triangle_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/atom.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/boids.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/brain.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/camera.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/cloud.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/donut.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/fireworks.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/galaxy/galaxy.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/galaxy/galaxy_simulation.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/galaxy/galaxy_specrend.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/galaxy.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/game_of_life.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/glsl_sandbox_cube.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/graph.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/grayscott.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/high_frequency.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/imshow.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/imshow_cuts.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/jfa/fragment_display.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/jfa/fragment_flood.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/jfa/fragment_seed.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/jfa/jfa_translation.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/jfa/jfa_vispy.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/jfa/vertex.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/jfa/vertex_vispy.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/mandelbrot.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/mandelbrot_double.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/molecular_viewer.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/ndscatter.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/offscreen.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/primitive_mesh_viewer_qt.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/quiver.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/rain.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/raytracing.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/realtime_signals.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/signals.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/skybox.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/spacy.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/terrain.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/two_qt_widgets.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/unstructured_2d.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/gloo/voronoi.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/plot/plot.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/scene/flow_lines.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/scene/force_directed_graph.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/scene/klein.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/scene/oscilloscope.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/scene/picking.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/scene/scrolling_plots.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/demo/visuals/wiggly_bar.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/README.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/animate_images.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/animate_images_slice.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/animate_shape.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/colored_cube.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/colored_cube_instanced.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/colored_quad.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/display_lines.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/display_points.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/display_shape.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/geometry_shader.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/gl/README.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/gl/cube.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/gl/fireworks.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/gl/quad.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/gl/quad_instanced.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/gpuimage.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/hello_fbo.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/lighted_cube.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/multi_texture.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/outlined_cube.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/post_processing.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/rotate_cube.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/rotating_quad.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/spatial_filters.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/start.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/start_shaders.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/texture_precision.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/textured_cube.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/gloo/textured_quad.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/jupyter/Rotating Cube.ipynb +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/jupyter/colormaps.ipynb +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/jupyter/gloo_display_lines.ipynb +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/jupyter/gloo_molecular_viewer.ipynb +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/offscreen/simple_egl.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/offscreen/simple_osmesa.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/plotting/README.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/plotting/colorbar.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/plotting/export.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/plotting/ipython_fig_playground.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/plotting/plot.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/plotting/plot_colorbars.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/plotting/scatter_histogram.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/plotting/spectrogram.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/plotting/volume_plot.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/README.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/axes_plot.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/background_borders.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/clipping_planes.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/colorbar_widget.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/colored_line.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/complex_image.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/console.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/contour.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/example..gif +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/example.png +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/face_picking.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/flipped_axis.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/graph.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/grid_layout/README.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/grid_layout/grid.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/grid_layout/grid_basic.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/grid_layout/grid_holed.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/grid_layout/grid_large.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/grid_layout/grid_uneven_col.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/grid_layout/grid_x_y_viewbox.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/image.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/image_custom_kernel.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/infinite_line.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/instanced_mesh.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/instanced_mesh_visual.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/instanced_quad_visual.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/isocurve.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/isocurve_for_trisurface.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/isocurve_for_trisurface_qt.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/isocurve_updates.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/isosurface.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/lasso.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/line.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/line_update.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/linear_region.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/magnify.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/marker_picking.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/marker_spheres.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/mesh_normals.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/mesh_shading.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/mesh_texture.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/nested_viewbox.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/one_cam_two_scenes.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/one_scene_four_cams.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/point_cloud.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/polygon.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/realtime_data/README.rst +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/realtime_data/ex01_embedded_vispy.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/realtime_data/ex02_control_vispy_from_qt.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/realtime_data/ex03a_data_sources_timer.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/realtime_data/ex03b_data_sources_threaded_loop.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/realtime_data/ex03c_data_sources_threaded_events.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/save_animation.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/sensitivity.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/shape_draw.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/sphere.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/surface_plot.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/text.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/turntable_box.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/viewbox.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/volume.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/scene/volume_plane.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/tutorial/app/app_events.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/tutorial/app/fps.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/tutorial/app/shared_context.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/tutorial/app/simple.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/tutorial/app/simple_wx.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/tutorial/visuals/T01_basic_visual.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/tutorial/visuals/T02_measurements.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/tutorial/visuals/T03_antialiasing.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/tutorial/visuals/T04_fragment_programs.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/examples/tutorial/visuals/T05_viewer_location.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/pytest.ini +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/setup.cfg +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/_default_app.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/_detect_eventloop.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/application.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_egl.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_glfw.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_jupyter_rfb.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_offscreen_util.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_osmesa.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_pyglet.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_pyqt4.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_pyqt5.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_pyqt6.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_pyside.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_pyside2.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_pyside6.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_sdl2.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_template.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_test.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_tk.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/_wx.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/tests/test_offscreen_util.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/backends/tests/test_rfb.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/base.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/canvas.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/qt.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/tests/qt-designer.ui +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/tests/test_app.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/tests/test_backends.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/tests/test_canvas.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/tests/test_context.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/tests/test_qt.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/tests/test_simultaneous.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/app/timer.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/color/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/color/_color_dict.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/color/color_array.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/color/color_space.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/color/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/conftest.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/ext/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/ext/cubehelix.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/ext/egl.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/ext/fontconfig.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/ext/gdi32plus.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/ext/osmesa.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/_triangulation_debugger.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/calculations.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/curves.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/generation.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/isocurve.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/isosurface.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/normals.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/parametric.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/polygon.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/rect.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/tests/test_calculations.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/tests/test_generation.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/tests/test_meshdata.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/geometry/torusknot.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/buffer.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/context.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/framebuffer.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/_constants.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/_es2.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/_gl2.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/_proxy.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/_pyopengl2.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/dummy.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/es2.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/gl2.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/glplus.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/pyopengl2.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/tests/test_basics.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/tests/test_functionality.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/tests/test_names.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/gl/tests/test_use.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/glir.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/globject.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/preprocessor.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/tests/test_buffer.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/tests/test_context.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/tests/test_framebuffer.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/tests/test_glir.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/tests/test_globject.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/tests/test_program.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/tests/test_texture.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/tests/test_use_gloo.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/tests/test_util.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/tests/test_wrappers.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/texture.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/util.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/gloo/wrappers.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/antialias/antialias.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/antialias/cap-butt.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/antialias/cap-round.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/antialias/cap-square.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/antialias/cap-triangle-in.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/antialias/cap-triangle-out.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/antialias/cap.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/antialias/caps.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/antialias/filled.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/antialias/outline.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/antialias/stroke.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrowheads/angle.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrowheads/arrowheads.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrowheads/arrowheads.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrowheads/arrowheads.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrowheads/curved.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrowheads/inhibitor.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrowheads/stealth.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrowheads/triangle.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrowheads/util.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/angle-30.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/angle-60.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/angle-90.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/arrow.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/arrow.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/arrows.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/common.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/curved.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/stealth.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/triangle-30.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/triangle-60.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/triangle-90.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/arrows/util.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/build_spatial_filters.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/agg-fast-path.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/agg-fast-path.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/agg-glyph.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/agg-glyph.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/agg-marker.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/agg-marker.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/agg-path.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/agg-path.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/agg-point.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/agg-point.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/agg-segment.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/agg-segment.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/marker.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/marker.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/raw-path.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/raw-path.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/raw-point.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/raw-point.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/raw-segment.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/raw-segment.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/raw-triangle.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/raw-triangle.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/sdf-glyph-ticks.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/sdf-glyph.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/sdf-glyph.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/collections/tick-labels.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/autumn.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/blues.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/color-space.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/colormaps.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/cool.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/fire.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/gray.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/greens.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/hot.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/ice.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/icefire.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/parse.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/reds.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/spring.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/summer.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/user.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/util.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/wheel.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/colormaps/winter.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/lines/agg.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/lines/agg.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/arrow.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/asterisk.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/chevron.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/clover.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/club.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/cross.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/diamond.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/disc.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/ellipse.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/hbar.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/heart.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/infinity.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/marker-sdf.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/marker-sdf.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/marker.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/marker.vert +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/markers.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/pin.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/ring.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/spade.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/square.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/tag.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/triangle.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/markers/vbar.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/math/circle-through-2-points.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/math/constants.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/math/double.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/math/functions.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/math/point-to-line-distance.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/math/point-to-line-projection.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/math/signed-line-distance.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/math/signed-segment-distance.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/misc/regular-grid.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/misc/spatial-filters.frag +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/misc/viewport-NDC.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/azimuthal-equal-area.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/azimuthal-equidistant.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/hammer.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/identity.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/identity_forward.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/identity_inverse.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/linear-scale.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/log-scale.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/mercator-transverse-forward.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/mercator-transverse-inverse.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/panzoom.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/polar.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/position.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/power-scale.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/projection.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/pvm.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/rotate.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/trackball.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/translate.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/transverse_mercator.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/viewport-clipping.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/viewport-transform.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/viewport.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/x.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/y.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/glsl/transforms/z.glsl +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/io/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/io/_data/spatial-filters.npy +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/io/datasets.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/io/image.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/io/mesh.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/io/stl.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/io/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/io/tests/test_image.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/io/tests/test_io.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/io/wavefront.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/plot/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/plot/fig.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/plot/plotwidget.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/plot/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/plot/tests/test_plot.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/_base.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/fly.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/magnify.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/tests/test_cameras.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/tests/test_link.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/cameras/tests/test_perspective.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/canvas.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/events.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/node.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/subscene.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/tests/test_canvas.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/tests/test_node.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/tests/test_visuals.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/visuals.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/widgets/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/widgets/anchor.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/widgets/axis.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/widgets/colorbar.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/widgets/console.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/widgets/grid.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/widgets/label.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/widgets/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/widgets/tests/test_colorbar.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/widgets/viewbox.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/scene/widgets/widget.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/testing/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/testing/_runners.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/testing/_testing.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/testing/image_tester.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/testing/rendered_array_tester.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/testing/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/testing/tests/test_testing.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/bunch.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/check_environment.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/config.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/dpi/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/dpi/_linux.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/dpi/_quartz.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/dpi/_win32.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/dpi/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/dpi/tests/test_dpi.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/eq.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/event.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fetching.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/filter.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fonts/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fonts/_freetype.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fonts/_quartz.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fonts/_triage.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fonts/_vispy_fonts.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fonts/_win32.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fonts/data/OpenSans-Bold.ttf +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fonts/data/OpenSans-BoldItalic.ttf +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fonts/data/OpenSans-Italic.ttf +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fonts/data/OpenSans-Regular.ttf +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fonts/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fonts/tests/test_font.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/fourier.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/frozen.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/gallery_scraper.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/keys.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/logs.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/osmesa_gl.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/profiler.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/ptime.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/quaternion.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/base.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/color.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/element.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/geometry.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/group.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/length.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/number.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/path.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/shapes.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/style.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/svg.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/transform.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/transformable.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/svg/viewport.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/test_config.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/test_docstring_parameters.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/test_emitter_group.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/test_event_emitter.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/test_fourier.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/test_gallery_scraper.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/test_import.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/test_key.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/test_logging.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/test_run.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/test_transforms.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/tests/test_vispy.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/transforms.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/util/wrappers.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/axis.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/border.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/box.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/agg_fast_path_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/agg_path_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/agg_point_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/agg_segment_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/array_list.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/base_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/path_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/point_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/polygon_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/raw_path_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/raw_point_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/raw_polygon_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/raw_segment_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/raw_triangle_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/segment_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/triangle_collection.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/collections/util.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/colorbar.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/cube.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/ellipse.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/filters/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/filters/base_filter.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/filters/clipper.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/filters/clipping_planes.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/filters/color.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/filters/markers.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/filters/picking.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/filters/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/filters/tests/test_primitive_picking_filters.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/filters/tests/test_wireframe_filter.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/glsl/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/glsl/antialiasing.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/glsl/color.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/graphs/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/graphs/graph.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/graphs/layouts/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/graphs/layouts/circular.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/graphs/layouts/force_directed.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/graphs/layouts/networkx_layout.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/graphs/layouts/random.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/graphs/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/graphs/tests/test_layouts.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/graphs/tests/test_networkx_layout.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/graphs/util.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/gridmesh.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/histogram.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/image_complex.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/infinite_line.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/instanced_mesh.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/isocurve.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/isoline.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/isosurface.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/line/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/line/arrow.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/line/dash_atlas.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/line/line.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/line_plot.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/linear_region.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/markers.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/mesh.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/mesh_normals.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/plane.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/polygon.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/rectangle.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/regular_polygon.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/scrolling_lines.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/compiler.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/expression.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/function.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/multiprogram.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/parsing.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/program.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/shader_object.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/tests/test_function.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/tests/test_multiprogram.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/tests/test_parsing.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/shaders/variable.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/spectrogram.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/sphere.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_arrows.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_axis.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_collections.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_colorbar.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_colormap.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_ellipse.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_histogram.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_image_complex.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_infinite_line.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_instanced_mesh.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_isosurface.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_linear_region.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_markers.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_mesh.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_mesh_normals.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_polygon.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_rectangle.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_regular_polygon.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_sdf.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_spectrogram.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_text.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_volume.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tests/test_windbarb.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/text/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/text/_sdf_cpu.pyx +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/text/_sdf_gpu.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/text/text.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/transforms/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/transforms/_util.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/transforms/base_transform.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/transforms/chain.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/transforms/interactive.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/transforms/linear.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/transforms/nonlinear.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/transforms/tests/__init__.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/transforms/tests/test_transforms.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/transforms/transform_system.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/tube.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/visual.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/volume.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/windbarb.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy/visuals/xyz_axis.py +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy.egg-info/dependency_links.txt +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy.egg-info/not-zip-safe +0 -0
- {vispy-0.14.3 → vispy-0.15.1}/vispy.egg-info/top_level.txt +0 -0
|
@@ -113,7 +113,7 @@ jobs:
|
|
|
113
113
|
sleep 5
|
|
114
114
|
# export python_version
|
|
115
115
|
echo "python_version=310" >> $GITHUB_OUTPUT
|
|
116
|
-
- uses: mamba-org/setup-micromamba@
|
|
116
|
+
- uses: mamba-org/setup-micromamba@v2
|
|
117
117
|
with:
|
|
118
118
|
environment-file: ./ci/requirements/py${{ steps.vars.outputs.python_version }}.yml
|
|
119
119
|
- name: Install conda-dependencies
|
|
@@ -227,7 +227,7 @@ jobs:
|
|
|
227
227
|
# export python_version
|
|
228
228
|
PY_VER=${{ matrix.python_version }}
|
|
229
229
|
echo "python_version=${PY_VER//.}" >> $GITHUB_OUTPUT
|
|
230
|
-
- uses: mamba-org/setup-micromamba@
|
|
230
|
+
- uses: mamba-org/setup-micromamba@v2
|
|
231
231
|
with:
|
|
232
232
|
environment-file: ./ci/requirements/py${{ steps.vars.outputs.python_version }}.yml
|
|
233
233
|
- name: Install conda-dependencies
|
|
@@ -14,11 +14,8 @@ jobs:
|
|
|
14
14
|
strategy:
|
|
15
15
|
fail-fast: false
|
|
16
16
|
matrix:
|
|
17
|
-
os: [ubuntu-
|
|
17
|
+
os: [ubuntu-latest, windows-2019, macOS-latest, macos-13, ubuntu-24.04-arm]
|
|
18
18
|
arch: [auto]
|
|
19
|
-
include:
|
|
20
|
-
- os: ubuntu-20.04
|
|
21
|
-
arch: aarch64
|
|
22
19
|
steps:
|
|
23
20
|
- uses: actions/checkout@v4
|
|
24
21
|
with:
|
|
@@ -27,25 +24,9 @@ jobs:
|
|
|
27
24
|
if: ${{ matrix.arch == 'aarch64' }}
|
|
28
25
|
uses: docker/setup-qemu-action@v3
|
|
29
26
|
- name: Build wheels
|
|
30
|
-
uses: pypa/cibuildwheel@v2.
|
|
27
|
+
uses: pypa/cibuildwheel@v2.23.3
|
|
31
28
|
env:
|
|
32
|
-
CIBW_SKIP: "pp* *-win32 *-manylinux_i686 *-musllinux*"
|
|
33
29
|
CIBW_ARCHS_LINUX: ${{ matrix.arch }}
|
|
34
|
-
CIBW_TEST_REQUIRES: "pytest pytest-sugar meshio pillow sphinx_gallery imageio"
|
|
35
|
-
CIBW_TEST_COMMAND: "python -c \"import vispy; vispy.test('nobackend')\""
|
|
36
|
-
CIBW_BUILD_VERBOSITY: "2"
|
|
37
|
-
# Get numpy release candidate to have Python 3.12 compatibility (hopefully)
|
|
38
|
-
CIBW_BEFORE_BUILD: "python -m pip install -U Cython pip setuptools"
|
|
39
|
-
CIBW_BEFORE_TEST: "python -m pip install -U Cython pip setuptools"
|
|
40
|
-
#CIBW_BEFORE_BUILD_MACOS: "pip install -U pip setuptools"
|
|
41
|
-
CIBW_BEFORE_BUILD_LINUX: "yum install -y fontconfig || apk add fontconfig-dev jpeg-dev; pip install freetype-py"
|
|
42
|
-
# If freetype-py is installed from source (no wheel found), include bundled freetype library
|
|
43
|
-
CIBW_ENVIRONMENT_WINDOWS: "FREETYPEPY_BUNDLE_FT=1"
|
|
44
|
-
CIBW_ENVIRONMENT: "GITHUB_ACTIONS=true"
|
|
45
|
-
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
|
|
46
|
-
CIBW_MANYLINUX_I686_IMAGE: manylinux2014
|
|
47
|
-
CIBW_ARCHS_MACOS: 'x86_64 arm64'
|
|
48
|
-
CIBW_TEST_SKIP: '*-macosx_arm64'
|
|
49
30
|
- uses: actions/upload-artifact@v4
|
|
50
31
|
with:
|
|
51
32
|
name: wheels-${{ matrix.os }}-${{ matrix.arch }}
|
|
@@ -82,19 +63,8 @@ jobs:
|
|
|
82
63
|
path: dist
|
|
83
64
|
- uses: actions/download-artifact@v4
|
|
84
65
|
with:
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
- uses: actions/download-artifact@v4
|
|
88
|
-
with:
|
|
89
|
-
name: wheels-windows-2019-auto
|
|
90
|
-
path: dist
|
|
91
|
-
- uses: actions/download-artifact@v4
|
|
92
|
-
with:
|
|
93
|
-
name: wheels-macOS-latest-auto
|
|
94
|
-
path: dist
|
|
95
|
-
- uses: actions/download-artifact@v4
|
|
96
|
-
with:
|
|
97
|
-
name: wheels-ubuntu-20.04-aarch64
|
|
66
|
+
pattern: wheels-*
|
|
67
|
+
merge-multiple: true
|
|
98
68
|
path: dist
|
|
99
69
|
- uses: pypa/gh-action-pypi-publish@master
|
|
100
70
|
# upload to Test PyPI for every commit on main branch
|
|
@@ -112,21 +82,11 @@ jobs:
|
|
|
112
82
|
with:
|
|
113
83
|
name: sdist
|
|
114
84
|
path: dist
|
|
85
|
+
|
|
115
86
|
- uses: actions/download-artifact@v4
|
|
116
87
|
with:
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
- uses: actions/download-artifact@v4
|
|
120
|
-
with:
|
|
121
|
-
name: wheels-windows-2019-auto
|
|
122
|
-
path: dist
|
|
123
|
-
- uses: actions/download-artifact@v4
|
|
124
|
-
with:
|
|
125
|
-
name: wheels-macOS-latest-auto
|
|
126
|
-
path: dist
|
|
127
|
-
- uses: actions/download-artifact@v4
|
|
128
|
-
with:
|
|
129
|
-
name: wheels-ubuntu-20.04-aarch64
|
|
88
|
+
pattern: wheels-*
|
|
89
|
+
merge-multiple: true
|
|
130
90
|
path: dist
|
|
131
91
|
- uses: pypa/gh-action-pypi-publish@master
|
|
132
92
|
# upload to PyPI on every tag starting with 'v'
|
|
@@ -1,5 +1,53 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
|
+
## [v0.15.1](https://github.com/vispy/vispy/tree/v0.15.1) (2025-05-15)
|
|
4
|
+
|
|
5
|
+
**Fixed bugs:**
|
|
6
|
+
|
|
7
|
+
- Restore sdist upload to pypi [\#2672](https://github.com/vispy/vispy/pull/2672) ([Czaki](https://github.com/Czaki))
|
|
8
|
+
|
|
9
|
+
**Merged pull requests:**
|
|
10
|
+
|
|
11
|
+
- Bump pypa/cibuildwheel from 2.23.2 to 2.23.3 [\#2669](https://github.com/vispy/vispy/pull/2669) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## [v0.15.0](https://github.com/vispy/vispy/tree/v0.15.0) (2025-04-22)
|
|
15
|
+
|
|
16
|
+
**Enhancements:**
|
|
17
|
+
|
|
18
|
+
- Add high and low color settings for colormaps \(HiLo mapping\) [\#2663](https://github.com/vispy/vispy/pull/2663) ([brisvag](https://github.com/brisvag))
|
|
19
|
+
- Allow setting bad color on colormap \(continue \#2620\) [\#2659](https://github.com/vispy/vispy/pull/2659) ([brisvag](https://github.com/brisvag))
|
|
20
|
+
- Add modifiers to QT native gesture events [\#2631](https://github.com/vispy/vispy/pull/2631) ([arambert](https://github.com/arambert))
|
|
21
|
+
- Implement limiting size for gridlines \(2\) [\#2630](https://github.com/vispy/vispy/pull/2630) ([brisvag](https://github.com/brisvag))
|
|
22
|
+
- Various optimizations related to camera linking and mesh normals [\#2532](https://github.com/vispy/vispy/pull/2532) ([djhoese](https://github.com/djhoese))
|
|
23
|
+
|
|
24
|
+
**Fixed bugs:**
|
|
25
|
+
|
|
26
|
+
- Fix bad\_color handling and simplify some logic [\#2662](https://github.com/vispy/vispy/pull/2662) ([brisvag](https://github.com/brisvag))
|
|
27
|
+
- Fix type of vertice passed to function for adding triangles [\#2647](https://github.com/vispy/vispy/pull/2647) ([Czaki](https://github.com/Czaki))
|
|
28
|
+
- Fix mesh colors reshaping [\#2645](https://github.com/vispy/vispy/pull/2645) ([BenZickel](https://github.com/BenZickel))
|
|
29
|
+
- Use visual coordinates in ArcballCamera [\#2642](https://github.com/vispy/vispy/pull/2642) ([Seon82](https://github.com/Seon82))
|
|
30
|
+
- fix: prevent zerodiv error when auto-calculating clims in scalable textures [\#2621](https://github.com/vispy/vispy/pull/2621) ([tlambert03](https://github.com/tlambert03))
|
|
31
|
+
- Set self.\_data\_dtype in scale\_and\_set\_data for CPU scaled textures [\#2601](https://github.com/vispy/vispy/pull/2601) ([aganders3](https://github.com/aganders3))
|
|
32
|
+
- Ignore unhandled Qt events [\#2600](https://github.com/vispy/vispy/pull/2600) ([gselzer](https://github.com/gselzer))
|
|
33
|
+
- Ignore all flat triangles in triangulation [\#2248](https://github.com/vispy/vispy/pull/2248) ([andy-sweet](https://github.com/andy-sweet))
|
|
34
|
+
|
|
35
|
+
**Merged pull requests:**
|
|
36
|
+
|
|
37
|
+
- Bump pypa/cibuildwheel from 2.23.1 to 2.23.2 [\#2660](https://github.com/vispy/vispy/pull/2660) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
38
|
+
- Fix small mistake in docs [\#2658](https://github.com/vispy/vispy/pull/2658) ([jspast](https://github.com/jspast))
|
|
39
|
+
- Bump pypa/cibuildwheel from 2.23.0 to 2.23.1 [\#2655](https://github.com/vispy/vispy/pull/2655) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
40
|
+
- Bump pypa/cibuildwheel from 2.22.0 to 2.23.0 [\#2652](https://github.com/vispy/vispy/pull/2652) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
41
|
+
- Bump pypa/cibuildwheel from 2.21.2 to 2.22.0 [\#2632](https://github.com/vispy/vispy/pull/2632) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
42
|
+
- Bump mamba-org/setup-micromamba from 1 to 2 [\#2626](https://github.com/vispy/vispy/pull/2626) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
43
|
+
- Bump pypa/cibuildwheel from 2.21.1 to 2.21.2 [\#2625](https://github.com/vispy/vispy/pull/2625) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
44
|
+
- Bump pypa/cibuildwheel from 2.21.0 to 2.21.1 [\#2623](https://github.com/vispy/vispy/pull/2623) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
45
|
+
- Bump pypa/cibuildwheel from 2.20.0 to 2.21.0 [\#2622](https://github.com/vispy/vispy/pull/2622) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
46
|
+
- Bump pypa/cibuildwheel from 2.19.2 to 2.20.0 [\#2611](https://github.com/vispy/vispy/pull/2611) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
47
|
+
- Add variable name in errors to help debugging [\#2605](https://github.com/vispy/vispy/pull/2605) ([brisvag](https://github.com/brisvag))
|
|
48
|
+
- Bump pypa/cibuildwheel from 2.19.1 to 2.19.2 [\#2604](https://github.com/vispy/vispy/pull/2604) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
49
|
+
- Bump pypa/cibuildwheel from 2.18.1 to 2.19.1 [\#2602](https://github.com/vispy/vispy/pull/2602) ([dependabot[bot]](https://github.com/apps/dependabot))
|
|
50
|
+
|
|
3
51
|
|
|
4
52
|
## [v0.14.3](https://github.com/vispy/vispy/tree/v0.14.3) (2024-06-17)
|
|
5
53
|
|
|
@@ -3,7 +3,7 @@ Vispy licensing terms
|
|
|
3
3
|
|
|
4
4
|
Vispy is licensed under the terms of the (new) BSD license:
|
|
5
5
|
|
|
6
|
-
Copyright (c) 2013-
|
|
6
|
+
Copyright (c) 2013-2025, Vispy Development Team. All rights reserved.
|
|
7
7
|
|
|
8
8
|
Redistribution and use in source and binary forms, with or without
|
|
9
9
|
modification, are permitted provided that the following conditions are met:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: vispy
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.15.1
|
|
4
4
|
Summary: Interactive visualization in Python
|
|
5
5
|
Home-page: http://vispy.org
|
|
6
6
|
Download-URL: https://pypi.python.org/pypi/vispy
|
|
@@ -67,6 +67,29 @@ Requires-Dist: pyopengl; extra == "doc"
|
|
|
67
67
|
Provides-Extra: io
|
|
68
68
|
Requires-Dist: meshio; extra == "io"
|
|
69
69
|
Requires-Dist: Pillow; extra == "io"
|
|
70
|
+
Provides-Extra: test
|
|
71
|
+
Requires-Dist: pytest; extra == "test"
|
|
72
|
+
Requires-Dist: pytest-sugar; extra == "test"
|
|
73
|
+
Requires-Dist: meshio; extra == "test"
|
|
74
|
+
Requires-Dist: pillow; extra == "test"
|
|
75
|
+
Requires-Dist: sphinx_gallery; extra == "test"
|
|
76
|
+
Requires-Dist: imageio; extra == "test"
|
|
77
|
+
Dynamic: author
|
|
78
|
+
Dynamic: author-email
|
|
79
|
+
Dynamic: classifier
|
|
80
|
+
Dynamic: description
|
|
81
|
+
Dynamic: description-content-type
|
|
82
|
+
Dynamic: download-url
|
|
83
|
+
Dynamic: home-page
|
|
84
|
+
Dynamic: keywords
|
|
85
|
+
Dynamic: license
|
|
86
|
+
Dynamic: license-file
|
|
87
|
+
Dynamic: platform
|
|
88
|
+
Dynamic: provides
|
|
89
|
+
Dynamic: provides-extra
|
|
90
|
+
Dynamic: requires-dist
|
|
91
|
+
Dynamic: requires-python
|
|
92
|
+
Dynamic: summary
|
|
70
93
|
|
|
71
94
|
VisPy: interactive scientific visualization in Python
|
|
72
95
|
-----------------------------------------------------
|
|
@@ -6,7 +6,7 @@ freetype-py
|
|
|
6
6
|
glfw!=3.3.1
|
|
7
7
|
imageio
|
|
8
8
|
jupyter
|
|
9
|
-
matplotlib
|
|
9
|
+
matplotlib-base
|
|
10
10
|
meshio
|
|
11
11
|
networkx
|
|
12
12
|
numpy
|
|
@@ -16,7 +16,7 @@ pysdl2
|
|
|
16
16
|
pytest
|
|
17
17
|
pytest-cov
|
|
18
18
|
pytest-sugar
|
|
19
|
-
pyopengl
|
|
19
|
+
pyopengl!=3.1.7,!=3.1.8,!=3.1.9
|
|
20
20
|
scikit-image
|
|
21
21
|
scipy
|
|
22
22
|
networkx
|
|
@@ -66,7 +66,7 @@ Buffers
|
|
|
66
66
|
|
|
67
67
|
We explained earlier that the vertex shader act on the vertices. The question
|
|
68
68
|
is thus where do those vertices comes from? The idea of modern GL is that
|
|
69
|
-
vertices are stored on the GPU and
|
|
69
|
+
vertices are stored on the GPU and need to be uploaded (only once) to the GPU
|
|
70
70
|
before rendering. The way to do that is to build buffers onto the CPU and to
|
|
71
71
|
send them onto the GPU. If your data does not change, no need to upload it
|
|
72
72
|
again. That is the big difference with the previous fixed pipeline where data
|
|
@@ -108,7 +108,7 @@ install most of the VisPy dependencies for you. If your computer is low on hard
|
|
|
108
108
|
disk space, or you would like a minimal python installation, you may install
|
|
109
109
|
the `Miniconda <https://conda.io/miniconda.html>`_ package also from
|
|
110
110
|
Continuum Analytics. Once Anaconda is installed, create a
|
|
111
|
-
`conda python environment <https://conda.io/
|
|
111
|
+
`conda python environment <https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html>`_.
|
|
112
112
|
|
|
113
113
|
Via conda
|
|
114
114
|
---------
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
# vispy: gallery 30
|
|
3
|
+
# -----------------------------------------------------------------------------
|
|
4
|
+
# Copyright (c) Vispy Development Team. All Rights Reserved.
|
|
5
|
+
# Distributed under the (new) BSD License. See LICENSE.txt for more info.
|
|
6
|
+
# -----------------------------------------------------------------------------
|
|
7
|
+
"""
|
|
8
|
+
Picking Instance of InstancedMeshes
|
|
9
|
+
===================================
|
|
10
|
+
|
|
11
|
+
Demonstrates how to identify (pick) individual instanced meshes.
|
|
12
|
+
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
import numpy as np
|
|
16
|
+
|
|
17
|
+
from vispy import app, scene, use
|
|
18
|
+
from vispy.io import read_mesh, load_data_file
|
|
19
|
+
from vispy.scene.visuals import InstancedMesh
|
|
20
|
+
from vispy.scene import transforms
|
|
21
|
+
from scipy.spatial.transform import Rotation
|
|
22
|
+
|
|
23
|
+
#Necessary to use InstancedMesh
|
|
24
|
+
use(gl='gl+')
|
|
25
|
+
|
|
26
|
+
canvas = scene.SceneCanvas(keys='interactive', bgcolor='white')
|
|
27
|
+
view = canvas.central_widget.add_view()
|
|
28
|
+
|
|
29
|
+
view.camera = 'turntable'
|
|
30
|
+
view.camera.depth_value = 1e3
|
|
31
|
+
|
|
32
|
+
#Load an mesh file
|
|
33
|
+
mesh_path = load_data_file('spot/spot.obj.gz')
|
|
34
|
+
|
|
35
|
+
n_instances = 8
|
|
36
|
+
vertices, faces, normals, texcoords = read_mesh(mesh_path)
|
|
37
|
+
instance_colors = np.random.rand(n_instances, 3).astype(np.float32)
|
|
38
|
+
instance_positions = [[0,2,0], [2,0,0], [6,0,0], [3,4,1], [5,3,2], [6,2,1], [8,4,6], [1,2,6]]
|
|
39
|
+
instance_transforms = Rotation.identity(n_instances).as_matrix().astype(np.float32)
|
|
40
|
+
|
|
41
|
+
# Create a colored `MeshVisual`.
|
|
42
|
+
mesh = InstancedMesh(
|
|
43
|
+
vertices,
|
|
44
|
+
faces,
|
|
45
|
+
instance_colors=instance_colors,
|
|
46
|
+
instance_positions=instance_positions,
|
|
47
|
+
instance_transforms=instance_transforms,
|
|
48
|
+
parent=view.scene,
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
scene.visuals.XYZAxis(parent=view.scene)
|
|
52
|
+
mesh.interactive = True
|
|
53
|
+
|
|
54
|
+
@canvas.events.mouse_press.connect
|
|
55
|
+
def on_mouse_press(event):
|
|
56
|
+
clicked_mesh = canvas.visual_at(event.pos)
|
|
57
|
+
if isinstance(clicked_mesh, InstancedMesh):
|
|
58
|
+
pos1, min, min_pos = get_view_axis_in_scene_coordinates(
|
|
59
|
+
event.pos, clicked_mesh
|
|
60
|
+
)
|
|
61
|
+
instance_pos = clicked_mesh.instance_positions[min_pos]
|
|
62
|
+
print(f"visual at : {clicked_mesh}")
|
|
63
|
+
print(f"event.pos : {event.pos}")
|
|
64
|
+
print(f"min distance : {min} and min_pos : {instance_pos}")
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def get_view_axis_in_scene_coordinates(pos, mesh):
|
|
69
|
+
event_pos = np.array([pos[0], pos[1], 0, 1])
|
|
70
|
+
instances_on_canvas = []
|
|
71
|
+
# Translate each position to corresponding 2d canvas coordinates
|
|
72
|
+
for instance in mesh.instance_positions:
|
|
73
|
+
on_canvas = mesh.get_transform(map_from="visual", map_to="canvas").map(instance)
|
|
74
|
+
on_canvas /= on_canvas[3:]
|
|
75
|
+
instances_on_canvas.append(on_canvas)
|
|
76
|
+
|
|
77
|
+
min = 10000
|
|
78
|
+
min_pos = None
|
|
79
|
+
# Find the closest position to the clicked position
|
|
80
|
+
for i, instance_pos in enumerate(instances_on_canvas):
|
|
81
|
+
# Not minding z axis
|
|
82
|
+
temp_min = np.linalg.norm(
|
|
83
|
+
np.array(event_pos[:2]) - np.array(instance_pos[:2])
|
|
84
|
+
)
|
|
85
|
+
if temp_min < min:
|
|
86
|
+
min = temp_min
|
|
87
|
+
min_pos = i
|
|
88
|
+
|
|
89
|
+
return instances_on_canvas, min, min_pos
|
|
90
|
+
|
|
91
|
+
canvas.show()
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
if __name__ == "__main__":
|
|
95
|
+
print(__doc__)
|
|
96
|
+
app.run()
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = [
|
|
3
|
+
"setuptools>=69.4.0",
|
|
4
|
+
# see https://numpy.org/devdocs/dev/depending_on_numpy.html#numpy-2-0-specific-advice
|
|
5
|
+
"numpy>=2.0.0",
|
|
6
|
+
"setuptools_scm[toml]>=8.1",
|
|
7
|
+
"Cython>=3.0.0"
|
|
8
|
+
]
|
|
9
|
+
|
|
10
|
+
[tools.setuptools_scm]
|
|
11
|
+
write_to = "vispy/version.py"
|
|
12
|
+
local_scheme = "dirty-tag"
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
[tool.cibuildwheel]
|
|
16
|
+
skip = "pp* *-win32 *-manylinux_i686 *-musllinux*"
|
|
17
|
+
test-command = "python -c \"import vispy; vispy.test('nobackend')\""
|
|
18
|
+
test-extras = ["test"]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
[tool.cibuildwheel.linux]
|
|
22
|
+
before-all = [
|
|
23
|
+
"yum install -y fontconfig || apk add fontconfig-dev jpeg-dev; pip install freetype-py",
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
[tool.cibuildwheel.windows]
|
|
27
|
+
environment = {FREETYPEPY_BUNDLE_FT=1}
|
|
@@ -114,6 +114,7 @@ setup(
|
|
|
114
114
|
'sphinx-gallery', 'myst-parser', 'pillow', 'pytest',
|
|
115
115
|
'pyopengl'],
|
|
116
116
|
'io': ['meshio', 'Pillow'],
|
|
117
|
+
'test': ['pytest', 'pytest-sugar', 'meshio', 'pillow', 'sphinx_gallery', 'imageio']
|
|
117
118
|
},
|
|
118
119
|
packages=find_packages(exclude=['make']),
|
|
119
120
|
ext_modules=cythonize(extensions, language_level=3),
|
|
@@ -493,41 +493,57 @@ class QtBaseCanvasBackend(BaseCanvasBackend):
|
|
|
493
493
|
def mousePressEvent(self, ev):
|
|
494
494
|
if self._vispy_canvas is None:
|
|
495
495
|
return
|
|
496
|
-
self._vispy_mouse_press(
|
|
496
|
+
vispy_event = self._vispy_mouse_press(
|
|
497
497
|
native=ev,
|
|
498
498
|
pos=_get_event_xy(ev),
|
|
499
499
|
button=BUTTONMAP.get(ev.button(), 0),
|
|
500
500
|
modifiers=self._modifiers(ev),
|
|
501
501
|
)
|
|
502
|
+
# If vispy did not handle the event, clear the accept parameter of the qt event
|
|
503
|
+
if not vispy_event.handled:
|
|
504
|
+
ev.ignore()
|
|
502
505
|
|
|
503
506
|
def mouseReleaseEvent(self, ev):
|
|
504
507
|
if self._vispy_canvas is None:
|
|
505
508
|
return
|
|
506
|
-
self._vispy_mouse_release(
|
|
509
|
+
vispy_event = self._vispy_mouse_release(
|
|
507
510
|
native=ev,
|
|
508
511
|
pos=_get_event_xy(ev),
|
|
509
512
|
button=BUTTONMAP[ev.button()],
|
|
510
513
|
modifiers=self._modifiers(ev),
|
|
511
514
|
)
|
|
515
|
+
# If vispy did not handle the event, clear the accept parameter of the qt event
|
|
516
|
+
if not vispy_event.handled:
|
|
517
|
+
ev.ignore()
|
|
512
518
|
|
|
513
519
|
def mouseDoubleClickEvent(self, ev):
|
|
514
520
|
if self._vispy_canvas is None:
|
|
515
521
|
return
|
|
516
|
-
self._vispy_mouse_double_click(
|
|
522
|
+
vispy_event = self._vispy_mouse_double_click(
|
|
517
523
|
native=ev,
|
|
518
524
|
pos=_get_event_xy(ev),
|
|
519
525
|
button=BUTTONMAP.get(ev.button(), 0),
|
|
520
526
|
modifiers=self._modifiers(ev),
|
|
521
527
|
)
|
|
528
|
+
# If vispy did not handle the event, clear the accept parameter of the qt event
|
|
529
|
+
if not vispy_event.handled:
|
|
530
|
+
ev.ignore()
|
|
522
531
|
|
|
523
532
|
def mouseMoveEvent(self, ev):
|
|
524
533
|
if self._vispy_canvas is None:
|
|
525
534
|
return
|
|
526
|
-
|
|
535
|
+
# NB ignores events, returns None for events in quick succession
|
|
536
|
+
vispy_event = self._vispy_mouse_move(
|
|
527
537
|
native=ev,
|
|
528
538
|
pos=_get_event_xy(ev),
|
|
529
539
|
modifiers=self._modifiers(ev),
|
|
530
540
|
)
|
|
541
|
+
# If vispy did not handle the event, clear the accept parameter of the qt event
|
|
542
|
+
# Note that the handler can return None, this is equivalent to not handling the event
|
|
543
|
+
if vispy_event is None or not vispy_event.handled:
|
|
544
|
+
# Theoretically, a parent widget might want to listen to all of
|
|
545
|
+
# the mouse move events, including those that VisPy ignores
|
|
546
|
+
ev.ignore()
|
|
531
547
|
|
|
532
548
|
def wheelEvent(self, ev):
|
|
533
549
|
if self._vispy_canvas is None:
|
|
@@ -544,12 +560,15 @@ class QtBaseCanvasBackend(BaseCanvasBackend):
|
|
|
544
560
|
delta = ev.angleDelta()
|
|
545
561
|
deltax, deltay = delta.x() / 120.0, delta.y() / 120.0
|
|
546
562
|
# Emit event
|
|
547
|
-
self._vispy_canvas.events.mouse_wheel(
|
|
563
|
+
vispy_event = self._vispy_canvas.events.mouse_wheel(
|
|
548
564
|
native=ev,
|
|
549
565
|
delta=(deltax, deltay),
|
|
550
566
|
pos=_get_event_xy(ev),
|
|
551
567
|
modifiers=self._modifiers(ev),
|
|
552
568
|
)
|
|
569
|
+
# If vispy did not handle the event, clear the accept parameter of the qt event
|
|
570
|
+
if not vispy_event.handled:
|
|
571
|
+
ev.ignore()
|
|
553
572
|
|
|
554
573
|
def keyPressEvent(self, ev):
|
|
555
574
|
self._keyEvent(self._vispy_canvas.events.key_press, ev)
|
|
@@ -571,17 +590,20 @@ class QtBaseCanvasBackend(BaseCanvasBackend):
|
|
|
571
590
|
pos = self.mapFromGlobal(ev.globalPos())
|
|
572
591
|
pos = pos.x(), pos.y()
|
|
573
592
|
|
|
593
|
+
vispy_event = None
|
|
574
594
|
if t == QtCore.Qt.NativeGestureType.BeginNativeGesture:
|
|
575
|
-
self._vispy_canvas.events.touch(
|
|
595
|
+
vispy_event = self._vispy_canvas.events.touch(
|
|
576
596
|
type='gesture_begin',
|
|
577
597
|
pos=_get_event_xy(ev),
|
|
598
|
+
modifiers=self._modifiers(ev),
|
|
578
599
|
)
|
|
579
600
|
elif t == QtCore.Qt.NativeGestureType.EndNativeGesture:
|
|
580
601
|
self._native_touch_total_rotation = []
|
|
581
602
|
self._native_touch_total_scale = []
|
|
582
|
-
self._vispy_canvas.events.touch(
|
|
603
|
+
vispy_event = self._vispy_canvas.events.touch(
|
|
583
604
|
type='gesture_end',
|
|
584
605
|
pos=_get_event_xy(ev),
|
|
606
|
+
modifiers=self._modifiers(ev),
|
|
585
607
|
)
|
|
586
608
|
elif t == QtCore.Qt.NativeGestureType.RotateNativeGesture:
|
|
587
609
|
angle = ev.value()
|
|
@@ -592,12 +614,13 @@ class QtBaseCanvasBackend(BaseCanvasBackend):
|
|
|
592
614
|
)
|
|
593
615
|
self._native_gesture_rotation_values.append(angle)
|
|
594
616
|
total_rotation_angle = math.fsum(self._native_gesture_rotation_values)
|
|
595
|
-
self._vispy_canvas.events.touch(
|
|
617
|
+
vispy_event = self._vispy_canvas.events.touch(
|
|
596
618
|
type="gesture_rotate",
|
|
597
619
|
pos=pos,
|
|
598
620
|
rotation=angle,
|
|
599
621
|
last_rotation=last_angle,
|
|
600
622
|
total_rotation_angle=total_rotation_angle,
|
|
623
|
+
modifiers=self._modifiers(ev),
|
|
601
624
|
)
|
|
602
625
|
elif t == QtCore.Qt.NativeGestureType.ZoomNativeGesture:
|
|
603
626
|
scale = ev.value()
|
|
@@ -608,12 +631,13 @@ class QtBaseCanvasBackend(BaseCanvasBackend):
|
|
|
608
631
|
)
|
|
609
632
|
self._native_gesture_scale_values.append(scale)
|
|
610
633
|
total_scale_factor = math.fsum(self._native_gesture_scale_values)
|
|
611
|
-
self._vispy_canvas.events.touch(
|
|
634
|
+
vispy_event = self._vispy_canvas.events.touch(
|
|
612
635
|
type="gesture_zoom",
|
|
613
636
|
pos=pos,
|
|
614
637
|
last_scale=last_scale,
|
|
615
638
|
scale=scale,
|
|
616
639
|
total_scale_factor=total_scale_factor,
|
|
640
|
+
modifiers=self._modifiers(ev),
|
|
617
641
|
)
|
|
618
642
|
# QtCore.Qt.NativeGestureType.PanNativeGesture
|
|
619
643
|
# Qt6 docs seem to imply this is only supported on Wayland but I have
|
|
@@ -622,6 +646,11 @@ class QtBaseCanvasBackend(BaseCanvasBackend):
|
|
|
622
646
|
# On macOS, more fingers are usually swallowed by the OS (by spaces,
|
|
623
647
|
# mission control, etc.).
|
|
624
648
|
|
|
649
|
+
# If vispy did not handle the event, clear the accept parameter of the qt event
|
|
650
|
+
# Note that some handlers return None, this is equivalent to not handling the event
|
|
651
|
+
if vispy_event is None or not vispy_event.handled:
|
|
652
|
+
ev.ignore()
|
|
653
|
+
|
|
625
654
|
def event(self, ev):
|
|
626
655
|
out = super(QtBaseCanvasBackend, self).event(ev)
|
|
627
656
|
|
|
@@ -644,7 +673,10 @@ class QtBaseCanvasBackend(BaseCanvasBackend):
|
|
|
644
673
|
else:
|
|
645
674
|
key = None
|
|
646
675
|
mod = self._modifiers(ev)
|
|
647
|
-
func(native=ev, key=key, text=str(ev.text()), modifiers=mod)
|
|
676
|
+
vispy_event = func(native=ev, key=key, text=str(ev.text()), modifiers=mod)
|
|
677
|
+
# If vispy did not handle the event, clear the accept parameter of the qt event
|
|
678
|
+
if not vispy_event.handled:
|
|
679
|
+
ev.ignore()
|
|
648
680
|
|
|
649
681
|
def _modifiers(self, event):
|
|
650
682
|
# Convert the QT modifier state into a tuple of active modifier keys.
|
|
@@ -771,7 +803,10 @@ class CanvasBackendEgl(QtBaseCanvasBackend, QWidget):
|
|
|
771
803
|
|
|
772
804
|
def resizeEvent(self, event):
|
|
773
805
|
w, h = event.size().width(), event.size().height()
|
|
774
|
-
self._vispy_canvas.events.resize(size=(w, h))
|
|
806
|
+
vispy_event = self._vispy_canvas.events.resize(size=(w, h))
|
|
807
|
+
# If vispy did not handle the event, clear the accept parameter of the qt event
|
|
808
|
+
if not vispy_event.handled:
|
|
809
|
+
event.ignore()
|
|
775
810
|
|
|
776
811
|
def paintEvent(self, event):
|
|
777
812
|
self._vispy_canvas.events.draw(region=None)
|