pyglet 2.1.6__tar.gz → 2.1.8__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.6 → pyglet-2.1.8}/PKG-INFO +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/RELEASE_NOTES +49 -10
- {pyglet-2.1.6 → pyglet-2.1.8}/contrib/aseprite_codec/aseprite.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/internal/doc.rst +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/internal/media_logging_manual.rst +5 -5
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/internal/media_manual.rst +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/internal/virtualenv.rst +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/internal/wraptypes.rst +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/context.rst +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/eventloop.rst +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/events.rst +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/gui.rst +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/image.rst +46 -29
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/input.rst +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/math.rst +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/media.rst +3 -3
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/migration.rst +5 -5
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/resources.rst +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/shapes.rst +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/text.rst +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/windowing.rst +17 -11
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/gui/widgets.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/media_player.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/opengl/opengl_scissor.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/sprite/depth_sprite.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/text/text_input.py +5 -5
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/window/camera.py +6 -5
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/window/camera_group.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/window/fixed_resolution.py +28 -10
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/win32priority.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/__init__.py +27 -42
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/app/base.py +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/clock.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/display/base.py +31 -21
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/display/cocoa.py +25 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/display/headless.py +1 -1
- pyglet-2.1.8/pyglet/display/win32.py +278 -0
- pyglet-2.1.8/pyglet/display/xlib.py +503 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/event.py +17 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/experimental/README.md +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/experimental/jobs.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/experimental/multitexture_sprite.py +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/__init__.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/base.py +8 -5
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/dwrite/__init__.py +13 -8
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/dwrite/dwrite_lib.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/user.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/base.py +8 -4
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/cocoa.py +4 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/gl.py +4 -3
- pyglet-2.1.8/pyglet/gl/gl.pyi +2320 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/gl_compat.py +7 -18
- pyglet-2.1.8/pyglet/gl/gl_compat.pyi +3097 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/xlib.py +24 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/graphics/vertexbuffer.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gui/frame.py +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gui/widgets.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/__init__.py +3 -3
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/buffer.py +3 -3
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/base.py +8 -8
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/linux/evdev.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/darwin/cocoapy/cocoalibs.py +3 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/win32/__init__.py +12 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/win32/constants.py +4 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/win32/types.py +97 -0
- pyglet-2.1.8/pyglet/libs/x11/xrandr.py +166 -0
- pyglet-2.1.8/pyglet/libs/x11/xrender.py +43 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/x11/xsync.py +43 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/math.py +40 -49
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/buffered_logger.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/ffmpeg.py +18 -34
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/gstreamer.py +3 -3
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/pyogg.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/wave.py +6 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/wmf.py +33 -7
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/devices/win32.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/base.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/directsound/interface.py +4 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/listener.py +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/xaudio2/interface.py +6 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/instrumentation.py +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/player.py +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/player_worker_thread.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/synthesis.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/model/codecs/gltf.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/shapes.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/sprite.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/caret.py +44 -5
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/layout/base.py +3 -3
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/util.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/__init__.py +54 -14
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/cocoa/__init__.py +27 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/mouse.py +11 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/win32/__init__.py +40 -14
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/xlib/__init__.py +21 -7
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/platform/test_win_multicore_clock.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/window/test_window_caption.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/text/test_html.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/text/test_inline_elements.py +31 -6
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/window/test_window_events.py +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/conftest.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/math/test_mat.py +29 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/media/test_player.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/platform/test_mac_objc.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/extractors.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/fs.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/playmany.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +5 -5
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/readme_run_tests.txt +2 -2
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/run_test_suite.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/gengl.py +125 -40
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/gl.template +5 -1
- pyglet-2.1.8/tools/gl_stub.template +18 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/wraptypes/cparser.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/wraptypes/ctypesparser.py +1 -1
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/wraptypes/preprocessor.py +1 -1
- pyglet-2.1.6/pyglet/display/win32.py +0 -162
- pyglet-2.1.6/pyglet/display/xlib.py +0 -288
- {pyglet-2.1.6 → pyglet-2.1.8}/.coveragerc +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/.github/workflows/codeql.yml +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/.github/workflows/unittests.yml +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/.gitignore +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/.readthedocs.yml +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/LICENSE +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/MANIFEST.in +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/README.md +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/contrib/aseprite_codec/README +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/contrib/aseprite_codec/asedemo.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/contrib/aseprite_codec/running.ase +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/contrib/logo3d/logo3d.jpg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/contrib/logo3d/logo3d.obj.zip +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/contrib/logo3d/logo3d.wings +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/contrib/qt_sprite_preview.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/contrib/scenemanager.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/contrib/toys/follow_mouse.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/Makefile +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/_static/css/custom.css +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/_static/favicon.ico +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/_static/logo.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/_static/logo5.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/_static/relatedlogo.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/conf.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/external_resources.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/index.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/internal/contributing.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/internal/dist.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/internal/generated.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/internal/gl.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/internal/testing.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/internal/wraptypes-class.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/make.bat +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/app.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/clock.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/customtypes.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/display.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/event.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/font.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/gl.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/graphics/allocation.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/graphics/index.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/graphics/shader.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/graphics/vertexbuffer.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/graphics/vertexdomain.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/gui.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/image/animation.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/image/atlas.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/image/buffer.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/image/index.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/info.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/input.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/math.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/media.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/media_synthesis.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/models.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/pyglet.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/resource.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/shapes.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/sprite.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/text/caret.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/text/document.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/text/index.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/text/layout.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/window.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/window_key.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/modules/window_mouse.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/debug.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/examplegame.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/gl.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/abstract_image.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/abstract_image.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/buffer_image.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/buffer_image.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/context_flow.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/context_flow.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_mac_default.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_mac_no.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_mac_text.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_default.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_hand.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_help.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_no.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_size.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_text.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_wait.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/explosion.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/font_metrics.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/font_metrics.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/image_classes.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/image_classes.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/image_grid.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/image_grid.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/image_sequence.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/image_sequence.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/mouse_coordinates.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/screens.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/screens.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/text_classes.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/text_classes.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/window_location.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/window_location.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/window_osx_borderless.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/window_osx_default.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/window_osx_dialog.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/window_osx_tool.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/window_xp_default.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/window_xp_dialog.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/window_xp_overlay.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/window_xp_tool.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/img/window_xp_transparent.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/installation.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/keyboard.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/models.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/mouse.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/opengles.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/options.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/quickstart.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/rendering.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/programming_guide/time.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/doc/requirements.txt +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/clipboard.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/dpi_scaled_window.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/events/events_key_state_handler.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/events/register_event_type.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/events/window_events.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/events/window_platform_event.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/file_dialog.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/resources/asteroid.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/resources/bullet.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/resources/bullet.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/resources/engine_flame.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/resources/player.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version1/asteroid.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version1/game/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version1/game/load.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version1/game/resources.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version2/asteroid.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version2/game/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version2/game/load.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version2/game/physicalobject.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version2/game/player.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version2/game/resources.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version3/asteroid.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version3/game/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version3/game/load.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version3/game/physicalobject.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version3/game/player.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version3/game/resources.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version3/game/util.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version4/asteroid.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version4/game/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version4/game/asteroid.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version4/game/bullet.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version4/game/load.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version4/game/physicalobject.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version4/game/player.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version4/game/resources.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version4/game/util.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version5/asteroid.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version5/game/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version5/game/asteroid.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version5/game/bullet.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version5/game/load.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version5/game/physicalobject.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version5/game/player.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version5/game/resources.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/game/version5/game/util.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/graphics/image_convert.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/graphics/image_display.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/gui/bar.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/gui/button_hover.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/gui/button_pressed.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/gui/button_unpressed.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/gui/knob.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/hello_world.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/input/apple_remote.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/input/controller.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/input/input.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/input/joystick.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/input/tablet.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/media_info.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/noisy/README +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/noisy/ball.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/noisy/ball.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/noisy/noisy.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/soundspace/README +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/soundspace/reader.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/soundspace/res/bass.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/soundspace/res/drums.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/soundspace/res/guitar.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/soundspace/res/piano.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/soundspace/res/space.txt +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/soundspace/soundspace.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/synthesizer.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/media/video.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/model/box.mtl +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/model/box.obj +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/model/fpscamera.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/model/logo3d.mtl +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/model/logo3d.obj +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/model/model.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/model/pyglet.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/opengl/compute_shader.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/opengl/egl_context.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/opengl/minimal_shader.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/opengl/opengl_context.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/opengl/opengl_core.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/opengl/pyglet.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/opengl/torus.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/programming_guide/animation.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/programming_guide/dinosaur.gif +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/programming_guide/events.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/programming_guide/hello_world.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/programming_guide/image_viewer.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/programming_guide/kitten.jpg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/programming_guide/window_subclass.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/resources/Brick1Blue.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/resources/Brick1Crack3.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/resources/Brick1Gray.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/resources/kitten.jpg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/resources/pyglet.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/shapes.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/sprite/display_sprite.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/sprite/multi_texture_sprite.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/sprite/sprite_batching.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/text/advanced_font.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/text/html_label.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/text/pyglet.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/text/user_bitmap_font.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/timer.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/window/fps_change.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/window/multiple_windows.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/window/overlay_window.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/examples/window/transparent_window.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/dist_field/README +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/dist_field/genfield.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/dist_field/py.df.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/dist_field/py.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/dist_field/renderfield.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/flaccodec.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/hello_world.svg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/instancing/sprite_instance.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/instancing/sprite_instance_object.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/multitexture_sprite/multitexturesprite.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/spritebenchmark.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/svg_test.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/experimental/wayland/gbm_egl_context.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/make.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/__init__.pyi +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/app/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/app/cocoa.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/app/win32.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/app/xlib.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/customtypes.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/display/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/display/__init__.pyi +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/display/xlib_vidmoderestore.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/experimental/geoshader_sprite.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/experimental/hidraw.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/experimental/net.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/experimental/particles.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/extlibs/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/extlibs/earcut.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/extlibs/png.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/dwrite/d2d1_lib.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/dwrite/d2d1_types_lib.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/fontconfig.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/freetype.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/freetype_lib.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/harfbuzz/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/harfbuzz/harfbuzz_lib.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/quartz.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/ttf.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/font/win32.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/agl.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/gl_info.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/glx.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/glx_info.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/glxext_arb.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/glxext_mesa.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/glxext_nv.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/headless.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/lib.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/lib_agl.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/lib_glx.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/lib_wgl.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/wgl.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/wgl_info.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/wglext_arb.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/wglext_nv.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gl/win32.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/graphics/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/graphics/allocation.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/graphics/instance.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/graphics/shader.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/graphics/vertexarray.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/graphics/vertexdomain.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gui/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/gui/ninepatch.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/animation.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/atlas.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/codecs/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/codecs/bmp.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/codecs/dds.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/codecs/gdiplus.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/codecs/gif.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/codecs/pil.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/codecs/png.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/codecs/quartz.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/codecs/s3tc.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/codecs/wic.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/image/codecs/wincodec_lib.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/info.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/controller.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/controller_db.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/linux/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/linux/evdev_constants.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/linux/x11_xinput.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/macos/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/macos/darwin_hid.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/win32/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/win32/directinput.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/win32/wintab.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/input/win32/xinput.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/lib.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/darwin/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/darwin/coreaudio.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/darwin/quartzkey.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/egl/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/egl/egl.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/egl/eglext.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/egl/lib.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/ioctl.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/wayland/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/wayland/gbm.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/wayland/xkbcommon.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/win32/com.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/win32/context_managers.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/win32/dinput.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/win32/libwintab.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/win32/winkey.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/x11/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/x11/cursorfont.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/x11/xf86vmode.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/x11/xinerama.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/x11/xinput.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/libs/x11/xlib.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/base.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/coreaudio.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/ffmpeg_lib/compat.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/devices/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/devices/base.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/directsound/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/directsound/adaptation.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/directsound/exceptions.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/directsound/lib_dsound.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/openal/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/openal/adaptation.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/openal/interface.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/openal/lib_alc.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/openal/lib_openal.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/pulse/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/pulse/adaptation.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/pulse/interface.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/silent/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/silent/adaptation.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/drivers/xaudio2/adaptation.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/media/exceptions.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/model/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/model/codecs/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/model/codecs/base.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/model/codecs/obj.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/py.typed +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/resource.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/document.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/formats/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/formats/attributed.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/formats/html.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/formats/plaintext.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/formats/structured.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/layout/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/layout/incremental.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/layout/scrolling.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/text/runlist.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/cocoa/pyglet_delegate.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/cocoa/pyglet_textview.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/cocoa/pyglet_view.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/cocoa/pyglet_window.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/cocoa/systemcursor.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/event.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/headless/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyglet/window/key.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pyproject.toml +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/pytest.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/setup.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/annotations.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/base/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/base/data.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/base/event_loop.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/base/interactive.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/base/performance.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/conftest.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/fonts/README +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/fonts/action_man.ttf +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/fonts/action_man_atlas.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/fonts/action_man_bold.ttf +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/fonts/action_man_italic.ttf +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/8bpp.gif +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/cursor.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/dinosaur.gif +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/gdk_close.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/grey_background.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/icon1.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/icon_size1.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/icon_size2.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/icon_size3.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/icon_size4.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/icon_size5.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/l.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/la.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/multitexture.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgb.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgb_16bpp.bmp +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgb_1bpp.bmp +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgb_24bpp.bmp +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgb_32bpp.bmp +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgb_4bpp.bmp +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgb_8bpp.bmp +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgb_8bpp.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgb_8bpp_trans.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgb_dxt1.dds +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgba.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgba_32bpp.bmp +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgba_dxt1.dds +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgba_dxt3.dds +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/rgba_dxt5.dds +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/README +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/alert.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/login.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/logout.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/receive.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/send.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/models/logo3d.mtl +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/data/models/logo3d.obj +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/app/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/app/test_eventloop.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/conftest.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/font/test_fontconfig.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/font/test_freetype_face.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/graphics/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/graphics/test_allocation.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/graphics/test_batch_migration.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/graphics/test_shaders.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/image/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/image/test_gdkpixbuf2.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/image/test_imagegrid.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/image/test_texture3d.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/media/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/media/mock_player.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/media/test_directsound.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/media/test_driver.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/media/test_openal.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/media/test_player.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/media/test_pulse.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/model/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/model/test_loading.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/platform/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/platform/test_win_context_managers.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/resource/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/resource/dir1/f2.txt +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/resource/dir1/res.zip +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/resource/dir2/f6.txt +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/resource/f1.txt +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/resource/rgbm.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/resource/test_resource_image_loading.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/resource/test_resource_loading.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/test_integrations.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/text/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/text/test_empty_document.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/text/test_label_creation.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/text/test_layout_creation.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/window/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/window/test_context_share.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/integration/window/test_event_sequence.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/conftest.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/image/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/image/test_image.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/media/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/media/test_player.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/screenshots/committed/README +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/screenshots/session/README +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/shapes/test_shapes.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/test_interactive_test_base.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/text/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/text/test_caret_color.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/text/test_content_valign.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/text/test_inline_elements_style_change.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/text/test_multiline_wrap.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/text/test_plain.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/text/test_style.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/window/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/window/test_window_fullscreen.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/window/test_window_modes.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/window/test_window_multisample.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/window/test_window_open.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/window/test_window_settings.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/window/test_window_styles.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/window/window_util.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/interactive/windowed_test_base.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/requirements.txt +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/math/test_quat.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/math/test_vec2.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/math/test_vec3.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/math/test_vec4.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/media/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/media/test_listener.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/media/test_sources.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/media/test_synthesis.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/platform/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/shader/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/shader/conftest.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/shader/test_shader.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/shapes/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/shapes/conftest.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/shapes/test_shapes.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/test_atlas.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/test_clock.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/test_clock_freq.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/test_events.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/test_font.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/test_input.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/test_resource_path.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/test_sprite.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/test_text.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/text/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/text/test_caret.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tests/unit/text/test_layout.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/al_info.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/bokeh_timeline.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/compare.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/configure.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/mp.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/mpexceptions.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/report.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/reports.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/retry_crashed.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/summarize.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/test_instrumentation.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/ffmpeg/timeline.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/gencontrollerdb.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/genwrappers.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/gl.xml +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/gl_info.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/inspect_font.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/requirements.txt +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/wgl.h +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/wraptypes/__init__.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/wraptypes/lex.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/wraptypes/wrap.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/tools/wraptypes/yacc.py +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/LICENSE.txt +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/README.rst +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/assets/favicon.ico +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/assets/static/css/example-custom-styles.css +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/assets/static/images/pyglet.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/content/404.html/contents.lr +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/content/404.html/ngc-5793.jpg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/content/authors/benjamin/contents.lr +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/content/authors/benjamin/pyglet.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/content/authors/contents.lr +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/content/blog/contents.lr +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/content/blog/welcome-blog/contents.lr +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/content/contents.lr +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/content/eclipse.jpg +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/pyglet.lektorproject +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/AUTHORS.txt +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/CHANGELOG.md +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/LICENSE.txt +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/NOTICE.txt +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/README.md +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/images/blog-index.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/images/full-blog.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/images/full-page.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/images/gallery-404.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/models/404.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/models/author.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/models/authors.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/models/blog-post.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/models/blog.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/models/page.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/models/single-layout.ini +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/404.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/author.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/authors.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/blog-post.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/blog.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/layout.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/none.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/page.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/templates/single-layout.html +0 -0
- {pyglet-2.1.6 → pyglet-2.1.8}/website/themes/lektor-icon/theme.ini +0 -0
|
@@ -1,3 +1,42 @@
|
|
|
1
|
+
pyglet 2.1.8
|
|
2
|
+
|
|
3
|
+
Changes
|
|
4
|
+
-------
|
|
5
|
+
docs: Improve camera example documentation. (#1326)
|
|
6
|
+
gl: Add type hints to GL functions. (#1237) (#1325)
|
|
7
|
+
font: Add font shaping support to MacOSX.
|
|
8
|
+
window: Add support for MacOSX to have transparent windows and overlays. (#1339)
|
|
9
|
+
window: Add new `on_clipboard_copy` & `on_clipboard_paste` events, and add support to the Caret class. (#1313)
|
|
10
|
+
examples: Add a `get_mouse_scale` helper method to the FixedResolution class.
|
|
11
|
+
math: Remove `if` checks from `__matmul__` operations for small performance improvement.
|
|
12
|
+
|
|
13
|
+
Bugfixes
|
|
14
|
+
--------
|
|
15
|
+
font: Fix get_text_size for DirectWrite to include trailing whitespaces.
|
|
16
|
+
font: Cache glyphs based on unique ID and indices to reduce cache collions. (#1346)
|
|
17
|
+
font: Fix issue with inline elements crashing in a non-multiline scenario. (#1346)
|
|
18
|
+
media: Fix WMFDecoder delivering audio data as float. (#1315) (#1316)
|
|
19
|
+
window: Fix bugs with transparent framebuffers for transparent windows. (#1333)
|
|
20
|
+
window: Adjust software cursor scale factor for MacOS for HiDPI. (#1343)
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
pyglet 2.1.7
|
|
24
|
+
|
|
25
|
+
Changes
|
|
26
|
+
-------
|
|
27
|
+
event: Add EventDispatcher.post_event method for posting events to main thread
|
|
28
|
+
window: Clamp width and height to minimum of (1,1) in internal resize events (#1322)
|
|
29
|
+
window.mouse: Add __getattr__ to the MouseStateHandler (#1311)
|
|
30
|
+
|
|
31
|
+
Bugfixes
|
|
32
|
+
--------
|
|
33
|
+
docs: Fix outbound link, cross-refs, and formatting for programming guide image page (#1318)
|
|
34
|
+
input.Controller: fix Nonetype error if a mapping points towards a non-existing HAT Control
|
|
35
|
+
math: fix bugged Vec methods (#1310)
|
|
36
|
+
window: Fix window transparency for Windows OS.
|
|
37
|
+
window: Fix X11 clipboard selection by not setting XlibWindow._clipboard_str in self.get_clipboard_text
|
|
38
|
+
|
|
39
|
+
|
|
1
40
|
pyglet 2.1.6
|
|
2
41
|
|
|
3
42
|
Bugfixes
|
|
@@ -195,7 +234,7 @@ Bugfixes
|
|
|
195
234
|
- shapes: BezierCurve: fix miter artifacts from #1134. (#1155)
|
|
196
235
|
- examples: Fix "more" button outline in soundspace example. (#1085)
|
|
197
236
|
- tests: Fix a rarely-failing audio time test. (#1092)
|
|
198
|
-
- input.controller: Fix
|
|
237
|
+
- input.controller: Fix accidentally missed mappings.
|
|
199
238
|
- graphics.shader: Add missing parent program reference in Uniforms (#1103)
|
|
200
239
|
- graphics.domain: Fix VertexList.resize method.
|
|
201
240
|
- text.directwrite: Fix crash with dw_legacy_naming. Check if a custom collection exists before find a font with it.
|
|
@@ -436,7 +475,7 @@ Changes and Improvements
|
|
|
436
475
|
Bugfixes
|
|
437
476
|
--------
|
|
438
477
|
- gui: Prevent two TextEntry widgets from being active at the same time. #747
|
|
439
|
-
- win32: Fix broken lib debug, and multiple related bugs due to
|
|
478
|
+
- win32: Fix broken lib debug, and multiple related bugs due to deprecated functions.
|
|
440
479
|
- input: Controller mappings now indexed correctly on macOS and Windows.
|
|
441
480
|
|
|
442
481
|
|
|
@@ -577,7 +616,7 @@ Bugfixes
|
|
|
577
616
|
- Windows - Prevent distortion with multiple XAudio2 audio sources (#515)
|
|
578
617
|
- Fix frame dropping bug with FFMpeg decoder.
|
|
579
618
|
- Windows - Fix Video alpha channel for WMF decoder.
|
|
580
|
-
-
|
|
619
|
+
- Various documentation and docstring fixes. Thanks everyone!
|
|
581
620
|
|
|
582
621
|
|
|
583
622
|
pyglet 1.5.21
|
|
@@ -751,7 +790,7 @@ Bugfixes
|
|
|
751
790
|
--------
|
|
752
791
|
- Explicitly cast media.synthesis data to bytes to prevent issues on some audio drivers.
|
|
753
792
|
- Refactor WIC module to work with new com module. (#298)
|
|
754
|
-
- Prevent crash when setting `shapes.Circle.
|
|
793
|
+
- Prevent crash when setting `shapes.Circle.visible`. (#294)
|
|
755
794
|
- Remove deprecated `tostring` calls in PIL/PNG decoders to prevent crash on Python 3.9. (#295, #302)
|
|
756
795
|
|
|
757
796
|
Improvements
|
|
@@ -829,7 +868,7 @@ Bugfix and minor feature release
|
|
|
829
868
|
|
|
830
869
|
Bugfixes
|
|
831
870
|
--------
|
|
832
|
-
- Avoid WMFDecoder crash when mixing pyglet with other
|
|
871
|
+
- Avoid WMFDecoder crash when mixing pyglet with other toolkits. (#174)
|
|
833
872
|
- Prevent EventDispatcher subclasses from hiding AttributeError exceptions.
|
|
834
873
|
|
|
835
874
|
Improvements
|
|
@@ -941,7 +980,7 @@ Bugfix and small improvement release
|
|
|
941
980
|
Bugfixes
|
|
942
981
|
--------
|
|
943
982
|
- Allow creation of non-power-of-two compressed Textures. (#78)
|
|
944
|
-
- Fix EventDispatchers
|
|
983
|
+
- Fix EventDispatchers suppressing `AttributeError`s. (#87)
|
|
945
984
|
- Fix external lib loading on Windows under Python 3.8. (#90)
|
|
946
985
|
|
|
947
986
|
Improvements
|
|
@@ -1029,7 +1068,7 @@ Of special note, is that the 1.4 release will be the last to support Python 2. I
|
|
|
1029
1068
|
last release to support Legacy OpenGL (2.x). Future pyglet releases will be Python 3 only, and will
|
|
1030
1069
|
require at least OpenGL 3 support. If you are using pyglet on legacy systems, don't worry. The 1.4
|
|
1031
1070
|
branch will remain available for download. Bugfixes will be backported as long as someone is willing
|
|
1032
|
-
to do so, but new
|
|
1071
|
+
to do so, but new features on the 1.4 branch are unlikely.
|
|
1033
1072
|
|
|
1034
1073
|
New features
|
|
1035
1074
|
------------
|
|
@@ -1060,7 +1099,7 @@ Improvements
|
|
|
1060
1099
|
bundled Python Wave codec can also support loading of 24bit wave files. Please note that the
|
|
1061
1100
|
OpenAL driver does NOT support 24bit audio playback.
|
|
1062
1101
|
- Wave decoding is now based on the Python standard library `wave` module. This is slightly more
|
|
1063
|
-
forgiving when loading slightly non-
|
|
1102
|
+
forgiving when loading slightly non-compliant files.
|
|
1064
1103
|
- Default texture min and mag filtering can be set on the Texture class. For example:
|
|
1065
1104
|
`pyglet.image.Texture.default_min_filter = GL_LINEAR`
|
|
1066
1105
|
`pyglet.image.Texture.default_mag_filter = GL_LINEAR`
|
|
@@ -1287,7 +1326,7 @@ Bugfixes
|
|
|
1287
1326
|
- 638: Player set_pitch crashes with 'directaudio' driver
|
|
1288
1327
|
- 653: Unsupported PNG color type: 3
|
|
1289
1328
|
- 657: gdiplus.py : n_delays must be long, not float.
|
|
1290
|
-
- 659: image.save method
|
|
1329
|
+
- 659: image.save method doesn't catch correct Exception
|
|
1291
1330
|
- 660: platform_event_loop.post_event doesn't work for Cocoa loop
|
|
1292
1331
|
- 661: Player.next is converted to Player.__next__ for python3
|
|
1293
1332
|
- 662: gamepad cannot be found in linux
|
|
@@ -1314,7 +1353,7 @@ Bugfixes
|
|
|
1314
1353
|
- 718: False "ImageDecodeException: Not a GIF stream" in python3.x
|
|
1315
1354
|
- 719: .bmp files traceback with py3
|
|
1316
1355
|
- 720: tests/image compatibility StringIO vs BytesIO
|
|
1317
|
-
- 721:
|
|
1356
|
+
- 721: compatibility py3 for tests/image TEXTURE_3D.py and TEXTURE_GRID.py
|
|
1318
1357
|
- 722: TypeError in graphics test suite with python3.x
|
|
1319
1358
|
- 723: py3 compatibility in tests/image MATRIX_RGB.py, MATRIX_RGBA.py
|
|
1320
1359
|
- 724: py3 compatibility for png s (bytes vs str)
|
|
@@ -26,7 +26,7 @@ folder are also defined in the index.rst, in order to includes them in the build
|
|
|
26
26
|
|
|
27
27
|
API documentation
|
|
28
28
|
-----------------
|
|
29
|
-
The API documentation is generated
|
|
29
|
+
The API documentation is generated directly from the source code docstrings by `autodoc`_,
|
|
30
30
|
a plugin extension that is included with Sphinx. The generation itself is mostly automatic,
|
|
31
31
|
but declaration files are necessary to instruct Sphinx how and which modules and classes
|
|
32
32
|
should be included. Look through the existing files at ``pyglet/doc/modules/`` to get an
|
|
@@ -88,7 +88,7 @@ example
|
|
|
88
88
|
"""Constructor description
|
|
89
89
|
|
|
90
90
|
Here is where you can describe how to make an instance of the
|
|
91
|
-
class. If any of the arguments need further
|
|
91
|
+
class. If any of the arguments need further explanation, that
|
|
92
92
|
detail can be added as necessary. For example:
|
|
93
93
|
You must provide a name and a size, etc. etc.
|
|
94
94
|
|
|
@@ -96,7 +96,7 @@ Keep in mind that some raw data will be stale or misleading:
|
|
|
96
96
|
|
|
97
97
|
The reports using that stale raw data will obviously report stale data.
|
|
98
98
|
|
|
99
|
-
So it is a good idea to switch to a normal workflow as soon as
|
|
99
|
+
So it is a good idea to switch to a normal workflow as soon as possible
|
|
100
100
|
(simply creating a new session and deleting the special session).
|
|
101
101
|
|
|
102
102
|
|
|
@@ -112,7 +112,7 @@ If a ``playlist_file`` is specified, then it should contain one sample name
|
|
|
112
112
|
per line; a sanity check will be performed ensuring no blacklisted extension
|
|
113
113
|
is used, and that the sample exists in samples_dir.
|
|
114
114
|
|
|
115
|
-
Once the ``playlist_file`` is used in ``configure.py new`` a copy is
|
|
115
|
+
Once the ``playlist_file`` is used in ``configure.py new`` a copy is written to
|
|
116
116
|
the session raw data directory, and this copy will be the authoritative
|
|
117
117
|
playlist for the session; ``playlist_file`` can be deleted if desired.
|
|
118
118
|
|
|
@@ -234,7 +234,7 @@ policies:
|
|
|
234
234
|
Code Layout and conventions
|
|
235
235
|
===========================
|
|
236
236
|
|
|
237
|
-
The emerging separation of
|
|
237
|
+
The emerging separation of responsibilities goes like
|
|
238
238
|
|
|
239
239
|
Scripts (commands)
|
|
240
240
|
------------------
|
|
@@ -255,7 +255,7 @@ Structured as:
|
|
|
255
255
|
|
|
256
256
|
When two scripts use some related but not identical functionality, these parts
|
|
257
257
|
can be moved to another module. Example: at first ``summarize`` had the code to
|
|
258
|
-
collect defects stats, later, when ``compare`` was
|
|
258
|
+
collect defects stats, later, when ``compare`` was written, the module
|
|
259
259
|
``extractors`` was added and the defect collection stats code moved to that
|
|
260
260
|
module.
|
|
261
261
|
|
|
@@ -599,7 +599,7 @@ The files in that directory will be
|
|
|
599
599
|
etc (as captured at session creation).
|
|
600
600
|
|
|
601
601
|
``04_pyglet_hg_revision.txt`` , pyglet hg revision if running from a repo
|
|
602
|
-
clone, non
|
|
602
|
+
clone, non written if no repo (as captured at session creation).
|
|
603
603
|
|
|
604
604
|
``sample_name.all.txt`` and ``sample_name.anomalies.txt`` for each sample that
|
|
605
605
|
played non perfect.
|
|
@@ -119,7 +119,7 @@ If any single measurement exceeds 280ms, an extreme desync that is noticeable
|
|
|
119
119
|
in context of the app is assumed. If the ``AudioPlayer`` is running behind the
|
|
120
120
|
master clock, all of this audio data is skipped and the measurements are reset.
|
|
121
121
|
When running *ahead* by more than 280ms, nothing is done but the standard
|
|
122
|
-
|
|
122
|
+
stretching of 12ms at a time.
|
|
123
123
|
|
|
124
124
|
.. _audioplayer-play:
|
|
125
125
|
|
|
@@ -249,7 +249,7 @@ tends to be different: ::
|
|
|
249
249
|
else:
|
|
250
250
|
has_underrun = True
|
|
251
251
|
|
|
252
|
-
High care must be taken to protect
|
|
252
|
+
High care must be taken to protect appropriate sections (any variables and
|
|
253
253
|
buffers which get accessed by both callbacks and the work method) with a lock,
|
|
254
254
|
otherwise the method is open to extremely unlucky issues where the callback
|
|
255
255
|
is unscheduled in favor of the work method or vice versa, which may cause one
|
|
@@ -28,7 +28,7 @@ To build packages for distribution you need to install:
|
|
|
28
28
|
It is preferred to create a Python virtual environment to develop in.
|
|
29
29
|
This allows you to easily test on all Python versions supported by pyglet,
|
|
30
30
|
not pollute your local system with pyglet development dependencies,
|
|
31
|
-
and not have your local system interfere with pyglet
|
|
31
|
+
and not have your local system interfere with pyglet development.
|
|
32
32
|
All dependencies you install while inside an activated virtual
|
|
33
33
|
environment will remain isolated inside that environment.
|
|
34
34
|
When you're finished, you can simply delete it.
|
|
@@ -143,7 +143,7 @@ is written to the token list as a ``PP_IFNDEF`` token.
|
|
|
143
143
|
``#define`` is handled specially. After applying it to the namespace, it is
|
|
144
144
|
parsed as an expression immediately. This is allowed (and often expected) to
|
|
145
145
|
fail. If it does not fail, a ``PP_DEFINE_CONSTANT`` token is created, and the
|
|
146
|
-
value is the result of
|
|
146
|
+
value is the result of evaluating the expression. Otherwise, a ``PP_DEFINE``
|
|
147
147
|
token is created, and the value is the string concatenation of the tokens
|
|
148
148
|
defined. Special handling of parseable expressions makes it simple to later
|
|
149
149
|
parse constants defined as, for example::
|
|
@@ -195,7 +195,7 @@ only what pyglet (and any other ctypes-wrapping application) requires. The
|
|
|
195
195
|
classes in the object model are:
|
|
196
196
|
|
|
197
197
|
Declaration
|
|
198
|
-
A single declaration
|
|
198
|
+
A single declaration occurring outside of a function body. This includes
|
|
199
199
|
type declarations, function declarations and variable declarations. The
|
|
200
200
|
attributes are ``declarator`` (see below), ``type`` (a Type object) and
|
|
201
201
|
``storage`` (for example, 'typedef', 'const', 'static', 'extern', etc).
|
|
@@ -215,7 +215,7 @@ created based on the values of these properties:
|
|
|
215
215
|
``accum_red_size``, ``accum_blue_size``, ``accum_green_size``, ``accum_alpha_size``
|
|
216
216
|
The accumulation buffer can be used for simple antialiasing,
|
|
217
217
|
depth-of-field, motion blur and other compositing operations. Its use
|
|
218
|
-
nowadays is being
|
|
218
|
+
nowadays is being superseded by the use of floating-point textures,
|
|
219
219
|
however it is still a practical solution for implementing these
|
|
220
220
|
effects on older hardware.
|
|
221
221
|
|
|
@@ -101,7 +101,7 @@ for input indefinitely.
|
|
|
101
101
|
Creating a Custom Event Loop
|
|
102
102
|
----------------------------
|
|
103
103
|
|
|
104
|
-
Many windowing toolkits
|
|
104
|
+
Many windowing toolkits require the application developer to write their own
|
|
105
105
|
event loop. This is also possible in pyglet, but is usually just an inconvenience
|
|
106
106
|
compared to :py:func:`pyglet.app.run`. It can be necessary in some situations,
|
|
107
107
|
such as when combining pyglet with other toolkits, but is strongly discouraged
|
|
@@ -36,7 +36,7 @@ should be written to accept these two values. For example::
|
|
|
36
36
|
def on_resize(width, height):
|
|
37
37
|
pass
|
|
38
38
|
|
|
39
|
-
There are a few different ways in which event handlers can be attached to
|
|
39
|
+
There are a few different ways in which event handlers can be attached to receive them.
|
|
40
40
|
The simplest way is to directly attach the event handler to the corresponding attribute
|
|
41
41
|
on the object. This will completely replace the default event handler::
|
|
42
42
|
|
|
@@ -91,7 +91,7 @@ or if your handler has a different name, pass the event name to the decorator::
|
|
|
91
91
|
|
|
92
92
|
|
|
93
93
|
In most simple cases, the :py:class:`~pyglet.event.EventDispatcher.event`
|
|
94
|
-
decorator is most
|
|
94
|
+
decorator is most convenient. One limitation of using the decorator,
|
|
95
95
|
however, is that you can only add one additional event handler.
|
|
96
96
|
If you want to add multiple additional event handlers, the next section
|
|
97
97
|
describes how to accomplish that.
|
|
@@ -100,7 +100,7 @@ If a Frame is introduced, the following occurs:
|
|
|
100
100
|
2. Set the Frame as a handler for Window events.
|
|
101
101
|
3. Make one or more Widget instances.
|
|
102
102
|
4. Add your widget instances to the Frame.
|
|
103
|
-
5. Only Widgets near the mouse pointer will
|
|
103
|
+
5. Only Widgets near the mouse pointer will receive Window events.
|
|
104
104
|
|
|
105
105
|
This works quite well for most cases, but has some limitations. When using the
|
|
106
106
|
TextEntry widget, for instance, the widget may become unresponsive if you use
|
|
@@ -6,16 +6,17 @@ using native operating system services. If the `Pillow`_ library is installed,
|
|
|
6
6
|
many additional formats can be supported. pyglet also includes built-in
|
|
7
7
|
codecs for loading PNG and BMP without external dependencies.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
textures and framebuffers
|
|
11
|
-
otherwise manipulated.
|
|
9
|
+
In addition to loading, pyglet also supports the following operations
|
|
10
|
+
for both OpenGL textures and framebuffers:
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
12
|
+
* converting to pyglet image objects
|
|
13
|
+
* saving to disk as screenshots
|
|
14
|
+
* manipulation as image data
|
|
15
|
+
* converting to :py:class:`bytes` of raw pixel data
|
|
16
|
+
|
|
17
|
+
For most users, the :py:class:`~pyglet.sprite.Sprite` class is the best way
|
|
18
|
+
to draw an image. One or more instances may draw the same image data with
|
|
19
|
+
individually configured values for position, scaling, rotation, and more.
|
|
19
20
|
|
|
20
21
|
.. _Pillow: https://pillow.readthedocs.io
|
|
21
22
|
|
|
@@ -60,7 +61,7 @@ Sprites
|
|
|
60
61
|
|
|
61
62
|
A Sprite is a full featured class for displaying instances of Images or
|
|
62
63
|
Animations in the window. Image and Animation instances are mainly concerned
|
|
63
|
-
with the image data (size, pixels, etc.),
|
|
64
|
+
with the image data (size, pixels, etc.), whereas Sprites also include
|
|
64
65
|
additional properties. These include x/y location, scale, rotation, opacity,
|
|
65
66
|
color tint, visibility, and both horizontal and vertical scaling.
|
|
66
67
|
Multiple sprites can share the same image; for example, hundreds of bullet
|
|
@@ -133,7 +134,7 @@ In addition, try to combine your images into as few textures as possible;
|
|
|
133
134
|
for example, by loading images with :py:func:`pyglet.resource.image`
|
|
134
135
|
(see :ref:`guide_resources`) or with :ref:`guide_texture-bins-and-atlases`).
|
|
135
136
|
A common pitfall is to use the :py:func:`pyglet.image.load` method to load
|
|
136
|
-
a large number of images. This will cause a
|
|
137
|
+
a large number of images. This will cause a separate texture to be created
|
|
137
138
|
for each image loaded, resulting in a lot of OpenGL texture binding overhead
|
|
138
139
|
for each frame.
|
|
139
140
|
|
|
@@ -479,7 +480,7 @@ following table:
|
|
|
479
480
|
= ============
|
|
480
481
|
|
|
481
482
|
For example, a format string of ``"RGBA"`` corresponds to four bytes of
|
|
482
|
-
|
|
483
|
+
color data, in the order red, green, blue, alpha. Note that machine
|
|
483
484
|
endianness has no impact on the interpretation of a format string.
|
|
484
485
|
|
|
485
486
|
The length of a format string always gives the number of bytes per pixel. So,
|
|
@@ -633,7 +634,7 @@ sprites from a single texture. One problem you may encounter, however,
|
|
|
633
634
|
is bleeding between adjacent images.
|
|
634
635
|
|
|
635
636
|
When OpenGL renders a texture to the screen, by default it obtains each pixel
|
|
636
|
-
|
|
637
|
+
color by interpolating nearby texels. You can disable this behaviour by
|
|
637
638
|
switching to the ``GL_NEAREST`` interpolation mode, however you then lose the
|
|
638
639
|
benefits of smooth scaling, distortion, rotation and sub-pixel positioning.
|
|
639
640
|
|
|
@@ -678,7 +679,7 @@ appropriate locations within the texture to avoid overlap.
|
|
|
678
679
|
|
|
679
680
|
It's possible for a :py:class:`~pyglet.image.atlas.TextureAtlas` to run out
|
|
680
681
|
of space for new images, so applications will need to either know the correct
|
|
681
|
-
size of the texture to allocate
|
|
682
|
+
size of the texture to allocate initially, or maintain multiple atlases as
|
|
682
683
|
each one fills up.
|
|
683
684
|
|
|
684
685
|
The :py:class:`~pyglet.image.atlas.TextureBin` class provides a simple means
|
|
@@ -745,9 +746,13 @@ the window::
|
|
|
745
746
|
When animations are loaded with :py:mod:`pyglet.resource` (see
|
|
746
747
|
:ref:`guide_resources`) the frames are automatically packed into a texture bin.
|
|
747
748
|
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
749
|
+
The ``examples/programming_guide/`` folder of the `GitHub repository`_
|
|
750
|
+
includes:
|
|
751
|
+
|
|
752
|
+
* this example program (``animation.py``)
|
|
753
|
+
* a sample GIF animation file (``dinosaur.gif``)
|
|
754
|
+
|
|
755
|
+
.. _GitHub repository: https://github.com/pyglet/pyglet/
|
|
751
756
|
|
|
752
757
|
|
|
753
758
|
Framebuffers
|
|
@@ -779,7 +784,7 @@ as components of the :py:class:`~pyglet.image.AbstractImage` hierarchy.
|
|
|
779
784
|
|
|
780
785
|
The :py:class:`~pyglet.image.BufferImage` hierarchy.
|
|
781
786
|
|
|
782
|
-
* One or more
|
|
787
|
+
* One or more color buffers, represented by
|
|
783
788
|
:py:class:`~pyglet.image.ColorBufferImage`
|
|
784
789
|
* An optional depth buffer, represented by
|
|
785
790
|
:py:class:`~pyglet.image.DepthBufferImage`
|
|
@@ -852,6 +857,10 @@ For example, to bind a texture::
|
|
|
852
857
|
|
|
853
858
|
glBindTexture(texture.target, texture.id)
|
|
854
859
|
|
|
860
|
+
|
|
861
|
+
|
|
862
|
+
.. _OpenGL Programming Guide: http://www.opengl-redbook.com/
|
|
863
|
+
|
|
855
864
|
Texture dimensions
|
|
856
865
|
^^^^^^^^^^^^^^^^^^
|
|
857
866
|
|
|
@@ -943,23 +952,31 @@ empty (maximal).
|
|
|
943
952
|
Use the :py:meth:`pyglet.image.Texture.create` class method to create a texture
|
|
944
953
|
with a specific internal format.
|
|
945
954
|
|
|
955
|
+
|
|
946
956
|
Texture filtering
|
|
947
957
|
^^^^^^^^^^^^^^^^^
|
|
948
958
|
|
|
949
|
-
By default, all textures are created with smooth (
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
959
|
+
By default, all textures are created with smooth (:py:data:`~pyglet.gl.GL_LINEAR`)
|
|
960
|
+
filtering.
|
|
961
|
+
|
|
962
|
+
To use a different filter for a specific texture, pass the filtering constant(s)
|
|
963
|
+
to the :py:attr:`pyglet.image.Texture` class via the ``min_filter`` and ``mag_filter``
|
|
964
|
+
arguments.
|
|
965
|
+
|
|
966
|
+
Pixel art
|
|
967
|
+
"""""""""
|
|
968
|
+
|
|
969
|
+
To enable nearest-neighbor filtering for retro-style games, set the
|
|
970
|
+
corresponding variables of :py:class:`pyglet.image.Texture` to
|
|
971
|
+
:py:data:`~pyglet.gl.GL_NEAREST`:
|
|
957
972
|
|
|
958
|
-
|
|
959
|
-
pyglet.image.Texture.default_mag_filter = GL_LINEAR
|
|
973
|
+
.. code-block:: python
|
|
960
974
|
|
|
975
|
+
pyglet.image.Texture.default_min_filter = GL_LINEAR
|
|
976
|
+
pyglet.image.Texture.default_mag_filter = GL_LINEAR
|
|
961
977
|
|
|
962
|
-
|
|
978
|
+
Afterward, all textures pyglet creates will default
|
|
979
|
+
to nearest-neighbor sampling.
|
|
963
980
|
|
|
964
981
|
Saving an image
|
|
965
982
|
---------------
|
|
@@ -14,7 +14,7 @@ digital and/or analog inputs. For most types of games, the game controller abstr
|
|
|
14
14
|
recommended.
|
|
15
15
|
|
|
16
16
|
For advanced use cases, it is also possible to access the low-level input devices directly.
|
|
17
|
-
This can be useful if you need direct
|
|
17
|
+
This can be useful if you need direct access to the raw inputs, without normalization.
|
|
18
18
|
For most application and games this is not required.
|
|
19
19
|
|
|
20
20
|
The :py:mod:`~pyglet.input` module provides several methods for querying
|
|
@@ -72,8 +72,8 @@ In addition to the ``projection`` property, pyglet Windows also contain a ``view
|
|
|
72
72
|
points to another matrix that is used internally by pyglet's built-in classes. The view matrix
|
|
73
73
|
gets multiplied with the projection matrix, controlling the final positioning and rendering of
|
|
74
74
|
pyglet's built-in objects like Sprites, Shapes, and text. Unlike the projection matrix the view
|
|
75
|
-
matrix defaults to an
|
|
76
|
-
for users to set their own matrix on it, and
|
|
75
|
+
matrix defaults to an identity matrix, and therefore has no effect initially. This makes it useful
|
|
76
|
+
for users to set their own matrix on it, and control zooming or translating (panning) a "camera".
|
|
77
77
|
The ``Mat4`` class contains helper methods for creating these types of matrixes::
|
|
78
78
|
|
|
79
79
|
# translate the camera +100 on the X axis:
|
|
@@ -286,7 +286,7 @@ and FLAC codecs.
|
|
|
286
286
|
|
|
287
287
|
If the PyOgg module is installed in your site packages, pyglet will optionally detect
|
|
288
288
|
and use it. Since not all operating systems can decode the same audio formats natively,
|
|
289
|
-
it can often be a hassle to choose an audio format that is
|
|
289
|
+
it can often be a hassle to choose an audio format that is truly cross platform with
|
|
290
290
|
a small footprint. This wrapper was created to help with that issue.
|
|
291
291
|
|
|
292
292
|
Supports the following formats:
|
|
@@ -570,7 +570,7 @@ and then pass it into the constructor of any of the above waveforms.
|
|
|
570
570
|
The same envelope instance can be passed to any number of waveforms,
|
|
571
571
|
reducing duplicate code when creating multiple sounds.
|
|
572
572
|
If no envelope is used, all waveforms will default to the FlatEnvelope
|
|
573
|
-
of maximum amplitude, which
|
|
573
|
+
of maximum amplitude, which essentially has no effect on the sound.
|
|
574
574
|
Check the module documentation of each Envelope to see which parameters
|
|
575
575
|
are available.
|
|
576
576
|
|
|
@@ -761,7 +761,7 @@ Incorporating video
|
|
|
761
761
|
When a :py:class:`~pyglet.media.player.Player` is playing back a source with
|
|
762
762
|
video, use the :attr:`~pyglet.media.Player.texture` property to obtain the
|
|
763
763
|
video frame image. This can be used to display the current video image
|
|
764
|
-
|
|
764
|
+
synchronised with the audio track, for example::
|
|
765
765
|
|
|
766
766
|
@window.event
|
|
767
767
|
def on_draw():
|
|
@@ -33,7 +33,7 @@ you can get and set its attribute values directly via either approach below::
|
|
|
33
33
|
# "New" 2.1 attribute-style works with type checkers
|
|
34
34
|
pyglet.options.dpi_scaling = 'real'
|
|
35
35
|
|
|
36
|
-
# "Old" dict-style access is backward-compatible to
|
|
36
|
+
# "Old" dict-style access is backward-compatible to help with porting
|
|
37
37
|
pyglet.options['dpi_scaling'] = 'real'
|
|
38
38
|
|
|
39
39
|
|
|
@@ -245,7 +245,7 @@ greater than ``1.0``. Normalizating allows concisely clamping the input to ``1.0
|
|
|
245
245
|
player.position += vector * PLAYER_SPEED
|
|
246
246
|
|
|
247
247
|
|
|
248
|
-
|
|
248
|
+
Accessing Vector Components
|
|
249
249
|
""""""""""""""""""""""""""
|
|
250
250
|
You can directly access individual :py:attr:`~pyglet.math.Vec2.x` and
|
|
251
251
|
:py:attr:`~pyglet.math.Vec2.y` attributes or unpack a vector:
|
|
@@ -272,7 +272,7 @@ Widget Event Dispatching
|
|
|
272
272
|
All widget events now dispatch the widget instance itself as the first argument.
|
|
273
273
|
|
|
274
274
|
This is similar to how Controller/Joystick events are implemented. It allows
|
|
275
|
-
you to
|
|
275
|
+
you to reuse a single handler functions across multiple widgets without "forgetting"
|
|
276
276
|
which widget dispatched an event.
|
|
277
277
|
|
|
278
278
|
Button Argument Names
|
|
@@ -314,8 +314,8 @@ Vector Changes
|
|
|
314
314
|
|
|
315
315
|
The syntax for the Vec types has changed in several ways.
|
|
316
316
|
Some of these changes are due to becoming :py:class:`typing.NamedTuple` subclasses, while others
|
|
317
|
-
were done for general
|
|
318
|
-
for a more
|
|
317
|
+
were done for general usability. Where possible, we adopt the behavior of GLM/GLSL for most operations,
|
|
318
|
+
for a more familiar experience for computer graphics programmers.
|
|
319
319
|
|
|
320
320
|
* The arguments for ``Vec2.from_polar`` have been reversed for consistency. The ``length`` argument also now defaults
|
|
321
321
|
to 1.0. This will fail silently, so take care to correct this if you are using this method in your code::
|
|
@@ -107,7 +107,7 @@ The resource module attempts to pack small images into larger texture atlases
|
|
|
107
107
|
(which is why the return type of this function can be
|
|
108
108
|
:py:class:`~pyglet.image.TextureRegion`).
|
|
109
109
|
It is also advisable to use the texture atlas classes directly if you wish
|
|
110
|
-
to have different
|
|
110
|
+
to have different anchor points on multiple copies of the same image.
|
|
111
111
|
This is because when loading an image more than once, you will actually get
|
|
112
112
|
the **same** object back. You can still use the resource module for getting
|
|
113
113
|
the image location, and described in the next section.
|
|
@@ -222,7 +222,7 @@ the operating system's convention:
|
|
|
222
222
|
* ``~/Library/Application Support/ApplicationName`` on Mac OS X
|
|
223
223
|
|
|
224
224
|
The :py:func:`pyglet.resource.get_data_path` function returns a directory
|
|
225
|
-
suitable for writing
|
|
225
|
+
suitable for writing arbitrary data, such as save files. The directory used follows
|
|
226
226
|
the operating system's convention:
|
|
227
227
|
|
|
228
228
|
* ``~/.local/share/ApplicationName/`` on Linux (depends on `XDG_DATA_HOME` environment variable).
|
|
@@ -9,7 +9,7 @@ and manipulating colored shapes, such as rectangles, circles, and
|
|
|
9
9
|
lines. Shapes can be resized, positioned, and rotated where applicable,
|
|
10
10
|
and their color and opacity can be changed. All shapes are implemented
|
|
11
11
|
using OpenGL primitives, so they can be drawn efficiently with :ref:`guide_batched-rendering`.
|
|
12
|
-
In the following examples `Batch` will be
|
|
12
|
+
In the following examples `Batch` will be omitted for brevity, but in
|
|
13
13
|
general you always want to use Batched rendering for performance.
|
|
14
14
|
|
|
15
15
|
For drawing more complex shapes, see the :ref:`guide_graphics` module.
|
|
@@ -130,7 +130,7 @@ for relatively short or unchanging documents.
|
|
|
130
130
|
:py:class:`~pyglet.text.layout.ScrollableTextLayout` is a small extension to
|
|
131
131
|
:py:func:`~pyglet.text.layout.TextLayout` that culls the
|
|
132
132
|
text outside of a specified view rectangle, and allows text to be scrolled within that
|
|
133
|
-
rectangle without performing the layout
|
|
133
|
+
rectangle without performing the layout calculation again. Because of this
|
|
134
134
|
clipping rectangle the graphics group cannot be shared with other text
|
|
135
135
|
layouts, so for ideal performance
|
|
136
136
|
:py:class:`~pyglet.text.layout.ScrollableTextLayout` should be used only
|
|
@@ -296,7 +296,7 @@ Attributed text
|
|
|
296
296
|
^^^^^^^^^^^^^^^
|
|
297
297
|
|
|
298
298
|
pyglet provides two formats for decoding formatted documents from plain text.
|
|
299
|
-
These are useful for loading
|
|
299
|
+
These are useful for loading pre-prepared documents such as help screens. At
|
|
300
300
|
this time there is no facility for saving (encoding) formatted documents.
|
|
301
301
|
|
|
302
302
|
The *attributed text* format is an encoding specific to pyglet that can
|