pyglet 3.0.dev8__tar.gz → 3.0.dev9__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.dev8 → pyglet-3.0.dev9}/PKG-INFO +1 -1
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/migration.rst +12 -3
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/rendering.rst +2 -2
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/texture.rst +1 -1
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/__init__.py +1 -1
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/experimental/geoshader_sprite.py +4 -4
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/experimental/particles.py +1 -1
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/__init__.py +8 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/__init__.py +1 -3
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/base.py +0 -68
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/__init__.py +1 -1
- pyglet-3.0.dev9/pyglet/graphics/api/gl/base.py +55 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/buffer.py +25 -25
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/context.py +16 -19
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/framebuffer.py +15 -20
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/global_opengl.py +1 -6
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/shader.py +22 -24
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/state.py +13 -9
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/texture.py +69 -34
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/vertexarray.py +8 -7
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl2/buffer.py +2 -2
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl2/framebuffer.py +1 -3
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/__init__.py +0 -18
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/buffer.py +16 -16
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/context.py +9 -54
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/framebuffer.py +13 -20
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/gl_info.py +1 -1
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/shader.py +15 -16
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/state.py +13 -15
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/texture.py +68 -39
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/vertexarray.py +8 -7
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/atlas.py +4 -4
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/buffer.py +19 -4
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/framebuffer.py +2 -2
- pyglet-3.0.dev9/pyglet/graphics/resource.py +124 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/shader.py +19 -15
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/texture.py +23 -21
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/__init__.py +1 -1
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/resource.py +1 -1
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/sprite.py +3 -3
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/opengl/test_compute_shader.py +1 -1
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/opengl/test_shaders.py +2 -2
- pyglet-3.0.dev9/tests/unit/test_graphics_resource.py +104 -0
- pyglet-3.0.dev8/pyglet/graphics/api/gl/base.py +0 -24
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/.coveragerc +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/.github/workflows/codeql.yml +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/.github/workflows/unittests.yml +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/.gitignore +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/.readthedocs.yml +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/API_CHANGES.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/LICENSE +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/MANIFEST.in +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/README.md +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/RELEASE_NOTES +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/TODO.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/README.md +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/aseprite_codec/README +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/aseprite_codec/asedemo.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/aseprite_codec/aseprite.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/aseprite_codec/running.ase +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/dist_field/README +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/dist_field/genfield.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/dist_field/py.df.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/dist_field/py.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/dist_field/renderfield.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/qt_sprite_preview.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/scenemanager.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/spritebenchmark.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/svg/hello_world.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/svg/svg_test.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/contrib/toys/follow_mouse.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/Makefile +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/_static/css/custom.css +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/_static/favicon.ico +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/_static/logo.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/_static/logo5.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/_static/relatedlogo.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/conf.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/external_resources.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/index.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/internal/contributing.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/internal/dist.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/internal/doc.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/internal/generated.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/internal/gl.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/internal/media_logging_manual.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/internal/media_manual.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/internal/testing.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/internal/virtualenv.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/internal/wraptypes-class.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/internal/wraptypes.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/make.bat +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/app.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/clock.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/config/base.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/config/gl.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/config/index.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/customtypes.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/dialog.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/display.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/enums.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/event.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/font/group.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/font/index.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/font/user.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/graphics/allocation.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/graphics/atlas.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/graphics/draw.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/graphics/framebuffer.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/graphics/index.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/graphics/shader.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/graphics/texture.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/graphics/vertexbuffer.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/graphics/vertexdomain.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/gui.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/image/animation.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/image/index.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/info.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/input.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/math.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/media.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/media_synthesis.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/models.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/pyglet.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/resource.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/shapes.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/sprite.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/storage.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/text/caret.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/text/document.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/text/index.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/text/layout.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/window.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/window_camera.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/window_key.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/modules/window_mouse.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/camera.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/context.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/debug.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/event_chains.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/eventloop.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/events.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/examplegame.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/fonts.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/from_pygame.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/gl.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/gui.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/image.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/abstract_image.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/abstract_image.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/buffer_image.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/buffer_image.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/context_flow.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/context_flow.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_mac_default.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_mac_no.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_mac_text.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_default.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_hand.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_help.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_no.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_size.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_text.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_wait.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/explosion.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/font_metrics.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/font_metrics.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/image_classes.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/image_classes.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/image_grid.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/image_grid.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/image_sequence.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/image_sequence.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/mouse_coordinates.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/screens.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/screens.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/text_classes.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/text_classes.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/window_location.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/window_location.svg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/window_osx_borderless.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/window_osx_default.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/window_osx_dialog.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/window_osx_tool.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/window_xp_default.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/window_xp_dialog.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/window_xp_overlay.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/window_xp_tool.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/img/window_xp_transparent.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/input.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/installation.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/keyboard.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/math.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/media.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/migration2.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/models.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/mouse.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/opengles.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/options.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/pyodide.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/quickstart.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/resources.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/shapes.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/text.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/time.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/programming_guide/windowing.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/doc/requirements.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/dpi_scaled_window.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/events/events_key_state_handler.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/events/register_event_type.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/events/window_events.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/events/window_platform_event.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/resources/asteroid.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/resources/bullet.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/resources/bullet.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/resources/engine_flame.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/resources/player.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version1/asteroid.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version1/game/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version1/game/load.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version1/game/util.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version2/asteroid.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version2/game/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version2/game/load.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version2/game/physicalobject.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version2/game/player.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version2/game/util.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version3/asteroid.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version3/game/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version3/game/load.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version3/game/physicalobject.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version3/game/player.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version3/game/util.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version4/asteroid.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version4/game/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version4/game/asteroid.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version4/game/bullet.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version4/game/load.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version4/game/physicalobject.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version4/game/player.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version4/game/util.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version5/asteroid.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version5/game/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version5/game/asteroid.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version5/game/bullet.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version5/game/load.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version5/game/physicalobject.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version5/game/player.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/game/version5/game/util.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/graphics/instancing.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/graphics/instancing_order.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/graphics/uniform_buffer_object.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/gui/bar.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/gui/button_hover.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/gui/button_pressed.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/gui/button_unpressed.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/gui/knob.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/gui/widgets.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/hello_world.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/image/image_convert.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/image/image_display.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/input/apple_remote.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/input/controller.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/input/input.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/input/joystick.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/input/tablet.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/media_info.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/media_player.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/noisy/README +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/noisy/ball.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/noisy/ball.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/noisy/noisy.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/soundspace/README +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/soundspace/reader.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/soundspace/res/bass.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/soundspace/res/drums.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/soundspace/res/guitar.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/soundspace/res/piano.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/soundspace/res/space.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/soundspace/soundspace.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/synthesizer.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/media/video.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/model/box.mtl +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/model/box.obj +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/model/fpscamera.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/model/logo3d.mtl +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/model/logo3d.obj +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/model/model.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/model/pyglet.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/opengl/compute_shader.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/opengl/egl_context.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/opengl/minimal_shader.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/opengl/opengl_context.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/opengl/opengl_core.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/opengl/opengl_scissor.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/opengl/pyglet.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/opengl/torus.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/opengl/transform_shader.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/programming_guide/animation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/programming_guide/dinosaur.gif +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/programming_guide/events.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/programming_guide/hello_world.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/programming_guide/image_viewer.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/programming_guide/kitten.jpg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/programming_guide/window_subclass.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/resources/Brick1Blue.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/resources/Brick1Crack3.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/resources/Brick1Gray.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/resources/kitten.jpg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/resources/pyglet.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/shapes.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/sprite/depth_sprite.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/sprite/display_sprite.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/sprite/multi_texture_sprite.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/sprite/multi_texture_sprite_animation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/sprite/multi_texture_sprite_texture_array_animation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/sprite/sprite_batching.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/sprite/toggle_sprite_shader.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/text/advanced_font.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/text/font_groups.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/text/html_label.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/text/pyglet.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/text/text_effect_shaders.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/text/text_effects.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/text/text_input.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/text/user_bitmap_font.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/timer.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/window/camera/camera_group.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/window/camera/camera_scissor.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/window/camera/camera_views.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/window/clipboard.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/window/file_dialogs.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/window/file_drag_drops.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/window/fixed_resolution.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/window/fps_change.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/window/multiple_windows.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/window/no_backend.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/window/overlay_window.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/examples/window/transparent_window.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/make.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/__init__.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/app/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/app/async_app.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/app/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/app/cocoa.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/app/linux.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/app/win32.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/clock.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/config/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/config/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/config/gl/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/config/gl/egl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/config/gl/macos.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/config/gl/webgl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/config/gl/windows.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/config/gl/x11.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/customtypes.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/display/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/display/__init__.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/display/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/display/cocoa.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/display/emscripten.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/display/headless.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/display/wayland.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/display/win32.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/display/xlib.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/display/xlib_vidmoderestore.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/enums.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/event.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/experimental/README.md +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/experimental/flaccodec.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/experimental/hidraw.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/experimental/jobs.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/experimental/net.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/experimental/win32priority.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/extlibs/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/extlibs/earcut.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/extlibs/png.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/dwrite/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/dwrite/d2d1_lib.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/dwrite/d2d1_types_lib.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/dwrite/dwrite_lib.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/fontconfig.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/freetype.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/freetype_lib.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/group.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/harfbuzz.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/pyodide_js.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/quartz.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/ttf.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/user.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/font/win32.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/allocation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/cocoa/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/cocoa/context.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/default_shaders.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/draw.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/egl/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/egl/context.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/enums.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/gl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/gl_info.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/lib.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/renderer.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/shapes.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/sprite.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/text.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/vertexdomain.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/win32/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/win32/context.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/win32/wgl_info.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/xlib/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/xlib/context.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl/xlib/glx_info.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl1/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl1/gl_compat.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl2/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl2/draw.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl2/global_opengl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl2/shader.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl2/shapes.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl2/sprite.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl2/state.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl2/text.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/gl2/vertexdomain.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/draw.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/enums.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/gl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/renderer.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/shapes.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/sprite.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/text.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/vertexdomain.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/api/webgl/webgl_js.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/draw.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/instance.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/state.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/graphics/vertexdomain.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/gui/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/gui/frame.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/gui/ninepatch.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/gui/widgets.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/animation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/codecs/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/codecs/bmp.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/codecs/dds.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/codecs/gdiplus.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/codecs/gif.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/codecs/js_image.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/codecs/ktx2.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/codecs/pil.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/codecs/png.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/codecs/quartz.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/image/codecs/wic.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/info.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/controller.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/controller_db.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/emscripten/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/emscripten/gamepad_js.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/linux/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/linux/evdev.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/linux/evdev_constants.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/linux/x11_xinput.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/macos/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/macos/darwin_gc.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/macos/darwin_hid.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/win32/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/win32/directinput.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/win32/wintab.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/input/win32/xinput.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/lib.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/darwin/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/darwin/agl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/darwin/cocoapy/cocoahelpers.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/darwin/cocoapy/cocoalibs.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/darwin/coreaudio.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/darwin/lib_agl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/darwin/quartzkey.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/egl/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/egl/egl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/egl/eglext.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/egl/lib.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/emscripten/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/emscripten/files.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/emscripten/filesystem.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/emscripten/proxies.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/emscripten/pyglet_emscripten.js +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/glx/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/glx/glx.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/glx/glxext_arb.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/glx/glxext_mesa.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/glx/glxext_nv.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/glx/lib_glx.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/ioctl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/wayland/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/wayland/client.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/wayland/gbm.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/wayland/lib_wayland.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/wayland/wayland_egl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/wayland/xkbcommon.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/x11/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/x11/cursorfont.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/x11/xf86vmode.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/x11/xinerama.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/x11/xinput.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/x11/xlib.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/x11/xrandr.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/x11/xrender.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/linux/x11/xsync.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/lib_harfbuzz.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/spirv/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/spirv/lib_shaderc.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/spirv/lib_spirv_cross.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/exceptions.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/func.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/func_helpers.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vk_video.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vk_video.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_core.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_core.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_ios.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_ios.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_macos.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_macos.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_metal.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_metal.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_wayland.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_wayland.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_win32.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_win32.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_xcb.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_xcb.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_xlib.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_xlib.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_xlib_xrandr.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/shared/vulkan_lib/vulkan_xlib_xrandr.pyi +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/win32/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/win32/com.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/win32/constants.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/win32/context_managers.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/win32/dinput.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/win32/lib_wgl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/win32/libwintab.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/win32/types.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/win32/wgl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/win32/wglext_arb.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/win32/wincodec.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/libs/win32/winkey.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/math.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/buffered_logger.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/coreaudio.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/ffmpeg.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/ffmpeg_lib/compat.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/gstreamer.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/pyogg.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/wave.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/webaudio_pyodide.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/codecs/wmf.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/devices/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/devices/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/devices/win32.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/directsound/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/directsound/adaptation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/directsound/exceptions.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/directsound/interface.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/directsound/lib_dsound.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/listener.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/openal/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/openal/adaptation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/openal/interface.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/openal/lib_alc.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/openal/lib_openal.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/pulse/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/pulse/adaptation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/pulse/interface.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/pyodide_js/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/pyodide_js/adaptation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/silent/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/silent/adaptation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/xaudio2/adaptation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/xaudio2/interface.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/exceptions.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/instrumentation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/player.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/player_worker_thread.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/media/synthesis.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/model/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/model/codecs/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/model/codecs/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/model/codecs/gltf.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/model/codecs/obj.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/py.typed +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/shapes.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/storage.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/caret.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/document.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/effects.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/formats/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/formats/attributed.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/formats/html.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/formats/plaintext.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/formats/structured.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/layout/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/layout/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/layout/boxes.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/layout/flow.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/layout/incremental.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/layout/scrolling.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/text/runlist.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/util.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/camera/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/camera/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/camera/camera2d.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/camera/camera3d.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/cocoa/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/cocoa/pyglet_delegate.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/cocoa/pyglet_textview.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/cocoa/pyglet_view.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/cocoa/pyglet_window.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/cocoa/systemcursor.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/dialog/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/dialog/base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/dialog/darwin.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/dialog/emscripten.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/dialog/linux.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/dialog/windows.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/emscripten/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/event.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/headless/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/key.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/mouse.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/wayland/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/win32/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyglet/window/xlib/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/pyproject.toml +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/annotations.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/base/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/base/data.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/base/event_loop.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/base/interactive.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/base/performance.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/conftest.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/fonts/README +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/fonts/action_man.ttf +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/fonts/action_man_atlas.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/fonts/action_man_bold.ttf +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/fonts/action_man_italic.ttf +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/8bpp.gif +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/cursor.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/dinosaur.gif +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/gdk_close.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/grey_background.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/icon1.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/icon_size1.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/icon_size2.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/icon_size3.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/icon_size4.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/icon_size5.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/l.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/la.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/multitexture.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgb.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgb_16bpp.bmp +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgb_1bpp.bmp +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgb_24bpp.bmp +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgb_32bpp.bmp +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgb_4bpp.bmp +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgb_8bpp.bmp +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgb_8bpp.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgb_8bpp_trans.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgb_bc6s.dds +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgb_dxt1.dds +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgba.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgba_32bpp.bmp +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgba_bc7.dds +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgba_bc7.ktx2 +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgba_dxt1.dds +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgba_dxt3.dds +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/rgba_dxt5.dds +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/README +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/alert.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/login.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/logout.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/receive.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/send.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/models/logo3d.mtl +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/data/models/logo3d.obj +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/app/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/app/test_eventloop.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/conftest.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/font/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/font/test_font.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/font/test_freetype_face.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/font/test_gdi_renderer.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/gl2/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/gl2/test_buffers.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/gl2/test_texture_readback.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/opengl/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/opengl/test_buffers.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/opengl/test_framebuffer.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/opengl/test_instancing.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/opengl/test_surface_info.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/opengl/test_texture.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/opengl/test_texture_compressed.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_allocation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_atlas_bins.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_batch_migration.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_cameras.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_groups.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_objects.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_resource_texture_transforms.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_texture2d.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_texture3d.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_texture_mipmaps.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_texturearray.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_texturegrid.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_vertex_list.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/test_window_backend_config.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/webgl/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/webgl/conftest.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/webgl/test_context.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/webgl/test_shaders_and_batches.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/webgl/test_shapes_sprites_and_text.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/graphics/webgl/test_textures_and_framebuffers.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/image/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/image/test_gdkpixbuf2.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/image/test_imagegrid.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/image/test_wic.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/libs/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/libs/darwin/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/libs/darwin/cocoapy/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/libs/darwin/cocoapy/test_cocoalibs.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/media/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/media/mock_player.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/media/test_directsound.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/media/test_driver.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/media/test_ffmpeg.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/media/test_listener.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/media/test_loading.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/media/test_openal.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/media/test_player.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/media/test_pulse.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/media/test_xaudio2.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/model/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/model/test_loading.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/platform/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/platform/pyodide/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/platform/pyodide/test_async_event_loop.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/platform/pyodide/test_filesystem.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/platform/pyodide/test_proxy_lifecycle.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/platform/pyodide/test_runtime.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/platform/test_win_context_managers.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/platform/test_win_multicore_clock.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/resource/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/resource/dir1/f2.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/resource/dir1/res.zip +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/resource/dir2/f6.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/resource/f1.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/resource/rgbm.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/resource/test_resource_loading.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/test_integrations.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/text/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/text/test_empty_document.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/text/test_label_creation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/text/test_layout.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/window/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/window/test_context_share.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/window/test_event_sequence.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/integration/window/test_window_caption.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/conftest.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/graphics/group_ordering.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/image/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/image/test_image.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/media/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/media/test_player.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/screenshots/committed/README +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/screenshots/session/README +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/shapes/test_shapes.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/test_interactive_test_base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/text/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/text/test_caret_color.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/text/test_content_valign.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/text/test_html.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/text/test_inline_elements.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/text/test_inline_elements_style_change.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/text/test_layout_anchoring.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/text/test_multiline_wrap.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/text/test_plain.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/text/test_style.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/window/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/window/test_window_events.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/window/test_window_fullscreen.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/window/test_window_modes.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/window/test_window_multisample.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/window/test_window_open.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/window/test_window_settings.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/window/test_window_styles.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/interactive/windowed_test_base.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/pyodide/README.md +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/pyodide/browser_harness.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/pyodide/index.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/pyodide/project_builder.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/pyodide/pytest_runner.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/pyodide/run_pyodide_tests.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/pyodide/script.js +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/requirements.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/conftest.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/libs/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/libs/darwin/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/libs/darwin/cocoapy/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/libs/darwin/cocoapy/test_cocoalibs.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/math/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/math/test_mat.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/math/test_quat.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/math/test_vec2.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/math/test_vec3.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/math/test_vec4.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/media/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/media/test_player.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/media/test_player_worker_thread.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/media/test_sources.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/media/test_synthesis.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/platform/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/platform/test_mac_objc.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/shader/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/shader/conftest.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/shader/test_shader.py-SUSPENDED +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/shapes/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/shapes/conftest.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/shapes/test_shapes.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/test_atlas.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/test_clock.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/test_clock_freq.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/test_event_chain.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/test_events.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/test_image_data.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/test_info.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/test_input.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/test_resource_path.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/test_sprite.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/test_storage.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/test_win32_com.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/text/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/text/test_caret.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tests/unit/text/test_text.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/al_info.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/benchmark_clock.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/bokeh_timeline.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/compare.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/configure.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/extractors.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/fs.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/mp.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/mpexceptions.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/playmany.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/readme_run_tests.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/report.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/reports.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/retry_crashed.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/run_test_suite.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/summarize.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/test_instrumentation.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/ffmpeg/timeline.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/gencontrollerdb.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/gengl.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/genwrappers.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/gl.template +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/gl.xml +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/gl_info.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/gl_stub.template +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/inspect_font.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/requirements.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/web.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/web_example/README.md +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/web_example/example.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/web_example/pyglet.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/web_example/pyproject.toml +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/web_example/web/dev_style.css +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/web_example/web/index.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/wgl.h +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/wraptypes/__init__.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/wraptypes/cparser.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/wraptypes/ctypesparser.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/wraptypes/lex.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/wraptypes/preprocessor.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/wraptypes/wrap.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/tools/wraptypes/yacc.py +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/LICENSE.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/README.rst +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/assets/favicon.ico +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/assets/static/css/example-custom-styles.css +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/assets/static/images/pyglet.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/content/404.html/contents.lr +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/content/404.html/ngc-5793.jpg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/content/authors/benjamin/contents.lr +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/content/authors/benjamin/pyglet.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/content/authors/contents.lr +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/content/blog/contents.lr +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/content/blog/welcome-blog/contents.lr +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/content/contents.lr +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/content/eclipse.jpg +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/pyglet.lektorproject +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/AUTHORS.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/CHANGELOG.md +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/LICENSE.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/NOTICE.txt +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/README.md +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/images/blog-index.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/images/full-blog.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/images/full-page.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/images/gallery-404.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/models/404.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/models/author.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/models/authors.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/models/blog-post.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/models/blog.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/models/page.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/models/single-layout.ini +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/404.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/author.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/authors.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/blog-post.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/blog.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/layout.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/none.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/page.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/templates/single-layout.html +0 -0
- {pyglet-3.0.dev8 → pyglet-3.0.dev9}/website/themes/lektor-icon/theme.ini +0 -0
|
@@ -368,19 +368,19 @@ Previously to apply a state, your group might look like this::
|
|
|
368
368
|
self.texture = texture
|
|
369
369
|
|
|
370
370
|
def set_state(self):
|
|
371
|
-
glBindTexture(GL_TEXTURE_2D, self.texture.
|
|
371
|
+
glBindTexture(GL_TEXTURE_2D, self.texture.handle)
|
|
372
372
|
|
|
373
373
|
def unset_state(self):
|
|
374
374
|
# not required
|
|
375
375
|
|
|
376
376
|
def __eq__(self, other):
|
|
377
377
|
return (self.__class__ is other.__class__ and
|
|
378
|
-
self.texture.
|
|
378
|
+
self.texture.key == other.texture.key and
|
|
379
379
|
self.texture.target == other.texture.target and
|
|
380
380
|
self.parent == other.parent)
|
|
381
381
|
|
|
382
382
|
def __hash__(self):
|
|
383
|
-
return hash((self.texture.
|
|
383
|
+
return hash((self.texture.key, self.texture.target))
|
|
384
384
|
|
|
385
385
|
That same group with Pyglet 3.0 look like this::
|
|
386
386
|
|
|
@@ -422,6 +422,14 @@ Additional changes not covered above:
|
|
|
422
422
|
``Texture.blit_into`` was renamed to ``Texture.upload`` and
|
|
423
423
|
``Texture.get_image_data`` was renamed to ``Texture.fetch`` to better reflect that these involve GPU requests.
|
|
424
424
|
|
|
425
|
+
* Graphics resource identities:
|
|
426
|
+
Backend-created resources such as textures, buffers, shaders, shader programs,
|
|
427
|
+
framebuffers, renderbuffers, and vertex arrays now separate their backend
|
|
428
|
+
``handle`` from their stable pyglet ``key``. Use ``resource.handle`` when
|
|
429
|
+
passing a resource to a backend API, and ``resource.key`` for equality,
|
|
430
|
+
hashing, batching, or cache keys. The read-only ``resource.id`` alias is
|
|
431
|
+
deprecated; replace it with ``handle``.
|
|
432
|
+
|
|
425
433
|
* Fonts and text:
|
|
426
434
|
``pyglet.font.manager`` now supports custom font-name callbacks,
|
|
427
435
|
``pyglet.font.get_custom_font_names`` was added, and ``pyglet.font.FontGroup``
|
|
@@ -434,6 +442,7 @@ Additional changes not covered above:
|
|
|
434
442
|
``Window.set_mouse_visible`` was renamed to
|
|
435
443
|
``Window.set_mouse_cursor_visible``, and ``Window.set_mouse_platform_visible``
|
|
436
444
|
was renamed to ``Window.set_mouse_cursor_platform_visible``.
|
|
445
|
+
``MouseCursor.gl_drawable`` was renamed to ``MouseCursor.api_drawable``.
|
|
437
446
|
|
|
438
447
|
* ``pyglet.input``:
|
|
439
448
|
Controllers now dispatch separate events for left/right sticks and
|
|
@@ -550,7 +550,7 @@ a texture requires the following before drawing::
|
|
|
550
550
|
|
|
551
551
|
from pyglet.graphics.api.gl import *
|
|
552
552
|
glActiveTexture(GL_TEXTURE0)
|
|
553
|
-
glBindTexture(texture.target, texture.
|
|
553
|
+
glBindTexture(texture.target, texture.handle)
|
|
554
554
|
|
|
555
555
|
With a :py:class:`~pyglet.graphics.Group` these state changes can be
|
|
556
556
|
encapsulated and associated with the vertex lists they affect.
|
|
@@ -566,7 +566,7 @@ and `Group.unset_state` methods to perform the required state changes::
|
|
|
566
566
|
def set_state(self):
|
|
567
567
|
self.program.use()
|
|
568
568
|
glActiveTexture(GL_TEXTURE0)
|
|
569
|
-
glBindTexture(self.texture.target, self.texture.
|
|
569
|
+
glBindTexture(self.texture.target, self.texture.handle)
|
|
570
570
|
|
|
571
571
|
def unset_state(self):
|
|
572
572
|
self.program.stop()
|
|
@@ -389,7 +389,7 @@ A :py:class:`~pyglet.graphics.texture.Texture` has a ``target`` and ``id``:
|
|
|
389
389
|
::
|
|
390
390
|
|
|
391
391
|
from pyglet.graphics.api.gl import *
|
|
392
|
-
glBindTexture(texture.target, texture.
|
|
392
|
+
glBindTexture(texture.target, texture.handle)
|
|
393
393
|
|
|
394
394
|
.. _OpenGL Programming Guide: http://www.opengl-redbook.com/
|
|
395
395
|
|
|
@@ -200,7 +200,7 @@ class SpriteGroup(graphics.Group):
|
|
|
200
200
|
self.program.use()
|
|
201
201
|
|
|
202
202
|
glActiveTexture(GL_TEXTURE0)
|
|
203
|
-
glBindTexture(self.texture.target, self.texture.
|
|
203
|
+
glBindTexture(self.texture.target, self.texture.handle)
|
|
204
204
|
|
|
205
205
|
glEnable(GL_BLEND)
|
|
206
206
|
glBlendFunc(self.blend_src, self.blend_dest)
|
|
@@ -217,13 +217,13 @@ class SpriteGroup(graphics.Group):
|
|
|
217
217
|
self.program is other.program and
|
|
218
218
|
self.parent == other.parent and
|
|
219
219
|
self.texture.target == other.texture.target and
|
|
220
|
-
self.texture.
|
|
220
|
+
self.texture.key == other.texture.key and
|
|
221
221
|
self.blend_src == other.blend_src and
|
|
222
222
|
self.blend_dest == other.blend_dest)
|
|
223
223
|
|
|
224
224
|
def __hash__(self):
|
|
225
225
|
return hash((self.program, self.parent,
|
|
226
|
-
self.texture.
|
|
226
|
+
self.texture.key, self.texture.target,
|
|
227
227
|
self.blend_src, self.blend_dest))
|
|
228
228
|
|
|
229
229
|
|
|
@@ -442,7 +442,7 @@ class Sprite(event.EventDispatcher):
|
|
|
442
442
|
self._set_texture(img.get_texture())
|
|
443
443
|
|
|
444
444
|
def _set_texture(self, texture):
|
|
445
|
-
if texture.
|
|
445
|
+
if texture.key != self._texture.key:
|
|
446
446
|
self._group = self._group.__class__(texture,
|
|
447
447
|
self._group.blend_src,
|
|
448
448
|
self._group.blend_dest,
|
|
@@ -319,7 +319,7 @@ class Emitter(event.EventDispatcher):
|
|
|
319
319
|
self.dispatch_event('on_animation_end')
|
|
320
320
|
|
|
321
321
|
def _set_texture(self, texture):
|
|
322
|
-
if texture.
|
|
322
|
+
if texture.key != self._texture.key:
|
|
323
323
|
self._group = self._group.__class__(texture,
|
|
324
324
|
self._group.blend_src,
|
|
325
325
|
self._group.blend_dest,
|
|
@@ -40,6 +40,10 @@ if TYPE_CHECKING:
|
|
|
40
40
|
from pyglet.graphics.state import State, Viewport, ViewportProtocol # noqa: F401
|
|
41
41
|
from pyglet.graphics.shader import get_default_shader # noqa: F401
|
|
42
42
|
from pyglet.graphics.buffer import UniformBufferRegion # noqa: F401
|
|
43
|
+
from pyglet.graphics.resource import ( # noqa: F401
|
|
44
|
+
BufferKey, FramebufferKey, FramebufferResource, GraphicsResource, RenderbufferKey, RenderbufferResource,
|
|
45
|
+
ResourceKey, ShaderKey, ShaderProgramKey, TextureKey, VertexArrayKey, VertexArrayResource,
|
|
46
|
+
)
|
|
43
47
|
from pyglet.graphics.draw import get_default_batch # noqa: F401
|
|
44
48
|
from pyglet.graphics.texture import PixelData, Texture, TextureGrid, Texture3D, TextureArray # noqa: F401
|
|
45
49
|
from pyglet.graphics.atlas import TextureBin, TextureArrayBin, TextureAtlas # noqa: F401
|
|
@@ -58,6 +62,10 @@ else:
|
|
|
58
62
|
from pyglet.graphics.state import State, Viewport, ViewportProtocol # noqa: F401
|
|
59
63
|
from pyglet.graphics.api import core # noqa: F401
|
|
60
64
|
from pyglet.graphics.buffer import UniformBufferRegion # noqa: F401
|
|
65
|
+
from pyglet.graphics.resource import ( # noqa: F401
|
|
66
|
+
BufferKey, FramebufferKey, FramebufferResource, GraphicsResource, RenderbufferKey, RenderbufferResource,
|
|
67
|
+
ResourceKey, ShaderKey, ShaderProgramKey, TextureKey, VertexArrayKey, VertexArrayResource,
|
|
68
|
+
)
|
|
61
69
|
from pyglet.graphics.texture import PixelData, Texture, TextureGrid, Texture3D, TextureArray # noqa: F401
|
|
62
70
|
from pyglet.graphics.atlas import TextureBin, TextureArrayBin, TextureAtlas # noqa: F401
|
|
63
71
|
from pyglet.graphics.framebuffer import Framebuffer, RenderTexture, Renderbuffer, TextureRenderTarget # noqa: F401
|
|
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING, Sequence
|
|
|
5
5
|
import pyglet
|
|
6
6
|
|
|
7
7
|
from pyglet.enums import GraphicsAPI
|
|
8
|
-
from pyglet.graphics.api.base import
|
|
8
|
+
from pyglet.graphics.api.base import NullBackend
|
|
9
9
|
|
|
10
10
|
if TYPE_CHECKING:
|
|
11
11
|
from pyglet.graphics.api.base import GraphicsConfig
|
|
@@ -14,8 +14,6 @@ if TYPE_CHECKING:
|
|
|
14
14
|
|
|
15
15
|
core = NullBackend()
|
|
16
16
|
|
|
17
|
-
resource_manager = ResourceManagement()
|
|
18
|
-
|
|
19
17
|
|
|
20
18
|
# Enforce WebGL if emscripten is detected.
|
|
21
19
|
# Create better fallback/choosing system later.
|
|
@@ -13,7 +13,6 @@ from pyglet.util import debug_print
|
|
|
13
13
|
|
|
14
14
|
if TYPE_CHECKING:
|
|
15
15
|
from pyglet.config import SurfaceConfig
|
|
16
|
-
from pyglet.graphics.api.gl import ObjectSpace
|
|
17
16
|
from pyglet.graphics.buffer import BufferRange
|
|
18
17
|
from pyglet.window import Window
|
|
19
18
|
|
|
@@ -35,11 +34,6 @@ class BackendGlobalObject(ABC): # Temp name for now.
|
|
|
35
34
|
def have_context(self) -> bool:
|
|
36
35
|
return self._have_context
|
|
37
36
|
|
|
38
|
-
@property
|
|
39
|
-
@abstractmethod
|
|
40
|
-
def object_space(self) -> ObjectSpace:
|
|
41
|
-
...
|
|
42
|
-
|
|
43
37
|
@abstractmethod
|
|
44
38
|
def get_surface_context(
|
|
45
39
|
self,
|
|
@@ -111,10 +105,6 @@ class NullBackend(BackendGlobalObject): # noqa: D101
|
|
|
111
105
|
def _raise_no_backend(self) -> NoReturn:
|
|
112
106
|
raise UnavailableBackendError
|
|
113
107
|
|
|
114
|
-
@property
|
|
115
|
-
def object_space(self) -> ObjectSpace:
|
|
116
|
-
self._raise_no_backend()
|
|
117
|
-
|
|
118
108
|
def get_surface_context(self, window: Window, config: SurfaceConfig,
|
|
119
109
|
shared: SurfaceContext | None = None) -> SurfaceContext:
|
|
120
110
|
self._raise_no_backend()
|
|
@@ -613,61 +603,3 @@ class GraphicsConfig:
|
|
|
613
603
|
def user_set_attributes(self) -> set[str]:
|
|
614
604
|
"""Return a set of attribute names that were explicitly set by the user."""
|
|
615
605
|
return self._user_set_attributes
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
class GraphicsResource(Protocol): # noqa: D101
|
|
619
|
-
def delete(self) -> None:
|
|
620
|
-
...
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
class ResourceManagement:
|
|
624
|
-
"""A manager to handle the freeing of resources for an API.
|
|
625
|
-
|
|
626
|
-
In some graphical API's, the order in which you free resources can be very specific.
|
|
627
|
-
"""
|
|
628
|
-
managers: list[GraphicsResource]
|
|
629
|
-
weak_resources: weakref.WeakSet[GraphicsResource]
|
|
630
|
-
|
|
631
|
-
def __init__(self) -> None: # noqa: D107
|
|
632
|
-
self._func = None
|
|
633
|
-
self.managers = []
|
|
634
|
-
self.weak_resources = weakref.WeakSet()
|
|
635
|
-
atexit.register(self.on_exit_cleanup)
|
|
636
|
-
|
|
637
|
-
def set_pre_cleanup_func(self, func: Callable) -> None:
|
|
638
|
-
"""Register a function to be called before cleanup.
|
|
639
|
-
|
|
640
|
-
Some API's may need to enforce a sync before cleanup.
|
|
641
|
-
"""
|
|
642
|
-
self._func = func
|
|
643
|
-
|
|
644
|
-
def register_manager(self, resource: GraphicsResource) -> None:
|
|
645
|
-
"""A manager handles multiple resources, these will be called in reverse order on cleanup."""
|
|
646
|
-
self.managers.append(resource)
|
|
647
|
-
|
|
648
|
-
def register_resource(self, resource: GraphicsResource) -> None:
|
|
649
|
-
"""Registers a resource as a weak reference.
|
|
650
|
-
|
|
651
|
-
Some resources do not have a manager, but they do need to be freed before others. Keeping them permanently
|
|
652
|
-
may prevent them from being garbage collected prior to shutdown.
|
|
653
|
-
"""
|
|
654
|
-
self.weak_resources.add(resource)
|
|
655
|
-
|
|
656
|
-
def on_exit_cleanup(self) -> None:
|
|
657
|
-
"""Cleans up all graphical resources that have been registered on application exit."""
|
|
658
|
-
self.cleanup_all()
|
|
659
|
-
|
|
660
|
-
def cleanup_all(self) -> None:
|
|
661
|
-
"""Cleans up all graphical resources that have been registered.
|
|
662
|
-
|
|
663
|
-
Weak resources registered are destroyed first.
|
|
664
|
-
|
|
665
|
-
Managers are called last, and in reverse order of registered.
|
|
666
|
-
"""
|
|
667
|
-
if self._func:
|
|
668
|
-
self._func()
|
|
669
|
-
|
|
670
|
-
for resource in self.weak_resources:
|
|
671
|
-
resource.delete()
|
|
672
|
-
for resource in reversed(self.managers):
|
|
673
|
-
resource.delete()
|
|
@@ -52,7 +52,7 @@ import pyglet as _pyglet
|
|
|
52
52
|
from pyglet import compat_platform
|
|
53
53
|
from pyglet.graphics.api.gl.gl import * # Must always be imported before gl_info or bad things happen. # noqa: F403
|
|
54
54
|
from pyglet.graphics.api.gl.lib import GLException # noqa: F401
|
|
55
|
-
from .base import
|
|
55
|
+
from .base import GLSharedObjectSpace # noqa: F401
|
|
56
56
|
from .context import OpenGLSurfaceContext
|
|
57
57
|
|
|
58
58
|
_is_pyglet_doc_run = hasattr(_sys, "is_pyglet_doc_run") and _sys.is_pyglet_doc_run
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING
|
|
4
|
+
|
|
5
|
+
if TYPE_CHECKING:
|
|
6
|
+
from pyglet.graphics.api.gl.context import OpenGLSurfaceContext
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class GLSharedObjectSpace:
|
|
10
|
+
"""Queues OpenGL objects for deletion by any context in a share group."""
|
|
11
|
+
|
|
12
|
+
def __init__(self) -> None: # noqa: D107
|
|
13
|
+
self._textures: list[int] = []
|
|
14
|
+
self._buffers: list[int] = []
|
|
15
|
+
self._shader_programs: list[int] = []
|
|
16
|
+
self._shaders: list[int] = []
|
|
17
|
+
self._renderbuffers: list[int] = []
|
|
18
|
+
|
|
19
|
+
def defer_texture(self, texture_id: int) -> None:
|
|
20
|
+
self._textures.append(texture_id)
|
|
21
|
+
|
|
22
|
+
def defer_buffer(self, buffer_id: int) -> None:
|
|
23
|
+
self._buffers.append(buffer_id)
|
|
24
|
+
|
|
25
|
+
def defer_shader_program(self, program_id: int) -> None:
|
|
26
|
+
self._shader_programs.append(program_id)
|
|
27
|
+
|
|
28
|
+
def defer_shader(self, shader_id: int) -> None:
|
|
29
|
+
self._shaders.append(shader_id)
|
|
30
|
+
|
|
31
|
+
def defer_renderbuffer(self, renderbuffer_id: int) -> None:
|
|
32
|
+
self._renderbuffers.append(renderbuffer_id)
|
|
33
|
+
|
|
34
|
+
def flush(self, context: OpenGLSurfaceContext) -> None:
|
|
35
|
+
"""Delete queued objects using a current context in this share group."""
|
|
36
|
+
if self._textures:
|
|
37
|
+
context._delete_objects(self._textures, context.glDeleteTextures) # noqa: SLF001
|
|
38
|
+
if self._buffers:
|
|
39
|
+
context._delete_objects(self._buffers, context.glDeleteBuffers) # noqa: SLF001
|
|
40
|
+
if self._shader_programs:
|
|
41
|
+
context._delete_objects_one_by_one(self._shader_programs, context.glDeleteProgram) # noqa: SLF001
|
|
42
|
+
if self._shaders:
|
|
43
|
+
context._delete_objects_one_by_one(self._shaders, context.glDeleteShader) # noqa: SLF001
|
|
44
|
+
if self._renderbuffers:
|
|
45
|
+
context._delete_objects(self._renderbuffers, context.glDeleteRenderbuffers) # noqa: SLF001
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class ContextException(Exception):
|
|
49
|
+
pass
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
class ConfigException(Exception):
|
|
53
|
+
pass
|
|
54
|
+
|
|
55
|
+
|
|
@@ -56,7 +56,7 @@ class GLBufferObject(AbstractBuffer):
|
|
|
56
56
|
This class intentionally treats data as bytes for GPU transfer.
|
|
57
57
|
"""
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
handle: int | None
|
|
60
60
|
usage: int
|
|
61
61
|
target: int
|
|
62
62
|
|
|
@@ -81,7 +81,7 @@ class GLBufferObject(AbstractBuffer):
|
|
|
81
81
|
|
|
82
82
|
buffer_id = GLuint()
|
|
83
83
|
self._context.glGenBuffers(1, buffer_id)
|
|
84
|
-
self.
|
|
84
|
+
self._handle = buffer_id.value
|
|
85
85
|
self._allocated = False
|
|
86
86
|
self._data_uploaded = False
|
|
87
87
|
|
|
@@ -92,7 +92,7 @@ class GLBufferObject(AbstractBuffer):
|
|
|
92
92
|
)
|
|
93
93
|
|
|
94
94
|
def bind(self) -> None:
|
|
95
|
-
self._context.glBindBuffer(self.target, self.
|
|
95
|
+
self._context.glBindBuffer(self.target, self._handle)
|
|
96
96
|
|
|
97
97
|
def unbind(self) -> None:
|
|
98
98
|
self._context.glBindBuffer(self.target, 0)
|
|
@@ -154,18 +154,18 @@ class GLBufferObject(AbstractBuffer):
|
|
|
154
154
|
self._data_uploaded = False
|
|
155
155
|
|
|
156
156
|
def delete(self) -> None:
|
|
157
|
-
if self.
|
|
157
|
+
if self._handle is None:
|
|
158
158
|
return
|
|
159
|
-
self._context.glDeleteBuffers(1, GLuint(self.
|
|
160
|
-
self.
|
|
159
|
+
self._context.glDeleteBuffers(1, GLuint(self._handle))
|
|
160
|
+
self._handle = None
|
|
161
161
|
self._allocated = False
|
|
162
162
|
self._data_uploaded = False
|
|
163
163
|
|
|
164
164
|
def __del__(self) -> None:
|
|
165
|
-
if self.
|
|
165
|
+
if self._handle is not None:
|
|
166
166
|
try:
|
|
167
|
-
self._context.delete_buffer(self.
|
|
168
|
-
self.
|
|
167
|
+
self._context.delete_buffer(self._handle)
|
|
168
|
+
self._handle = None
|
|
169
169
|
except (AttributeError, ImportError):
|
|
170
170
|
pass # Interpreter is shutting down
|
|
171
171
|
|
|
@@ -196,7 +196,7 @@ class GLBufferObject(AbstractBuffer):
|
|
|
196
196
|
self._allocated = True
|
|
197
197
|
|
|
198
198
|
def __repr__(self) -> str:
|
|
199
|
-
return f"{self.__class__.__name__}(
|
|
199
|
+
return f"{self.__class__.__name__}(handle={self._handle}, size={self.size})"
|
|
200
200
|
|
|
201
201
|
|
|
202
202
|
class GLMappedBufferObject(GLBufferObject, BaseMappedBufferObject):
|
|
@@ -398,7 +398,7 @@ class GLIndexedBufferObject(GLBackedBufferObject):
|
|
|
398
398
|
)
|
|
399
399
|
|
|
400
400
|
def bind_to_index_buffer(self) -> None:
|
|
401
|
-
self._context.glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, self.
|
|
401
|
+
self._context.glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, self._handle)
|
|
402
402
|
|
|
403
403
|
|
|
404
404
|
class GLPixelBufferObject(GLBufferObject, PixelBuffer):
|
|
@@ -463,13 +463,13 @@ class GLTransformFeedbackBufferObject(GLBufferObject, TransformFeedbackBuffer):
|
|
|
463
463
|
|
|
464
464
|
def bind_base(self, index: int) -> None:
|
|
465
465
|
self._ensure_allocated()
|
|
466
|
-
self._context.glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, index, self.
|
|
466
|
+
self._context.glBindBufferBase(GL_TRANSFORM_FEEDBACK_BUFFER, index, self._handle)
|
|
467
467
|
self._data_uploaded = True
|
|
468
468
|
|
|
469
469
|
def bind_range(self, index: int, offset: int, size: int) -> None:
|
|
470
470
|
self._validate_byte_range(offset, size)
|
|
471
471
|
self._ensure_allocated()
|
|
472
|
-
self._context.glBindBufferRange(GL_TRANSFORM_FEEDBACK_BUFFER, index, self.
|
|
472
|
+
self._context.glBindBufferRange(GL_TRANSFORM_FEEDBACK_BUFFER, index, self._handle, offset, size)
|
|
473
473
|
self._data_uploaded = True
|
|
474
474
|
|
|
475
475
|
|
|
@@ -524,7 +524,7 @@ class GLUniformBufferObject(UniformBufferObject):
|
|
|
524
524
|
return GLBufferObject(context, buffer_size, target=GL_UNIFORM_BUFFER)
|
|
525
525
|
|
|
526
526
|
def _bind_range(self, binding: int, offset: int, size: int) -> None:
|
|
527
|
-
self._context.glBindBufferRange(GL_UNIFORM_BUFFER, binding, self.buffer.
|
|
527
|
+
self._context.glBindBufferRange(GL_UNIFORM_BUFFER, binding, self.buffer.handle, offset, size)
|
|
528
528
|
|
|
529
529
|
class PersistentBufferObject(BaseMappedBufferObject):
|
|
530
530
|
"""A persistently mapped OpenGL buffer.
|
|
@@ -533,7 +533,7 @@ class PersistentBufferObject(BaseMappedBufferObject):
|
|
|
533
533
|
and remains mapped for the buffer lifetime.
|
|
534
534
|
"""
|
|
535
535
|
|
|
536
|
-
|
|
536
|
+
handle: int | None
|
|
537
537
|
target: int
|
|
538
538
|
usage: int
|
|
539
539
|
flags: int
|
|
@@ -564,7 +564,7 @@ class PersistentBufferObject(BaseMappedBufferObject):
|
|
|
564
564
|
self.data_type = graphics_attr.attribute.fmt.data_type
|
|
565
565
|
self.flags = GL_MAP_READ_BIT | GL_MAP_WRITE_BIT | GL_MAP_PERSISTENT_BIT | GL_MAP_COHERENT_BIT
|
|
566
566
|
|
|
567
|
-
self.
|
|
567
|
+
self._handle = None
|
|
568
568
|
self.store = None
|
|
569
569
|
self._mapped = None
|
|
570
570
|
self._mapped_ptr = 0
|
|
@@ -600,8 +600,8 @@ class PersistentBufferObject(BaseMappedBufferObject):
|
|
|
600
600
|
if preserve:
|
|
601
601
|
ctypes.memmove(new_ptr, preserve, len(preserve))
|
|
602
602
|
|
|
603
|
-
old_id = self.
|
|
604
|
-
self.
|
|
603
|
+
old_id = self._handle
|
|
604
|
+
self._handle = new_id
|
|
605
605
|
self.size = size
|
|
606
606
|
self._mapped = new_mapped
|
|
607
607
|
self._mapped_ptr = new_ptr
|
|
@@ -643,7 +643,7 @@ class PersistentBufferObject(BaseMappedBufferObject):
|
|
|
643
643
|
return self._require_store().element_size
|
|
644
644
|
|
|
645
645
|
def bind(self) -> None:
|
|
646
|
-
self._context.glBindBuffer(self.target, self.
|
|
646
|
+
self._context.glBindBuffer(self.target, self._handle)
|
|
647
647
|
|
|
648
648
|
def unbind(self) -> None:
|
|
649
649
|
self._context.glBindBuffer(self.target, 0)
|
|
@@ -684,20 +684,20 @@ class PersistentBufferObject(BaseMappedBufferObject):
|
|
|
684
684
|
return
|
|
685
685
|
|
|
686
686
|
def delete(self) -> None:
|
|
687
|
-
if self.
|
|
687
|
+
if self._handle is None:
|
|
688
688
|
return
|
|
689
|
-
self._context.glDeleteBuffers(1, GLuint(self.
|
|
690
|
-
self.
|
|
689
|
+
self._context.glDeleteBuffers(1, GLuint(self._handle))
|
|
690
|
+
self._handle = None
|
|
691
691
|
self._mapped = None
|
|
692
692
|
self._mapped_ptr = 0
|
|
693
693
|
self._storage_size = 0
|
|
694
694
|
self.get_region.cache_clear()
|
|
695
695
|
|
|
696
696
|
def __del__(self) -> None:
|
|
697
|
-
if self.
|
|
697
|
+
if self._handle is not None:
|
|
698
698
|
try:
|
|
699
|
-
self._context.delete_buffer(self.
|
|
700
|
-
self.
|
|
699
|
+
self._context.delete_buffer(self._handle)
|
|
700
|
+
self._handle = None
|
|
701
701
|
except (AttributeError, ImportError):
|
|
702
702
|
pass # Interpreter is shutting down
|
|
703
703
|
|
|
@@ -5,7 +5,8 @@ import weakref
|
|
|
5
5
|
from typing import Callable, TYPE_CHECKING
|
|
6
6
|
|
|
7
7
|
from pyglet.graphics import GraphicsAPIError, GraphicsIntegrationError
|
|
8
|
-
from pyglet.graphics.api.gl import gl, gl_info
|
|
8
|
+
from pyglet.graphics.api.gl import gl, gl_info
|
|
9
|
+
from pyglet.graphics.api.gl.base import GLSharedObjectSpace
|
|
9
10
|
from pyglet.graphics.api.base import SurfaceContext, NullContext
|
|
10
11
|
from pyglet.graphics.api.gl.gl import (
|
|
11
12
|
GL_ALREADY_SIGNALED,
|
|
@@ -43,7 +44,7 @@ class OpenGLSurfaceContext(SurfaceContext, GLFunctions):
|
|
|
43
44
|
_info: gl_info.GLInfo
|
|
44
45
|
|
|
45
46
|
#: A container which is shared between all contexts that share GL objects.
|
|
46
|
-
object_space:
|
|
47
|
+
object_space: GLSharedObjectSpace
|
|
47
48
|
config: SurfaceConfig
|
|
48
49
|
context_share: OpenGLSurfaceContext | None
|
|
49
50
|
|
|
@@ -75,7 +76,7 @@ class OpenGLSurfaceContext(SurfaceContext, GLFunctions):
|
|
|
75
76
|
if context_share:
|
|
76
77
|
self.object_space = context_share.object_space
|
|
77
78
|
else:
|
|
78
|
-
self.object_space =
|
|
79
|
+
self.object_space = GLSharedObjectSpace()
|
|
79
80
|
|
|
80
81
|
self.cached_programs = weakref.WeakValueDictionary()
|
|
81
82
|
self.renderer = GLRenderer(self)
|
|
@@ -177,17 +178,7 @@ class OpenGLSurfaceContext(SurfaceContext, GLFunctions):
|
|
|
177
178
|
self.uniform_getters, self.uniform_setters = self._get_uniform_func_tables()
|
|
178
179
|
self._info.query(self)
|
|
179
180
|
|
|
180
|
-
|
|
181
|
-
self._delete_objects(self.object_space.doomed_textures, self.glDeleteTextures)
|
|
182
|
-
if self.object_space.doomed_buffers:
|
|
183
|
-
self._delete_objects(self.object_space.doomed_buffers, self.glDeleteBuffers)
|
|
184
|
-
if self.object_space.doomed_shader_programs:
|
|
185
|
-
self._delete_objects_one_by_one(self.object_space.doomed_shader_programs,
|
|
186
|
-
self.glDeleteProgram)
|
|
187
|
-
if self.object_space.doomed_shaders:
|
|
188
|
-
self._delete_objects_one_by_one(self.object_space.doomed_shaders, self.glDeleteShader)
|
|
189
|
-
if self.object_space.doomed_renderbuffers:
|
|
190
|
-
self._delete_objects(self.object_space.doomed_renderbuffers, self.glDeleteRenderbuffers)
|
|
181
|
+
self.object_space.flush(self)
|
|
191
182
|
|
|
192
183
|
if self.doomed_vaos:
|
|
193
184
|
self._delete_objects(self.doomed_vaos, self.glDeleteVertexArrays)
|
|
@@ -273,7 +264,7 @@ class OpenGLSurfaceContext(SurfaceContext, GLFunctions):
|
|
|
273
264
|
if self._safe_to_operate_on_object_space():
|
|
274
265
|
self.glDeleteTextures(1, GLuint(texture_id))
|
|
275
266
|
else:
|
|
276
|
-
self.object_space.
|
|
267
|
+
self.object_space.defer_texture(texture_id)
|
|
277
268
|
|
|
278
269
|
def delete_buffer(self, buffer_id: int) -> None:
|
|
279
270
|
"""Safely delete a Buffer belonging to this context's object space.
|
|
@@ -284,7 +275,7 @@ class OpenGLSurfaceContext(SurfaceContext, GLFunctions):
|
|
|
284
275
|
if self._safe_to_operate_on_object_space():
|
|
285
276
|
self.glDeleteBuffers(1, GLuint(buffer_id))
|
|
286
277
|
else:
|
|
287
|
-
self.object_space.
|
|
278
|
+
self.object_space.defer_buffer(buffer_id)
|
|
288
279
|
|
|
289
280
|
def delete_shader_program(self, program_id: int) -> None:
|
|
290
281
|
"""Safely delete a ShaderProgram belonging to this context's object space.
|
|
@@ -295,7 +286,7 @@ class OpenGLSurfaceContext(SurfaceContext, GLFunctions):
|
|
|
295
286
|
if self._safe_to_operate_on_object_space():
|
|
296
287
|
self.glDeleteProgram(GLuint(program_id))
|
|
297
288
|
else:
|
|
298
|
-
self.object_space.
|
|
289
|
+
self.object_space.defer_shader_program(program_id)
|
|
299
290
|
|
|
300
291
|
def delete_shader(self, shader_id: int) -> None:
|
|
301
292
|
"""Safely delete a Shader belonging to this context's object space.
|
|
@@ -306,7 +297,7 @@ class OpenGLSurfaceContext(SurfaceContext, GLFunctions):
|
|
|
306
297
|
if self._safe_to_operate_on_object_space():
|
|
307
298
|
self.glDeleteShader(GLuint(shader_id))
|
|
308
299
|
else:
|
|
309
|
-
self.object_space.
|
|
300
|
+
self.object_space.defer_shader(shader_id)
|
|
310
301
|
|
|
311
302
|
def delete_renderbuffer(self, rbo_id: int) -> None:
|
|
312
303
|
"""Safely delete a Renderbuffer belonging to this context's object space.
|
|
@@ -317,7 +308,7 @@ class OpenGLSurfaceContext(SurfaceContext, GLFunctions):
|
|
|
317
308
|
if self._safe_to_operate_on_object_space():
|
|
318
309
|
self.glDeleteRenderbuffers(1, GLuint(rbo_id))
|
|
319
310
|
else:
|
|
320
|
-
self.object_space.
|
|
311
|
+
self.object_space.defer_renderbuffer(rbo_id)
|
|
321
312
|
|
|
322
313
|
def delete_vao(self, vao_id: int) -> None:
|
|
323
314
|
"""Safely delete a Vertex Array Object belonging to this context.
|
|
@@ -357,6 +348,7 @@ class OpenGLSurfaceContext(SurfaceContext, GLFunctions):
|
|
|
357
348
|
def _get_uniform_func_tables(self):
|
|
358
349
|
_uniform_getters: dict[GLDataType, Callable] = {
|
|
359
350
|
gl.GLint: self.glGetUniformiv,
|
|
351
|
+
gl.GLuint: self.glGetUniformuiv,
|
|
360
352
|
gl.GLfloat: self.glGetUniformfv,
|
|
361
353
|
gl.GLboolean: self.glGetUniformiv,
|
|
362
354
|
}
|
|
@@ -373,6 +365,11 @@ class OpenGLSurfaceContext(SurfaceContext, GLFunctions):
|
|
|
373
365
|
gl.GL_INT_VEC3: (gl.GLint, self.glUniform3iv, self.glProgramUniform3iv, 3),
|
|
374
366
|
gl.GL_INT_VEC4: (gl.GLint, self.glUniform4iv, self.glProgramUniform4iv, 4),
|
|
375
367
|
|
|
368
|
+
gl.GL_UNSIGNED_INT: (gl.GLuint, self.glUniform1uiv, self.glProgramUniform1uiv, 1),
|
|
369
|
+
gl.GL_UNSIGNED_INT_VEC2: (gl.GLuint, self.glUniform2uiv, self.glProgramUniform2uiv, 2),
|
|
370
|
+
gl.GL_UNSIGNED_INT_VEC3: (gl.GLuint, self.glUniform3uiv, self.glProgramUniform3uiv, 3),
|
|
371
|
+
gl.GL_UNSIGNED_INT_VEC4: (gl.GLuint, self.glUniform4uiv, self.glProgramUniform4uiv, 4),
|
|
372
|
+
|
|
376
373
|
gl.GL_FLOAT: (gl.GLfloat, self.glUniform1fv, self.glProgramUniform1fv, 1),
|
|
377
374
|
gl.GL_FLOAT_VEC2: (gl.GLfloat, self.glUniform2fv, self.glProgramUniform2fv, 2),
|
|
378
375
|
gl.GL_FLOAT_VEC3: (gl.GLfloat, self.glUniform3fv, self.glProgramUniform3fv, 3),
|