pyglet 3.0.dev1__tar.gz → 3.0.dev2__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-3.0.dev1 → pyglet-3.0.dev2}/PKG-INFO +3 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/contrib/toys/follow_mouse.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/examplegame.rst +72 -65
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/graphics/instancing.py +1 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/opengl/minimal_shader.py +2 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/opengl/opengl_core.py +1 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/opengl/torus.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/__init__.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/enums.py +11 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/experimental/geoshader_sprite.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/experimental/particles.py +26 -34
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/__init__.py +0 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/draw.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/enums.py +1 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/shader.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/vertexdomain.py +2 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl2/draw.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl2/vertexdomain.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/draw.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/enums.py +1 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/shader.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/vertexdomain.py +2 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/draw.py +1 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/shader.py +2 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/vertexdomain.py +2 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/gui/ninepatch.py +2 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/gui/widgets.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/base.py +3 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/win32/xinput.py +2 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/webaudio_pyodide.py +3 -4
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/model/__init__.py +9 -35
- pyglet-3.0.dev2/pyglet/model/codecs/base.py +157 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/model/codecs/gltf.py +107 -63
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/model/codecs/obj.py +60 -57
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/shapes.py +3 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/sprite.py +2 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/caret.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/formats/structured.py +1 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/layout/base.py +2 -2
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/graphics/opengl_core/test_opengl_instancing.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/graphics/test_vertex_list.py +2 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/text/test_inline_elements.py +1 -1
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/text/test_inline_elements_style_change.py +1 -1
- pyglet-3.0.dev1/pyglet/graphics/base.py +0 -10
- pyglet-3.0.dev1/pyglet/model/codecs/base.py +0 -140
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/.coveragerc +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/.github/workflows/codeql.yml +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/.github/workflows/unittests.yml +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/.gitignore +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/.readthedocs.yml +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/API_CHANGES.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/LICENSE +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/MANIFEST.in +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/README.md +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/RELEASE_NOTES +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/TODO.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/contrib/aseprite_codec/README +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/contrib/aseprite_codec/asedemo.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/contrib/aseprite_codec/aseprite.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/contrib/aseprite_codec/running.ase +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/contrib/logo3d/logo3d.jpg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/contrib/logo3d/logo3d.obj.zip +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/contrib/logo3d/logo3d.wings +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/contrib/qt_sprite_preview.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/contrib/scenemanager.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/Makefile +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/_static/css/custom.css +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/_static/favicon.ico +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/_static/logo.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/_static/logo5.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/_static/relatedlogo.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/conf.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/external_resources.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/index.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/internal/contributing.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/internal/dist.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/internal/doc.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/internal/generated.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/internal/gl.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/internal/media_logging_manual.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/internal/media_manual.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/internal/testing.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/internal/virtualenv.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/internal/wraptypes-class.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/internal/wraptypes.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/make.bat +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/app.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/clock.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/customtypes.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/display.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/enums.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/event.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/font/index.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/font/user.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/graphics/allocation.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/graphics/atlas.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/graphics/draw.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/graphics/framebuffer.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/graphics/index.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/graphics/shader.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/graphics/vertexbuffer.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/graphics/vertexdomain.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/gui.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/image/animation.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/image/index.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/info.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/input.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/math.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/media.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/media_synthesis.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/models.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/pyglet.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/resource.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/shapes.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/sprite.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/text/caret.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/text/document.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/text/index.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/text/layout.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/window.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/window_key.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/modules/window_mouse.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/context.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/debug.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/eventloop.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/events.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/gl.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/gui.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/image.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/abstract_image.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/abstract_image.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/buffer_image.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/buffer_image.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/context_flow.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/context_flow.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_mac_default.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_mac_no.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_mac_text.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_default.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_hand.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_help.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_no.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_size.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_text.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_wait.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/explosion.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/font_metrics.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/font_metrics.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/image_classes.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/image_classes.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/image_grid.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/image_grid.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/image_sequence.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/image_sequence.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/mouse_coordinates.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/screens.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/screens.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/text_classes.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/text_classes.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/window_location.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/window_location.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/window_osx_borderless.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/window_osx_default.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/window_osx_dialog.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/window_osx_tool.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/window_xp_default.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/window_xp_dialog.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/window_xp_overlay.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/window_xp_tool.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/img/window_xp_transparent.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/input.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/installation.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/keyboard.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/math.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/media.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/migration.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/migration2.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/models.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/mouse.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/opengles.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/options.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/pyodide.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/quickstart.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/rendering.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/resources.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/shapes.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/text.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/time.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/programming_guide/windowing.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/doc/requirements.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/clipboard.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/dpi_scaled_window.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/events/events_key_state_handler.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/events/register_event_type.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/events/window_events.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/events/window_platform_event.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/resources/asteroid.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/resources/bullet.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/resources/bullet.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/resources/engine_flame.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/resources/player.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version1/asteroid.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version1/game/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version1/game/load.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version1/game/resources.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version2/asteroid.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version2/game/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version2/game/load.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version2/game/physicalobject.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version2/game/player.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version2/game/resources.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version3/asteroid.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version3/game/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version3/game/load.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version3/game/physicalobject.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version3/game/player.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version3/game/resources.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version3/game/util.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version4/asteroid.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version4/game/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version4/game/asteroid.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version4/game/bullet.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version4/game/load.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version4/game/physicalobject.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version4/game/player.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version4/game/resources.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version4/game/util.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version5/asteroid.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version5/game/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version5/game/asteroid.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version5/game/bullet.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version5/game/load.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version5/game/physicalobject.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version5/game/player.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version5/game/resources.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/game/version5/game/util.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/gui/bar.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/gui/button_hover.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/gui/button_pressed.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/gui/button_unpressed.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/gui/knob.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/gui/widgets.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/hello_world.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/image/image_convert.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/image/image_display.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/input/apple_remote.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/input/controller.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/input/input.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/input/joystick.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/input/tablet.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/media_info.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/media_player.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/noisy/README +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/noisy/ball.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/noisy/ball.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/noisy/noisy.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/soundspace/README +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/soundspace/reader.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/soundspace/res/bass.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/soundspace/res/drums.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/soundspace/res/guitar.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/soundspace/res/piano.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/soundspace/res/space.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/soundspace/soundspace.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/synthesizer.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/media/video.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/model/box.mtl +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/model/box.obj +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/model/fpscamera.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/model/logo3d.mtl +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/model/logo3d.obj +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/model/model.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/model/pyglet.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/opengl/compute_shader.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/opengl/egl_context.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/opengl/opengl_context.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/opengl/opengl_scissor.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/opengl/pyglet.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/programming_guide/animation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/programming_guide/dinosaur.gif +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/programming_guide/events.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/programming_guide/hello_world.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/programming_guide/image_viewer.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/programming_guide/kitten.jpg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/programming_guide/window_subclass.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/resources/Brick1Blue.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/resources/Brick1Crack3.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/resources/Brick1Gray.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/resources/kitten.jpg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/resources/pyglet.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/shapes.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/sprite/depth_sprite.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/sprite/display_sprite.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/sprite/multi_texture_sprite.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/sprite/sprite_batching.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/text/advanced_font.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/text/font_groups.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/text/html_label.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/text/pyglet.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/text/text_input.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/text/user_bitmap_font.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/timer.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/window/camera.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/window/camera_group.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/window/file_dialogs.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/window/fixed_resolution.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/window/fps_change.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/window/multiple_windows.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/window/no_backend.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/window/overlay_window.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/examples/window/transparent_window.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/dist_field/README +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/dist_field/genfield.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/dist_field/py.df.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/dist_field/py.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/dist_field/renderfield.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/flaccodec.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/hello_world.svg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/instancing/sprite_instance.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/instancing/sprite_instance_object.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/multitexture_sprite/multitexturesprite.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/spritebenchmark.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/svg_test.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/wayland/gbm_egl_context.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/experimental/win32priority.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/make.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/__init__.pyi +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/app/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/app/async_app.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/app/base.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/app/cocoa.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/app/linux.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/app/win32.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/clock.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/config/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/config/gl/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/config/gl/egl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/config/gl/macos.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/config/gl/windows.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/config/gl/x11.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/customtypes.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/display/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/display/__init__.pyi +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/display/base.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/display/cocoa.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/display/emscripten.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/display/headless.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/display/wayland.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/display/win32.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/display/xlib.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/display/xlib_vidmoderestore.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/event.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/experimental/README.md +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/experimental/hidraw.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/experimental/jobs.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/experimental/multitexture_sprite.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/experimental/net.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/extlibs/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/extlibs/earcut.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/extlibs/png.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/base.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/dwrite/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/dwrite/d2d1_lib.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/dwrite/d2d1_types_lib.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/dwrite/dwrite_lib.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/fontconfig.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/freetype.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/freetype_lib.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/group.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/harfbuzz/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/harfbuzz/harfbuzz_lib.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/pyodide_js.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/quartz.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/ttf.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/user.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/font/win32.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/allocation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/base.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/base.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/buffer.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/cocoa/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/cocoa/context.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/context.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/default_shaders.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/egl/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/egl/context.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/framebuffer.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/gl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/gl_info.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/global_opengl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/lib.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/shapes.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/sprite.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/state.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/text.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/texture.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/vertexarray.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/win32/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/win32/context.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/win32/wgl_info.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/xlib/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/xlib/context.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl/xlib/glx_info.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl1/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl1/gl_compat.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl2/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl2/buffer.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl2/global_opengl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl2/shader.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl2/shapes.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl2/sprite.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/gl2/text.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/buffer.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/context.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/framebuffer.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/gl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/gl_info.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/shapes.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/sprite.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/state.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/text.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/texture.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/vertexarray.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/api/webgl/webgl_js.pyi +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/atlas.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/buffer.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/framebuffer.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/instance.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/state.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/graphics/texture.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/gui/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/gui/frame.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/animation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/base.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/bmp.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/dds.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/gdiplus.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/gif.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/js_image.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/ktx2.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/pil.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/png.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/quartz.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/wic.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/image/codecs/wincodec_lib.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/info.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/controller.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/controller_db.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/emscripten/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/emscripten/gamepad_js.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/linux/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/linux/evdev.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/linux/evdev_constants.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/linux/x11_xinput.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/macos/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/macos/darwin_gc.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/macos/darwin_hid.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/win32/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/win32/directinput.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/input/win32/wintab.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/lib.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/darwin/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/darwin/agl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/darwin/cocoapy/cocoahelpers.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/darwin/cocoapy/cocoalibs.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/darwin/coreaudio.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/darwin/lib_agl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/darwin/quartzkey.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/egl/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/egl/egl_lib.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/egl/eglext.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/egl/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/egl/egl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/egl/eglext.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/egl/lib.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/glx/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/glx/glx.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/glx/glxext_arb.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/glx/glxext_mesa.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/glx/glxext_nv.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/glx/lib_glx.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/ioctl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/wayland/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/wayland/client.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/wayland/gbm.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/wayland/lib_wayland.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/wayland/wayland_egl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/wayland/xkbcommon.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/x11/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/x11/cursorfont.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/x11/xf86vmode.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/x11/xinerama.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/x11/xinput.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/x11/xlib.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/x11/xrandr.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/x11/xrender.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/linux/x11/xsync.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/shared/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/shared/spirv/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/shared/spirv/lib_shaderc.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/shared/spirv/lib_spirv_cross.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/win32/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/win32/com.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/win32/constants.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/win32/context_managers.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/win32/dinput.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/win32/lib_wgl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/win32/libwintab.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/win32/types.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/win32/wgl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/win32/wglext_arb.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/libs/win32/winkey.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/math.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/buffered_logger.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/base.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/coreaudio.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/ffmpeg.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/ffmpeg_lib/compat.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/gstreamer.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/pyogg.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/wave.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/codecs/wmf.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/devices/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/devices/base.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/devices/win32.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/base.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/directsound/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/directsound/adaptation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/directsound/exceptions.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/directsound/interface.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/directsound/lib_dsound.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/listener.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/openal/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/openal/adaptation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/openal/interface.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/openal/lib_alc.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/openal/lib_openal.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/pulse/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/pulse/adaptation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/pulse/interface.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/pyodide_js/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/pyodide_js/adaptation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/silent/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/silent/adaptation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/xaudio2/adaptation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/xaudio2/interface.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/exceptions.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/instrumentation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/player.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/player_worker_thread.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/media/synthesis.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/model/codecs/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/py.typed +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/resource.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/document.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/formats/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/formats/attributed.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/formats/html.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/formats/plaintext.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/layout/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/layout/incremental.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/layout/scrolling.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/text/runlist.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/util.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/cocoa/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/cocoa/pyglet_delegate.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/cocoa/pyglet_textview.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/cocoa/pyglet_view.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/cocoa/pyglet_window.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/cocoa/systemcursor.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/dialog/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/dialog/base.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/dialog/darwin.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/dialog/linux.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/dialog/windows.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/emscripten/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/event.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/headless/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/key.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/mouse.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/wayland/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/win32/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyglet/window/xlib/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pyproject.toml +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/pytest.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/setup.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/annotations.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/base/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/base/data.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/base/event_loop.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/base/interactive.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/base/performance.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/conftest.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/fonts/README +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/fonts/action_man.ttf +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/fonts/action_man_atlas.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/fonts/action_man_bold.ttf +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/fonts/action_man_italic.ttf +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/8bpp.gif +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/cursor.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/dinosaur.gif +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/gdk_close.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/grey_background.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/icon1.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/icon_size1.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/icon_size2.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/icon_size3.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/icon_size4.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/icon_size5.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/l.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/la.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/multitexture.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgb.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgb_16bpp.bmp +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgb_1bpp.bmp +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgb_24bpp.bmp +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgb_32bpp.bmp +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgb_4bpp.bmp +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgb_8bpp.bmp +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgb_8bpp.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgb_8bpp_trans.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgb_bc6s.dds +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgb_dxt1.dds +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgba.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgba_32bpp.bmp +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgba_bc7.dds +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgba_bc7.ktx2 +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgba_dxt1.dds +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgba_dxt3.dds +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/rgba_dxt5.dds +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/README +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/alert.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/login.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/logout.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/receive.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/send.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/models/logo3d.mtl +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/data/models/logo3d.obj +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/app/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/app/test_eventloop.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/conftest.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/font/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/font/test_font.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/font/test_freetype_face.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/graphics/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/graphics/opengl_core/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/graphics/test_allocation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/graphics/test_batch_migration.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/graphics/test_groups.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/graphics/test_shaders.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/graphics/test_texture3d.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/graphics/test_texturearray.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/image/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/image/test_gdkpixbuf2.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/image/test_imagegrid.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/media/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/media/mock_player.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/media/test_directsound.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/media/test_driver.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/media/test_openal.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/media/test_player.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/media/test_pulse.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/model/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/model/test_loading.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/platform/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/platform/test_win_context_managers.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/platform/test_win_multicore_clock.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/resource/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/resource/dir1/f2.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/resource/dir1/res.zip +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/resource/dir2/f6.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/resource/f1.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/resource/rgbm.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/resource/test_resource_image_loading.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/resource/test_resource_loading.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/test_integrations.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/text/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/text/test_empty_document.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/text/test_label_creation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/text/test_layout.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/window/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/window/test_context_share.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/window/test_event_sequence.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/integration/window/test_window_caption.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/conftest.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/image/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/image/test_image.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/media/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/media/test_player.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/screenshots/committed/README +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/screenshots/session/README +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/shapes/test_shapes.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/test_interactive_test_base.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/text/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/text/test_caret_color.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/text/test_content_valign.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/text/test_html.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/text/test_multiline_wrap.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/text/test_plain.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/text/test_style.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/window/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/window/test_window_events.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/window/test_window_fullscreen.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/window/test_window_modes.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/window/test_window_multisample.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/window/test_window_open.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/window/test_window_settings.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/window/test_window_styles.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/window/window_util.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/interactive/windowed_test_base.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/requirements.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/conftest.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/math/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/math/test_mat.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/math/test_quat.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/math/test_vec2.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/math/test_vec3.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/math/test_vec4.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/media/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/media/test_listener.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/media/test_player.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/media/test_sources.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/media/test_synthesis.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/platform/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/platform/test_mac_objc.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/shader/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/shader/conftest.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/shader/test_shader.py-SUSPENDED +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/shapes/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/shapes/conftest.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/shapes/test_shapes.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/test_atlas.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/test_clock.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/test_clock_freq.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/test_events.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/test_input.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/test_resource_path.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/test_sprite.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/text/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/text/test_caret.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tests/unit/text/test_text.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/al_info.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/bokeh_timeline.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/compare.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/configure.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/extractors.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/fs.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/mp.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/mpexceptions.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/playmany.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/readme_run_tests.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/report.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/reports.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/retry_crashed.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/run_test_suite.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/summarize.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/test_instrumentation.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/ffmpeg/timeline.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/gencontrollerdb.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/gengl.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/genwrappers.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/gl.template +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/gl.xml +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/gl_info.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/gl_stub.template +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/inspect_font.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/pyodide/dev_style.css +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/pyodide/example.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/pyodide/gen_pyodide_project.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/pyodide/index.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/pyodide/script.js +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/requirements.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/wgl.h +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/wraptypes/__init__.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/wraptypes/cparser.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/wraptypes/ctypesparser.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/wraptypes/lex.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/wraptypes/preprocessor.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/wraptypes/wrap.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/tools/wraptypes/yacc.py +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/LICENSE.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/README.rst +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/assets/favicon.ico +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/assets/static/css/example-custom-styles.css +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/assets/static/images/pyglet.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/content/404.html/contents.lr +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/content/404.html/ngc-5793.jpg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/content/authors/benjamin/contents.lr +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/content/authors/benjamin/pyglet.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/content/authors/contents.lr +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/content/blog/contents.lr +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/content/blog/welcome-blog/contents.lr +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/content/contents.lr +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/content/eclipse.jpg +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/pyglet.lektorproject +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/AUTHORS.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/CHANGELOG.md +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/LICENSE.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/NOTICE.txt +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/README.md +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/images/blog-index.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/images/full-blog.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/images/full-page.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/images/gallery-404.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/models/404.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/models/author.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/models/authors.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/models/blog-post.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/models/blog.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/models/page.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/models/single-layout.ini +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/404.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/author.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/authors.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/blog-post.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/blog.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/layout.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/none.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/page.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/templates/single-layout.html +0 -0
- {pyglet-3.0.dev1 → pyglet-3.0.dev2}/website/themes/lektor-icon/theme.ini +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: pyglet
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.dev2
|
|
4
4
|
Summary: pyglet is a cross-platform games and multimedia package.
|
|
5
5
|
Author-email: Alex Holkner & contributors <Alex.Holkner@gmail.com>
|
|
6
6
|
Requires-Python: >=3.8
|
|
7
7
|
Description-Content-Type: text/markdown
|
|
8
|
+
License-File: LICENSE
|
|
8
9
|
Project-URL: Home, https://pyglet.org
|
|
9
10
|
|
|
10
11
|
[](https://pypi.python.org/pypi/pyglet) [](https://pyglet.readthedocs.io) [](https://github.com/pyglet/pyglet/actions/workflows/unittests.yml)
|
|
@@ -8,7 +8,7 @@ clone. It is assumed that the reader is familiar with writing and running
|
|
|
8
8
|
Python programs. This is not a programming tutorial, but it should hopefully
|
|
9
9
|
be clear enough to follow even if you're a beginner. If you get stuck,
|
|
10
10
|
first have a look at the relevant sections of the programming guide.
|
|
11
|
-
The full source code can also be found in the
|
|
11
|
+
The full source code can also be found in the ``examples/game/`` folder
|
|
12
12
|
of the pyglet source directory, which you can follow along with.
|
|
13
13
|
If anything is still not clear, let us know!
|
|
14
14
|
|
|
@@ -24,11 +24,11 @@ Setting up
|
|
|
24
24
|
|
|
25
25
|
First things first, make sure you have pyglet installed. Then, we will set
|
|
26
26
|
up the folder structure for our project. Since this example game is written
|
|
27
|
-
in stages, we will have several
|
|
27
|
+
in stages, we will have several ``version`` folders at various stages of
|
|
28
28
|
development. We will also have a shared resource folder with the images,
|
|
29
|
-
called
|
|
30
|
-
contains a Python file called
|
|
31
|
-
a sub-folder named
|
|
29
|
+
called '``resources``', outside of the example folders. Each ``version`` folder
|
|
30
|
+
contains a Python file called ``asteroid.py`` which runs the game, as well as
|
|
31
|
+
a sub-folder named ``game`` where we will place additional modules; this is
|
|
32
32
|
where most of the logic will be. Your folder structure should look like this::
|
|
33
33
|
|
|
34
34
|
game/
|
|
@@ -42,8 +42,8 @@ where most of the logic will be. Your folder structure should look like this::
|
|
|
42
42
|
Getting a window
|
|
43
43
|
^^^^^^^^^^^^^^^^
|
|
44
44
|
|
|
45
|
-
To set up a window, simply
|
|
46
|
-
:class:`pyglet.window.Window`, and call
|
|
45
|
+
To set up a window, simply ``import pyglet``, create a new instance of
|
|
46
|
+
:class:`pyglet.window.Window`, and call ``pyglet.app.run()``::
|
|
47
47
|
|
|
48
48
|
import pyglet
|
|
49
49
|
game_window = pyglet.window.Window(800, 600)
|
|
@@ -51,9 +51,8 @@ To set up a window, simply `import pyglet`, create a new instance of
|
|
|
51
51
|
if __name__ == '__main__':
|
|
52
52
|
pyglet.app.run()
|
|
53
53
|
|
|
54
|
-
If you run the code above, you should see a window full of junk
|
|
55
|
-
goes away when you press Esc. (What you are seeing is raw uninitialized
|
|
56
|
-
graphics memory).
|
|
54
|
+
If you run the code above, you should see a window full of random graphical junk (or just a blank window)
|
|
55
|
+
that goes away when you press Esc. (What you are seeing is raw uninitialized graphics memory).
|
|
57
56
|
|
|
58
57
|
Loading and displaying an image
|
|
59
58
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
@@ -68,42 +67,50 @@ directory, we need to tell pyglet where to find them::
|
|
|
68
67
|
pyglet's :mod:`pyglet.resource` module takes all of the hard work out of
|
|
69
68
|
finding and loading game resources such as images, sounds, etc.. All that
|
|
70
69
|
you need to do is tell it where to look, and reindex it. In this example
|
|
71
|
-
game, the resource path starts with
|
|
72
|
-
on the same level as the
|
|
73
|
-
would look inside
|
|
70
|
+
game, the resource path starts with ``../`` because the resources folder is
|
|
71
|
+
on the same level as the ``version1`` folder. If we left it off, pyglet
|
|
72
|
+
would look inside ``version1/`` for the ``resources/`` folder.
|
|
74
73
|
|
|
75
74
|
Now that pyglet’s resource module is initialized, we can easily load the images
|
|
76
|
-
with the :func:`~pyglet.resource.
|
|
75
|
+
with the :func:`~pyglet.resource.texture` function of the resource module::
|
|
77
76
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
player_texture = pyglet.resource.texture("player.png")
|
|
78
|
+
bullet_texture = pyglet.resource.texture("bullet.png")
|
|
79
|
+
asteroid_texture = pyglet.resource.texture("asteroid.png")
|
|
81
80
|
|
|
82
|
-
|
|
81
|
+
If you are unfamiliar with the term, a "``texture``" is basically an image that
|
|
82
|
+
has been loaded into GPU memory. You may see the terms used interchangeably, but
|
|
83
|
+
essentially the image data is loaded from disk (and decoded), and then uploaded
|
|
84
|
+
to the GPU memory where it exists as a texture.
|
|
85
|
+
|
|
86
|
+
.. note:: You must create a Window before loading any GPU related resources.
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
Centering the textures
|
|
83
90
|
^^^^^^^^^^^^^^^^^^^^
|
|
84
91
|
|
|
85
|
-
|
|
86
|
-
default. We don’t want this behavior for our
|
|
92
|
+
pyglet will draw and position all textures from their lower left corner by
|
|
93
|
+
default. We don’t want this behavior for our textures, which need to rotate
|
|
87
94
|
around their centers. All we have to do to achieve this is to set their
|
|
88
95
|
anchor points. Lets create a function to simplify this::
|
|
89
96
|
|
|
90
|
-
def
|
|
91
|
-
"""Sets an
|
|
92
|
-
|
|
93
|
-
|
|
97
|
+
def center_texture(texture):
|
|
98
|
+
"""Sets an texture's anchor point to its center"""
|
|
99
|
+
texture.anchor_x = texture.width // 2
|
|
100
|
+
texture.anchor_y = texture.height // 2
|
|
94
101
|
|
|
95
|
-
Now we can just call
|
|
102
|
+
Now we can just call center_texture() on all of our loaded textures::
|
|
96
103
|
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
104
|
+
center_texture(player_texture)
|
|
105
|
+
center_texture(bullet_texture)
|
|
106
|
+
center_texture(asteroid_texture)
|
|
100
107
|
|
|
101
|
-
Remember that the
|
|
108
|
+
Remember that the center_texture() function must be defined before it can be
|
|
102
109
|
called at the module level. Also, note that zero degrees points directly
|
|
103
|
-
to the right in pyglet, so the
|
|
110
|
+
to the right in pyglet, so the textures are all drawn with their front
|
|
104
111
|
pointing to the right.
|
|
105
112
|
|
|
106
|
-
To access the
|
|
113
|
+
To access the textures from asteroid.py, we need to use something like
|
|
107
114
|
`from game import resources`, which we’ll get into in the next section.
|
|
108
115
|
|
|
109
116
|
Initializing objects
|
|
@@ -167,7 +174,7 @@ like so::
|
|
|
167
174
|
|
|
168
175
|
from game import resources
|
|
169
176
|
...
|
|
170
|
-
player_ship = pyglet.sprite.Sprite(img=resources.
|
|
177
|
+
player_ship = pyglet.sprite.Sprite(img=resources.player_texture, x=400, y=300)
|
|
171
178
|
|
|
172
179
|
To get the player to draw on the screen, add a line to `on_draw()`::
|
|
173
180
|
|
|
@@ -189,7 +196,7 @@ player. Let’s put the loading code in a new game submodule called load.py::
|
|
|
189
196
|
for i in range(num_asteroids):
|
|
190
197
|
asteroid_x = random.randint(0, 800)
|
|
191
198
|
asteroid_y = random.randint(0, 600)
|
|
192
|
-
new_asteroid = pyglet.sprite.Sprite(img=resources.
|
|
199
|
+
new_asteroid = pyglet.sprite.Sprite(img=resources.asteroid_texture,
|
|
193
200
|
x=asteroid_x, y=asteroid_y)
|
|
194
201
|
new_asteroid.rotation = random.randint(0, 360)
|
|
195
202
|
asteroids.append(new_asteroid)
|
|
@@ -223,7 +230,7 @@ the z value, so we just use a throwaway variable for that::
|
|
|
223
230
|
asteroid_x = random.randint(0, 800)
|
|
224
231
|
asteroid_y = random.randint(0, 600)
|
|
225
232
|
new_asteroid = pyglet.sprite.Sprite(
|
|
226
|
-
img=resources.
|
|
233
|
+
img=resources.asteroid_texture, x=asteroid_x, y=asteroid_y)
|
|
227
234
|
new_asteroid.rotation = random.randint(0, 360)
|
|
228
235
|
asteroids.append(new_asteroid)
|
|
229
236
|
return asteroids
|
|
@@ -292,7 +299,7 @@ each new sprite. Update the function::
|
|
|
292
299
|
|
|
293
300
|
def asteroids(num_asteroids, player_position, batch=None):
|
|
294
301
|
...
|
|
295
|
-
new_asteroid = pyglet.sprite.Sprite(img=resources.
|
|
302
|
+
new_asteroid = pyglet.sprite.Sprite(img=resources.asteroid_texture,
|
|
296
303
|
x=asteroid_x, y=asteroid_y,
|
|
297
304
|
batch=batch)
|
|
298
305
|
|
|
@@ -324,7 +331,7 @@ and scale, and append it to the return list::
|
|
|
324
331
|
def player_lives(num_icons, batch=None):
|
|
325
332
|
player_lives = []
|
|
326
333
|
for i in range(num_icons):
|
|
327
|
-
new_sprite = pyglet.sprite.Sprite(img=resources.
|
|
334
|
+
new_sprite = pyglet.sprite.Sprite(img=resources.player_texture,
|
|
328
335
|
x=785-i*30, y=585, batch=batch)
|
|
329
336
|
new_sprite.scale = 0.5
|
|
330
337
|
player_lives.append(new_sprite)
|
|
@@ -382,10 +389,10 @@ they just wrapped around the screen. Here is a simple function that
|
|
|
382
389
|
accomplishes the goal::
|
|
383
390
|
|
|
384
391
|
def check_bounds(self):
|
|
385
|
-
min_x = -self.
|
|
386
|
-
min_y = -self.
|
|
387
|
-
max_x = 800 + self.
|
|
388
|
-
max_y = 600 + self.
|
|
392
|
+
min_x = -self.texture.width / 2
|
|
393
|
+
min_y = -self.texture.height / 2
|
|
394
|
+
max_x = 800 + self.texture.width / 2
|
|
395
|
+
max_y = 600 + self.texture.height / 2
|
|
389
396
|
if self.x < min_x:
|
|
390
397
|
self.x = max_x
|
|
391
398
|
elif self.x > max_x:
|
|
@@ -450,7 +457,7 @@ periodically or at some specified time in the future. The one we want is
|
|
|
450
457
|
pyglet.clock.schedule_interval(update, 1/120.0)
|
|
451
458
|
|
|
452
459
|
Putting this line above `pyglet.app.run()` in the if `__name__ == '__main__'`
|
|
453
|
-
block tells pyglet to call `update()` 120 times per second.
|
|
460
|
+
block tells pyglet to call `update()` 120 times per second. pyglet will pass
|
|
454
461
|
in the elapsed time, i.e. `dt`, as the only parameter.
|
|
455
462
|
|
|
456
463
|
Now when you run asteroid.py, you should see your formerly static asteroids
|
|
@@ -470,10 +477,10 @@ importing the appropriate modules, and subclassing `PhysicalObject`::
|
|
|
470
477
|
class Player(physicalobject.PhysicalObject):
|
|
471
478
|
|
|
472
479
|
def __init__(self, *args, **kwargs):
|
|
473
|
-
super().__init__(img=resources.
|
|
480
|
+
super().__init__(img=resources.player_texture, *args, **kwargs)
|
|
474
481
|
|
|
475
482
|
So far, the only difference between a Player and a PhysicalObject is that a
|
|
476
|
-
Player will always have the same
|
|
483
|
+
Player will always have the same texture. But Player objects need a couple
|
|
477
484
|
more attributes. Since the ship will always thrust with the same force in
|
|
478
485
|
whatever direction it points, we’ll need to define a constant for the
|
|
479
486
|
magnitude of that force. We should also define a constant for the ship’s
|
|
@@ -482,7 +489,7 @@ rotation speed::
|
|
|
482
489
|
self.thrust = 300.0
|
|
483
490
|
self.rotate_speed = 200.0
|
|
484
491
|
|
|
485
|
-
Now we need to get the class to respond to user input.
|
|
492
|
+
Now we need to get the class to respond to user input. pyglet uses an
|
|
486
493
|
event-based approach to input, sending key press and key release events
|
|
487
494
|
to registered event handlers. But we want to use a polling approach in
|
|
488
495
|
this example, checking periodically if a key is down. One way to accomplish
|
|
@@ -627,7 +634,7 @@ thrusting forward or not, especially for an observer just watching someone
|
|
|
627
634
|
else play the game. One way to provide visual feedback is to show an engine
|
|
628
635
|
flame behind the player while the player is thrusting.
|
|
629
636
|
|
|
630
|
-
Loading the flame
|
|
637
|
+
Loading the flame texture
|
|
631
638
|
^^^^^^^^^^^^^^^^^^^^^^^
|
|
632
639
|
|
|
633
640
|
The player will now be made of two sprites. There’s nothing preventing us
|
|
@@ -636,31 +643,31 @@ engine_sprite attribute and update it every frame. For our purposes,
|
|
|
636
643
|
this approach will be the simplest and most scalable.
|
|
637
644
|
|
|
638
645
|
To make the flame draw in the correct position, we could either do some
|
|
639
|
-
complicated math every frame, or we could just move the
|
|
640
|
-
First, load the
|
|
646
|
+
complicated math every frame, or we could just move the texture’s anchor point.
|
|
647
|
+
First, load the texture in resources.py::
|
|
641
648
|
|
|
642
|
-
|
|
649
|
+
engine_texture = pyglet.resource.texture("engine_flame.png")
|
|
643
650
|
|
|
644
|
-
To get the flame to draw behind the player, we need to move the flame
|
|
645
|
-
center of rotation to the right, past the end of the
|
|
651
|
+
To get the flame to draw behind the player, we need to move the flame texture’s
|
|
652
|
+
center of rotation to the right, past the end of the texture.
|
|
646
653
|
To do that, we just set its `anchor_x` and `anchor_y` attributes::
|
|
647
654
|
|
|
648
|
-
|
|
649
|
-
|
|
655
|
+
engine_texture.anchor_x = engine_texture.width * 1.5
|
|
656
|
+
engine_texture.anchor_y = engine_texture.height / 2
|
|
650
657
|
|
|
651
|
-
Now the
|
|
652
|
-
confused about anchor points, experiment with the values for
|
|
658
|
+
Now the texture is ready to be used by the player class. If you’re still
|
|
659
|
+
confused about anchor points, experiment with the values for engine_texture’s
|
|
653
660
|
anchor point when you finish this section.
|
|
654
661
|
|
|
655
662
|
Creating and drawing the flame
|
|
656
663
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
657
664
|
|
|
658
665
|
The engine sprite needs to be initialized with all the same arguments as
|
|
659
|
-
Player, except that it needs a different
|
|
666
|
+
Player, except that it needs a different texture and must be initially invisible.
|
|
660
667
|
The code for creating it belongs in `Player.__init__()` and is very
|
|
661
668
|
straightforward::
|
|
662
669
|
|
|
663
|
-
self.engine_sprite = pyglet.sprite.Sprite(img=resources.
|
|
670
|
+
self.engine_sprite = pyglet.sprite.Sprite(img=resources.engine_texture, *args, **kwargs)
|
|
664
671
|
self.engine_sprite.visible = False
|
|
665
672
|
|
|
666
673
|
To make the engine sprite appear only while the player is thrusting, we need
|
|
@@ -777,7 +784,7 @@ Remember to call from util import distance in load.py. Now we can write
|
|
|
777
784
|
`PhysicalObject.collides_with()` without duplicating code::
|
|
778
785
|
|
|
779
786
|
def collides_with(self, other_object):
|
|
780
|
-
collision_distance = self.
|
|
787
|
+
collision_distance = self.texture.width/2 + other_object.texture.width/2
|
|
781
788
|
actual_distance = util.distance(self.position, other_object.position)
|
|
782
789
|
|
|
783
790
|
return (actual_distance <= collision_distance)
|
|
@@ -891,7 +898,7 @@ subclass of PhysicalObject::
|
|
|
891
898
|
|
|
892
899
|
def __init__(self, *args, **kwargs):
|
|
893
900
|
super().__init__(
|
|
894
|
-
resources.
|
|
901
|
+
resources.bullet_texture, *args, **kwargs)
|
|
895
902
|
|
|
896
903
|
To get bullets to disappear after a time, we could keep track of our own
|
|
897
904
|
age and lifespan attributes, or we could let pyglet do all the work for us.
|
|
@@ -906,7 +913,7 @@ We can do this as soon as the object is initialized by adding a call to
|
|
|
906
913
|
:meth:`pyglet.clock.schedule_once` to the constructor::
|
|
907
914
|
|
|
908
915
|
def __init__(self, *args, **kwargs):
|
|
909
|
-
super().__init__(resources.
|
|
916
|
+
super().__init__(resources.bullet_texture, *args, **kwargs)
|
|
910
917
|
pyglet.clock.schedule_once(self.die, 0.5)
|
|
911
918
|
|
|
912
919
|
There’s still more work to be done on the Bullet class, but before we
|
|
@@ -924,7 +931,7 @@ to its constructor::
|
|
|
924
931
|
|
|
925
932
|
class Player(physicalobject.PhysicalObject):
|
|
926
933
|
def __init__(self, *args, **kwargs):
|
|
927
|
-
super().__init__(img=resources.
|
|
934
|
+
super().__init__(img=resources.player_texture, *args, **kwargs)
|
|
928
935
|
...
|
|
929
936
|
self.bullet_speed = 700.0
|
|
930
937
|
|
|
@@ -949,7 +956,7 @@ As usual, convert to radians and reverse the direction::
|
|
|
949
956
|
|
|
950
957
|
Next, calculate the bullet’s position and instantiate it::
|
|
951
958
|
|
|
952
|
-
ship_radius = self.
|
|
959
|
+
ship_radius = self.texture.width/2
|
|
953
960
|
bullet_x = self.x + math.cos(angle_radians) * ship_radius
|
|
954
961
|
bullet_y = self.y + math.sin(angle_radians) * ship_radius
|
|
955
962
|
new_bullet = bullet.Bullet(bullet_x, bullet_y, batch=self.batch)
|
|
@@ -1058,14 +1065,14 @@ Writing the asteroid class
|
|
|
1058
1065
|
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
1059
1066
|
|
|
1060
1067
|
Create a new submodule of game called asteroid.py. Write the usual constructor
|
|
1061
|
-
to pass a specific
|
|
1068
|
+
to pass a specific texture to the superclass, passing along any other parameters::
|
|
1062
1069
|
|
|
1063
1070
|
import pyglet
|
|
1064
1071
|
from . import resources, physicalobject
|
|
1065
1072
|
|
|
1066
1073
|
class Asteroid(physicalobject.PhysicalObject):
|
|
1067
1074
|
def __init__(self, *args, **kwargs):
|
|
1068
|
-
super().__init__(resources.
|
|
1075
|
+
super().__init__(resources.asteroid_texture, *args, **kwargs)
|
|
1069
1076
|
|
|
1070
1077
|
Now we need to write a new `handle_collision_with()` method. It should create
|
|
1071
1078
|
a random number of new, smaller asteroids with random velocities. However,
|
|
@@ -1107,7 +1114,7 @@ rotation every frame.
|
|
|
1107
1114
|
Add the attribute in the constructor::
|
|
1108
1115
|
|
|
1109
1116
|
def __init__(self, *args, **kwargs):
|
|
1110
|
-
super().__init__(resources.
|
|
1117
|
+
super().__init__(resources.asteroid_texture, *args, **kwargs)
|
|
1111
1118
|
self.rotate_speed = random.random() * 100.0 - 50.0
|
|
1112
1119
|
|
|
1113
1120
|
Then write the update() method::
|
|
@@ -1137,7 +1144,7 @@ Next steps
|
|
|
1137
1144
|
----------
|
|
1138
1145
|
|
|
1139
1146
|
So instead of walking you through a standard refactoring session,
|
|
1140
|
-
I’m going to leave it as an exercise for you to do the following
|
|
1147
|
+
I’m going to leave it as an exercise for you to do the following:
|
|
1141
1148
|
|
|
1142
1149
|
* Make the Score counter mean something
|
|
1143
1150
|
* Let the player restart the level if they die
|
|
@@ -13,8 +13,8 @@ The code shown here illustrates:
|
|
|
13
13
|
"""
|
|
14
14
|
import pyglet
|
|
15
15
|
|
|
16
|
-
from pyglet.enums import BlendFactor
|
|
17
|
-
from pyglet.graphics import Shader, ShaderProgram, Group
|
|
16
|
+
from pyglet.enums import BlendFactor, GeometryMode
|
|
17
|
+
from pyglet.graphics import Shader, ShaderProgram, Group
|
|
18
18
|
|
|
19
19
|
###################################
|
|
20
20
|
# Create a Window, and render Batch
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"""This is a simple example that visually confirms """
|
|
2
2
|
|
|
3
3
|
import pyglet
|
|
4
|
-
from pyglet.
|
|
5
|
-
|
|
4
|
+
from pyglet.enums import GeometryMode
|
|
6
5
|
|
|
7
6
|
window = pyglet.window.Window(width=540, height=540, resizable=True)
|
|
8
7
|
batch = pyglet.graphics.Batch()
|
|
@@ -10,6 +10,15 @@ class GraphicsAPI(Enum):
|
|
|
10
10
|
WEBGL = auto()
|
|
11
11
|
|
|
12
12
|
|
|
13
|
+
class GeometryMode(Enum):
|
|
14
|
+
POINTS = auto()
|
|
15
|
+
LINES = auto()
|
|
16
|
+
LINE_STRIP = auto()
|
|
17
|
+
TRIANGLES = auto()
|
|
18
|
+
TRIANGLE_STRIP = auto()
|
|
19
|
+
TRIANGLE_FAN = auto()
|
|
20
|
+
|
|
21
|
+
|
|
13
22
|
class BlendFactor(Enum):
|
|
14
23
|
ZERO = "ZERO"
|
|
15
24
|
ONE = "ONE"
|
|
@@ -86,11 +95,13 @@ class CompareOp(Enum):
|
|
|
86
95
|
GREATER_OR_EQUAL = auto()
|
|
87
96
|
ALWAYS = auto()
|
|
88
97
|
|
|
98
|
+
|
|
89
99
|
class FramebufferTarget(Enum):
|
|
90
100
|
FRAMEBUFFER = auto()
|
|
91
101
|
DRAW = auto()
|
|
92
102
|
READ = auto()
|
|
93
103
|
|
|
104
|
+
|
|
94
105
|
class FramebufferAttachment(Enum):
|
|
95
106
|
COLOR0 = auto()
|
|
96
107
|
COLOR1 = auto()
|
|
@@ -114,7 +125,6 @@ class FramebufferAttachment(Enum):
|
|
|
114
125
|
DEPTH_STENCIL = auto()
|
|
115
126
|
|
|
116
127
|
|
|
117
|
-
|
|
118
128
|
class Weight(str, Enum):
|
|
119
129
|
"""An :py:class:`~enum.Enum` of known cross-platform font weight strings.
|
|
120
130
|
|
|
@@ -4,7 +4,7 @@ import sys
|
|
|
4
4
|
|
|
5
5
|
import pyglet
|
|
6
6
|
from pyglet import clock, event, graphics, image
|
|
7
|
-
from pyglet.
|
|
7
|
+
from pyglet.enums import GeometryMode
|
|
8
8
|
from pyglet.graphics.api.gl import *
|
|
9
9
|
|
|
10
10
|
_is_pyglet_doc_run = hasattr(sys, "is_pyglet_doc_run") and sys.is_pyglet_doc_run
|
|
@@ -7,8 +7,7 @@ import time
|
|
|
7
7
|
|
|
8
8
|
import pyglet
|
|
9
9
|
from pyglet import clock, event, graphics, image
|
|
10
|
-
from pyglet.
|
|
11
|
-
from pyglet.graphics.api.gl import *
|
|
10
|
+
from pyglet.enums import BlendFactor, GeometryMode
|
|
12
11
|
|
|
13
12
|
_is_pyglet_doc_run = hasattr(sys, "is_pyglet_doc_run") and sys.is_pyglet_doc_run
|
|
14
13
|
|
|
@@ -186,6 +185,9 @@ def get_default_shader():
|
|
|
186
185
|
|
|
187
186
|
|
|
188
187
|
class EmitterGroup(graphics.Group):
|
|
188
|
+
blend_src: BlendFactor
|
|
189
|
+
blend_dest: BlendFactor
|
|
190
|
+
|
|
189
191
|
def __init__(self, texture, blend_src, blend_dest, program, parent=None):
|
|
190
192
|
super().__init__(parent=parent)
|
|
191
193
|
self.texture = texture
|
|
@@ -203,15 +205,14 @@ class Emitter(event.EventDispatcher):
|
|
|
203
205
|
_animation = None
|
|
204
206
|
_frame_index = 0
|
|
205
207
|
_paused = False
|
|
206
|
-
_rotation = 0
|
|
207
208
|
_visible = True
|
|
208
209
|
_vertex_list = None
|
|
209
210
|
group_class = EmitterGroup
|
|
210
211
|
|
|
211
212
|
def __init__(self, img, x, y, z, count, velocity, spread,
|
|
212
213
|
color_start=(255, 255, 255, 255), color_end=(255, 255, 255, 255),
|
|
213
|
-
scale_start=(1.0, 1.0), scale_end=(1.0, 1.0),
|
|
214
|
-
blend_src=
|
|
214
|
+
scale_start=(1.0, 1.0), scale_end=(1.0, 1.0), rotation=0.0,
|
|
215
|
+
blend_src=BlendFactor.SRC_ALPHA, blend_dest=BlendFactor.ONE_MINUS_SRC_ALPHA,
|
|
215
216
|
batch=None, group=None, program=None):
|
|
216
217
|
|
|
217
218
|
self._img = img
|
|
@@ -225,6 +226,7 @@ class Emitter(event.EventDispatcher):
|
|
|
225
226
|
self._color_end = color_end
|
|
226
227
|
self._scale_start = scale_start
|
|
227
228
|
self._scale_end = scale_end
|
|
229
|
+
self._rotation = rotation
|
|
228
230
|
|
|
229
231
|
if isinstance(img, image.Animation):
|
|
230
232
|
self._animation = img
|
|
@@ -274,7 +276,7 @@ class Emitter(event.EventDispatcher):
|
|
|
274
276
|
program,
|
|
275
277
|
self._user_group)
|
|
276
278
|
if (self._batch and
|
|
277
|
-
self._batch.update_shader(self._vertex_list,
|
|
279
|
+
self._batch.update_shader(self._vertex_list, GeometryMode.POINTS, self._group, program)):
|
|
278
280
|
# Exit early if changing domain is not needed.
|
|
279
281
|
return
|
|
280
282
|
|
|
@@ -290,7 +292,8 @@ class Emitter(event.EventDispatcher):
|
|
|
290
292
|
"""
|
|
291
293
|
if self._animation:
|
|
292
294
|
clock.unschedule(self._animate)
|
|
293
|
-
self._vertex_list
|
|
295
|
+
if self._vertex_list:
|
|
296
|
+
self._vertex_list.delete()
|
|
294
297
|
self._vertex_list = None
|
|
295
298
|
self._texture = None
|
|
296
299
|
self._group = None
|
|
@@ -357,47 +360,36 @@ class ParticleManager:
|
|
|
357
360
|
def __init__(self, img, lifespan, count, velocity,
|
|
358
361
|
spread=(10.0, 10.0),
|
|
359
362
|
color_start=(255, 255, 255, 255), color_end=(255, 255, 255, 255),
|
|
360
|
-
scale_start=(1.0, 1.0), scale_end=(1.0, 1.0),
|
|
363
|
+
scale_start=(1.0, 1.0), scale_end=(1.0, 1.0), rotation=0.0,
|
|
361
364
|
batch=None, group=None):
|
|
362
365
|
|
|
363
366
|
self._img = img
|
|
364
|
-
self.
|
|
365
|
-
self.
|
|
366
|
-
self.
|
|
367
|
-
self.
|
|
368
|
-
self.
|
|
369
|
-
self.
|
|
370
|
-
self.
|
|
371
|
-
self.
|
|
367
|
+
self.lifespan = lifespan
|
|
368
|
+
self.count = count
|
|
369
|
+
self.velocity = velocity
|
|
370
|
+
self.spread = spread
|
|
371
|
+
self.color_start = color_start
|
|
372
|
+
self.color_end = color_end
|
|
373
|
+
self.scale_start = scale_start
|
|
374
|
+
self.scale_end = scale_end
|
|
375
|
+
self.rotation = rotation
|
|
372
376
|
|
|
373
377
|
self._batch = batch
|
|
374
378
|
self._group = group
|
|
375
379
|
self._program = get_default_shader()
|
|
376
380
|
clock.schedule_interval(self._update_shader_time, 1 / 60)
|
|
377
381
|
|
|
378
|
-
# TODO: remove debug
|
|
379
|
-
self.total_number = 0
|
|
380
|
-
self.total_label = pyglet.text.Label("particles: 0", 10, 10, dpi=256, color=(10, 200, 10), batch=batch)
|
|
381
|
-
|
|
382
382
|
def _update_shader_time(self, dt):
|
|
383
383
|
self._program['time'] = time.perf_counter()
|
|
384
384
|
|
|
385
|
-
|
|
385
|
+
@staticmethod
|
|
386
|
+
def _delete_callback(dt, emitter):
|
|
386
387
|
emitter.delete()
|
|
387
388
|
|
|
388
|
-
# TODO: remove debug
|
|
389
|
-
self.total_number -= 1
|
|
390
|
-
self.total_label.text = f"particles: {self.total_number * self._count * 8!s}"
|
|
391
|
-
|
|
392
389
|
def create_emitter(self, x, y, z=0):
|
|
393
|
-
emitter = Emitter(self._img, x, y, z, self.
|
|
394
|
-
color_start=self.
|
|
395
|
-
scale_start=self.
|
|
390
|
+
emitter = Emitter(self._img, x, y, z, self.count, self.velocity, self.spread,
|
|
391
|
+
color_start=self.color_start, color_end=self.color_end,
|
|
392
|
+
scale_start=self.scale_start, scale_end=self.scale_end, rotation=self.rotation,
|
|
396
393
|
batch=self._batch, group=self._group)
|
|
397
|
-
pyglet.clock.schedule_once(self._delete_callback, self.
|
|
398
|
-
|
|
399
|
-
# TODO: remove debug
|
|
400
|
-
self.total_number += 1
|
|
401
|
-
self.total_label.text = f"particles: {self.total_number * self._count * 8!s}"
|
|
402
|
-
|
|
394
|
+
pyglet.clock.schedule_once(self._delete_callback, self.lifespan, emitter)
|
|
403
395
|
return emitter
|
|
@@ -8,8 +8,6 @@ See the :ref:`guide_graphics` for details on how to use this graphics API.
|
|
|
8
8
|
"""
|
|
9
9
|
from __future__ import annotations
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
from pyglet.graphics.base import GeometryMode # noqa: F401
|
|
13
11
|
from pyglet.graphics import api # noqa: F401
|
|
14
12
|
from pyglet.graphics.draw import Group, ShaderGroup # noqa: F401
|
|
15
13
|
from pyglet.graphics.state import State # noqa: F401
|
|
@@ -14,7 +14,7 @@ from pyglet.graphics.state import State
|
|
|
14
14
|
_debug_graphics_batch = pyglet.options.debug_graphics_batch
|
|
15
15
|
|
|
16
16
|
if TYPE_CHECKING:
|
|
17
|
-
from pyglet.
|
|
17
|
+
from pyglet.enums import GeometryMode
|
|
18
18
|
from pyglet.graphics.api.gl2.shader import ShaderProgram
|
|
19
19
|
from pyglet.graphics.api.gl.vertexdomain import VertexList, IndexedVertexList
|
|
20
20
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from pyglet.graphics import GeometryMode
|
|
4
3
|
from pyglet.graphics.api.gl import (
|
|
5
4
|
GL_LINEAR, GL_NEAREST, GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, \
|
|
6
5
|
GL_TEXTURE_CUBE_MAP, \
|
|
@@ -15,7 +14,7 @@ from pyglet.graphics.api.gl import (
|
|
|
15
14
|
GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA, GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL,
|
|
16
15
|
GL_GEQUAL, GL_ALWAYS)
|
|
17
16
|
|
|
18
|
-
from pyglet.enums import BlendFactor, TextureFilter, TextureType, TextureWrapping, CompareOp
|
|
17
|
+
from pyglet.enums import BlendFactor, TextureFilter, TextureType, TextureWrapping, CompareOp, GeometryMode
|
|
19
18
|
|
|
20
19
|
geometry_map = {
|
|
21
20
|
GeometryMode.POINTS: GL_POINTS,
|
|
@@ -42,7 +42,7 @@ from pyglet.graphics.shader import ShaderSource, ShaderType, ShaderBase, Attribu
|
|
|
42
42
|
from pyglet.graphics.shader import ShaderException
|
|
43
43
|
|
|
44
44
|
from pyglet.graphics.api.gl.buffer import BufferObject
|
|
45
|
-
from pyglet.
|
|
45
|
+
from pyglet.enums import GeometryMode
|
|
46
46
|
|
|
47
47
|
if TYPE_CHECKING:
|
|
48
48
|
from _weakref import CallableProxyType
|
|
@@ -64,7 +64,8 @@ from pyglet.graphics.vertexdomain import (
|
|
|
64
64
|
if TYPE_CHECKING:
|
|
65
65
|
from ctypes import Array
|
|
66
66
|
from pyglet.graphics.shader import AttributeView
|
|
67
|
-
from pyglet.graphics import
|
|
67
|
+
from pyglet.graphics import Group
|
|
68
|
+
from pyglet.enums import GeometryMode
|
|
68
69
|
from pyglet.graphics.shader import Attribute
|
|
69
70
|
from pyglet.customtypes import CType, DataTypes
|
|
70
71
|
|
|
@@ -23,7 +23,7 @@ _debug_graphics_batch = pyglet.options.debug_graphics_batch
|
|
|
23
23
|
|
|
24
24
|
if TYPE_CHECKING:
|
|
25
25
|
from pyglet.graphics.state import State
|
|
26
|
-
from pyglet.
|
|
26
|
+
from pyglet.enums import GeometryMode
|
|
27
27
|
from pyglet.graphics.api.gl2.shader import ShaderProgram
|
|
28
28
|
|
|
29
29
|
|