pyglet 2.1.dev7__tar.gz → 2.1rc1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/PKG-INFO +1 -1
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/index.rst +3 -2
- pyglet-2.1rc1/doc/modules/models.rst +6 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/migration.rst +22 -8
- pyglet-2.1rc1/doc/programming_guide/models.rst +10 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/dpi_scaled_window.py +15 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/model/fpscamera.py +5 -6
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/model/model.py +4 -2
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/__init__.py +9 -2
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/__init__.pyi +0 -1
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/experimental/jobs.py +11 -9
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/base.py +8 -8
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/headless.py +4 -2
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/graphics/shader.py +1 -2
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/graphics/vertexdomain.py +6 -2
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/model/__init__.py +60 -103
- pyglet-2.1rc1/pyglet/model/codecs/__init__.py +58 -0
- pyglet-2.1rc1/pyglet/model/codecs/base.py +140 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/model/codecs/gltf.py +115 -70
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/model/codecs/obj.py +52 -43
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/resource.py +5 -12
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/__init__.py +4 -4
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/cocoa/__init__.py +5 -5
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/win32/__init__.py +3 -3
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/xlib/__init__.py +5 -6
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/model/test_loading.py +9 -9
- pyglet-2.1.dev7/pyglet/model/codecs/__init__.py +0 -63
- pyglet-2.1.dev7/pyglet/model/codecs/base.py +0 -104
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/.coveragerc +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/.github/workflows/codeql.yml +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/.github/workflows/unittests.yml +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/.gitignore +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/.readthedocs.yml +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/LICENSE +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/MANIFEST.in +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/README.md +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/RELEASE_NOTES +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/contrib/aseprite_codec/README +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/contrib/aseprite_codec/asedemo.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/contrib/aseprite_codec/aseprite.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/contrib/aseprite_codec/running.ase +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/contrib/logo3d/logo3d.jpg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/contrib/logo3d/logo3d.obj.zip +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/contrib/logo3d/logo3d.wings +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/contrib/qt_sprite_preview.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/contrib/scenemanager.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/contrib/toys/follow_mouse.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/Makefile +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/_static/css/custom.css +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/_static/favicon.ico +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/_static/logo.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/_static/logo5.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/_static/relatedlogo.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/conf.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/external_resources.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/internal/contributing.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/internal/dist.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/internal/doc.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/internal/generated.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/internal/gl.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/internal/media_logging_manual.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/internal/media_manual.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/internal/testing.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/internal/virtualenv.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/internal/wraptypes-class.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/internal/wraptypes.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/make.bat +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/app.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/clock.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/customtypes.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/display.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/event.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/font.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/gl.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/graphics/allocation.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/graphics/index.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/graphics/shader.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/graphics/vertexbuffer.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/graphics/vertexdomain.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/gui.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/image/animation.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/image/atlas.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/image/buffer.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/image/index.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/info.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/input.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/math.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/media.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/media_synthesis.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/pyglet.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/resource.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/shapes.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/sprite.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/text/caret.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/text/document.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/text/index.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/text/layout.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/window.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/window_key.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/modules/window_mouse.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/context.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/debug.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/eventloop.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/events.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/examplegame.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/gl.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/gui.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/image.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/abstract_image.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/abstract_image.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/buffer_image.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/buffer_image.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/context_flow.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/context_flow.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_mac_default.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_mac_no.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_mac_text.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_default.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_hand.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_help.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_no.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_size.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_text.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_wait.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/explosion.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/font_metrics.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/font_metrics.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/image_classes.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/image_classes.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/image_grid.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/image_grid.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/image_sequence.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/image_sequence.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/mouse_coordinates.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/screens.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/screens.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/text_classes.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/text_classes.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/window_location.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/window_location.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/window_osx_borderless.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/window_osx_default.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/window_osx_dialog.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/window_osx_tool.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/window_xp_default.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/window_xp_dialog.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/window_xp_overlay.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/window_xp_tool.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/img/window_xp_transparent.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/input.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/installation.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/keyboard.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/math.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/media.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/mouse.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/opengles.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/options.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/quickstart.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/rendering.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/resources.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/shapes.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/text.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/time.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/programming_guide/windowing.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/doc/requirements.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/clipboard.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/events/events_key_state_handler.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/events/register_event_type.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/events/window_events.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/events/window_platform_event.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/file_dialog.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/resources/asteroid.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/resources/bullet.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/resources/bullet.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/resources/engine_flame.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/resources/player.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version1/asteroid.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version1/game/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version1/game/load.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version1/game/resources.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version2/asteroid.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version2/game/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version2/game/load.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version2/game/physicalobject.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version2/game/player.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version2/game/resources.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version3/asteroid.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version3/game/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version3/game/load.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version3/game/physicalobject.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version3/game/player.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version3/game/resources.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version3/game/util.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version4/asteroid.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version4/game/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version4/game/asteroid.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version4/game/bullet.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version4/game/load.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version4/game/physicalobject.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version4/game/player.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version4/game/resources.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version4/game/util.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version5/asteroid.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version5/game/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version5/game/asteroid.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version5/game/bullet.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version5/game/load.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version5/game/physicalobject.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version5/game/player.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version5/game/resources.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/game/version5/game/util.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/graphics/image_convert.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/graphics/image_display.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/gui/bar.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/gui/button_hover.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/gui/button_pressed.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/gui/button_unpressed.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/gui/knob.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/gui/widgets.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/hello_world.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/input/apple_remote.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/input/controller.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/input/input.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/input/joystick.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/input/tablet.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/media_info.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/media_player.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/noisy/README +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/noisy/ball.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/noisy/ball.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/noisy/noisy.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/soundspace/README +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/soundspace/reader.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/soundspace/res/bass.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/soundspace/res/drums.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/soundspace/res/guitar.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/soundspace/res/piano.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/soundspace/res/space.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/soundspace/soundspace.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/synthesizer.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/media/video.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/model/box.mtl +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/model/box.obj +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/model/logo3d.mtl +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/model/logo3d.obj +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/model/pyglet.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/opengl/compute_shader.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/opengl/egl_context.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/opengl/minimal_shader.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/opengl/opengl_context.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/opengl/opengl_core.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/opengl/opengl_scissor.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/opengl/pyglet.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/opengl/torus.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/programming_guide/animation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/programming_guide/dinosaur.gif +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/programming_guide/events.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/programming_guide/hello_world.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/programming_guide/image_viewer.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/programming_guide/kitten.jpg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/programming_guide/window_subclass.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/resources/Brick1Blue.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/resources/Brick1Crack3.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/resources/Brick1Gray.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/resources/kitten.jpg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/resources/pyglet.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/shapes.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/sprite/depth_sprite.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/sprite/display_sprite.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/sprite/multi_texture_sprite.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/sprite/sprite_batching.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/text/advanced_font.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/text/html_label.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/text/pyglet.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/text/text_input.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/timer.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/window/camera.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/window/camera_group.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/window/fixed_resolution.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/window/fps_change.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/window/multiple_windows.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/window/overlay_window.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/examples/window/transparent_window.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/dist_field/README +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/dist_field/genfield.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/dist_field/py.df.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/dist_field/py.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/dist_field/renderfield.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/flaccodec.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/hello_world.svg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/instancing/sprite_instance.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/instancing/sprite_instance_object.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/multitexture_sprite/multitexturesprite.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/spritebenchmark.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/svg_test.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/wayland/gbm_egl_context.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/experimental/win32priority.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/make.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/py.typed +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/app/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/app/base.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/app/cocoa.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/app/win32.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/app/xlib.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/clock.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/customtypes.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/display/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/display/__init__.pyi +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/display/base.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/display/cocoa.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/display/headless.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/display/win32.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/display/xlib.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/display/xlib_vidmoderestore.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/event.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/experimental/README.md +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/experimental/geoshader_sprite.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/experimental/hidraw.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/experimental/multitexture_sprite.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/experimental/net.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/experimental/particles.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/extlibs/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/extlibs/earcut.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/extlibs/png.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/font/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/font/base.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/font/directwrite.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/font/fontconfig.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/font/freetype.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/font/freetype_lib.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/font/quartz.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/font/ttf.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/font/user.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/font/win32.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/agl.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/cocoa.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/gl.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/gl_compat.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/gl_info.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/glx.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/glx_info.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/glxext_arb.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/glxext_mesa.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/glxext_nv.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/lib.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/lib_agl.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/lib_glx.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/lib_wgl.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/wgl.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/wgl_info.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/wglext_arb.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/wglext_nv.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/win32.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gl/xlib.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/graphics/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/graphics/allocation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/graphics/instance.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/graphics/vertexarray.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/graphics/vertexbuffer.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gui/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gui/frame.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gui/ninepatch.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/gui/widgets.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/animation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/atlas.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/buffer.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/codecs/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/codecs/bmp.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/codecs/dds.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/codecs/gdiplus.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/codecs/gif.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/codecs/pil.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/codecs/png.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/codecs/quartz.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/codecs/s3tc.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/image/codecs/wic.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/info.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/base.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/controller.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/controller_db.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/linux/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/linux/evdev.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/linux/evdev_constants.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/linux/x11_xinput.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/macos/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/macos/darwin_hid.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/win32/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/win32/directinput.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/win32/wintab.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/input/win32/xinput.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/lib.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/darwin/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/darwin/cocoapy/cocoalibs.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/darwin/coreaudio.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/darwin/quartzkey.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/egl/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/egl/egl.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/egl/eglext.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/egl/lib.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/ioctl.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/wayland/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/wayland/gbm.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/wayland/xkbcommon.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/win32/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/win32/com.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/win32/constants.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/win32/context_managers.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/win32/dinput.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/win32/libwintab.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/win32/types.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/win32/winkey.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/x11/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/x11/cursorfont.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/x11/xf86vmode.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/x11/xinerama.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/x11/xinput.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/x11/xlib.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/libs/x11/xsync.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/math.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/buffered_logger.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/base.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/coreaudio.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/ffmpeg.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/ffmpeg_lib/compat.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/gstreamer.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/pyogg.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/wave.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/codecs/wmf.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/devices/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/devices/base.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/devices/win32.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/base.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/directsound/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/directsound/adaptation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/directsound/exceptions.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/directsound/interface.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/directsound/lib_dsound.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/listener.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/openal/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/openal/adaptation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/openal/interface.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/openal/lib_alc.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/openal/lib_openal.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/pulse/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/pulse/adaptation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/pulse/interface.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/silent/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/silent/adaptation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/xaudio2/adaptation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/xaudio2/interface.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/exceptions.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/instrumentation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/player.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/player_worker_thread.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/media/synthesis.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/shapes.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/sprite.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/caret.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/document.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/formats/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/formats/attributed.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/formats/html.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/formats/plaintext.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/formats/structured.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/layout/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/layout/base.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/layout/incremental.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/layout/scrolling.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/text/runlist.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/util.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/cocoa/pyglet_delegate.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/cocoa/pyglet_textview.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/cocoa/pyglet_view.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/cocoa/pyglet_window.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/cocoa/systemcursor.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/event.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/headless/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/key.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyglet/window/mouse.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pyproject.toml +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/pytest.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/setup.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/annotations.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/base/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/base/data.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/base/event_loop.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/base/interactive.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/base/performance.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/conftest.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/fonts/README +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/fonts/action_man.ttf +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/fonts/action_man_bold.ttf +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/fonts/action_man_italic.ttf +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/8bpp.gif +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/cursor.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/dinosaur.gif +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/gdk_close.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/grey_background.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/icon1.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/icon_size1.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/icon_size2.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/icon_size3.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/icon_size4.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/icon_size5.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/l.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/la.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/multitexture.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgb.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgb_16bpp.bmp +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgb_1bpp.bmp +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgb_24bpp.bmp +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgb_32bpp.bmp +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgb_4bpp.bmp +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgb_8bpp.bmp +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgb_8bpp.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgb_8bpp_trans.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgb_dxt1.dds +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgba.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgba_32bpp.bmp +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgba_dxt1.dds +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgba_dxt3.dds +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/rgba_dxt5.dds +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/README +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/alert.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/login.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/logout.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/receive.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/send.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/models/logo3d.mtl +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/data/models/logo3d.obj +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/app/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/app/test_eventloop.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/conftest.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/font/test_fontconfig.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/font/test_freetype_face.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/graphics/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/graphics/test_allocation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/graphics/test_batch_migration.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/graphics/test_shaders.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/image/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/image/test_gdkpixbuf2.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/image/test_imagegrid.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/image/test_texture3d.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/media/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/media/mock_player.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/media/test_directsound.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/media/test_driver.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/media/test_openal.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/media/test_player.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/media/test_pulse.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/model/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/platform/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/platform/test_win_context_managers.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/platform/test_win_multicore_clock.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/resource/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/resource/dir1/f2.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/resource/dir1/res.zip +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/resource/dir2/f6.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/resource/f1.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/resource/rgbm.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/resource/test_resource_image_loading.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/resource/test_resource_loading.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/test_integrations.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/text/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/text/test_empty_document.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/text/test_label_creation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/text/test_layout_creation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/window/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/window/test_context_share.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/window/test_event_sequence.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/integration/window/test_window_caption.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/conftest.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/image/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/image/test_image.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/media/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/media/test_player.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/screenshots/committed/README +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/screenshots/session/README +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/shapes/test_shapes.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/test_interactive_test_base.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/text/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/text/test_caret_color.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/text/test_content_valign.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/text/test_html.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/text/test_inline_elements.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/text/test_inline_elements_style_change.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/text/test_multiline_wrap.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/text/test_plain.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/text/test_style.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/window/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/window/test_window_events.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/window/test_window_fullscreen.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/window/test_window_modes.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/window/test_window_multisample.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/window/test_window_open.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/window/test_window_settings.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/window/test_window_styles.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/window/window_util.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/interactive/windowed_test_base.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/requirements.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/conftest.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/math/test_mat.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/math/test_quat.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/math/test_vec2.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/math/test_vec3.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/math/test_vec4.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/media/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/media/test_listener.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/media/test_player.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/media/test_sources.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/media/test_synthesis.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/platform/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/platform/test_mac_objc.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/shader/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/shader/conftest.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/shader/test_shader.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/shapes/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/shapes/conftest.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/shapes/test_shapes.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/test_atlas.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/test_clock.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/test_clock_freq.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/test_events.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/test_font.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/test_input.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/test_resource_path.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/test_sprite.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/test_text.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/text/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/text/test_caret.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tests/unit/text/test_layout.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/al_info.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/bokeh_timeline.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/compare.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/configure.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/extractors.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/fs.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/mp.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/mpexceptions.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/playmany.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/readme_run_tests.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/report.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/reports.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/retry_crashed.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/run_test_suite.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/summarize.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/test_instrumentation.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/ffmpeg/timeline.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/gencontrollerdb.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/gengl.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/genwrappers.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/gl.template +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/gl.xml +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/gl_info.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/inspect_font.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/requirements.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/wgl.h +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/wraptypes/__init__.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/wraptypes/cparser.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/wraptypes/ctypesparser.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/wraptypes/lex.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/wraptypes/preprocessor.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/wraptypes/wrap.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/tools/wraptypes/yacc.py +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/LICENSE.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/README.rst +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/assets/favicon.ico +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/assets/static/css/example-custom-styles.css +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/assets/static/images/pyglet.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/content/404.html/contents.lr +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/content/404.html/ngc-5793.jpg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/content/authors/benjamin/contents.lr +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/content/authors/benjamin/pyglet.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/content/authors/contents.lr +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/content/blog/contents.lr +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/content/blog/welcome-blog/contents.lr +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/content/contents.lr +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/content/eclipse.jpg +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/pyglet.lektorproject +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/AUTHORS.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/CHANGELOG.md +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/LICENSE.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/NOTICE.txt +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/README.md +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/images/blog-index.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/images/full-blog.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/images/full-page.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/images/gallery-404.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/models/404.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/models/author.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/models/authors.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/models/blog-post.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/models/blog.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/models/page.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/models/single-layout.ini +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/404.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/author.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/authors.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/blog-post.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/blog.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/layout.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/none.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/page.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/templates/single-layout.html +0 -0
- {pyglet-2.1.dev7 → pyglet-2.1rc1}/website/themes/lektor-icon/theme.ini +0 -0
|
@@ -50,10 +50,11 @@ If you are migrating from an older version of pyglet, please read through
|
|
|
50
50
|
programming_guide/keyboard
|
|
51
51
|
programming_guide/mouse
|
|
52
52
|
programming_guide/input
|
|
53
|
-
programming_guide/shapes
|
|
54
53
|
programming_guide/image
|
|
55
|
-
programming_guide/media
|
|
56
54
|
programming_guide/text
|
|
55
|
+
programming_guide/media
|
|
56
|
+
programming_guide/shapes
|
|
57
|
+
programming_guide/models
|
|
57
58
|
programming_guide/resources
|
|
58
59
|
programming_guide/rendering
|
|
59
60
|
programming_guide/events
|
|
@@ -12,7 +12,10 @@ are having an issue that is not covered here, please open up an issue ticket on
|
|
|
12
12
|
|
|
13
13
|
Window "HiDPI" support
|
|
14
14
|
----------------------
|
|
15
|
-
|
|
15
|
+
The v2.1 release now provides a lot more control over how modern 'HiDPI' displays
|
|
16
|
+
are treated. This includes "retina" displays, or any display that has a non-0% zoom
|
|
17
|
+
or scale (such as 4K displays). This is exposed as new pyglet options. See
|
|
18
|
+
``pyglet.options.dpi_scaling`` for more information.
|
|
16
19
|
|
|
17
20
|
Labels & Text Layouts
|
|
18
21
|
---------------------
|
|
@@ -84,7 +87,7 @@ as booleans for a quick workaround when migrating, you can do something like thi
|
|
|
84
87
|
|
|
85
88
|
|
|
86
89
|
Vectors can also be useful for analog sticks, because it gives an easy way to
|
|
87
|
-
calculate dead-zones using
|
|
90
|
+
calculate dead-zones using ``.length()``. For example::
|
|
88
91
|
|
|
89
92
|
@controller.event
|
|
90
93
|
def on_stick_motion(controller, name, vector):
|
|
@@ -102,8 +105,8 @@ that the maximum value stays within range. For example::
|
|
|
102
105
|
|
|
103
106
|
vector = min(vector, vector.normalize())
|
|
104
107
|
|
|
105
|
-
You can also of course directly access the individual
|
|
106
|
-
|
|
108
|
+
You can also of course directly access the individual ``Vec2.x`` & ``Vec2.y`` attributes,
|
|
109
|
+
if you want to . See :py:class:`~pyglet.math.Vec2` for more details on vector types.
|
|
107
110
|
|
|
108
111
|
Gui
|
|
109
112
|
---
|
|
@@ -116,8 +119,8 @@ The :py:class:`~pyglet.gui.widget.ToggleButton` and :py:class:`~pyglet.gui.widge
|
|
|
116
119
|
widgets have a small change. Instead of the image arguments being named "pressed"
|
|
117
120
|
and "depressed", they has been renamed to the correct "pressed" and "unpressed".
|
|
118
121
|
|
|
119
|
-
Math
|
|
120
|
-
|
|
122
|
+
Math
|
|
123
|
+
----
|
|
121
124
|
In the :py:mod:`~pyglet.math` module, vector types (:py:class:`~pyglet.math.Vec2`,
|
|
122
125
|
:py:class:`~pyglet.math.Vec3`, :py:class:`~pyglet.math.Vec4`) are now
|
|
123
126
|
immutable; all operations will return a new object. In addition, all vector objects
|
|
@@ -139,12 +142,23 @@ way as vectors). For example:
|
|
|
139
142
|
Matrix objects are generally created via their helper methods, so this change should
|
|
140
143
|
hopefully not require any code updates for most users.
|
|
141
144
|
|
|
145
|
+
Models
|
|
146
|
+
------
|
|
147
|
+
The :py:mod:`~pyglet.model` module has seen some changes. This is an undocumented
|
|
148
|
+
WIP module for pyglet 2.0, and it remains so pyglet 2.1. That said, it's in a more
|
|
149
|
+
usable state now. The first change is that :py:meth:`~pyglet.model.load` now returns
|
|
150
|
+
a ``Scene`` object instead of a ``Model`` object. The Scene is a new, "pure data"
|
|
151
|
+
intermediate representation of a 3D scene, that closely mimics the layout of the glTF
|
|
152
|
+
format. The :py:meth:`~pyglet.model.Scene.create_models` method can be used to create
|
|
153
|
+
``Model`` instances from the Scene, but the Scene data can also be manually iterated
|
|
154
|
+
over for more advanced use cases.
|
|
155
|
+
|
|
142
156
|
Canvas module
|
|
143
157
|
-------------
|
|
144
|
-
The
|
|
158
|
+
The ``pyglet.canvas`` module has been renamed to ``pyglet.display``. The "canvas"
|
|
145
159
|
concept was a work-in-progress in legacy pyglet, and was never fully fleshed out.
|
|
146
160
|
It appears to have been meant to allow arbitrary renderable areas, but this type
|
|
147
|
-
of functionality can now be easily accomplished with Framebuffers. The name
|
|
161
|
+
of functionality can now be easily accomplished with Framebuffers. The name ``display``
|
|
148
162
|
is a more accurate representation of what the code in the module actually relates to.
|
|
149
163
|
The usage is the same, with just the name change::
|
|
150
164
|
|
|
@@ -71,10 +71,25 @@ def on_resize(width, height):
|
|
|
71
71
|
hello_label.position = (window.width // 2, window.height // 2, 0)
|
|
72
72
|
|
|
73
73
|
|
|
74
|
+
screens = pyglet.display.get_display().get_screens()
|
|
75
|
+
selected_screen = screens[0]
|
|
76
|
+
|
|
74
77
|
@window.event
|
|
75
78
|
def on_key_press(symbol, modifiers):
|
|
79
|
+
global selected_screen
|
|
80
|
+
if len(screens) > 1:
|
|
81
|
+
if symbol == pyglet.window.key._1:
|
|
82
|
+
selected_screen = screens[1]
|
|
83
|
+
elif symbol == pyglet.window.key._0:
|
|
84
|
+
selected_screen = screens[0]
|
|
85
|
+
|
|
76
86
|
if symbol == pyglet.window.key.SPACE:
|
|
77
87
|
window.set_size(500, 300)
|
|
88
|
+
elif symbol == pyglet.window.key.F:
|
|
89
|
+
window.set_fullscreen(False, screen=selected_screen)
|
|
90
|
+
elif symbol == pyglet.window.key.G:
|
|
91
|
+
window.set_fullscreen(True, screen=selected_screen)
|
|
92
|
+
|
|
78
93
|
|
|
79
94
|
|
|
80
95
|
@window.event
|
|
@@ -10,17 +10,16 @@ to your needs for first person games.
|
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
12
|
from __future__ import annotations
|
|
13
|
+
|
|
13
14
|
import weakref
|
|
14
|
-
|
|
15
|
+
|
|
15
16
|
from math import radians, degrees
|
|
16
17
|
|
|
17
18
|
import pyglet
|
|
18
|
-
from pyglet.window import key as _key
|
|
19
19
|
|
|
20
20
|
from pyglet.gl import glEnable, GL_DEPTH_TEST, GL_CULL_FACE
|
|
21
21
|
from pyglet.math import Vec2, Vec3, Mat4, clamp
|
|
22
|
-
|
|
23
|
-
MODULE_PATH = Path(__file__).parent
|
|
22
|
+
from pyglet.window import key as _key
|
|
24
23
|
|
|
25
24
|
|
|
26
25
|
class FPSCamera:
|
|
@@ -346,8 +345,8 @@ if __name__ == "__main__":
|
|
|
346
345
|
glEnable(GL_DEPTH_TEST)
|
|
347
346
|
glEnable(GL_CULL_FACE)
|
|
348
347
|
|
|
349
|
-
model_logo = pyglet.model
|
|
350
|
-
model_box = pyglet.model
|
|
348
|
+
model_logo = pyglet.resource.model("logo3d.obj", batch=batch)
|
|
349
|
+
model_box = pyglet.resource.model("box.obj", batch=batch)
|
|
351
350
|
|
|
352
351
|
# Camera controls the global projection & view matrixes:
|
|
353
352
|
camera = FPSCamera(window, position=Vec3(0.0, 0.0, 5.0))
|
|
@@ -44,8 +44,10 @@ if __name__ == "__main__":
|
|
|
44
44
|
glEnable(GL_DEPTH_TEST)
|
|
45
45
|
glEnable(GL_CULL_FACE)
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
logo_scene = pyglet.resource.scene('logo3d.obj')
|
|
48
|
+
box_scene = pyglet.resource.scene('box.obj')
|
|
49
|
+
model_logo = logo_scene.create_models(batch=batch)[0] # only one model in this scene
|
|
50
|
+
model_box = box_scene.create_models(batch=batch)[0] # only one model in this scene
|
|
49
51
|
|
|
50
52
|
# Set the application wide view matrix (camera):
|
|
51
53
|
window.view = Mat4.look_at(position=Vec3(0, 0, 5), target=Vec3(0, 0, 0), up=Vec3(0, 1, 0))
|
|
@@ -15,7 +15,7 @@ if TYPE_CHECKING:
|
|
|
15
15
|
from typing import Any, Callable, ItemsView, Sized
|
|
16
16
|
|
|
17
17
|
#: The release version
|
|
18
|
-
version = '2.1.
|
|
18
|
+
version = '2.1.rc1'
|
|
19
19
|
__version__ = version
|
|
20
20
|
|
|
21
21
|
MIN_PYTHON_VERSION = 3, 8
|
|
@@ -247,7 +247,7 @@ class Options:
|
|
|
247
247
|
|
|
248
248
|
.. versionadded:: 2.0.5"""
|
|
249
249
|
|
|
250
|
-
dpi_scaling: Literal["real", "scaled", "stretch"] = "real"
|
|
250
|
+
dpi_scaling: Literal["real", "scaled", "stretch", "platform"] = "real"
|
|
251
251
|
"""For 'HiDPI' displays, Window behavior can differ between operating systems. Defaults to `'real'`.
|
|
252
252
|
|
|
253
253
|
The current options are an attempt to create consistent behavior across all of the operating systems.
|
|
@@ -270,6 +270,13 @@ class Options:
|
|
|
270
270
|
rescaling and repositioning of content will be necessary, but at the cost of blurry content depending on the extent
|
|
271
271
|
of the stretch. For example, 800x600 at 150% DPI will be 800x600 for `window.get_size()` and 1200x900 for
|
|
272
272
|
`window.get_framebuffer_size()`.
|
|
273
|
+
|
|
274
|
+
`'platform'`: A DPI aware window is created, however window sizing and framebuffer sizing is not interfered with
|
|
275
|
+
by Pyglet. Final sizes are dictated by the platform the window was created on. It is up to the user to make any
|
|
276
|
+
platform adjustments themselves such as sizing on a platform, mouse coordinate adjustments, or framebuffer size
|
|
277
|
+
handling. On Windows and X11, the framebuffer and the requested window size will always match in pixels 1:1. On
|
|
278
|
+
MacOS, depending on a Hi-DPI display, you may get a different sized framebuffer than the window size. This option
|
|
279
|
+
does allow `window.dpi` and `window.scale` to return their respective values.
|
|
273
280
|
"""
|
|
274
281
|
|
|
275
282
|
shader_bind_management: bool = True
|
|
@@ -25,16 +25,17 @@ if TYPE_CHECKING:
|
|
|
25
25
|
|
|
26
26
|
class _Worker(Thread):
|
|
27
27
|
"""A worker thread to pop and run jobs."""
|
|
28
|
-
def __init__(self, workqueue: Queue, exitevent: Event,
|
|
29
|
-
super().__init__(
|
|
30
|
-
self.
|
|
31
|
-
self.
|
|
28
|
+
def __init__(self, workqueue: Queue, exitevent: Event, index: int) -> None:
|
|
29
|
+
super().__init__(daemon=True)
|
|
30
|
+
self._queue = workqueue
|
|
31
|
+
self._exit = exitevent
|
|
32
|
+
self._index = index
|
|
32
33
|
self.start()
|
|
33
34
|
|
|
34
35
|
def run(self) -> None:
|
|
35
36
|
"""Parallel thread of execution."""
|
|
36
|
-
_exit = self.
|
|
37
|
-
_queue = self.
|
|
37
|
+
_exit = self._exit
|
|
38
|
+
_queue = self._queue
|
|
38
39
|
while not _exit.is_set():
|
|
39
40
|
func, args = _queue.get()
|
|
40
41
|
func(*args)
|
|
@@ -51,8 +52,9 @@ class JobExecutor:
|
|
|
51
52
|
`concurrent.futures` module, but does not share any code with those classes.
|
|
52
53
|
Instead, it is a more light-weight implementation intended for execution of
|
|
53
54
|
highly parallizable functions (jobs). A key difference is that JobExecutor
|
|
54
|
-
does not return `Futures
|
|
55
|
-
|
|
55
|
+
does not return `Futures`. Submitted jobs must be self-contained, or handle
|
|
56
|
+
returning values by other mechanisms. The :py:meth:`~sync` method can be
|
|
57
|
+
used to wait for all currently submitted jobs to complete.
|
|
56
58
|
"""
|
|
57
59
|
|
|
58
60
|
def __init__(self, max_workers: int | None = None) -> None:
|
|
@@ -65,7 +67,7 @@ class JobExecutor:
|
|
|
65
67
|
self._max_workers = max_workers or os.cpu_count() // 2
|
|
66
68
|
self._exitevent = Event()
|
|
67
69
|
self._queue = Queue()
|
|
68
|
-
self._threads = [_Worker(self._queue, self._exitevent,
|
|
70
|
+
self._threads = [_Worker(self._queue, self._exitevent, i) for i in range(self._max_workers)]
|
|
69
71
|
|
|
70
72
|
def submit(self, func: Callable, *args: Any) -> None:
|
|
71
73
|
"""Submit a job to be executed on .
|
|
@@ -12,7 +12,7 @@ from pyglet.gl import gl_info
|
|
|
12
12
|
|
|
13
13
|
if TYPE_CHECKING:
|
|
14
14
|
from _ctypes import Array
|
|
15
|
-
from pyglet.display import Canvas
|
|
15
|
+
from pyglet.display.base import Canvas
|
|
16
16
|
from pyglet.gl.gl_info import GLInfo
|
|
17
17
|
from pyglet.graphics.shader import ShaderProgram
|
|
18
18
|
|
|
@@ -142,7 +142,7 @@ class Config:
|
|
|
142
142
|
"""
|
|
143
143
|
msg = (
|
|
144
144
|
'This config cannot be used to create contexts. '
|
|
145
|
-
'Use Config.match to created a
|
|
145
|
+
'Use Config.match to created a DisplayConfig'
|
|
146
146
|
)
|
|
147
147
|
raise gl.ConfigException(msg)
|
|
148
148
|
|
|
@@ -154,7 +154,7 @@ class Config:
|
|
|
154
154
|
For example, `pyglet.window.Screen.get_matching_configs` returns
|
|
155
155
|
complete configs.
|
|
156
156
|
|
|
157
|
-
:deprecated: Use ``isinstance(config,
|
|
157
|
+
:deprecated: Use ``isinstance(config, DisplayConfig)``.
|
|
158
158
|
"""
|
|
159
159
|
return isinstance(self, DisplayConfig)
|
|
160
160
|
|
|
@@ -162,7 +162,7 @@ class Config:
|
|
|
162
162
|
return f"{self.__class__.__name__}({self.get_gl_attributes()})"
|
|
163
163
|
|
|
164
164
|
|
|
165
|
-
class DisplayConfig(Config):
|
|
165
|
+
class DisplayConfig(Config, abc.ABC):
|
|
166
166
|
"""An OpenGL configuration for a particular display.
|
|
167
167
|
|
|
168
168
|
Use ``Config.match`` to obtain an instance of this class.
|
|
@@ -214,20 +214,20 @@ class ObjectSpace:
|
|
|
214
214
|
class Context:
|
|
215
215
|
"""A base OpenGL context for drawing.
|
|
216
216
|
|
|
217
|
-
Use ``
|
|
217
|
+
Use ``DisplayConfig.create_context`` to create a context.
|
|
218
218
|
"""
|
|
219
219
|
#: gl_info.GLInfo instance, filled in on first set_current
|
|
220
220
|
_info: GLInfo | None = None
|
|
221
221
|
|
|
222
222
|
#: A container which is shared between all contexts that share GL objects.
|
|
223
223
|
object_space: ObjectSpace
|
|
224
|
-
config:
|
|
224
|
+
config: DisplayConfig
|
|
225
225
|
context_share: Context | None
|
|
226
226
|
|
|
227
|
-
def __init__(self, config:
|
|
227
|
+
def __init__(self, config: DisplayConfig, context_share: Context | None = None) -> None:
|
|
228
228
|
"""Initialize a context.
|
|
229
229
|
|
|
230
|
-
This should only be created through the ``
|
|
230
|
+
This should only be created through the ``DisplayConfig.create_context`` method.
|
|
231
231
|
|
|
232
232
|
Args:
|
|
233
233
|
config:
|
|
@@ -53,8 +53,7 @@ class HeadlessConfig(Config): # noqa: D101
|
|
|
53
53
|
egl.eglChooseConfig(display_connection, attrs_list, configs,
|
|
54
54
|
num_config.value, byref(num_config))
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
return result
|
|
56
|
+
return [HeadlessDisplayConfig(canvas, c, self) for c in configs]
|
|
58
57
|
|
|
59
58
|
|
|
60
59
|
class HeadlessDisplayConfig(DisplayConfig): # noqa: D101
|
|
@@ -92,6 +91,9 @@ class HeadlessDisplayConfig(DisplayConfig): # noqa: D101
|
|
|
92
91
|
for name, value in _fake_gl_attributes.items():
|
|
93
92
|
setattr(self, name, value)
|
|
94
93
|
|
|
94
|
+
def compatible(self, canvas: HeadlessCanvas) -> bool:
|
|
95
|
+
return isinstance(canvas, HeadlessCanvas)
|
|
96
|
+
|
|
95
97
|
def create_context(self, share: HeadlessContext | None) -> HeadlessContext:
|
|
96
98
|
return HeadlessContext(self, share)
|
|
97
99
|
|
|
@@ -1425,8 +1425,7 @@ class ShaderProgram:
|
|
|
1425
1425
|
# Create vertex list and initialize
|
|
1426
1426
|
if indexed:
|
|
1427
1427
|
vlist = domain.create(count, len(indices))
|
|
1428
|
-
|
|
1429
|
-
vlist.indices = [i + start for i in indices]
|
|
1428
|
+
vlist.indices = indices
|
|
1430
1429
|
else:
|
|
1431
1430
|
vlist = domain.create(count)
|
|
1432
1431
|
|
|
@@ -329,11 +329,15 @@ class IndexedVertexList(VertexList):
|
|
|
329
329
|
@property
|
|
330
330
|
def indices(self) -> list[int]:
|
|
331
331
|
"""Array of index data."""
|
|
332
|
-
|
|
332
|
+
start = self.start
|
|
333
|
+
return [i - start for i in self.domain.index_buffer.get_region(self.index_start, self.index_count)]
|
|
333
334
|
|
|
334
335
|
@indices.setter
|
|
335
336
|
def indices(self, data: Sequence[int]) -> None:
|
|
336
|
-
|
|
337
|
+
start = self.start
|
|
338
|
+
# The vertex data is offset in the buffer, so offset the index values to match. Ex:
|
|
339
|
+
# vertex_buffer: [_, _, _, _, 1, 2, 3, 4]
|
|
340
|
+
self.domain.index_buffer.set_region(self.index_start, self.index_count, tuple(i + start for i in data))
|
|
337
341
|
|
|
338
342
|
|
|
339
343
|
class VertexInstance:
|
|
@@ -1,41 +1,20 @@
|
|
|
1
|
-
"""Loading of 3D models.
|
|
1
|
+
"""Loading of 3D scenes and models.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
The :py:mod:`~pyglet.model` module provides an interface for loading 3D "scenes"
|
|
4
|
+
and models. A :py:class:`~pyglet.model.Scene` is a logical container that can
|
|
5
|
+
contain the data of one or more models, and is closely based on the design
|
|
6
|
+
of the glTF format.
|
|
4
7
|
|
|
5
|
-
The following example loads a ``"teapot.obj"``
|
|
6
|
-
|
|
7
|
-
import pyglet
|
|
8
|
-
|
|
9
|
-
window = pyglet.window.Window()
|
|
10
|
-
|
|
11
|
-
teapot = pyglet.model.load('teapot.obj')
|
|
12
|
-
|
|
13
|
-
@window.event
|
|
14
|
-
def on_draw():
|
|
15
|
-
teapot.draw()
|
|
16
|
-
|
|
17
|
-
pyglet.app.run()
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
You can also load models with :py:meth:`~pyglet.resource.model`.
|
|
21
|
-
See :py:mod:`~pyglet.resource` for more information.
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
Efficient Drawing
|
|
25
|
-
=================
|
|
26
|
-
|
|
27
|
-
As with Sprites or Text, Models can be added to a
|
|
28
|
-
:py:class:`~pyglet.graphics.Batch` for efficient drawing. This is
|
|
29
|
-
preferred to calling their ``draw`` methods individually. To do this,
|
|
30
|
-
simply pass in a reference to the :py:class:`~pyglet.graphics.Batch`
|
|
31
|
-
instance when loading the Model::
|
|
8
|
+
The following example loads a ``"teapot.obj"`` file. The wavefront format
|
|
9
|
+
only contains a single model (mesh)::
|
|
32
10
|
|
|
33
11
|
import pyglet
|
|
34
12
|
|
|
35
13
|
window = pyglet.window.Window()
|
|
36
14
|
batch = pyglet.graphics.Batch()
|
|
37
15
|
|
|
38
|
-
|
|
16
|
+
scene = pyglet.model.load('teapot.obj')
|
|
17
|
+
models = scene.create_models(batch=batch)
|
|
39
18
|
|
|
40
19
|
@window.event
|
|
41
20
|
def on_draw():
|
|
@@ -44,6 +23,8 @@ instance when loading the Model::
|
|
|
44
23
|
pyglet.app.run()
|
|
45
24
|
|
|
46
25
|
|
|
26
|
+
You can also load scenes with :py:meth:`~pyglet.resource.scene`.
|
|
27
|
+
See :py:mod:`~pyglet.resource` for more information.
|
|
47
28
|
"""
|
|
48
29
|
from __future__ import annotations
|
|
49
30
|
|
|
@@ -59,7 +40,7 @@ from .codecs import registry as _codec_registry
|
|
|
59
40
|
from .codecs.base import Material, Scene
|
|
60
41
|
|
|
61
42
|
if TYPE_CHECKING:
|
|
62
|
-
from typing import BinaryIO
|
|
43
|
+
from typing import BinaryIO, TextIO
|
|
63
44
|
from pyglet.image import Texture
|
|
64
45
|
from pyglet.graphics import Batch, Group
|
|
65
46
|
from pyglet.graphics.shader import ShaderProgram
|
|
@@ -68,46 +49,22 @@ if TYPE_CHECKING:
|
|
|
68
49
|
from pyglet.model.codecs import ModelDecoder
|
|
69
50
|
|
|
70
51
|
|
|
71
|
-
def load(filename: str, file: BinaryIO | None = None, decoder: ModelDecoder | None = None
|
|
72
|
-
batch: Batch | None = None, group: Group | None = None) -> Model:
|
|
73
|
-
"""Load a 3D model from a file.
|
|
74
|
-
|
|
75
|
-
Args:
|
|
76
|
-
filename:
|
|
77
|
-
Used to guess the model format, and to load the file if ``file`` is
|
|
78
|
-
unspecified.
|
|
79
|
-
file:
|
|
80
|
-
An open file containing the source of model data in any supported format.
|
|
81
|
-
decoder:
|
|
82
|
-
If unspecified, all decoders that are registered for the filename
|
|
83
|
-
extension are tried. An exception is raised if no codecs are
|
|
84
|
-
registered for the file extension, or if decoding fails.
|
|
85
|
-
batch:
|
|
86
|
-
An optional Batch instance to add this model to.
|
|
87
|
-
group:
|
|
88
|
-
An optional top level Group.
|
|
89
|
-
"""
|
|
90
|
-
if decoder:
|
|
91
|
-
return decoder.decode(filename, file, batch=batch, group=group)
|
|
92
|
-
else:
|
|
93
|
-
return _codec_registry.decode(filename, file, batch=batch, group=group)
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
def load_scene(filename: str, file: BinaryIO | None = None, decoder: ModelDecoder | None = None) -> Scene:
|
|
52
|
+
def load(filename: str, file: BinaryIO | TextIO | None = None, decoder: ModelDecoder | None = None) -> Scene:
|
|
97
53
|
"""Load a 3D scene from a file.
|
|
98
54
|
|
|
99
55
|
Args:
|
|
100
56
|
filename:
|
|
101
|
-
Used to guess the scene format,
|
|
102
|
-
unspecified.
|
|
57
|
+
Used to guess the scene format, or to load the file if ``file`` is unspecified.
|
|
103
58
|
file:
|
|
104
59
|
An open file containing the source of the scene data in any supported format.
|
|
105
60
|
decoder:
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
registered for the file extension, or if decoding fails.
|
|
61
|
+
The specific decoder to use to load the Scene. If None, use default decoders
|
|
62
|
+
that match the filename extension.
|
|
109
63
|
"""
|
|
110
|
-
|
|
64
|
+
if decoder:
|
|
65
|
+
return decoder.decode(filename, file)
|
|
66
|
+
|
|
67
|
+
return _codec_registry.decode(filename, file)
|
|
111
68
|
|
|
112
69
|
|
|
113
70
|
def get_default_shader() -> ShaderProgram:
|
|
@@ -203,15 +160,15 @@ class BaseMaterialGroup(graphics.Group):
|
|
|
203
160
|
|
|
204
161
|
class TexturedMaterialGroup(BaseMaterialGroup):
|
|
205
162
|
default_vert_src = """#version 330 core
|
|
206
|
-
in vec3
|
|
207
|
-
in vec3
|
|
208
|
-
in vec2
|
|
209
|
-
in vec4
|
|
163
|
+
in vec3 POSITION;
|
|
164
|
+
in vec3 NORMAL;
|
|
165
|
+
in vec2 TEXCOORD_0;
|
|
166
|
+
in vec4 COLOR_0;
|
|
210
167
|
|
|
211
|
-
out
|
|
212
|
-
out vec3
|
|
213
|
-
out vec2
|
|
214
|
-
out
|
|
168
|
+
out vec3 position;
|
|
169
|
+
out vec3 normal;
|
|
170
|
+
out vec2 texcoord_0;
|
|
171
|
+
out vec4 color_0;
|
|
215
172
|
|
|
216
173
|
uniform WindowBlock
|
|
217
174
|
{
|
|
@@ -224,29 +181,29 @@ class TexturedMaterialGroup(BaseMaterialGroup):
|
|
|
224
181
|
void main()
|
|
225
182
|
{
|
|
226
183
|
mat4 mv = window.view * model;
|
|
227
|
-
vec4 pos = mv * vec4(
|
|
184
|
+
vec4 pos = mv * vec4(POSITION, 1.0);
|
|
228
185
|
gl_Position = window.projection * pos;
|
|
229
186
|
mat3 normal_matrix = transpose(inverse(mat3(mv)));
|
|
230
187
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
188
|
+
position = pos.xyz;
|
|
189
|
+
normal = normal_matrix * NORMAL;
|
|
190
|
+
texcoord_0 = TEXCOORD_0;
|
|
191
|
+
color_0 = COLOR_0;
|
|
235
192
|
}
|
|
236
193
|
"""
|
|
237
194
|
default_frag_src = """#version 330 core
|
|
238
|
-
in vec4
|
|
239
|
-
in vec3
|
|
240
|
-
in vec2
|
|
241
|
-
in vec3
|
|
195
|
+
in vec4 color_0;
|
|
196
|
+
in vec3 normal;
|
|
197
|
+
in vec2 texcoord_0;
|
|
198
|
+
in vec3 position;
|
|
242
199
|
out vec4 final_colors;
|
|
243
200
|
|
|
244
201
|
uniform sampler2D our_texture;
|
|
245
202
|
|
|
246
203
|
void main()
|
|
247
204
|
{
|
|
248
|
-
float l = dot(normalize(-
|
|
249
|
-
vec4 tex_color = texture(our_texture,
|
|
205
|
+
float l = dot(normalize(-position), normalize(normal));
|
|
206
|
+
vec4 tex_color = texture(our_texture, texcoord_0) * color_0;
|
|
250
207
|
// 75/25 light ambient
|
|
251
208
|
final_colors = tex_color * l * 0.75 + tex_color * vec4(0.25);
|
|
252
209
|
}
|
|
@@ -278,13 +235,13 @@ class TexturedMaterialGroup(BaseMaterialGroup):
|
|
|
278
235
|
|
|
279
236
|
class MaterialGroup(BaseMaterialGroup):
|
|
280
237
|
default_vert_src = """#version 330 core
|
|
281
|
-
in vec3
|
|
282
|
-
in vec3
|
|
283
|
-
in vec4
|
|
238
|
+
in vec3 POSITION;
|
|
239
|
+
in vec3 NORMAL;
|
|
240
|
+
in vec4 COLOR_0;
|
|
284
241
|
|
|
285
|
-
out vec4
|
|
286
|
-
out vec3
|
|
287
|
-
out vec3
|
|
242
|
+
out vec4 color_0;
|
|
243
|
+
out vec3 normal;
|
|
244
|
+
out vec3 position;
|
|
288
245
|
|
|
289
246
|
uniform WindowBlock
|
|
290
247
|
{
|
|
@@ -297,26 +254,26 @@ class MaterialGroup(BaseMaterialGroup):
|
|
|
297
254
|
void main()
|
|
298
255
|
{
|
|
299
256
|
mat4 mv = window.view * model;
|
|
300
|
-
vec4 pos = mv * vec4(
|
|
257
|
+
vec4 pos = mv * vec4(POSITION, 1.0);
|
|
301
258
|
gl_Position = window.projection * pos;
|
|
302
259
|
mat3 normal_matrix = transpose(inverse(mat3(mv)));
|
|
303
260
|
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
261
|
+
position = pos.xyz;
|
|
262
|
+
color_0 = COLOR_0;
|
|
263
|
+
normal = normal_matrix * NORMAL;
|
|
307
264
|
}
|
|
308
265
|
"""
|
|
309
266
|
default_frag_src = """#version 330 core
|
|
310
|
-
in vec4
|
|
311
|
-
in vec3
|
|
312
|
-
in vec3
|
|
267
|
+
in vec4 color_0;
|
|
268
|
+
in vec3 normal;
|
|
269
|
+
in vec3 position;
|
|
313
270
|
out vec4 final_colors;
|
|
314
271
|
|
|
315
272
|
void main()
|
|
316
273
|
{
|
|
317
|
-
float l = dot(normalize(-
|
|
274
|
+
float l = dot(normalize(-position), normalize(normal));
|
|
318
275
|
// 75/25 light ambient
|
|
319
|
-
final_colors =
|
|
276
|
+
final_colors = color_0 * l * 0.75 + color_0 * vec4(0.25);
|
|
320
277
|
}
|
|
321
278
|
"""
|
|
322
279
|
|
|
@@ -387,9 +344,9 @@ class Cube(Model):
|
|
|
387
344
|
|
|
388
345
|
return self._program.vertex_list_indexed(len(vertices) // 3, pyglet.gl.GL_TRIANGLES, indices,
|
|
389
346
|
batch=self._batch, group=self._group,
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
347
|
+
POSITION=('f', vertices),
|
|
348
|
+
NORMAL=('f', normals),
|
|
349
|
+
COLOR_0=('f', self._color * (len(vertices) // 3)))
|
|
393
350
|
|
|
394
351
|
|
|
395
352
|
class Sphere(Model):
|
|
@@ -436,9 +393,9 @@ class Sphere(Model):
|
|
|
436
393
|
|
|
437
394
|
return self._program.vertex_list_indexed(len(vertices) // 3, pyglet.gl.GL_TRIANGLES, indices,
|
|
438
395
|
batch=self._batch, group=self._group,
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
396
|
+
POSITION=('f', vertices),
|
|
397
|
+
NORMAL=('f', normals),
|
|
398
|
+
COLOR_0=('f', self._color * (len(vertices) // 3)))
|
|
442
399
|
|
|
443
400
|
|
|
444
401
|
_add_default_codecs()
|