pyglet 2.1.9__tar.gz → 2.1.10__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.9 → pyglet-2.1.10}/.github/workflows/unittests.yml +3 -3
- {pyglet-2.1.9 → pyglet-2.1.10}/PKG-INFO +1 -1
- {pyglet-2.1.9 → pyglet-2.1.10}/RELEASE_NOTES +16 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/dpi_scaled_window.py +5 -9
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/__init__.py +3 -3
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/app/cocoa.py +2 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/shader.py +1 -1
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/linux/evdev.py +13 -12
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/base.py +23 -32
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg.py +16 -20
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/compat.py +1 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +20 -16
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +6 -6
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +22 -7
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +2 -2
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +2 -2
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/__init__.py +2 -2
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/document.py +2 -2
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/layout/base.py +12 -9
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/__init__.py +3 -2
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/cocoa/__init__.py +9 -9
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/headless/__init__.py +1 -1
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/win32/__init__.py +1 -1
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/xlib/__init__.py +1 -1
- pyglet-2.1.10/tests/interactive/text/test_layout_anchoring.py +173 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/.coveragerc +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/.github/workflows/codeql.yml +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/.gitignore +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/.readthedocs.yml +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/LICENSE +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/MANIFEST.in +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/README.md +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/contrib/aseprite_codec/README +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/contrib/aseprite_codec/asedemo.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/contrib/aseprite_codec/aseprite.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/contrib/aseprite_codec/running.ase +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/contrib/logo3d/logo3d.jpg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/contrib/logo3d/logo3d.obj.zip +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/contrib/logo3d/logo3d.wings +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/contrib/qt_sprite_preview.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/contrib/scenemanager.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/contrib/toys/follow_mouse.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/Makefile +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/_static/css/custom.css +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/_static/favicon.ico +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/_static/logo.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/_static/logo5.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/_static/relatedlogo.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/conf.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/external_resources.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/index.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/contributing.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/dist.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/doc.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/generated.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/gl.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/media_logging_manual.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/media_manual.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/testing.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/virtualenv.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/wraptypes-class.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/wraptypes.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/make.bat +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/app.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/clock.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/customtypes.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/display.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/event.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/font.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/gl.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/graphics/allocation.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/graphics/index.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/graphics/shader.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/graphics/vertexbuffer.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/graphics/vertexdomain.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/gui.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/image/animation.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/image/atlas.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/image/buffer.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/image/index.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/info.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/input.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/math.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/media.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/media_synthesis.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/models.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/pyglet.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/resource.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/shapes.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/sprite.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/text/caret.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/text/document.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/text/index.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/text/layout.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/window.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/window_key.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/window_mouse.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/context.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/debug.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/eventloop.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/events.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/examplegame.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/gl.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/gui.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/image.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/abstract_image.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/abstract_image.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/buffer_image.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/buffer_image.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/context_flow.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/context_flow.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_default.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_no.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_text.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_default.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_hand.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_help.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_no.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_size.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_text.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_wait.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/explosion.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/font_metrics.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/font_metrics.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/image_classes.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/image_classes.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/image_grid.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/image_grid.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/image_sequence.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/image_sequence.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/mouse_coordinates.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/screens.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/screens.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/text_classes.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/text_classes.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_location.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_location.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_osx_borderless.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_osx_default.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_osx_dialog.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_osx_tool.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_xp_default.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_xp_dialog.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_xp_overlay.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_xp_tool.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_xp_transparent.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/input.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/installation.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/keyboard.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/math.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/media.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/migration.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/models.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/mouse.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/opengles.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/options.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/quickstart.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/rendering.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/resources.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/shapes.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/text.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/time.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/windowing.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/doc/requirements.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/clipboard.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/events/events_key_state_handler.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/events/register_event_type.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/events/window_events.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/events/window_platform_event.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/file_dialog.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/resources/asteroid.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/resources/bullet.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/resources/bullet.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/resources/engine_flame.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/resources/player.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version1/asteroid.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version1/game/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version1/game/load.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version1/game/resources.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version2/asteroid.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version2/game/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version2/game/load.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version2/game/physicalobject.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version2/game/player.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version2/game/resources.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/asteroid.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/game/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/game/load.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/game/physicalobject.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/game/player.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/game/resources.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/game/util.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/asteroid.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/asteroid.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/bullet.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/load.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/physicalobject.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/player.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/resources.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/util.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/asteroid.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/asteroid.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/bullet.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/load.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/physicalobject.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/player.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/resources.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/util.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/graphics/image_convert.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/graphics/image_display.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/gui/bar.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/gui/button_hover.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/gui/button_pressed.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/gui/button_unpressed.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/gui/knob.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/gui/widgets.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/hello_world.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/input/apple_remote.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/input/controller.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/input/input.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/input/joystick.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/input/tablet.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/media_info.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/media_player.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/noisy/README +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/noisy/ball.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/noisy/ball.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/noisy/noisy.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/README +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/reader.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/res/bass.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/res/drums.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/res/guitar.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/res/piano.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/res/space.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/soundspace.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/synthesizer.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/video.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/box.mtl +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/box.obj +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/fpscamera.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/logo3d.mtl +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/logo3d.obj +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/model.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/pyglet.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/compute_shader.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/egl_context.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/minimal_shader.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/opengl_context.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/opengl_core.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/opengl_scissor.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/pyglet.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/torus.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/animation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/dinosaur.gif +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/events.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/hello_world.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/image_viewer.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/kitten.jpg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/window_subclass.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/resources/Brick1Blue.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/resources/Brick1Crack3.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/resources/Brick1Gray.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/resources/kitten.jpg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/resources/pyglet.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/shapes.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/sprite/depth_sprite.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/sprite/display_sprite.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/sprite/multi_texture_sprite.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/sprite/sprite_batching.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/text/advanced_font.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/text/html_label.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/text/pyglet.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/text/text_input.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/text/user_bitmap_font.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/timer.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/camera.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/camera_group.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/fixed_resolution.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/fps_change.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/multiple_windows.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/overlay_window.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/transparent_window.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/dist_field/README +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/dist_field/genfield.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/dist_field/py.df.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/dist_field/py.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/dist_field/renderfield.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/flaccodec.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/hello_world.svg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/instancing/sprite_instance.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/instancing/sprite_instance_object.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/multitexture_sprite/multitexturesprite.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/spritebenchmark.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/svg_test.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/wayland/gbm_egl_context.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/experimental/win32priority.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/make.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/__init__.pyi +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/app/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/app/base.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/app/win32.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/app/xlib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/clock.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/customtypes.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/__init__.pyi +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/base.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/cocoa.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/headless.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/win32.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/xlib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/xlib_vidmoderestore.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/event.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/README.md +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/geoshader_sprite.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/hidraw.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/jobs.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/multitexture_sprite.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/net.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/particles.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/extlibs/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/extlibs/earcut.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/extlibs/png.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/base.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/dwrite/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/dwrite/d2d1_lib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/dwrite/d2d1_types_lib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/dwrite/dwrite_lib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/fontconfig.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/freetype.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/freetype_lib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/harfbuzz/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/harfbuzz/harfbuzz_lib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/quartz.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/ttf.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/user.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/win32.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/agl.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/base.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/cocoa.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/gl.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/gl.pyi +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/gl_compat.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/gl_compat.pyi +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/gl_info.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/glx.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/glx_info.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/glxext_arb.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/glxext_mesa.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/glxext_nv.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/headless.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/lib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/lib_agl.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/lib_glx.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/lib_wgl.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/wgl.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/wgl_info.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/wglext_arb.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/wglext_nv.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/win32.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/xlib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/allocation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/instance.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/vertexarray.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/vertexbuffer.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/vertexdomain.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gui/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gui/frame.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gui/ninepatch.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gui/widgets.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/animation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/atlas.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/buffer.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/bmp.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/dds.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/gdiplus.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/gif.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/pil.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/png.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/quartz.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/s3tc.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/wic.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/wincodec_lib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/info.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/base.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/controller.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/controller_db.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/linux/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/linux/evdev_constants.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/linux/x11_xinput.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/macos/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/macos/darwin_hid.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/win32/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/win32/directinput.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/win32/wintab.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/win32/xinput.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/lib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/cocoapy/cocoalibs.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/coreaudio.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/quartzkey.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/egl/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/egl/egl.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/egl/eglext.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/egl/lib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/ioctl.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/wayland/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/wayland/gbm.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/wayland/xkbcommon.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/com.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/constants.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/context_managers.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/dinput.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/libwintab.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/types.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/winkey.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/cursorfont.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xf86vmode.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xinerama.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xinput.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xlib.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xrandr.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xrender.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xsync.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/math.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/buffered_logger.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/coreaudio.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/gstreamer.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/pyogg.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/wave.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/wmf.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/devices/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/devices/base.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/devices/win32.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/base.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/directsound/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/directsound/adaptation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/directsound/exceptions.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/directsound/interface.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/directsound/lib_dsound.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/listener.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/openal/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/openal/adaptation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/openal/interface.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/openal/lib_alc.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/openal/lib_openal.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/pulse/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/pulse/adaptation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/pulse/interface.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/silent/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/silent/adaptation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/xaudio2/adaptation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/xaudio2/interface.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/exceptions.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/instrumentation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/player.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/player_worker_thread.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/synthesis.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/model/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/model/codecs/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/model/codecs/base.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/model/codecs/gltf.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/model/codecs/obj.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/py.typed +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/resource.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/shapes.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/sprite.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/caret.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/formats/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/formats/attributed.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/formats/html.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/formats/plaintext.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/formats/structured.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/layout/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/layout/incremental.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/layout/scrolling.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/runlist.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/util.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/cocoa/pyglet_delegate.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/cocoa/pyglet_textview.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/cocoa/pyglet_view.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/cocoa/pyglet_window.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/cocoa/systemcursor.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/event.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/key.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/mouse.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pyproject.toml +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/pytest.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/setup.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/annotations.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/base/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/base/data.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/base/event_loop.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/base/interactive.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/base/performance.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/conftest.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/README +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/action_man.ttf +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/action_man_atlas.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/action_man_bold.ttf +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/action_man_italic.ttf +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/8bpp.gif +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/cursor.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/dinosaur.gif +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/gdk_close.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/grey_background.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/icon1.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/icon_size1.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/icon_size2.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/icon_size3.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/icon_size4.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/icon_size5.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/l.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/la.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/multitexture.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_16bpp.bmp +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_1bpp.bmp +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_24bpp.bmp +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_32bpp.bmp +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_4bpp.bmp +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_8bpp.bmp +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_8bpp.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_8bpp_trans.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_dxt1.dds +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgba.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgba_32bpp.bmp +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgba_dxt1.dds +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgba_dxt3.dds +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgba_dxt5.dds +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/README +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/alert.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/login.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/logout.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/receive.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/send.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/models/logo3d.mtl +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/models/logo3d.obj +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/app/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/app/test_eventloop.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/conftest.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/font/test_fontconfig.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/font/test_freetype_face.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/graphics/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/graphics/test_allocation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/graphics/test_batch_migration.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/graphics/test_shaders.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/image/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/image/test_gdkpixbuf2.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/image/test_imagegrid.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/image/test_texture3d.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/mock_player.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/test_directsound.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/test_driver.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/test_openal.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/test_player.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/test_pulse.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/model/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/model/test_loading.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/platform/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/platform/test_win_context_managers.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/platform/test_win_multicore_clock.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/dir1/f2.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/dir1/res.zip +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/dir2/f6.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/f1.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/rgbm.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/test_resource_image_loading.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/test_resource_loading.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/test_integrations.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/text/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/text/test_empty_document.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/text/test_label_creation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/text/test_layout_creation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/window/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/window/test_context_share.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/window/test_event_sequence.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/window/test_window_caption.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/conftest.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/image/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/image/test_image.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/media/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/media/test_player.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/screenshots/committed/README +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/screenshots/session/README +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/shapes/test_shapes.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/test_interactive_test_base.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_caret_color.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_content_valign.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_html.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_inline_elements.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_inline_elements_style_change.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_multiline_wrap.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_plain.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_style.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_events.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_fullscreen.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_modes.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_multisample.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_open.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_settings.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_styles.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/window_util.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/windowed_test_base.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/requirements.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/conftest.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/math/test_mat.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/math/test_quat.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/math/test_vec2.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/math/test_vec3.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/math/test_vec4.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/media/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/media/test_listener.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/media/test_player.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/media/test_sources.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/media/test_synthesis.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/platform/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/platform/test_mac_objc.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shader/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shader/conftest.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shader/test_shader.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shapes/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shapes/conftest.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shapes/test_shapes.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_atlas.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_clock.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_clock_freq.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_events.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_font.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_input.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_resource_path.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_sprite.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_text.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/text/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/text/test_caret.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/text/test_layout.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/al_info.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/bokeh_timeline.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/compare.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/configure.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/extractors.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/fs.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/mp.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/mpexceptions.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/playmany.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/readme_run_tests.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/report.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/reports.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/retry_crashed.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/run_test_suite.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/summarize.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/test_instrumentation.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/timeline.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/gencontrollerdb.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/gengl.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/genwrappers.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/gl.template +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/gl.xml +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/gl_info.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/gl_stub.template +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/inspect_font.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/requirements.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/wgl.h +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/__init__.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/cparser.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/ctypesparser.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/lex.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/preprocessor.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/wrap.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/yacc.py +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/LICENSE.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/README.rst +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/assets/favicon.ico +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/assets/static/css/example-custom-styles.css +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/assets/static/images/pyglet.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/content/404.html/contents.lr +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/content/404.html/ngc-5793.jpg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/content/authors/benjamin/contents.lr +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/content/authors/benjamin/pyglet.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/content/authors/contents.lr +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/content/blog/contents.lr +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/content/blog/welcome-blog/contents.lr +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/content/contents.lr +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/content/eclipse.jpg +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/pyglet.lektorproject +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/AUTHORS.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/CHANGELOG.md +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/LICENSE.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/NOTICE.txt +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/README.md +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/blog-index.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/full-blog.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/full-page.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/gallery-404.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/404.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/author.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/authors.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/blog-post.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/blog.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/page.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/single-layout.ini +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/404.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/author.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/authors.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blog-post.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blog.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/layout.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/none.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/page.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/single-layout.html +0 -0
- {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/theme.ini +0 -0
|
@@ -7,7 +7,7 @@ jobs:
|
|
|
7
7
|
runs-on: ubuntu-latest
|
|
8
8
|
strategy:
|
|
9
9
|
matrix:
|
|
10
|
-
python-version: [ '3.
|
|
10
|
+
python-version: [ '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.10' ]
|
|
11
11
|
name: Python ${{ matrix.python-version }} ubuntu-latest
|
|
12
12
|
steps:
|
|
13
13
|
- uses: actions/checkout@v4
|
|
@@ -28,7 +28,7 @@ jobs:
|
|
|
28
28
|
runs-on: macos-latest
|
|
29
29
|
strategy:
|
|
30
30
|
matrix:
|
|
31
|
-
python-version: [ '3.10', '3.11', '3.12' ]
|
|
31
|
+
python-version: [ '3.10', '3.11', '3.12', '3.13', '3.14']
|
|
32
32
|
name: Python ${{ matrix.python-version }} OSX
|
|
33
33
|
steps:
|
|
34
34
|
- uses: actions/checkout@v4
|
|
@@ -47,7 +47,7 @@ jobs:
|
|
|
47
47
|
runs-on: windows-latest
|
|
48
48
|
strategy:
|
|
49
49
|
matrix:
|
|
50
|
-
python-version: [ '3.
|
|
50
|
+
python-version: [ '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
|
|
51
51
|
name: Python ${{ matrix.python-version }} Windows
|
|
52
52
|
steps:
|
|
53
53
|
- uses: actions/checkout@v4
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
pyglet 2.1.10
|
|
2
|
+
|
|
3
|
+
Changes
|
|
4
|
+
-------
|
|
5
|
+
media: Add support for FFmpeg 8.0 (#1365)
|
|
6
|
+
window: Update default dpi_scaling option to "platform". (#1383)
|
|
7
|
+
window: Convert the Window event queue to a deque. (#1362)
|
|
8
|
+
input.evdev: Do not attempt to reuse Controller instances on re-connect, as naming conflicts can occur.
|
|
9
|
+
|
|
10
|
+
Bugfixes
|
|
11
|
+
--------
|
|
12
|
+
text: fix typing of Label.__init__'s align argument. (#1361)
|
|
13
|
+
text: Update the passed args for attributed text. (#1379)
|
|
14
|
+
shader: Fixed number of elements for GL_FLOAT_MAT3 (9, not 6) in pyglet.graphics.shader._uniform_setters. (#1364)
|
|
15
|
+
|
|
16
|
+
|
|
1
17
|
pyglet 2.1.9
|
|
2
18
|
|
|
3
19
|
Changes
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import pyglet
|
|
2
|
-
|
|
3
|
-
pyglet.options["debug_gl"] = False
|
|
4
|
-
pyglet.options.dpi_scaling = "scaled"
|
|
2
|
+
pyglet.options.debug_gl = False
|
|
5
3
|
|
|
6
4
|
window = pyglet.window.Window(800, 600, caption="DPI Test", resizable=True)
|
|
7
5
|
batch = pyglet.graphics.Batch()
|
|
@@ -31,8 +29,7 @@ labels = [hello_label, mouse_enter_label, mouse_leave_label, mouse_motion_label,
|
|
|
31
29
|
dinosaur = pyglet.resource.animation("programming_guide/dinosaur.gif")
|
|
32
30
|
|
|
33
31
|
sprite = pyglet.sprite.Sprite(dinosaur, x=100, y=140, batch=batch)
|
|
34
|
-
|
|
35
|
-
sprite.scale = window.scale
|
|
32
|
+
sprite.scale = window.scale
|
|
36
33
|
|
|
37
34
|
|
|
38
35
|
@window.event
|
|
@@ -99,10 +96,9 @@ def on_scale(scale, dpi):
|
|
|
99
96
|
print("Window Size:", window.get_size())
|
|
100
97
|
print("Window Scale Ratio:", window.scale)
|
|
101
98
|
print("Window Frame Buffer Size:", window.get_framebuffer_size())
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
sprite.scale = window.scale
|
|
99
|
+
for label in labels:
|
|
100
|
+
label.dpi = dpi
|
|
101
|
+
sprite.scale = window.scale
|
|
106
102
|
|
|
107
103
|
|
|
108
104
|
pyglet.app.run()
|
|
@@ -15,7 +15,7 @@ if TYPE_CHECKING:
|
|
|
15
15
|
from typing import Any, Callable, ItemsView, Sized
|
|
16
16
|
|
|
17
17
|
#: The release version
|
|
18
|
-
version = '2.1.
|
|
18
|
+
version = '2.1.10'
|
|
19
19
|
__version__ = version
|
|
20
20
|
|
|
21
21
|
MIN_PYTHON_VERSION = 3, 8
|
|
@@ -255,8 +255,8 @@ class Options:
|
|
|
255
255
|
|
|
256
256
|
.. versionadded:: 2.0.5"""
|
|
257
257
|
|
|
258
|
-
dpi_scaling: Literal["real", "scaled", "stretch", "platform"] = "
|
|
259
|
-
"""For 'HiDPI' displays, Window behavior can differ between operating systems. Defaults to `'
|
|
258
|
+
dpi_scaling: Literal["real", "scaled", "stretch", "platform"] = "platform"
|
|
259
|
+
"""For 'HiDPI' displays, Window behavior can differ between operating systems. Defaults to `'platform'`.
|
|
260
260
|
|
|
261
261
|
The current options are an attempt to create consistent behavior across all of the operating systems.
|
|
262
262
|
|
|
@@ -159,7 +159,7 @@ _uniform_setters: dict[int, tuple[GLDataType, GLFunc, GLFunc, int]] = {
|
|
|
159
159
|
gl.GL_UNSIGNED_INT_SAMPLER_3D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
|
|
160
160
|
|
|
161
161
|
gl.GL_FLOAT_MAT2: (gl.GLfloat, gl.glUniformMatrix2fv, gl.glProgramUniformMatrix2fv, 4),
|
|
162
|
-
gl.GL_FLOAT_MAT3: (gl.GLfloat, gl.glUniformMatrix3fv, gl.glProgramUniformMatrix3fv,
|
|
162
|
+
gl.GL_FLOAT_MAT3: (gl.GLfloat, gl.glUniformMatrix3fv, gl.glProgramUniformMatrix3fv, 9),
|
|
163
163
|
gl.GL_FLOAT_MAT4: (gl.GLfloat, gl.glUniformMatrix4fv, gl.glProgramUniformMatrix4fv, 16),
|
|
164
164
|
|
|
165
165
|
# TODO: test/implement these:
|
|
@@ -33,22 +33,24 @@ except ImportError:
|
|
|
33
33
|
return c.read(fd, buffers, 3072)
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
KeyMaxArray = _c_byte * (
|
|
36
|
+
KeyMaxArray = _c_byte * (KEY_MAX // 8 + 1)
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
class
|
|
39
|
+
class _EvdevInfo:
|
|
40
40
|
event_type: int
|
|
41
41
|
event_code: int
|
|
42
42
|
|
|
43
43
|
|
|
44
|
-
class
|
|
45
|
-
|
|
46
|
-
event_code: int
|
|
44
|
+
class EvdevButton(Button, _EvdevInfo):
|
|
45
|
+
pass
|
|
47
46
|
|
|
48
47
|
|
|
49
|
-
class
|
|
50
|
-
|
|
51
|
-
|
|
48
|
+
class EvdevAbsoluteAxis(AbsoluteAxis, _EvdevInfo):
|
|
49
|
+
pass
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class EvdevRelativeAxis(RelativeAxis, _EvdevInfo):
|
|
53
|
+
pass
|
|
52
54
|
|
|
53
55
|
|
|
54
56
|
# Structures from /linux/blob/master/include/uapi/linux/input.h
|
|
@@ -193,7 +195,6 @@ def EVIOCGBIT(fileno, ev, buffer):
|
|
|
193
195
|
|
|
194
196
|
|
|
195
197
|
def EVIOCGABS(fileno, ev, buffer=InputABSInfo()):
|
|
196
|
-
print("absbuffer instance:", buffer)
|
|
197
198
|
return _IOR_len('E', 0x40 + ev)(fileno, buffer)
|
|
198
199
|
|
|
199
200
|
|
|
@@ -540,10 +541,9 @@ class EvdevControllerManager(ControllerManager, XlibSelectDevice):
|
|
|
540
541
|
else:
|
|
541
542
|
return # No device could be created
|
|
542
543
|
|
|
543
|
-
|
|
544
|
-
if controller := self._controllers.get(name, _create_controller(device)):
|
|
544
|
+
if controller := _create_controller(device):
|
|
545
545
|
self._controllers[name] = controller
|
|
546
|
-
#
|
|
546
|
+
# Post the event in the main thread:
|
|
547
547
|
self.post_event('on_connect', controller)
|
|
548
548
|
|
|
549
549
|
def select(self):
|
|
@@ -559,6 +559,7 @@ class EvdevControllerManager(ControllerManager, XlibSelectDevice):
|
|
|
559
559
|
|
|
560
560
|
for name in disappeared:
|
|
561
561
|
if controller := self._controllers.get(name):
|
|
562
|
+
del self._controllers[name]
|
|
562
563
|
self.dispatch_event('on_disconnect', controller)
|
|
563
564
|
|
|
564
565
|
def get_controllers(self) -> list[Controller]:
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
1
3
|
import ctypes
|
|
2
4
|
import io
|
|
5
|
+
from dataclasses import dataclass
|
|
3
6
|
from typing import TYPE_CHECKING, BinaryIO, List, Optional, Union
|
|
4
7
|
|
|
5
|
-
from pyglet.media.exceptions import
|
|
6
|
-
from pyglet.util import next_or_equal_power_of_two
|
|
8
|
+
from pyglet.media.exceptions import CannotSeekException, MediaException
|
|
7
9
|
|
|
8
10
|
if TYPE_CHECKING:
|
|
9
11
|
from pyglet.image import AbstractImage
|
|
@@ -77,7 +79,7 @@ class AudioFormat:
|
|
|
77
79
|
self.__class__.__name__, self.channels, self.sample_size,
|
|
78
80
|
self.sample_rate)
|
|
79
81
|
|
|
80
|
-
|
|
82
|
+
@dataclass
|
|
81
83
|
class VideoFormat:
|
|
82
84
|
"""Video details.
|
|
83
85
|
|
|
@@ -98,20 +100,10 @@ class VideoFormat:
|
|
|
98
100
|
|
|
99
101
|
.. versionadded:: 1.2
|
|
100
102
|
"""
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
self.sample_aspect = sample_aspect
|
|
106
|
-
self.frame_rate = None
|
|
107
|
-
|
|
108
|
-
def __eq__(self, other) -> bool:
|
|
109
|
-
if isinstance(other, VideoFormat):
|
|
110
|
-
return (self.width == other.width and
|
|
111
|
-
self.height == other.height and
|
|
112
|
-
self.sample_aspect == other.sample_aspect and
|
|
113
|
-
self.frame_rate == other.frame_rate)
|
|
114
|
-
return False
|
|
103
|
+
width: int
|
|
104
|
+
height: int
|
|
105
|
+
sample_aspect: float = 0.0
|
|
106
|
+
frame_rate: float | None = None
|
|
115
107
|
|
|
116
108
|
|
|
117
109
|
class AudioData:
|
|
@@ -132,14 +124,14 @@ class AudioData:
|
|
|
132
124
|
`timestamp` and `duration` are unused and will be removed eventually.
|
|
133
125
|
"""
|
|
134
126
|
|
|
135
|
-
__slots__ = 'data', '
|
|
127
|
+
__slots__ = 'data', 'duration', 'events', 'length', 'pointer', 'timestamp'
|
|
136
128
|
|
|
137
129
|
def __init__(self,
|
|
138
|
-
data:
|
|
130
|
+
data: bytes | ctypes.Array,
|
|
139
131
|
length: int,
|
|
140
132
|
timestamp: float = 0.0,
|
|
141
133
|
duration: float = 0.0,
|
|
142
|
-
events:
|
|
134
|
+
events: list[MediaEvent] | None = None) -> None:
|
|
143
135
|
|
|
144
136
|
if isinstance(data, bytes):
|
|
145
137
|
# bytes are treated specially by ctypes and can be cast to a void pointer, get
|
|
@@ -163,6 +155,7 @@ class AudioData:
|
|
|
163
155
|
self.events = [] if events is None else events
|
|
164
156
|
|
|
165
157
|
|
|
158
|
+
@dataclass
|
|
166
159
|
class SourceInfo:
|
|
167
160
|
"""Source metadata information.
|
|
168
161
|
|
|
@@ -180,15 +173,14 @@ class SourceInfo:
|
|
|
180
173
|
|
|
181
174
|
.. versionadded:: 1.2
|
|
182
175
|
"""
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
genre = ''
|
|
176
|
+
title: str = ''
|
|
177
|
+
author: str = ''
|
|
178
|
+
copyright: str = ''
|
|
179
|
+
comment: str = ''
|
|
180
|
+
album: str = ''
|
|
181
|
+
year: int = 0
|
|
182
|
+
track: int = 0
|
|
183
|
+
genre: str = ''
|
|
192
184
|
|
|
193
185
|
|
|
194
186
|
class Source:
|
|
@@ -255,9 +247,8 @@ class Source:
|
|
|
255
247
|
player.on_player_eos = _on_player_eos
|
|
256
248
|
return player
|
|
257
249
|
|
|
258
|
-
def get_animation(self) ->
|
|
259
|
-
"""
|
|
260
|
-
Import all video frames into memory.
|
|
250
|
+
def get_animation(self) -> Animation:
|
|
251
|
+
"""Import all video frames into memory.
|
|
261
252
|
|
|
262
253
|
An empty animation will be returned if the source has no video.
|
|
263
254
|
Otherwise, the animation will contain all unplayed video frames (the
|
|
@@ -7,6 +7,7 @@ from ctypes import (
|
|
|
7
7
|
POINTER,
|
|
8
8
|
Array,
|
|
9
9
|
Structure,
|
|
10
|
+
_Pointer,
|
|
10
11
|
addressof,
|
|
11
12
|
byref,
|
|
12
13
|
c_char_p,
|
|
@@ -18,20 +19,20 @@ from ctypes import (
|
|
|
18
19
|
memmove,
|
|
19
20
|
)
|
|
20
21
|
from dataclasses import dataclass
|
|
21
|
-
from typing import
|
|
22
|
-
|
|
23
|
-
from _ctypes import _Pointer
|
|
22
|
+
from typing import TYPE_CHECKING, BinaryIO, Iterator, Sequence
|
|
24
23
|
|
|
25
24
|
import pyglet
|
|
26
25
|
import pyglet.lib
|
|
27
26
|
from pyglet import image
|
|
27
|
+
from pyglet.media.exceptions import MediaFormatException
|
|
28
28
|
from pyglet.util import asbytes, asstr
|
|
29
|
+
|
|
29
30
|
from . import MediaDecoder
|
|
30
31
|
from .base import AudioData, AudioFormat, SourceInfo, StaticSource, StreamingSource, VideoFormat
|
|
31
32
|
from .ffmpeg_lib import (
|
|
32
33
|
AV_CODEC_ID_VP8,
|
|
33
34
|
AV_CODEC_ID_VP9,
|
|
34
|
-
|
|
35
|
+
AV_INPUT_BUFFER_PADDING_SIZE,
|
|
35
36
|
SWS_FAST_BILINEAR,
|
|
36
37
|
AVPacket,
|
|
37
38
|
SwrContext,
|
|
@@ -63,7 +64,6 @@ from .ffmpeg_lib.libavutil import (
|
|
|
63
64
|
avutil,
|
|
64
65
|
)
|
|
65
66
|
from .ffmpeg_lib.libswresample import swresample, swresample_version
|
|
66
|
-
from ..exceptions import MediaFormatException
|
|
67
67
|
|
|
68
68
|
if TYPE_CHECKING:
|
|
69
69
|
from .ffmpeg_lib.libavformat import AVStream
|
|
@@ -128,7 +128,7 @@ def ffmpeg_get_audio_buffer_size(audio_format):
|
|
|
128
128
|
|
|
129
129
|
Buffer size can accommodate 1 sec of audio data.
|
|
130
130
|
"""
|
|
131
|
-
return audio_format.bytes_per_second +
|
|
131
|
+
return audio_format.bytes_per_second + AV_INPUT_BUFFER_PADDING_SIZE
|
|
132
132
|
|
|
133
133
|
|
|
134
134
|
def ffmpeg_init():
|
|
@@ -489,10 +489,7 @@ def ffmpeg_get_packet_pts(file: FFmpegFile, packet: _Pointer[AVPacket]) -> float
|
|
|
489
489
|
|
|
490
490
|
def ffmpeg_get_frame_ts(stream: FFmpegStream) -> float:
|
|
491
491
|
ts = stream.frame.contents.best_effort_timestamp
|
|
492
|
-
|
|
493
|
-
stream.time_base,
|
|
494
|
-
AV_TIME_BASE_Q)
|
|
495
|
-
return timestamp
|
|
492
|
+
return avutil.av_rescale_q(ts, stream.time_base, AV_TIME_BASE_Q)
|
|
496
493
|
|
|
497
494
|
|
|
498
495
|
def ffmpeg_init_packet() -> _Pointer[AVPacket]:
|
|
@@ -847,7 +844,7 @@ class FFmpegSource(StreamingSource):
|
|
|
847
844
|
# more packets are in stream.
|
|
848
845
|
return ffmpeg_read(self._file, self._packet)
|
|
849
846
|
|
|
850
|
-
def _process_packet(self) -> AudioPacket | VideoPacket:
|
|
847
|
+
def _process_packet(self) -> AudioPacket | VideoPacket | None:
|
|
851
848
|
"""Process the packet that has been just read.
|
|
852
849
|
|
|
853
850
|
Determines whether it's a video or audio packet and queue it in the
|
|
@@ -859,18 +856,18 @@ class FFmpegSource(StreamingSource):
|
|
|
859
856
|
|
|
860
857
|
if self._packet.contents.stream_index == self._video_stream_index:
|
|
861
858
|
video_packet = VideoPacket(self._packet, timestamp)
|
|
862
|
-
|
|
863
859
|
if _debug:
|
|
864
860
|
print('Created and queued packet %d (%f)' % (video_packet.id, video_packet.timestamp))
|
|
865
861
|
|
|
866
862
|
self.videoq.append(video_packet)
|
|
867
863
|
return video_packet
|
|
868
864
|
|
|
869
|
-
|
|
865
|
+
if self.audio_format and self._packet.contents.stream_index == self._audio_stream_index:
|
|
870
866
|
audio_packet = AudioPacket(self._packet, timestamp)
|
|
871
867
|
|
|
872
868
|
self.audioq.append(audio_packet)
|
|
873
869
|
return audio_packet
|
|
870
|
+
return None
|
|
874
871
|
|
|
875
872
|
def get_audio_data(self, num_bytes: int, compensation_time: float=0.0) -> AudioData | None:
|
|
876
873
|
data = b''
|
|
@@ -1040,9 +1037,8 @@ class FFmpegSource(StreamingSource):
|
|
|
1040
1037
|
width = self.video_format.width
|
|
1041
1038
|
height = self.video_format.height
|
|
1042
1039
|
pitch = width * 4
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
buffer = (c_uint8 * nbytes)()
|
|
1040
|
+
buf_size = avutil.av_image_get_buffer_size(AV_PIX_FMT_RGBA, width, height, 1)
|
|
1041
|
+
buffer = (c_uint8 * buf_size)()
|
|
1046
1042
|
try:
|
|
1047
1043
|
result = self._ffmpeg_decode_video(video_packet.packet, buffer)
|
|
1048
1044
|
except FFmpegException:
|
|
@@ -1070,11 +1066,8 @@ class FFmpegSource(StreamingSource):
|
|
|
1070
1066
|
stream = self._video_stream
|
|
1071
1067
|
rgba_ptrs = (POINTER(c_uint8) * 4)()
|
|
1072
1068
|
rgba_stride = (c_int * 4)()
|
|
1073
|
-
width = stream.codec_context.contents.width
|
|
1074
|
-
height = stream.codec_context.contents.height
|
|
1075
1069
|
if stream.type != AVMEDIA_TYPE_VIDEO:
|
|
1076
1070
|
raise FFmpegException('Trying to decode video on a non-video stream.')
|
|
1077
|
-
|
|
1078
1071
|
sent_result = avcodec.avcodec_send_packet(
|
|
1079
1072
|
stream.codec_context,
|
|
1080
1073
|
packet,
|
|
@@ -1097,6 +1090,9 @@ class FFmpegSource(StreamingSource):
|
|
|
1097
1090
|
descr = buf.value
|
|
1098
1091
|
raise FFmpegException(f'Video: Error occurred receiving frame. {descr.decode()}')
|
|
1099
1092
|
|
|
1093
|
+
width = stream.frame.contents.width
|
|
1094
|
+
height = stream.frame.contents.height
|
|
1095
|
+
|
|
1100
1096
|
avutil.av_image_fill_arrays(rgba_ptrs, rgba_stride, data_out,
|
|
1101
1097
|
AV_PIX_FMT_RGBA, width, height, 1)
|
|
1102
1098
|
|
|
@@ -1141,7 +1137,7 @@ class FFmpegSource(StreamingSource):
|
|
|
1141
1137
|
ts = None
|
|
1142
1138
|
|
|
1143
1139
|
if _debug:
|
|
1144
|
-
print('Next video timestamp is
|
|
1140
|
+
print(f'Next video packet timestamp is: {ts}')
|
|
1145
1141
|
return ts
|
|
1146
1142
|
|
|
1147
1143
|
def get_next_video_frame(self, skip_empty_frame: bool=True) -> int | None:
|
|
@@ -18,6 +18,7 @@ release_versions = {
|
|
|
18
18
|
5: {'avcodec': 59, 'avformat': 59, 'avutil': 57, 'swresample': 4, 'swscale': 6}, # 5.x
|
|
19
19
|
6: {'avcodec': 60, 'avformat': 60, 'avutil': 58, 'swresample': 4, 'swscale': 7}, # 6.x
|
|
20
20
|
7: {'avcodec': 61, 'avformat': 61, 'avutil': 59, 'swresample': 5, 'swscale': 8}, # 7.x
|
|
21
|
+
8: {'avcodec': 62, 'avformat': 62, 'avutil': 60, 'swresample': 6, 'swscale': 9}, # 8.x
|
|
21
22
|
}
|
|
22
23
|
|
|
23
24
|
# Removals done per library and version.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"""Wrapper for include/libavcodec/avcodec.h
|
|
2
2
|
"""
|
|
3
3
|
|
|
4
|
-
from ctypes import c_int, c_uint16, c_int64, c_uint32, c_uint64, c_size_t
|
|
4
|
+
from ctypes import c_int, c_uint16, c_int64, c_uint32, c_uint64, c_size_t, c_char
|
|
5
5
|
from ctypes import c_uint8, c_uint, c_float, c_char_p
|
|
6
6
|
from ctypes import c_void_p, POINTER, CFUNCTYPE, Structure
|
|
7
7
|
|
|
@@ -15,8 +15,8 @@ _debug = debug_print('debug_media')
|
|
|
15
15
|
|
|
16
16
|
avcodec = pyglet.lib.load_library(
|
|
17
17
|
'avcodec',
|
|
18
|
-
win32=('avcodec-61', 'avcodec-60', 'avcodec-59', 'avcodec-58'),
|
|
19
|
-
darwin=('avcodec.61', 'avcodec.60', 'avcodec.59', 'avcodec.58')
|
|
18
|
+
win32=('avcodec-62', 'avcodec-61', 'avcodec-60', 'avcodec-59', 'avcodec-58'),
|
|
19
|
+
darwin=('avcodec.62', 'avcodec.61', 'avcodec.60', 'avcodec.59', 'avcodec.58')
|
|
20
20
|
)
|
|
21
21
|
|
|
22
22
|
avcodec.avcodec_version.restype = c_int
|
|
@@ -25,8 +25,8 @@ avcodec_version = avcodec.avcodec_version() >> 16
|
|
|
25
25
|
|
|
26
26
|
compat.set_version('avcodec', avcodec_version)
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
# Since version 4.0 this is 64
|
|
29
|
+
AV_INPUT_BUFFER_PADDING_SIZE = 64
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
class AVPacketSideData(Structure):
|
|
@@ -67,7 +67,7 @@ AVPacket_Fields = [
|
|
|
67
67
|
compat.add_version_changes('avcodec', 58, AVPacket, AVPacket_Fields,
|
|
68
68
|
removals=('opaque', 'opaque_ref', 'time_base'))
|
|
69
69
|
|
|
70
|
-
for compat_ver in (59, 60, 61):
|
|
70
|
+
for compat_ver in (59, 60, 61, 62):
|
|
71
71
|
compat.add_version_changes('avcodec', compat_ver, AVPacket, AVPacket_Fields,
|
|
72
72
|
removals=('convergence_duration',))
|
|
73
73
|
|
|
@@ -118,8 +118,9 @@ for compat_ver in (58, 59, 60):
|
|
|
118
118
|
compat.add_version_changes('avcodec', compat_ver, AVCodecParameters, AVCodecParameters_Fields,
|
|
119
119
|
removals=('coded_side_data', 'nb_coded_side_data', 'ch_layout', 'framerate'))
|
|
120
120
|
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
for compat_ver in (61, 62):
|
|
122
|
+
compat.add_version_changes('avcodec', compat_ver, AVCodecParameters, AVCodecParameters_Fields,
|
|
123
|
+
removals=('channel_layout', 'channels'))
|
|
123
124
|
|
|
124
125
|
|
|
125
126
|
class AVProfile(Structure):
|
|
@@ -188,7 +189,7 @@ AVClass = libavutil.AVClass
|
|
|
188
189
|
AVFrame = libavutil.AVFrame
|
|
189
190
|
AV_NUM_DATA_POINTERS = libavutil.AV_NUM_DATA_POINTERS
|
|
190
191
|
|
|
191
|
-
# Significant deprecation and re-ordering of the entire structure makes it
|
|
192
|
+
# Significant deprecation and re-ordering of the entire structure makes it unmanageable to
|
|
192
193
|
# track of all the changes via compat module. Re-define the structure and compat the new one going forward.
|
|
193
194
|
if avcodec_version >= 61:
|
|
194
195
|
AVCodecContext_Fields = [
|
|
@@ -217,7 +218,7 @@ if avcodec_version >= 61:
|
|
|
217
218
|
("framerate", AVRational),
|
|
218
219
|
|
|
219
220
|
# Video fields
|
|
220
|
-
("ticks_per_frame", c_int), # Deprecated in 61.
|
|
221
|
+
("ticks_per_frame", c_int), # Deprecated in 61. (removed in 62)
|
|
221
222
|
("delay", c_int),
|
|
222
223
|
("width", c_int),
|
|
223
224
|
("height", c_int),
|
|
@@ -334,7 +335,7 @@ if avcodec_version >= 61:
|
|
|
334
335
|
POINTER(c_int), c_int)),
|
|
335
336
|
("profile", c_int),
|
|
336
337
|
("level", c_int),
|
|
337
|
-
("properties", c_uint),
|
|
338
|
+
("properties", c_uint), # deprecated in 62
|
|
338
339
|
("skip_loop_filter", c_int), # enum AVDiscard
|
|
339
340
|
("skip_idct", c_int), # enum AVDiscard
|
|
340
341
|
("skip_frame", c_int), # enum AVDiscard
|
|
@@ -364,8 +365,11 @@ if avcodec_version >= 61:
|
|
|
364
365
|
("nb_decoded_side_data", c_int),
|
|
365
366
|
]
|
|
366
367
|
|
|
367
|
-
compat.add_version_changes('avcodec', 61, AVCodecContext, AVCodecContext_Fields,
|
|
368
|
+
compat.add_version_changes('avcodec', 61, AVCodecContext, AVCodecContext_Fields,
|
|
369
|
+
removals=None)
|
|
368
370
|
|
|
371
|
+
compat.add_version_changes('avcodec', 62, AVCodecContext, AVCodecContext_Fields,
|
|
372
|
+
removals=("ticks_per_frame",))
|
|
369
373
|
else:
|
|
370
374
|
AVCodecContext_Fields = [
|
|
371
375
|
('av_class', POINTER(AVClass)),
|
|
@@ -621,10 +625,10 @@ avcodec.avcodec_find_decoder_by_name.restype = POINTER(AVCodec)
|
|
|
621
625
|
avcodec.avcodec_find_decoder_by_name.argtypes = [c_char_p]
|
|
622
626
|
|
|
623
627
|
__all__ = [
|
|
624
|
-
'avcodec',
|
|
625
|
-
'FF_INPUT_BUFFER_PADDING_SIZE',
|
|
626
|
-
'AVPacket',
|
|
627
|
-
'AVCodecContext',
|
|
628
628
|
'AV_CODEC_ID_VP8',
|
|
629
629
|
'AV_CODEC_ID_VP9',
|
|
630
|
+
'AV_INPUT_BUFFER_PADDING_SIZE',
|
|
631
|
+
'AVCodecContext',
|
|
632
|
+
'AVPacket',
|
|
633
|
+
'avcodec',
|
|
630
634
|
]
|
|
@@ -14,8 +14,8 @@ _debug = debug_print('debug_media')
|
|
|
14
14
|
|
|
15
15
|
avformat = pyglet.lib.load_library(
|
|
16
16
|
'avformat',
|
|
17
|
-
win32=('avformat-61', 'avformat-60', 'avformat-59', 'avformat-58'),
|
|
18
|
-
darwin=('avformat.61', 'avformat.60', 'avformat.59', 'avformat.58')
|
|
17
|
+
win32=('avformat-62', 'avformat-61', 'avformat-60', 'avformat-59', 'avformat-58'),
|
|
18
|
+
darwin=('avformat.62', 'avformat.61', 'avformat.60', 'avformat.59', 'avformat.58')
|
|
19
19
|
)
|
|
20
20
|
|
|
21
21
|
avformat.avformat_version.restype = c_int
|
|
@@ -147,7 +147,7 @@ compat.add_version_changes('avformat', 58, AVStream, AVStream_Fields, removals=(
|
|
|
147
147
|
compat.add_version_changes('avformat', 59, AVStream, AVStream_Fields,
|
|
148
148
|
removals=('av_class', 'codec', 'recommended_encoder_configuration', 'info'))
|
|
149
149
|
|
|
150
|
-
for compat_ver in (60, 61):
|
|
150
|
+
for compat_ver in (60, 61, 62):
|
|
151
151
|
compat.add_version_changes('avformat', compat_ver, AVStream, AVStream_Fields,
|
|
152
152
|
removals=('codec', 'recommended_encoder_configuration', 'info'),
|
|
153
153
|
repositions=(compat.Reposition("codecpar", "id"),))
|
|
@@ -318,8 +318,8 @@ if avformat_version >= 61:
|
|
|
318
318
|
('io_close2', CFUNCTYPE(c_int, POINTER(AVFormatContext), POINTER(AVIOContext))) # Added in 59.
|
|
319
319
|
]
|
|
320
320
|
|
|
321
|
-
|
|
322
|
-
|
|
321
|
+
for compat_ver in (61, 62):
|
|
322
|
+
compat.add_version_changes('avformat', compat_ver, AVFormatContext, AVFormatContext_Fields, removals=None)
|
|
323
323
|
|
|
324
324
|
else:
|
|
325
325
|
AVFormatContext_Fields = [
|
|
@@ -410,7 +410,7 @@ else:
|
|
|
410
410
|
compat.add_version_changes('avformat', 58, AVFormatContext, AVFormatContext_Fields,
|
|
411
411
|
removals=('skip_estimate_duration_from_pts', 'max_probe_packets', 'io_close2'))
|
|
412
412
|
|
|
413
|
-
for compat_ver in (59, 60):
|
|
413
|
+
for compat_ver in (59, 60, 61, 62):
|
|
414
414
|
compat.add_version_changes('avformat', compat_ver, AVFormatContext, AVFormatContext_Fields,
|
|
415
415
|
removals=('filename', 'internal'))
|
|
416
416
|
|
|
@@ -12,8 +12,8 @@ _debug = debug_print('debug_media')
|
|
|
12
12
|
|
|
13
13
|
avutil = pyglet.lib.load_library(
|
|
14
14
|
'avutil',
|
|
15
|
-
win32=('avutil-59', 'avutil-58', 'avutil-57', 'avutil-56'),
|
|
16
|
-
darwin=('avutil.59', 'avutil.58', 'avutil.57', 'avutil.56')
|
|
15
|
+
win32=('avutil-60', 'avutil-59', 'avutil-58', 'avutil-57', 'avutil-56'),
|
|
16
|
+
darwin=('avutil.60', 'avutil.59', 'avutil.58', 'avutil.57', 'avutil.56')
|
|
17
17
|
)
|
|
18
18
|
|
|
19
19
|
avutil.avutil_version.restype = c_int
|
|
@@ -148,9 +148,9 @@ AVFrame_Fields = [
|
|
|
148
148
|
('opaque', c_void_p),
|
|
149
149
|
('error', c_uint64 * AV_NUM_DATA_POINTERS), # Deprecated. Removed in 57.
|
|
150
150
|
('repeat_pict', c_int),
|
|
151
|
-
('interlaced_frame', c_int), # deprecated in 59. Targeted for removal. Use AV_FRAME_FLAG_INTERLACED
|
|
152
|
-
('top_field_first', c_int), # deprecated in 59. Targeted for removal. Use AV_FRAME_FLAG_TOP_FIELD_FIRST
|
|
153
|
-
('palette_has_changed', c_int), # deprecated in 59. Targeted for removal.
|
|
151
|
+
('interlaced_frame', c_int), # deprecated in 59. Targeted for removal. Use AV_FRAME_FLAG_INTERLACED (removed in 60)
|
|
152
|
+
('top_field_first', c_int), # deprecated in 59. Targeted for removal. Use AV_FRAME_FLAG_TOP_FIELD_FIRST (removed in 60)
|
|
153
|
+
('palette_has_changed', c_int), # deprecated in 59. Targeted for removal. (removed in 60)
|
|
154
154
|
('reordered_opaque', c_int64), # removed in 59.
|
|
155
155
|
('sample_rate', c_int),
|
|
156
156
|
('channel_layout', c_uint64), # removed in 59.
|
|
@@ -170,7 +170,7 @@ AVFrame_Fields = [
|
|
|
170
170
|
('pkt_duration', c_int64), # removed in 59?
|
|
171
171
|
('metadata', POINTER(AVDictionary)),
|
|
172
172
|
('decode_error_flags', c_int),
|
|
173
|
-
('channels', c_int),
|
|
173
|
+
('channels', c_int), # removed in 59.
|
|
174
174
|
('pkt_size', c_int), # deprecated in 59. use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user data from packets to frames
|
|
175
175
|
('qscale_table', POINTER(c_int8)), # Deprecated. Removed in 57.
|
|
176
176
|
('qstride', c_int), # Deprecated. Removed in 57.
|
|
@@ -198,9 +198,18 @@ for compat_ver in (57, 58):
|
|
|
198
198
|
compat.add_version_changes('avutil', 59, AVFrame, AVFrame_Fields,
|
|
199
199
|
removals=('pkt_pts', 'error', 'qscale_table', 'qstride', 'qscale_type', 'qp_table_buf',
|
|
200
200
|
'channels', 'channel_layout',
|
|
201
|
-
'coded_picture_number', 'display_picture_number', 'reordered_opaque',
|
|
201
|
+
'coded_picture_number', 'display_picture_number', 'reordered_opaque',
|
|
202
|
+
'pkt_duration',
|
|
202
203
|
))
|
|
203
204
|
|
|
205
|
+
compat.add_version_changes('avutil', 60, AVFrame, AVFrame_Fields,
|
|
206
|
+
removals=('pkt_pts', 'error', 'qscale_table', 'qstride', 'qscale_type', 'qp_table_buf',
|
|
207
|
+
'channels', 'channel_layout',
|
|
208
|
+
'coded_picture_number', 'display_picture_number', 'reordered_opaque',
|
|
209
|
+
'pkt_duration',
|
|
210
|
+
'interlaced_frame', 'top_field_first', 'palette_has_changed', 'pkt_pos',
|
|
211
|
+
'pkt_size',
|
|
212
|
+
))
|
|
204
213
|
|
|
205
214
|
AV_NOPTS_VALUE = -0x8000000000000000
|
|
206
215
|
AV_TIME_BASE = 1000000
|
|
@@ -250,6 +259,12 @@ avutil.av_get_bytes_per_sample.argtypes = [c_int]
|
|
|
250
259
|
avutil.av_strerror.restype = c_int
|
|
251
260
|
avutil.av_strerror.argtypes = [c_int, c_char_p, c_size_t]
|
|
252
261
|
|
|
262
|
+
avutil.av_get_pix_fmt_name.restype = c_char_p
|
|
263
|
+
avutil.av_get_pix_fmt_name.argtypes = [c_int]
|
|
264
|
+
|
|
265
|
+
avutil.av_image_get_buffer_size.restype = c_int
|
|
266
|
+
avutil.av_image_get_buffer_size.argtypes = [c_int, c_int, c_int, c_int]
|
|
267
|
+
|
|
253
268
|
avutil.av_image_fill_arrays.restype = c_int
|
|
254
269
|
avutil.av_image_fill_arrays.argtypes = [POINTER(c_uint8) * 4, c_int * 4,
|
|
255
270
|
POINTER(c_uint8), c_int, c_int, c_int, c_int]
|
|
@@ -13,8 +13,8 @@ _debug = debug_print('debug_media')
|
|
|
13
13
|
|
|
14
14
|
swresample = pyglet.lib.load_library(
|
|
15
15
|
'swresample',
|
|
16
|
-
win32=('swresample-5', 'swresample-4', 'swresample-3'),
|
|
17
|
-
darwin=('swresample.5', 'swresample.4', 'swresample.3')
|
|
16
|
+
win32=('swresample-6', 'swresample-5', 'swresample-4', 'swresample-3'),
|
|
17
|
+
darwin=('swresample.6', 'swresample.5', 'swresample.4', 'swresample.3')
|
|
18
18
|
)
|
|
19
19
|
|
|
20
20
|
swresample.swresample_version.restype = c_int
|