pyglet 2.1.5__tar.gz → 2.1.6__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.
- {pyglet-2.1.5 → pyglet-2.1.6}/PKG-INFO +1 -1
- {pyglet-2.1.5 → pyglet-2.1.6}/RELEASE_NOTES +9 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/opengl/compute_shader.py +5 -6
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/__init__.py +1 -1
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/graphics/shader.py +34 -20
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/shapes.py +24 -23
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/graphics/test_shaders.py +5 -1
- {pyglet-2.1.5 → pyglet-2.1.6}/.coveragerc +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/.github/workflows/codeql.yml +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/.github/workflows/unittests.yml +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/.gitignore +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/.readthedocs.yml +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/LICENSE +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/MANIFEST.in +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/README.md +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/contrib/aseprite_codec/README +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/contrib/aseprite_codec/asedemo.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/contrib/aseprite_codec/aseprite.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/contrib/aseprite_codec/running.ase +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/contrib/logo3d/logo3d.jpg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/contrib/logo3d/logo3d.obj.zip +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/contrib/logo3d/logo3d.wings +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/contrib/qt_sprite_preview.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/contrib/scenemanager.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/contrib/toys/follow_mouse.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/Makefile +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/_static/css/custom.css +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/_static/favicon.ico +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/_static/logo.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/_static/logo5.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/_static/relatedlogo.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/conf.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/external_resources.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/index.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/internal/contributing.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/internal/dist.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/internal/doc.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/internal/generated.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/internal/gl.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/internal/media_logging_manual.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/internal/media_manual.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/internal/testing.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/internal/virtualenv.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/internal/wraptypes-class.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/internal/wraptypes.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/make.bat +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/app.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/clock.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/customtypes.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/display.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/event.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/font.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/gl.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/graphics/allocation.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/graphics/index.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/graphics/shader.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/graphics/vertexbuffer.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/graphics/vertexdomain.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/gui.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/image/animation.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/image/atlas.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/image/buffer.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/image/index.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/info.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/input.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/math.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/media.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/media_synthesis.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/models.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/pyglet.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/resource.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/shapes.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/sprite.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/text/caret.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/text/document.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/text/index.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/text/layout.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/window.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/window_key.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/modules/window_mouse.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/context.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/debug.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/eventloop.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/events.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/examplegame.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/gl.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/gui.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/image.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/abstract_image.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/abstract_image.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/buffer_image.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/buffer_image.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/context_flow.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/context_flow.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_mac_default.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_mac_no.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_mac_text.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_default.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_hand.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_help.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_no.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_size.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_text.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_wait.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/explosion.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/font_metrics.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/font_metrics.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/image_classes.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/image_classes.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/image_grid.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/image_grid.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/image_sequence.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/image_sequence.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/mouse_coordinates.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/screens.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/screens.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/text_classes.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/text_classes.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/window_location.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/window_location.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/window_osx_borderless.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/window_osx_default.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/window_osx_dialog.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/window_osx_tool.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/window_xp_default.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/window_xp_dialog.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/window_xp_overlay.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/window_xp_tool.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/img/window_xp_transparent.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/input.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/installation.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/keyboard.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/math.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/media.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/migration.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/models.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/mouse.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/opengles.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/options.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/quickstart.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/rendering.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/resources.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/shapes.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/text.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/time.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/programming_guide/windowing.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/doc/requirements.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/clipboard.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/dpi_scaled_window.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/events/events_key_state_handler.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/events/register_event_type.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/events/window_events.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/events/window_platform_event.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/file_dialog.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/resources/asteroid.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/resources/bullet.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/resources/bullet.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/resources/engine_flame.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/resources/player.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version1/asteroid.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version1/game/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version1/game/load.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version1/game/resources.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version2/asteroid.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version2/game/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version2/game/load.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version2/game/physicalobject.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version2/game/player.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version2/game/resources.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version3/asteroid.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version3/game/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version3/game/load.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version3/game/physicalobject.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version3/game/player.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version3/game/resources.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version3/game/util.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version4/asteroid.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version4/game/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version4/game/asteroid.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version4/game/bullet.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version4/game/load.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version4/game/physicalobject.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version4/game/player.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version4/game/resources.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version4/game/util.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version5/asteroid.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version5/game/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version5/game/asteroid.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version5/game/bullet.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version5/game/load.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version5/game/physicalobject.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version5/game/player.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version5/game/resources.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/game/version5/game/util.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/graphics/image_convert.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/graphics/image_display.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/gui/bar.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/gui/button_hover.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/gui/button_pressed.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/gui/button_unpressed.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/gui/knob.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/gui/widgets.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/hello_world.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/input/apple_remote.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/input/controller.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/input/input.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/input/joystick.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/input/tablet.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/media_info.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/media_player.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/noisy/README +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/noisy/ball.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/noisy/ball.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/noisy/noisy.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/soundspace/README +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/soundspace/reader.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/soundspace/res/bass.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/soundspace/res/drums.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/soundspace/res/guitar.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/soundspace/res/piano.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/soundspace/res/space.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/soundspace/soundspace.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/synthesizer.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/media/video.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/model/box.mtl +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/model/box.obj +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/model/fpscamera.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/model/logo3d.mtl +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/model/logo3d.obj +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/model/model.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/model/pyglet.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/opengl/egl_context.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/opengl/minimal_shader.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/opengl/opengl_context.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/opengl/opengl_core.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/opengl/opengl_scissor.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/opengl/pyglet.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/opengl/torus.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/programming_guide/animation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/programming_guide/dinosaur.gif +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/programming_guide/events.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/programming_guide/hello_world.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/programming_guide/image_viewer.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/programming_guide/kitten.jpg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/programming_guide/window_subclass.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/resources/Brick1Blue.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/resources/Brick1Crack3.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/resources/Brick1Gray.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/resources/kitten.jpg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/resources/pyglet.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/shapes.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/sprite/depth_sprite.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/sprite/display_sprite.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/sprite/multi_texture_sprite.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/sprite/sprite_batching.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/text/advanced_font.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/text/html_label.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/text/pyglet.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/text/text_input.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/text/user_bitmap_font.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/timer.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/window/camera.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/window/camera_group.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/window/fixed_resolution.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/window/fps_change.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/window/multiple_windows.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/window/overlay_window.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/examples/window/transparent_window.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/dist_field/README +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/dist_field/genfield.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/dist_field/py.df.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/dist_field/py.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/dist_field/renderfield.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/flaccodec.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/hello_world.svg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/instancing/sprite_instance.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/instancing/sprite_instance_object.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/multitexture_sprite/multitexturesprite.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/spritebenchmark.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/svg_test.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/wayland/gbm_egl_context.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/experimental/win32priority.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/make.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/__init__.pyi +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/app/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/app/base.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/app/cocoa.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/app/win32.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/app/xlib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/clock.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/customtypes.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/display/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/display/__init__.pyi +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/display/base.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/display/cocoa.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/display/headless.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/display/win32.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/display/xlib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/display/xlib_vidmoderestore.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/event.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/experimental/README.md +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/experimental/geoshader_sprite.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/experimental/hidraw.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/experimental/jobs.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/experimental/multitexture_sprite.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/experimental/net.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/experimental/particles.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/extlibs/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/extlibs/earcut.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/extlibs/png.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/base.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/dwrite/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/dwrite/d2d1_lib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/dwrite/d2d1_types_lib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/dwrite/dwrite_lib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/fontconfig.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/freetype.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/freetype_lib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/harfbuzz/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/harfbuzz/harfbuzz_lib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/quartz.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/ttf.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/user.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/font/win32.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/agl.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/base.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/cocoa.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/gl.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/gl_compat.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/gl_info.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/glx.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/glx_info.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/glxext_arb.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/glxext_mesa.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/glxext_nv.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/headless.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/lib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/lib_agl.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/lib_glx.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/lib_wgl.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/wgl.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/wgl_info.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/wglext_arb.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/wglext_nv.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/win32.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gl/xlib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/graphics/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/graphics/allocation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/graphics/instance.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/graphics/vertexarray.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/graphics/vertexbuffer.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/graphics/vertexdomain.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gui/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gui/frame.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gui/ninepatch.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/gui/widgets.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/animation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/atlas.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/buffer.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/codecs/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/codecs/bmp.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/codecs/dds.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/codecs/gdiplus.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/codecs/gif.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/codecs/pil.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/codecs/png.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/codecs/quartz.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/codecs/s3tc.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/codecs/wic.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/image/codecs/wincodec_lib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/info.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/base.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/controller.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/controller_db.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/linux/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/linux/evdev.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/linux/evdev_constants.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/linux/x11_xinput.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/macos/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/macos/darwin_hid.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/win32/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/win32/directinput.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/win32/wintab.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/input/win32/xinput.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/lib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/darwin/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/darwin/cocoapy/cocoalibs.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/darwin/coreaudio.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/darwin/quartzkey.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/egl/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/egl/egl.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/egl/eglext.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/egl/lib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/ioctl.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/wayland/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/wayland/gbm.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/wayland/xkbcommon.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/win32/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/win32/com.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/win32/constants.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/win32/context_managers.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/win32/dinput.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/win32/libwintab.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/win32/types.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/win32/winkey.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/x11/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/x11/cursorfont.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/x11/xf86vmode.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/x11/xinerama.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/x11/xinput.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/x11/xlib.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/libs/x11/xsync.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/math.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/buffered_logger.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/base.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/coreaudio.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/ffmpeg.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/ffmpeg_lib/compat.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/gstreamer.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/pyogg.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/wave.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/codecs/wmf.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/devices/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/devices/base.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/devices/win32.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/base.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/directsound/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/directsound/adaptation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/directsound/exceptions.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/directsound/interface.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/directsound/lib_dsound.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/listener.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/openal/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/openal/adaptation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/openal/interface.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/openal/lib_alc.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/openal/lib_openal.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/pulse/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/pulse/adaptation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/pulse/interface.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/silent/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/silent/adaptation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/xaudio2/adaptation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/xaudio2/interface.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/exceptions.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/instrumentation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/player.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/player_worker_thread.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/media/synthesis.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/model/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/model/codecs/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/model/codecs/base.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/model/codecs/gltf.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/model/codecs/obj.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/py.typed +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/resource.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/sprite.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/caret.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/document.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/formats/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/formats/attributed.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/formats/html.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/formats/plaintext.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/formats/structured.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/layout/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/layout/base.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/layout/incremental.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/layout/scrolling.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/text/runlist.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/util.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/cocoa/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/cocoa/pyglet_delegate.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/cocoa/pyglet_textview.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/cocoa/pyglet_view.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/cocoa/pyglet_window.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/cocoa/systemcursor.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/event.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/headless/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/key.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/mouse.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/win32/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyglet/window/xlib/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pyproject.toml +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/pytest.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/setup.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/annotations.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/base/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/base/data.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/base/event_loop.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/base/interactive.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/base/performance.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/conftest.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/fonts/README +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/fonts/action_man.ttf +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/fonts/action_man_atlas.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/fonts/action_man_bold.ttf +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/fonts/action_man_italic.ttf +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/8bpp.gif +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/cursor.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/dinosaur.gif +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/gdk_close.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/grey_background.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/icon1.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/icon_size1.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/icon_size2.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/icon_size3.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/icon_size4.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/icon_size5.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/l.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/la.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/multitexture.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgb.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgb_16bpp.bmp +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgb_1bpp.bmp +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgb_24bpp.bmp +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgb_32bpp.bmp +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgb_4bpp.bmp +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgb_8bpp.bmp +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgb_8bpp.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgb_8bpp_trans.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgb_dxt1.dds +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgba.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgba_32bpp.bmp +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgba_dxt1.dds +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgba_dxt3.dds +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/rgba_dxt5.dds +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/README +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/alert.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/login.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/logout.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/receive.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/send.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/models/logo3d.mtl +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/data/models/logo3d.obj +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/app/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/app/test_eventloop.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/conftest.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/font/test_fontconfig.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/font/test_freetype_face.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/graphics/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/graphics/test_allocation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/graphics/test_batch_migration.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/image/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/image/test_gdkpixbuf2.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/image/test_imagegrid.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/image/test_texture3d.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/media/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/media/mock_player.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/media/test_directsound.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/media/test_driver.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/media/test_openal.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/media/test_player.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/media/test_pulse.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/model/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/model/test_loading.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/platform/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/platform/test_win_context_managers.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/platform/test_win_multicore_clock.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/resource/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/resource/dir1/f2.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/resource/dir1/res.zip +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/resource/dir2/f6.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/resource/f1.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/resource/rgbm.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/resource/test_resource_image_loading.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/resource/test_resource_loading.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/test_integrations.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/text/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/text/test_empty_document.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/text/test_label_creation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/text/test_layout_creation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/window/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/window/test_context_share.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/window/test_event_sequence.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/integration/window/test_window_caption.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/conftest.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/image/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/image/test_image.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/media/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/media/test_player.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/screenshots/committed/README +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/screenshots/session/README +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/shapes/test_shapes.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/test_interactive_test_base.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/text/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/text/test_caret_color.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/text/test_content_valign.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/text/test_html.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/text/test_inline_elements.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/text/test_inline_elements_style_change.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/text/test_multiline_wrap.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/text/test_plain.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/text/test_style.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/window/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/window/test_window_events.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/window/test_window_fullscreen.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/window/test_window_modes.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/window/test_window_multisample.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/window/test_window_open.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/window/test_window_settings.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/window/test_window_styles.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/window/window_util.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/interactive/windowed_test_base.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/requirements.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/conftest.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/math/test_mat.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/math/test_quat.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/math/test_vec2.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/math/test_vec3.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/math/test_vec4.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/media/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/media/test_listener.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/media/test_player.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/media/test_sources.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/media/test_synthesis.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/platform/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/platform/test_mac_objc.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/shader/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/shader/conftest.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/shader/test_shader.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/shapes/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/shapes/conftest.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/shapes/test_shapes.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/test_atlas.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/test_clock.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/test_clock_freq.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/test_events.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/test_font.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/test_input.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/test_resource_path.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/test_sprite.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/test_text.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/text/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/text/test_caret.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tests/unit/text/test_layout.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/al_info.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/bokeh_timeline.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/compare.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/configure.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/extractors.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/fs.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/mp.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/mpexceptions.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/playmany.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/readme_run_tests.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/report.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/reports.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/retry_crashed.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/run_test_suite.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/summarize.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/test_instrumentation.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/ffmpeg/timeline.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/gencontrollerdb.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/gengl.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/genwrappers.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/gl.template +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/gl.xml +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/gl_info.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/inspect_font.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/requirements.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/wgl.h +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/wraptypes/__init__.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/wraptypes/cparser.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/wraptypes/ctypesparser.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/wraptypes/lex.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/wraptypes/preprocessor.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/wraptypes/wrap.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/tools/wraptypes/yacc.py +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/LICENSE.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/README.rst +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/assets/favicon.ico +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/assets/static/css/example-custom-styles.css +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/assets/static/images/pyglet.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/content/404.html/contents.lr +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/content/404.html/ngc-5793.jpg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/content/authors/benjamin/contents.lr +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/content/authors/benjamin/pyglet.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/content/authors/contents.lr +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/content/blog/contents.lr +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/content/blog/welcome-blog/contents.lr +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/content/contents.lr +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/content/eclipse.jpg +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/pyglet.lektorproject +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/AUTHORS.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/CHANGELOG.md +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/LICENSE.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/NOTICE.txt +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/README.md +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/images/blog-index.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/images/full-blog.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/images/full-page.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/images/gallery-404.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/models/404.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/models/author.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/models/authors.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/models/blog-post.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/models/blog.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/models/page.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/models/single-layout.ini +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/404.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/author.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/authors.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/blog-post.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/blog.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/layout.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/none.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/page.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/templates/single-layout.html +0 -0
- {pyglet-2.1.5 → pyglet-2.1.6}/website/themes/lektor-icon/theme.ini +0 -0
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
pyglet 2.1.6
|
|
2
|
+
|
|
3
|
+
Bugfixes
|
|
4
|
+
--------
|
|
5
|
+
shapes: revert color -> colors in default shader.
|
|
6
|
+
shaders: fix UniformBlock introspection for creating an array of single types, like float.
|
|
7
|
+
shaders: in compute_shader example, fix incorrect assumption that bind_image_texture used uniform location.
|
|
8
|
+
|
|
9
|
+
|
|
1
10
|
pyglet 2.1.5
|
|
2
11
|
|
|
3
12
|
Changes
|
|
@@ -30,12 +30,11 @@ program = pyglet.graphics.shader.ComputeShaderProgram(compute_src)
|
|
|
30
30
|
# Create an RGBA32F Texture that we can bind to the ShaderProgram.
|
|
31
31
|
out_texture = pyglet.image.Texture.create(540, 540, internalformat=GL_RGBA32F)
|
|
32
32
|
|
|
33
|
-
#
|
|
34
|
-
#
|
|
35
|
-
#
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
out_texture.bind_image_texture(unit=uniform_location)
|
|
33
|
+
# The image binding unit in the shader needs to be set for the texture.
|
|
34
|
+
# The uniform set for the image can be used. In most cases this will be 0 unless explicitly
|
|
35
|
+
# changed via layout qualifier of layout(binding=X, rgba32f)
|
|
36
|
+
output_binding = program['img_output']
|
|
37
|
+
out_texture.bind_image_texture(unit=output_binding)
|
|
39
38
|
|
|
40
39
|
|
|
41
40
|
with program:
|
|
@@ -3,6 +3,7 @@ from __future__ import annotations
|
|
|
3
3
|
import re
|
|
4
4
|
import warnings
|
|
5
5
|
import weakref
|
|
6
|
+
from _ctypes import _Pointer, _SimpleCData
|
|
6
7
|
from collections import defaultdict
|
|
7
8
|
from ctypes import (
|
|
8
9
|
POINTER,
|
|
@@ -29,8 +30,6 @@ from ctypes import (
|
|
|
29
30
|
)
|
|
30
31
|
from typing import TYPE_CHECKING, Any, Callable, Literal, Sequence, Type, Union
|
|
31
32
|
|
|
32
|
-
from _ctypes import _Pointer, _SimpleCData
|
|
33
|
-
|
|
34
33
|
import pyglet
|
|
35
34
|
from pyglet.gl import Context, GLException, gl, gl_info
|
|
36
35
|
from pyglet.gl.gl import (
|
|
@@ -171,19 +170,19 @@ _uniform_setters: dict[int, tuple[GLDataType, GLFunc, GLFunc, int]] = {
|
|
|
171
170
|
# GL_FLOAT_MAT4x3: glUniformMatrix4x3fv, glProgramUniformMatrix4x3fv,
|
|
172
171
|
|
|
173
172
|
gl.GL_IMAGE_1D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
|
|
174
|
-
gl.GL_IMAGE_2D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv,
|
|
175
|
-
gl.GL_IMAGE_2D_RECT: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv,
|
|
176
|
-
gl.GL_IMAGE_3D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv,
|
|
173
|
+
gl.GL_IMAGE_2D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
|
|
174
|
+
gl.GL_IMAGE_2D_RECT: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
|
|
175
|
+
gl.GL_IMAGE_3D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
|
|
177
176
|
|
|
178
|
-
gl.GL_IMAGE_1D_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv,
|
|
179
|
-
gl.GL_IMAGE_2D_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv,
|
|
177
|
+
gl.GL_IMAGE_1D_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
|
|
178
|
+
gl.GL_IMAGE_2D_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
|
|
180
179
|
|
|
181
|
-
gl.GL_IMAGE_2D_MULTISAMPLE: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv,
|
|
182
|
-
gl.GL_IMAGE_2D_MULTISAMPLE_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv,
|
|
180
|
+
gl.GL_IMAGE_2D_MULTISAMPLE: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
|
|
181
|
+
gl.GL_IMAGE_2D_MULTISAMPLE_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
|
|
183
182
|
|
|
184
|
-
gl.GL_IMAGE_BUFFER: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv,
|
|
183
|
+
gl.GL_IMAGE_BUFFER: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
|
|
185
184
|
gl.GL_IMAGE_CUBE: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
|
|
186
|
-
gl.GL_IMAGE_CUBE_MAP_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv,
|
|
185
|
+
gl.GL_IMAGE_CUBE_MAP_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
|
|
187
186
|
}
|
|
188
187
|
|
|
189
188
|
_attribute_types: dict[int, tuple[int, str]] = {
|
|
@@ -332,8 +331,17 @@ class _UniformArray:
|
|
|
332
331
|
_ptr: CTypesPointer[GLDataType]
|
|
333
332
|
_idx_to_loc: dict[int, int]
|
|
334
333
|
|
|
335
|
-
__slots__ = (
|
|
336
|
-
|
|
334
|
+
__slots__ = (
|
|
335
|
+
'_c_array',
|
|
336
|
+
'_dsa',
|
|
337
|
+
'_gl_getter',
|
|
338
|
+
'_gl_setter',
|
|
339
|
+
'_gl_type',
|
|
340
|
+
'_idx_to_loc',
|
|
341
|
+
'_is_matrix',
|
|
342
|
+
'_ptr',
|
|
343
|
+
'_uniform',
|
|
344
|
+
)
|
|
337
345
|
|
|
338
346
|
def __init__(self, uniform: _Uniform, gl_getter: GLFunc, gl_setter: GLFunc, gl_type: GLDataType, is_matrix: bool,
|
|
339
347
|
dsa: bool) -> None:
|
|
@@ -362,7 +370,7 @@ class _UniformArray:
|
|
|
362
370
|
right location.
|
|
363
371
|
"""
|
|
364
372
|
loc = gl.glGetUniformLocation(self._uniform.program,
|
|
365
|
-
create_string_buffer(f"{self._uniform.name}[{index}]".encode(
|
|
373
|
+
create_string_buffer(f"{self._uniform.name}[{index}]".encode()))
|
|
366
374
|
return loc
|
|
367
375
|
|
|
368
376
|
def _get_array_loc(self, index: int) -> int:
|
|
@@ -471,7 +479,7 @@ class _Uniform:
|
|
|
471
479
|
get: Callable[[], Array[GLDataType] | GLDataType]
|
|
472
480
|
set: Callable[[float], None] | Callable[[Sequence], None]
|
|
473
481
|
|
|
474
|
-
__slots__ = '
|
|
482
|
+
__slots__ = 'count', 'get', 'length', 'location', 'name', 'program', 'set', 'size', 'type'
|
|
475
483
|
|
|
476
484
|
def __init__(self, program: int, name: str, uniform_type: int, size: int, location: int, dsa: bool) -> None:
|
|
477
485
|
self.name = name
|
|
@@ -662,7 +670,7 @@ class UniformBlock:
|
|
|
662
670
|
binding: int
|
|
663
671
|
uniforms: dict[int, tuple[str, GLDataType, int, int]]
|
|
664
672
|
view_cls: type[Structure] | None
|
|
665
|
-
__slots__ = '
|
|
673
|
+
__slots__ = 'binding', 'index', 'name', 'program', 'size', 'uniform_count', 'uniforms', 'view_cls'
|
|
666
674
|
|
|
667
675
|
def __init__(self, program: ShaderProgram, name: str, index: int, size: int, binding: int,
|
|
668
676
|
uniforms: dict[int, tuple[str, GLDataType, int, int]], uniform_count: int) -> None:
|
|
@@ -793,9 +801,15 @@ class UniformBlock:
|
|
|
793
801
|
if part_idx == len(parts) - 1: # The last part is the actual type
|
|
794
802
|
if u_size > 1:
|
|
795
803
|
# If size > 1, treat as an array of type
|
|
796
|
-
|
|
804
|
+
if length > 1:
|
|
805
|
+
current_structure[part_name] = (gl_type * length) * u_size
|
|
806
|
+
else:
|
|
807
|
+
current_structure[part_name] = gl_type * u_size
|
|
797
808
|
else:
|
|
798
|
-
|
|
809
|
+
if length > 1:
|
|
810
|
+
current_structure[part_name] = gl_type * length
|
|
811
|
+
else:
|
|
812
|
+
current_structure[part_name] = gl_type
|
|
799
813
|
|
|
800
814
|
offset_size = offsets[i + 1] - offsets[i]
|
|
801
815
|
c_type_size = sizeof(current_structure[part_name])
|
|
@@ -836,7 +850,7 @@ class UniformBufferObject:
|
|
|
836
850
|
_view_ptr: CTypesPointer[Structure]
|
|
837
851
|
binding: int
|
|
838
852
|
buffer: BufferObject
|
|
839
|
-
__slots__ = '
|
|
853
|
+
__slots__ = '_view_ptr', 'binding', 'buffer', 'view'
|
|
840
854
|
|
|
841
855
|
def __init__(self, view_class: type[Structure], buffer_size: int, binding: int) -> None:
|
|
842
856
|
"""Initialize the Uniform Buffer Object with the specified Structure."""
|
|
@@ -1267,7 +1281,7 @@ class ShaderProgram:
|
|
|
1267
1281
|
_uniforms: dict[str, _Uniform]
|
|
1268
1282
|
_uniform_blocks: dict[str, UniformBlock]
|
|
1269
1283
|
|
|
1270
|
-
__slots__ = '
|
|
1284
|
+
__slots__ = '__weakref__', '_attributes', '_context', '_id', '_uniform_blocks', '_uniforms'
|
|
1271
1285
|
|
|
1272
1286
|
def __init__(self, *shaders: Shader) -> None:
|
|
1273
1287
|
"""Initialize the ShaderProgram using at least two Shader instances."""
|
|
@@ -82,12 +82,13 @@ if TYPE_CHECKING:
|
|
|
82
82
|
vertex_source = """#version 150 core
|
|
83
83
|
in vec2 position;
|
|
84
84
|
in vec2 translation;
|
|
85
|
-
in vec4
|
|
85
|
+
in vec4 colors;
|
|
86
86
|
in float zposition;
|
|
87
|
+
|
|
87
88
|
in float rotation;
|
|
88
89
|
|
|
89
90
|
|
|
90
|
-
out vec4
|
|
91
|
+
out vec4 vertex_colors;
|
|
91
92
|
|
|
92
93
|
uniform WindowBlock
|
|
93
94
|
{
|
|
@@ -108,17 +109,17 @@ vertex_source = """#version 150 core
|
|
|
108
109
|
m_rotation[1][1] = cos(-radians(rotation));
|
|
109
110
|
|
|
110
111
|
gl_Position = window.projection * window.view * m_translate * m_rotation * vec4(position, zposition, 1.0);
|
|
111
|
-
|
|
112
|
+
vertex_colors = colors;
|
|
112
113
|
}
|
|
113
114
|
"""
|
|
114
115
|
|
|
115
116
|
fragment_source = """#version 150 core
|
|
116
|
-
in vec4
|
|
117
|
+
in vec4 vertex_colors;
|
|
117
118
|
out vec4 final_color;
|
|
118
119
|
|
|
119
120
|
void main()
|
|
120
121
|
{
|
|
121
|
-
final_color =
|
|
122
|
+
final_color = vertex_colors;
|
|
122
123
|
// No GL_ALPHA_TEST in core, use shader to discard.
|
|
123
124
|
if(final_color.a < 0.01){
|
|
124
125
|
discard;
|
|
@@ -376,12 +377,12 @@ class ShapeBase(ABC):
|
|
|
376
377
|
def _update_color(self) -> None:
|
|
377
378
|
"""Send the new colors for each vertex to the GPU.
|
|
378
379
|
|
|
379
|
-
This method must set the contents of `self._vertex_list.
|
|
380
|
+
This method must set the contents of `self._vertex_list.colors`
|
|
380
381
|
using a list or tuple that contains the RGBA color components
|
|
381
382
|
for each vertex in the shape. This is usually done by repeating
|
|
382
383
|
`self._rgba` for each vertex.
|
|
383
384
|
"""
|
|
384
|
-
self._vertex_list.
|
|
385
|
+
self._vertex_list.colors[:] = self._rgba * self._num_verts
|
|
385
386
|
|
|
386
387
|
def _update_translation(self) -> None:
|
|
387
388
|
self._vertex_list.translation[:] = (self._x, self._y) * self._num_verts
|
|
@@ -862,7 +863,7 @@ class Arc(ShapeBase):
|
|
|
862
863
|
self._vertex_list = self._program.vertex_list(
|
|
863
864
|
self._num_verts, self._draw_mode, self._batch, self._group,
|
|
864
865
|
position=('f', self._get_vertices()),
|
|
865
|
-
|
|
866
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
866
867
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
867
868
|
|
|
868
869
|
def _get_vertices(self) -> Sequence[float]:
|
|
@@ -1032,7 +1033,7 @@ class BezierCurve(ShapeBase):
|
|
|
1032
1033
|
self._vertex_list = self._program.vertex_list(
|
|
1033
1034
|
self._num_verts, self._draw_mode, self._batch, self._group,
|
|
1034
1035
|
position=('f', self._get_vertices()),
|
|
1035
|
-
|
|
1036
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
1036
1037
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
1037
1038
|
|
|
1038
1039
|
def _get_vertices(self) -> Sequence[float]:
|
|
@@ -1169,7 +1170,7 @@ class Circle(ShapeBase):
|
|
|
1169
1170
|
self._vertex_list = self._program.vertex_list(
|
|
1170
1171
|
self._segments * 3, self._draw_mode, self._batch, self._group,
|
|
1171
1172
|
position=('f', self._get_vertices()),
|
|
1172
|
-
|
|
1173
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
1173
1174
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
1174
1175
|
|
|
1175
1176
|
def _get_vertices(self) -> Sequence[float]:
|
|
@@ -1287,7 +1288,7 @@ class Ellipse(ShapeBase):
|
|
|
1287
1288
|
self._vertex_list = self._program.vertex_list(
|
|
1288
1289
|
self._segments * 3, self._draw_mode, self._batch, self._group,
|
|
1289
1290
|
position=('f', self._get_vertices()),
|
|
1290
|
-
|
|
1291
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
1291
1292
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
1292
1293
|
|
|
1293
1294
|
def _get_vertices(self) -> Sequence[float]:
|
|
@@ -1420,7 +1421,7 @@ class Sector(ShapeBase):
|
|
|
1420
1421
|
self._vertex_list = self._program.vertex_list(
|
|
1421
1422
|
self._num_verts, self._draw_mode, self._batch, self._group,
|
|
1422
1423
|
position=('f', self._get_vertices()),
|
|
1423
|
-
|
|
1424
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
1424
1425
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
1425
1426
|
|
|
1426
1427
|
def _get_vertices(self) -> Sequence[float]:
|
|
@@ -1562,7 +1563,7 @@ class Line(ShapeBase):
|
|
|
1562
1563
|
self._vertex_list = self._program.vertex_list(
|
|
1563
1564
|
6, self._draw_mode, self._batch, self._group,
|
|
1564
1565
|
position=('f', self._get_vertices()),
|
|
1565
|
-
|
|
1566
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
1566
1567
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
1567
1568
|
|
|
1568
1569
|
def _get_vertices(self) -> Sequence[float]:
|
|
@@ -1688,7 +1689,7 @@ class Rectangle(ShapeBase):
|
|
|
1688
1689
|
self._vertex_list = self._program.vertex_list(
|
|
1689
1690
|
6, self._draw_mode, self._batch, self._group,
|
|
1690
1691
|
position=('f', self._get_vertices()),
|
|
1691
|
-
|
|
1692
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
1692
1693
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
1693
1694
|
|
|
1694
1695
|
def _get_vertices(self) -> Sequence[float]:
|
|
@@ -1831,11 +1832,11 @@ class BorderedRectangle(ShapeBase):
|
|
|
1831
1832
|
self._vertex_list = self._program.vertex_list_indexed(
|
|
1832
1833
|
8, self._draw_mode, indices, self._batch, self._group,
|
|
1833
1834
|
position=('f', self._get_vertices()),
|
|
1834
|
-
|
|
1835
|
+
colors=('Bn', self._rgba * 4 + self._border_rgba * 4),
|
|
1835
1836
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
1836
1837
|
|
|
1837
1838
|
def _update_color(self) -> None:
|
|
1838
|
-
self._vertex_list.
|
|
1839
|
+
self._vertex_list.colors[:] = self._rgba * 4 + self._border_rgba * 4
|
|
1839
1840
|
|
|
1840
1841
|
def _get_vertices(self) -> Sequence[float]:
|
|
1841
1842
|
if not self._visible:
|
|
@@ -2045,11 +2046,11 @@ class Box(ShapeBase):
|
|
|
2045
2046
|
self._vertex_list = self._program.vertex_list_indexed(
|
|
2046
2047
|
self._num_verts, self._draw_mode, indices, self._batch, self._group,
|
|
2047
2048
|
position=('f', self._get_vertices()),
|
|
2048
|
-
|
|
2049
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
2049
2050
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
2050
2051
|
|
|
2051
2052
|
def _update_color(self):
|
|
2052
|
-
self._vertex_list.
|
|
2053
|
+
self._vertex_list.colors[:] = self._rgba * self._num_verts
|
|
2053
2054
|
|
|
2054
2055
|
def _get_vertices(self) -> Sequence[float]:
|
|
2055
2056
|
if not self._visible:
|
|
@@ -2224,7 +2225,7 @@ class RoundedRectangle(pyglet.shapes.ShapeBase):
|
|
|
2224
2225
|
self._vertex_list = self._program.vertex_list(
|
|
2225
2226
|
self._num_verts, self._draw_mode, self._batch, self._group,
|
|
2226
2227
|
position=('f', self._get_vertices()),
|
|
2227
|
-
|
|
2228
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
2228
2229
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
2229
2230
|
|
|
2230
2231
|
def _get_vertices(self) -> Sequence[float]:
|
|
@@ -2375,7 +2376,7 @@ class Triangle(ShapeBase):
|
|
|
2375
2376
|
self._vertex_list = self._program.vertex_list(
|
|
2376
2377
|
3, self._draw_mode, self._batch, self._group,
|
|
2377
2378
|
position=('f', self._get_vertices()),
|
|
2378
|
-
|
|
2379
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
2379
2380
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
2380
2381
|
|
|
2381
2382
|
def _get_vertices(self) -> Sequence[float]:
|
|
@@ -2511,7 +2512,7 @@ class Star(ShapeBase):
|
|
|
2511
2512
|
self._vertex_list = self._program.vertex_list(
|
|
2512
2513
|
self._num_verts, self._draw_mode, self._batch, self._group,
|
|
2513
2514
|
position=('f', self._get_vertices()),
|
|
2514
|
-
|
|
2515
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
2515
2516
|
rotation=('f', (self._rotation,) * self._num_verts),
|
|
2516
2517
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
2517
2518
|
|
|
@@ -2636,7 +2637,7 @@ class Polygon(ShapeBase):
|
|
|
2636
2637
|
earcut.earcut(vertices),
|
|
2637
2638
|
self._batch, self._group,
|
|
2638
2639
|
position=('f', vertices),
|
|
2639
|
-
|
|
2640
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
2640
2641
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
2641
2642
|
|
|
2642
2643
|
def _get_vertices(self) -> Sequence[float]:
|
|
@@ -2721,7 +2722,7 @@ class MultiLine(ShapeBase):
|
|
|
2721
2722
|
self._vertex_list = self._program.vertex_list(
|
|
2722
2723
|
self._num_verts, self._draw_mode, self._batch, self._group,
|
|
2723
2724
|
position=('f', self._get_vertices()),
|
|
2724
|
-
|
|
2725
|
+
colors=('Bn', self._rgba * self._num_verts),
|
|
2725
2726
|
translation=('f', (self._x, self._y) * self._num_verts))
|
|
2726
2727
|
|
|
2727
2728
|
def _get_vertices(self) -> Sequence[float]:
|
|
@@ -67,6 +67,8 @@ def test_shader_ubo_data_structure():
|
|
|
67
67
|
|
|
68
68
|
layout(std140) uniform EntityDataBlock {
|
|
69
69
|
DataStruct data[5];
|
|
70
|
+
float simple_type;
|
|
71
|
+
vec2 vec_type;
|
|
70
72
|
} data_struct;
|
|
71
73
|
|
|
72
74
|
uniform sampler2D sprite_texture;
|
|
@@ -90,7 +92,9 @@ def test_shader_ubo_data_structure():
|
|
|
90
92
|
|
|
91
93
|
with ubo as block:
|
|
92
94
|
block.data[0].color[1][:] = test_data
|
|
93
|
-
|
|
95
|
+
block.simple_type = 1.0
|
|
96
|
+
block.vec_type[:] = (1.0, 2.0)
|
|
97
|
+
|
|
94
98
|
# Just test a random deep node.
|
|
95
99
|
assert len(block.data[3].within[2].position[:]) == 3
|
|
96
100
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|