pyglet 2.0.15__tar.gz → 2.1.dev2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyglet-2.0.15 → pyglet-2.1.dev2}/PKG-INFO +1 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/contrib/scenemanager.py +7 -4
- {pyglet-2.0.15 → pyglet-2.1.dev2}/contrib/toys/follow_mouse.py +4 -4
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/index.rst +8 -7
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/internal/contributing.rst +3 -7
- pyglet-2.1.dev2/doc/internal/doc.rst +182 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/gl.rst +1 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/input.rst +20 -27
- pyglet-2.1.dev2/doc/programming_guide/migration.rst +134 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/clipboard.py +6 -1
- pyglet-2.1.dev2/examples/dpi_scaled_window.py +43 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/gui/widgets.py +9 -9
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/input/controller.py +13 -21
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/input/tablet.py +1 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/soundspace/soundspace.py +8 -7
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/model/fpscamera.py +10 -10
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/model/model.py +1 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/opengl/compute_shader.py +10 -3
- pyglet-2.0.15/examples/opengl/opengl_shader.py → pyglet-2.1.dev2/examples/opengl/minimal_shader.py +15 -2
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/opengl/opengl_core.py +5 -13
- pyglet-2.0.15/examples/opengl/opengl.py → pyglet-2.1.dev2/examples/opengl/torus.py +6 -4
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/programming_guide/hello_world.py +0 -7
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/shapes.py +6 -4
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/text/text_input.py +1 -2
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/timer.py +7 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/window/fixed_resolution.py +17 -3
- pyglet-2.1.dev2/examples/window/fps_change.py +41 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/experimental/spritebenchmark.py +4 -4
- {pyglet-2.0.15 → pyglet-2.1.dev2}/make.py +19 -7
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/__init__.py +6 -17
- pyglet-2.1.dev2/pyglet/__init__.pyi +13 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/app/__init__.py +17 -12
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/app/base.py +4 -2
- {pyglet-2.0.15/pyglet/canvas → pyglet-2.1.dev2/pyglet/display}/__init__.py +16 -18
- {pyglet-2.0.15/pyglet/canvas → pyglet-2.1.dev2/pyglet/display}/base.py +25 -26
- {pyglet-2.0.15/pyglet/canvas → pyglet-2.1.dev2/pyglet/display}/cocoa.py +37 -23
- {pyglet-2.0.15/pyglet/canvas → pyglet-2.1.dev2/pyglet/display}/win32.py +35 -1
- {pyglet-2.0.15/pyglet/canvas → pyglet-2.1.dev2/pyglet/display}/xlib.py +24 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/__init__.py +5 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/base.py +4 -9
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/cocoa.py +6 -12
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/headless.py +5 -12
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/win32.py +8 -16
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/xlib.py +6 -12
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/graphics/vertexbuffer.py +89 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/graphics/vertexdomain.py +4 -3
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gui/frame.py +37 -11
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gui/widgets.py +69 -58
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/info.py +1 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/__init__.py +5 -5
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/base.py +73 -79
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/controller.py +2 -3
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/linux/x11_xinput.py +1 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/win32/directinput.py +7 -4
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/win32/xinput.py +9 -6
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/darwin/cocoapy/cocoalibs.py +6 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/win32/__init__.py +26 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/win32/constants.py +4 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/win32/types.py +17 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/x11/xlib.py +18 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/math.py +221 -247
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/model/__init__.py +93 -11
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/shapes.py +58 -49
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/sprite.py +28 -15
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/__init__.py +30 -34
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/layout/base.py +24 -10
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/layout/incremental.py +4 -2
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/layout/scrolling.py +4 -2
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/__init__.py +40 -7
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/cocoa/__init__.py +30 -4
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/cocoa/pyglet_delegate.py +26 -13
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/headless/__init__.py +1 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/win32/__init__.py +106 -11
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/xlib/__init__.py +13 -35
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/text/test_empty_document.py +1 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/text/test_layout_creation.py +6 -6
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/window/test_context_share.py +4 -2
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/conftest.py +11 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/test_sprite.py +28 -1
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/test_text.py +7 -7
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/gl_info.py +1 -1
- pyglet-2.0.15/doc/internal/doc.rst +0 -146
- pyglet-2.0.15/doc/programming_guide/migration.rst +0 -189
- pyglet-2.0.15/pyglet/__init__.pyi +0 -13
- {pyglet-2.0.15 → pyglet-2.1.dev2}/.coveragerc +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/.github/workflows/codeql.yml +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/.github/workflows/unittests.yml +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/.gitignore +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/.readthedocs.yml +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/LICENSE +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/MANIFEST.in +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/README.md +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/RELEASE_NOTES +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/contrib/aseprite_codec/README +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/contrib/aseprite_codec/asedemo.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/contrib/aseprite_codec/aseprite.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/contrib/aseprite_codec/running.ase +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/contrib/logo3d/logo3d.jpg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/contrib/logo3d/logo3d.obj.zip +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/contrib/logo3d/logo3d.wings +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/contrib/qt_sprite_preview.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/Makefile +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/README.md +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/_static/favicon.ico +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/_static/logo.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/_static/logo5.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/_static/relatedlogo.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/conf.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/external_resources.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/internal/dist.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/internal/generated.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/internal/gl.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/internal/media_logging_manual.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/internal/media_manual.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/internal/testing.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/internal/virtualenv.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/internal/wraptypes-class.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/internal/wraptypes.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/make.bat +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/app.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/canvas.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/clock.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/event.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/font.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/graphics/allocation.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/graphics/index.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/graphics/shader.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/graphics/vertexbuffer.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/graphics/vertexdomain.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/gui.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/image/animation.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/image/atlas.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/image/buffer.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/image/index.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/info.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/input.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/math.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/media.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/media_synthesis.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/pyglet.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/resource.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/shapes.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/sprite.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/text/caret.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/text/document.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/text/index.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/text/layout.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/window.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/window_key.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/modules/window_mouse.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/context.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/debug.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/eventloop.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/events.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/examplegame.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/gl.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/gui.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/image.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/abstract_image.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/abstract_image.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/buffer_image.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/buffer_image.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/context_flow.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/context_flow.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_mac_default.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_mac_no.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_mac_text.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_default.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_hand.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_help.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_no.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_size.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_text.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_wait.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/explosion.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/font_metrics.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/font_metrics.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/image_classes.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/image_classes.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/image_grid.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/image_grid.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/image_sequence.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/image_sequence.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/mouse_coordinates.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/screens.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/screens.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/text_classes.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/text_classes.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/window_location.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/window_location.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/window_osx_borderless.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/window_osx_default.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/window_osx_dialog.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/window_osx_tool.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/window_xp_default.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/window_xp_dialog.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/window_xp_overlay.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/window_xp_tool.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/img/window_xp_transparent.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/installation.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/keyboard.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/math.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/media.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/mouse.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/options.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/quickstart.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/rendering.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/resources.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/shapes.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/text.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/time.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/programming_guide/windowing.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/doc/requirements.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/events/events_key_state_handler.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/events/register_event_type.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/events/window_events.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/events/window_platform_event.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/file_dialog.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/resources/asteroid.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/resources/bullet.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/resources/bullet.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/resources/engine_flame.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/resources/player.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version1/asteroid.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version1/game/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version1/game/load.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version1/game/resources.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version2/asteroid.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version2/game/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version2/game/load.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version2/game/physicalobject.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version2/game/player.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version2/game/resources.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version3/asteroid.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version3/game/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version3/game/load.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version3/game/physicalobject.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version3/game/player.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version3/game/resources.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version3/game/util.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version4/asteroid.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version4/game/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version4/game/asteroid.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version4/game/bullet.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version4/game/load.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version4/game/physicalobject.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version4/game/player.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version4/game/resources.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version4/game/util.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version5/asteroid.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version5/game/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version5/game/asteroid.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version5/game/bullet.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version5/game/load.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version5/game/physicalobject.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version5/game/player.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version5/game/resources.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/game/version5/game/util.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/graphics/image_convert.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/graphics/image_display.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/gui/bar.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/gui/button_hover.png +0 -0
- /pyglet-2.0.15/examples/gui/button_down.png → /pyglet-2.1.dev2/examples/gui/button_pressed.png +0 -0
- /pyglet-2.0.15/examples/gui/button_up.png → /pyglet-2.1.dev2/examples/gui/button_unpressed.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/gui/knob.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/hello_world.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/input/apple_remote.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/input/input.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/input/joystick.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/media_info.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/media_player.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/noisy/README +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/noisy/ball.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/noisy/ball.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/noisy/noisy.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/soundspace/README +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/soundspace/reader.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/soundspace/res/bass.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/soundspace/res/drums.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/soundspace/res/guitar.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/soundspace/res/piano.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/soundspace/res/space.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/synthesizer.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/media/video.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/model/box.mtl +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/model/box.obj +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/model/logo3d.mtl +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/model/logo3d.obj +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/model/pyglet.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/opengl/egl_context.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/opengl/opengl_context.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/opengl/opengl_scissor.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/opengl/pyglet.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/programming_guide/animation.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/programming_guide/dinosaur.gif +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/programming_guide/events.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/programming_guide/image_viewer.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/programming_guide/kitten.jpg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/programming_guide/window_subclass.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/resources/kitten.jpg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/resources/pyglet.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/sprite/depth_sprite.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/sprite/display_sprite.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/sprite/multi_texture_sprite.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/sprite/sprite_batching.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/text/advanced_font.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/text/html_label.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/text/pyglet.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/window/camera.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/window/camera_group.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/window/multiple_windows.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/window/overlay_window.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/examples/window/transparent_window.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/experimental/dist_field/README +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/experimental/dist_field/genfield.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/experimental/dist_field/py.df.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/experimental/dist_field/py.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/experimental/dist_field/renderfield.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/experimental/flaccodec.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/experimental/hello_world.svg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/experimental/svg_test.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/experimental/wayland/gbm_egl_context.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/experimental/win32priority.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/app/cocoa.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/app/win32.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/app/xlib.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/clock.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/customtypes.py +0 -0
- {pyglet-2.0.15/pyglet/canvas → pyglet-2.1.dev2/pyglet/display}/headless.py +0 -0
- {pyglet-2.0.15/pyglet/canvas → pyglet-2.1.dev2/pyglet/display}/xlib_vidmoderestore.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/event.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/experimental/README.md +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/experimental/geoshader_sprite.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/experimental/hidraw.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/experimental/net.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/extlibs/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/extlibs/png.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/font/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/font/base.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/font/directwrite.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/font/fontconfig.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/font/freetype.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/font/freetype_lib.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/font/quartz.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/font/ttf.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/font/user.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/font/win32.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/agl.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/gl.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/gl_compat.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/gl_info.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/glx.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/glx_info.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/glxext_arb.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/glxext_mesa.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/glxext_nv.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/lib.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/lib_agl.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/lib_glx.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/lib_wgl.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/wgl.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/wgl_info.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/wglext_arb.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gl/wglext_nv.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/graphics/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/graphics/allocation.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/graphics/shader.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/graphics/vertexarray.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/gui/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/animation.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/atlas.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/buffer.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/codecs/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/codecs/bmp.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/codecs/dds.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/codecs/gdiplus.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/codecs/gif.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/codecs/pil.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/codecs/png.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/codecs/quartz.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/codecs/s3tc.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/image/codecs/wic.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/controller_db.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/linux/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/linux/evdev.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/linux/evdev_constants.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/macos/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/macos/darwin_hid.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/win32/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/input/win32/wintab.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/lib.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/darwin/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/darwin/coreaudio.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/darwin/quartzkey.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/egl/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/egl/egl.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/egl/eglext.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/egl/lib.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/wayland/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/wayland/gbm.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/wayland/xkbcommon.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/win32/com.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/win32/context_managers.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/win32/dinput.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/win32/libwintab.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/win32/winkey.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/x11/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/x11/cursorfont.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/x11/xf86vmode.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/x11/xinerama.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/x11/xinput.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/libs/x11/xsync.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/buffered_logger.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/base.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/coreaudio.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/ffmpeg.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/ffmpeg_lib/compat.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/gstreamer.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/pyogg.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/wave.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/codecs/wmf.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/devices/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/devices/base.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/devices/win32.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/base.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/directsound/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/directsound/adaptation.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/directsound/exceptions.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/directsound/interface.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/directsound/lib_dsound.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/listener.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/openal/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/openal/adaptation.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/openal/interface.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/openal/lib_alc.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/openal/lib_openal.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/pulse/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/pulse/adaptation.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/pulse/interface.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/silent/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/silent/adaptation.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/xaudio2/adaptation.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/xaudio2/interface.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/exceptions.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/instrumentation.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/player.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/player_worker_thread.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/media/synthesis.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/model/codecs/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/model/codecs/gltf.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/model/codecs/obj.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/resource.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/caret.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/document.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/formats/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/formats/attributed.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/formats/html.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/formats/plaintext.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/formats/structured.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/layout/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/text/runlist.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/util.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/cocoa/pyglet_textview.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/cocoa/pyglet_view.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/cocoa/pyglet_window.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/cocoa/systemcursor.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/event.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/key.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyglet/window/mouse.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pyproject.toml +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/pytest.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/setup.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/annotations.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/base/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/base/data.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/base/event_loop.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/base/interactive.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/base/performance.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/conftest.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/fonts/README +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/fonts/action_man.ttf +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/fonts/action_man_bold.ttf +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/fonts/action_man_italic.ttf +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/8bpp.gif +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/cursor.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/dinosaur.gif +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/gdk_close.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/grey_background.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/icon1.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/icon_size1.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/icon_size2.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/icon_size3.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/icon_size4.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/icon_size5.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/l.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/la.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/multitexture.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgb.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgb_16bpp.bmp +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgb_1bpp.bmp +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgb_24bpp.bmp +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgb_32bpp.bmp +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgb_4bpp.bmp +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgb_8bpp.bmp +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgb_8bpp.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgb_8bpp_trans.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgb_dxt1.dds +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgba.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgba_32bpp.bmp +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgba_dxt1.dds +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgba_dxt3.dds +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/rgba_dxt5.dds +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/README +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/alert.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/login.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/logout.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/receive.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/send.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/models/logo3d.mtl +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/data/models/logo3d.obj +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/app/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/app/test_eventloop.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/font/test_fontconfig.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/font/test_freetype_face.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/graphics/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/graphics/test_allocation.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/graphics/test_batch_migration.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/image/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/image/test_gdkpixbuf2.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/image/test_imagegrid.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/image/test_texture3d.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/media/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/media/mock_player.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/media/test_directsound.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/media/test_driver.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/media/test_openal.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/media/test_player.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/media/test_pulse.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/model/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/model/test_loading.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/platform/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/platform/test_win_context_managers.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/platform/test_win_multicore_clock.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/resource/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/resource/dir1/f2.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/resource/dir1/res.zip +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/resource/dir2/f6.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/resource/f1.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/resource/rgbm.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/resource/test_resource_image_loading.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/resource/test_resource_loading.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/text/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/text/test_label_creation.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/window/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/window/test_event_sequence.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/integration/window/test_window_caption.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/conftest.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/image/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/image/test_image.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/media/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/media/test_player.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/screenshots/committed/README +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/screenshots/session/README +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/shapes/test_shapes.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/test_interactive_test_base.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/text/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/text/test_caret_color.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/text/test_content_valign.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/text/test_html.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/text/test_inline_elements.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/text/test_inline_elements_style_change.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/text/test_multiline_wrap.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/text/test_plain.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/text/test_style.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/window/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/window/test_window_events.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/window/test_window_fullscreen.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/window/test_window_modes.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/window/test_window_multisample.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/window/test_window_open.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/window/test_window_settings.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/window/test_window_styles.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/window/window_util.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/interactive/windowed_test_base.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/requirements.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/media/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/media/test_listener.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/media/test_player.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/media/test_sources.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/media/test_synthesis.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/shapes/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/shapes/conftest.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/shapes/test_shapes.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/test_atlas.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/test_clock.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/test_clock_freq.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/test_events.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/test_font.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/test_input.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/test_math.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/test_resource_path.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/text/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/text/test_caret.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tests/unit/text/test_layout.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/al_info.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/bokeh_timeline.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/compare.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/configure.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/extractors.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/fs.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/mp.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/mpexceptions.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/playmany.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/readme_run_tests.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/report.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/reports.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/retry_crashed.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/run_test_suite.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/summarize.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/test_instrumentation.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/ffmpeg/timeline.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/gencontrollerdb.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/gengl.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/genwrappers.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/gl.template +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/gl.xml +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/inspect_font.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/requirements.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/wgl.h +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/wraptypes/__init__.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/wraptypes/cparser.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/wraptypes/ctypesparser.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/wraptypes/lex.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/wraptypes/preprocessor.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/wraptypes/wrap.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/tools/wraptypes/yacc.py +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/LICENSE.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/README.rst +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/assets/favicon.ico +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/assets/static/css/example-custom-styles.css +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/assets/static/images/pyglet.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/content/404.html/contents.lr +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/content/404.html/ngc-5793.jpg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/content/authors/benjamin/contents.lr +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/content/authors/benjamin/pyglet.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/content/authors/contents.lr +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/content/blog/contents.lr +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/content/blog/welcome-blog/contents.lr +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/content/contents.lr +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/content/eclipse.jpg +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/pyglet.lektorproject +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/AUTHORS.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/CHANGELOG.md +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/LICENSE.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/NOTICE.txt +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/README.md +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/images/blog-index.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/images/full-blog.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/images/full-page.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/images/gallery-404.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/models/404.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/models/author.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/models/authors.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/models/blog-post.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/models/blog.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/models/page.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/models/single-layout.ini +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/404.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/author.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/authors.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/blog-post.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/blog.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/layout.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/none.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/page.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/templates/single-layout.html +0 -0
- {pyglet-2.0.15 → pyglet-2.1.dev2}/website/themes/lektor-icon/theme.ini +0 -0
|
@@ -22,16 +22,19 @@ class Scene:
|
|
|
22
22
|
|
|
23
23
|
# Controller event handlers:
|
|
24
24
|
|
|
25
|
-
def on_dpad_motion(self, controller,
|
|
25
|
+
def on_dpad_motion(self, controller, vector):
|
|
26
26
|
pass
|
|
27
27
|
|
|
28
|
-
def
|
|
28
|
+
def on_stick_motion(self, controller, name, vector):
|
|
29
29
|
pass
|
|
30
30
|
|
|
31
|
-
def
|
|
31
|
+
def on_trigger_motion(self, controller, value):
|
|
32
|
+
pass
|
|
33
|
+
|
|
34
|
+
def on_button_press(self, controller, button):
|
|
32
35
|
pass
|
|
33
36
|
|
|
34
|
-
def
|
|
37
|
+
def on_button_release(self, controller, button):
|
|
35
38
|
pass
|
|
36
39
|
|
|
37
40
|
# Keyboard event handlers:
|
|
@@ -25,9 +25,9 @@ window = pyglet.window.Window(fullscreen='-fs' in sys.argv, config=config)
|
|
|
25
25
|
|
|
26
26
|
class Line:
|
|
27
27
|
batch = pyglet.graphics.Batch()
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
black.
|
|
28
|
+
program = pyglet.shapes.get_default_shader()
|
|
29
|
+
lines = program.vertex_list(100, GL_LINES, batch=batch, colors=('Bn', (255, 255, 255, 255) * 100))
|
|
30
|
+
black = pyglet.shapes.Rectangle(0, 0, window.width, window.height, color=(0, 0, 0, 32), batch=batch)
|
|
31
31
|
unallocated = list(range(100))
|
|
32
32
|
active = []
|
|
33
33
|
|
|
@@ -82,7 +82,7 @@ class Line:
|
|
|
82
82
|
# update line positions
|
|
83
83
|
for n, line in enumerate(cls.active):
|
|
84
84
|
line.update(dt)
|
|
85
|
-
cls.lines.position[n*
|
|
85
|
+
cls.lines.position[n*4:n*4+4] = [line.lx, line.ly, line.x, line.y]
|
|
86
86
|
|
|
87
87
|
|
|
88
88
|
glEnable(GL_BLEND)
|
|
@@ -2,17 +2,18 @@ pyglet Documentation
|
|
|
2
2
|
====================
|
|
3
3
|
|
|
4
4
|
.. ATTENTION::
|
|
5
|
-
This documentation is for the pyglet 2.
|
|
6
|
-
changes from the
|
|
7
|
-
|
|
5
|
+
This documentation is for the pyglet 2.1 series, which has a few small API
|
|
6
|
+
changes from the 2.0 series. Previous documentation can be found at:
|
|
7
|
+
`2.0 maintenance <https://pyglet.readthedocs.io/en/pyglet-2.0-maintenance/>`_.
|
|
8
|
+
Documentation for the 1.5 series, which is the last to support legacy OpenGL,
|
|
9
|
+
can be found here:
|
|
8
10
|
`1.5 maintenance <https://pyglet.readthedocs.io/en/pyglet-1.5-maintenance/>`_.
|
|
9
11
|
|
|
10
|
-
|
|
11
12
|
**pyglet** is a cross-platform windowing and multimedia library for Python,
|
|
12
13
|
intended for developing games and other visually rich applications. It supports
|
|
13
14
|
windowing, user interface event handling, game controllers and joysticks,
|
|
14
15
|
OpenGL graphics, loading images and videos, and playing sounds and music.
|
|
15
|
-
**pyglet** works on Windows,
|
|
16
|
+
**pyglet** works on Windows, macOS and Linux.
|
|
16
17
|
|
|
17
18
|
Some of the features of pyglet are:
|
|
18
19
|
|
|
@@ -74,8 +75,8 @@ If you are migrating from an older version of pyglet, please read through
|
|
|
74
75
|
|
|
75
76
|
modules/pyglet
|
|
76
77
|
modules/app
|
|
77
|
-
modules/canvas
|
|
78
78
|
modules/clock
|
|
79
|
+
modules/display
|
|
79
80
|
modules/event
|
|
80
81
|
modules/font
|
|
81
82
|
modules/gl
|
|
@@ -104,8 +105,8 @@ If you are migrating from an older version of pyglet, please read through
|
|
|
104
105
|
|
|
105
106
|
internal/contributing
|
|
106
107
|
internal/virtualenv
|
|
107
|
-
internal/testing
|
|
108
108
|
internal/doc
|
|
109
|
+
internal/testing
|
|
109
110
|
internal/dist
|
|
110
111
|
internal/gl
|
|
111
112
|
internal/generated
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
Contributing
|
|
2
2
|
============
|
|
3
3
|
|
|
4
|
-
Roadmap
|
|
5
|
-
-------
|
|
6
|
-
|
|
7
|
-
Planned work for future versions can be found in the
|
|
8
|
-
`roadmap <https://github.com/pyglet/pyglet/wiki/Roadmap>`_.
|
|
9
|
-
|
|
10
4
|
Communication
|
|
11
5
|
-------------
|
|
12
6
|
|
|
13
|
-
|
|
7
|
+
pyglet communication occurs mostly in our
|
|
8
|
+
`discord server <https://discord.gg/QXyegWe>`_,
|
|
9
|
+
and
|
|
14
10
|
`mailing list <http://groups.google.com/group/pyglet-users>`_.
|
|
15
11
|
|
|
16
12
|
Issue Tracker
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
============================
|
|
2
|
+
Documentation and Type Hints
|
|
3
|
+
============================
|
|
4
|
+
|
|
5
|
+
The pyglet documentation is written in `reStructuredText`_ (RST), and built with `Sphinx`_.
|
|
6
|
+
If you are not familiar with reStructuredText, it is similar to MarkDown but offers more
|
|
7
|
+
robust functionality for creating technical documentation. This is the default language
|
|
8
|
+
used in Sphinx. Most of the documentation is written in plain ascii text, so you can still
|
|
9
|
+
modify or add to it without needing to know much RST syntax.
|
|
10
|
+
|
|
11
|
+
The documentation can be found as part of the pyglet repository, under the ``doc``
|
|
12
|
+
subfolder. The main index is located at ``pyglet/doc/index.rst``, which includes the
|
|
13
|
+
main landing page, and defines three toctrees:
|
|
14
|
+
|
|
15
|
+
* The programming guide
|
|
16
|
+
* The API docs
|
|
17
|
+
* The development guide
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
programming guide
|
|
21
|
+
-----------------
|
|
22
|
+
The programming guide is made up of many individual `.rst` files, which are located
|
|
23
|
+
in the repository under the ``pyglet/doc/programming_guide/`` folder. All files in this
|
|
24
|
+
folder are also defined in the index.rst, in order to includes them in the build process.
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
API documentation
|
|
28
|
+
-----------------
|
|
29
|
+
The API documentation is generated direclty from the source code docstrings by `autodoc`_,
|
|
30
|
+
a plugin extension that is included with Sphinx. The generation itself is mostly automatic,
|
|
31
|
+
but declaration files are necessary to instruct Sphinx how and which modules and classes
|
|
32
|
+
should be included. Look through the existing files at ``pyglet/doc/modules/`` to get an
|
|
33
|
+
idea of what this looks like.
|
|
34
|
+
|
|
35
|
+
docstring rules
|
|
36
|
+
^^^^^^^^^^^^^^^
|
|
37
|
+
- Google Format with no typing.
|
|
38
|
+
- Docstrings are meant primarily for user or general information, not implementation details.
|
|
39
|
+
- Hash (``#``) comments should be used for developers or contributors when needing to provide information to other developers.
|
|
40
|
+
- Any methods or functions without a docstring will not appear in the API documentation.
|
|
41
|
+
- Documentation will hide private attributes unless otherwise overridden in the rst.
|
|
42
|
+
- Parameter descriptions are not required if straight forward enough, unless a clarification is needed.
|
|
43
|
+
- If you have to add a parameter description, you must add one for each in that function. (None or All)
|
|
44
|
+
- A return description is optional.
|
|
45
|
+
- All classes and functions should have a header with at least a one line succinct description.
|
|
46
|
+
- For class attributes, use ``Attributes:`` in the header. Type hints may be specified, as currently they are not picked up automatically.
|
|
47
|
+
- Required: You will also need to add these ``:exclude-members: <attribute>`` in the rst files manually. Otherwise, autodoc will pick it up twice.
|
|
48
|
+
- Class attributes are generally meant to be used for:
|
|
49
|
+
a. Changing global behavior to the class in some form. (Example: ``Texture.default_mag_filter``)
|
|
50
|
+
b. Simplifying subclassing for users. (Example: group_class for Sprite)
|
|
51
|
+
c. Troubleshooting purposes.
|
|
52
|
+
|
|
53
|
+
- Parameter descriptions should be indented on a new line for clarity.
|
|
54
|
+
- Parameter descriptions can have one line of space between each for clarity.
|
|
55
|
+
- For class instance attributes, these should be documented with a #: <description> comment.
|
|
56
|
+
- For class instance attributes you wish to hide from the docs. Either:
|
|
57
|
+
a. Consider making them private (via ``_name``) if it makes sense.
|
|
58
|
+
b. Mark them with a comment in this format: #: :meta private:
|
|
59
|
+
|
|
60
|
+
typing rules
|
|
61
|
+
^^^^^^^^^^^^
|
|
62
|
+
- Do not put type information in docstrings, rely on annotations.
|
|
63
|
+
- If you are using class annotations, you must have ``from __future__ import annotations`` at the top of the module.
|
|
64
|
+
- When adding annotations, if a class type is not used in the file, it must be imported only within TYPE_CHECKING
|
|
65
|
+
- No need to go overboard, some rules can be set to ignored if there is not yet an adequate way to do it.
|
|
66
|
+
- Return types always need to be specified even if ``None``.
|
|
67
|
+
|
|
68
|
+
example
|
|
69
|
+
^^^^^^^
|
|
70
|
+
|
|
71
|
+
.. code-block:: python
|
|
72
|
+
|
|
73
|
+
class Class1():
|
|
74
|
+
"""Short description of the class
|
|
75
|
+
|
|
76
|
+
This is a good place for a general high level description
|
|
77
|
+
of what the class is, and what it is used for. For example:
|
|
78
|
+
Class1 is used for X and Y, which makes Z possible, etc.
|
|
79
|
+
"""
|
|
80
|
+
|
|
81
|
+
#: This is the default thing.
|
|
82
|
+
some_default_thing = 123
|
|
83
|
+
|
|
84
|
+
#: :meta private:
|
|
85
|
+
dont_show_me = 456
|
|
86
|
+
|
|
87
|
+
def __init__(self, name: str, size: float):
|
|
88
|
+
"""Constructor description
|
|
89
|
+
|
|
90
|
+
Here is where you can describe how to make an instance of the
|
|
91
|
+
class. If any of the arguments need further explaination, that
|
|
92
|
+
detail can be added as necessary. For example:
|
|
93
|
+
You must provide a name and a size, etc. etc.
|
|
94
|
+
|
|
95
|
+
Args:
|
|
96
|
+
name: The name of this object.
|
|
97
|
+
size: The size, in centimeters.
|
|
98
|
+
"""
|
|
99
|
+
self.name = name
|
|
100
|
+
self.size = size
|
|
101
|
+
|
|
102
|
+
self.some_attribute: int = None
|
|
103
|
+
|
|
104
|
+
def set_size(self, centimeters: float) -> None:
|
|
105
|
+
"""Simple description + type hints are enough."""
|
|
106
|
+
self.size = centimeters
|
|
107
|
+
|
|
108
|
+
def calculate_scaled_size(self, scale: float) -> float:
|
|
109
|
+
"""Detailed method description
|
|
110
|
+
|
|
111
|
+
You can add more details here.
|
|
112
|
+
|
|
113
|
+
Args:
|
|
114
|
+
scale: The argument description.
|
|
115
|
+
|
|
116
|
+
Returns:
|
|
117
|
+
Describe what is being returned, if not already clear.
|
|
118
|
+
"""
|
|
119
|
+
# This is a developer comment, which is not intended for end users to
|
|
120
|
+
# see. These can be used to explain to future developers why something
|
|
121
|
+
# is implemented a certain way, or any other developer focused notes, etc.
|
|
122
|
+
return self.size * scale
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def function_with_pep484_type_annotations(param1: int, param2: str) -> bool:
|
|
126
|
+
"""Example function with PEP 484 type annotations.
|
|
127
|
+
|
|
128
|
+
Args:
|
|
129
|
+
param1: The first parameter.
|
|
130
|
+
param2: The second parameter.
|
|
131
|
+
|
|
132
|
+
Returns:
|
|
133
|
+
When necessary, you can describe the return value in
|
|
134
|
+
more detail. This can be skipped if it's obvious from
|
|
135
|
+
the return type hint.
|
|
136
|
+
"""
|
|
137
|
+
...
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
Developer reference
|
|
141
|
+
-------------------
|
|
142
|
+
Developer focused documentation is located in the ``pyglet/doc/internal/`` folder.
|
|
143
|
+
This contains various pages about tools that are used with developing pyglet, the
|
|
144
|
+
documentation page that you're reading now, information on unit tests, etc. These
|
|
145
|
+
pages are useful for anyone who wants to contribute.
|
|
146
|
+
|
|
147
|
+
building
|
|
148
|
+
^^^^^^^^
|
|
149
|
+
Building the documentation locally requires a few dependencies. See :doc:`virtualenv`
|
|
150
|
+
for more information on how to install them. Once you have Sphinx and it's dependencies
|
|
151
|
+
installed, you can proceed with the build. The first way to build is by using pyglet's
|
|
152
|
+
included `make.py` utility. This is found in the root of the repository. Execute::
|
|
153
|
+
|
|
154
|
+
./make.py docs --open
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
If the build succeeds, the generated static web pages will be in ``doc/_build/html``.
|
|
158
|
+
|
|
159
|
+
You can also build the standalone way to build docs is through
|
|
160
|
+
``setup.py`` or ``make``.
|
|
161
|
+
|
|
162
|
+
.. code:: bash
|
|
163
|
+
|
|
164
|
+
# using setup.py (output dir: _build in project root)
|
|
165
|
+
python setup.py build_sphinx
|
|
166
|
+
|
|
167
|
+
# make (make.bat for windows)
|
|
168
|
+
cd doc
|
|
169
|
+
make html
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
details
|
|
173
|
+
^^^^^^^
|
|
174
|
+
|
|
175
|
+
.. include:: build.rst
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
.. _Sphinx: https://sphinx-doc.org
|
|
179
|
+
|
|
180
|
+
.. _reStructuredText: https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html
|
|
181
|
+
|
|
182
|
+
.. _autodoc: https://www.sphinx-doc.org/en/master/usage/extensions/autodoc.html
|
|
@@ -112,6 +112,14 @@ following analog controls are available:
|
|
|
112
112
|
- float
|
|
113
113
|
- -1~1
|
|
114
114
|
|
|
115
|
+
* - dpadx
|
|
116
|
+
- float
|
|
117
|
+
- -1~1
|
|
118
|
+
|
|
119
|
+
* - dpady
|
|
120
|
+
- float
|
|
121
|
+
- -1~1
|
|
122
|
+
|
|
115
123
|
* - lefttrigger
|
|
116
124
|
- float
|
|
117
125
|
- 0~1
|
|
@@ -149,14 +157,7 @@ The following digital controls are available:
|
|
|
149
157
|
- pressing in on the left analog stick
|
|
150
158
|
* - rightstick
|
|
151
159
|
- pressing in on the right analog stick
|
|
152
|
-
|
|
153
|
-
-
|
|
154
|
-
* - dpright
|
|
155
|
-
-
|
|
156
|
-
* - dpup
|
|
157
|
-
-
|
|
158
|
-
* - dpdown
|
|
159
|
-
-
|
|
160
|
+
|
|
160
161
|
|
|
161
162
|
These values can be read in two ways. First, you can just query them manually
|
|
162
163
|
in your game loop. All control names listed above are properties on the
|
|
@@ -191,27 +192,27 @@ event types:
|
|
|
191
192
|
- :py:class:`~pyglet.input.Controller`, `str`
|
|
192
193
|
|
|
193
194
|
* - on_stick_motion
|
|
194
|
-
- controller, stick_name,
|
|
195
|
-
- :py:class:`~pyglet.input.Controller`, `str`, `
|
|
195
|
+
- controller, stick_name, vector
|
|
196
|
+
- :py:class:`~pyglet.input.Controller`, `str`, :py:class:`~pyglet.math.Vec2`
|
|
196
197
|
|
|
197
198
|
* - on_dpad_motion
|
|
198
199
|
- controller, left, right, up, down
|
|
199
|
-
- :py:class:`~pyglet.input.Controller`, `
|
|
200
|
+
- :py:class:`~pyglet.input.Controller`, :py:class:`~pyglet.math.Vec2`
|
|
200
201
|
|
|
201
202
|
* - on_trigger_motion
|
|
202
203
|
- controller, trigger_name, value
|
|
203
204
|
- :py:class:`~pyglet.input.Controller`, `str`, `float`
|
|
204
205
|
|
|
205
206
|
|
|
206
|
-
Analog events can be handled like this::
|
|
207
|
+
Analog (and Dpad) events can be handled like this::
|
|
207
208
|
|
|
208
209
|
@controller.event
|
|
209
|
-
def on_stick_motion(controller, name,
|
|
210
|
+
def on_stick_motion(controller, name, vector):
|
|
210
211
|
|
|
211
212
|
if name == "leftstick":
|
|
212
|
-
# Do something with the
|
|
213
|
+
# Do something with the 2D vector
|
|
213
214
|
elif name == "rightstick":
|
|
214
|
-
# Do something with the
|
|
215
|
+
# Do something with the 2D vector
|
|
215
216
|
|
|
216
217
|
@controller.event
|
|
217
218
|
def on_trigger_motion(controller, name, value):
|
|
@@ -221,6 +222,10 @@ Analog events can be handled like this::
|
|
|
221
222
|
elif name == "righttrigger":
|
|
222
223
|
# Do something with the value
|
|
223
224
|
|
|
225
|
+
@controller.event
|
|
226
|
+
def on_dpad_motion(controller, vector):
|
|
227
|
+
# Do something with the 2D vector
|
|
228
|
+
|
|
224
229
|
Digital events can be handled like this::
|
|
225
230
|
|
|
226
231
|
@controller.event
|
|
@@ -238,18 +243,6 @@ Digital events can be handled like this::
|
|
|
238
243
|
elif button_name == 'b':
|
|
239
244
|
# do something else
|
|
240
245
|
|
|
241
|
-
Finally, the directional pad event can be handled like this::
|
|
242
|
-
|
|
243
|
-
@controller.event
|
|
244
|
-
def on_dpad_motion(controller, dpleft, dpright, dpup, dpdown):
|
|
245
|
-
if dpup:
|
|
246
|
-
# move up
|
|
247
|
-
if dpdown:
|
|
248
|
-
# move down
|
|
249
|
-
if dpleft:
|
|
250
|
-
# move left
|
|
251
|
-
if dpright:
|
|
252
|
-
# move right
|
|
253
246
|
|
|
254
247
|
Rumble
|
|
255
248
|
^^^^^^
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
.. _migration:
|
|
2
|
+
|
|
3
|
+
Migrating from pyglet 2.0
|
|
4
|
+
=========================
|
|
5
|
+
pyglet 2.1 contains several small, but breaking changes. Some of these are
|
|
6
|
+
usibility improvements, and some are in the interest of improving the quality
|
|
7
|
+
of the code base. If you are upgrading from pyglet 2.0 and your game or project
|
|
8
|
+
has suddenly stopped working, this is the place for you. The following sections
|
|
9
|
+
should hopefully get you up and running again without too much effort. If you
|
|
10
|
+
are having an issue that is not covered here, please open up an issue ticket on
|
|
11
|
+
`Github <https://github.com/pyglet/pyglet/issues>`_ so that we can add it.
|
|
12
|
+
|
|
13
|
+
Window "HiDPI" support
|
|
14
|
+
----------------------
|
|
15
|
+
TBD
|
|
16
|
+
|
|
17
|
+
Labels & Text Layouts
|
|
18
|
+
---------------------
|
|
19
|
+
The positional argument order for text Labels and Layouts was not consistent
|
|
20
|
+
in previous pyglet releases. This has been refactored to make things more
|
|
21
|
+
consistent, with the goal of making it easier to switch between Layouts or
|
|
22
|
+
create custom subclasses. All layouts now start with the same positional
|
|
23
|
+
argument ordering::
|
|
24
|
+
|
|
25
|
+
TextLayout(document, x, y, z, width, height, anchor_x, anchor_y, rotation, ...)
|
|
26
|
+
ScrollableTextLayout(document, x, y, z, width, height, anchor_x, anchor_y, rotation, ...)
|
|
27
|
+
IncrementalTextLayout(document, x, y, z, width, height, anchor_x, anchor_y, rotation, ...)
|
|
28
|
+
|
|
29
|
+
The Label classes also follow a similar default argument ordering, with one
|
|
30
|
+
small exception: Label and HTMLLabel take "text" as the first argument instead
|
|
31
|
+
of "document". Other than that, the rest of the positional arguments line up::
|
|
32
|
+
|
|
33
|
+
DocumentLabel(document, x, y, z, width, height, anchor_x, anchor_y, rotation, ...)
|
|
34
|
+
Label(text, x, y, z, width, height, anchor_x, anchor_y, rotation, ...)
|
|
35
|
+
HTMLLabel(text, x, y, z, width, height, anchor_x, anchor_y, rotation, ...)
|
|
36
|
+
|
|
37
|
+
The layouts and lables don't share all of the same argument, so the rest of the
|
|
38
|
+
arguments will need to be provided as usual, where they differ. Please see the
|
|
39
|
+
API documents for full details.
|
|
40
|
+
|
|
41
|
+
Shapes
|
|
42
|
+
------
|
|
43
|
+
For consistency with the rest of the library, it was decided to represent
|
|
44
|
+
all angles in degrees instead of radians. Previously we had a mix of both,
|
|
45
|
+
which lead to some confusion. Using degrees also makes the API consistent
|
|
46
|
+
with Sprites and other rotatable objects.
|
|
47
|
+
|
|
48
|
+
The arguments for :py:class:`~pyglet.shapes.Line` have changed slightly.
|
|
49
|
+
Instead of "width", we now use "thickness". This matches with other shapes
|
|
50
|
+
that are made up of line segments. For example the :py:class:`~pyglet.shapes.Box`
|
|
51
|
+
shape, which already uses "width" (and height) to mean it's overall size.
|
|
52
|
+
Going forward, any shape that is made up of lines should use `thickness`
|
|
53
|
+
for the width of those lines.
|
|
54
|
+
|
|
55
|
+
Controllers
|
|
56
|
+
-----------
|
|
57
|
+
The Controller interface has been changed slightly. Analog sticks and dpad
|
|
58
|
+
events now dispatch :py:class:`~pyglet.math.Vec2`, instead of individual float
|
|
59
|
+
or boolean values. This can potentially save a few lines of code, and gives
|
|
60
|
+
easy access to several helper methods found on the Vec classes. For instance,
|
|
61
|
+
where you had to do this in the past::
|
|
62
|
+
|
|
63
|
+
@controller.event
|
|
64
|
+
def on_dpad_motion(controller, dpleft, dpright, dpup, dpdown):
|
|
65
|
+
if dpleft:
|
|
66
|
+
# move left
|
|
67
|
+
if dpright:
|
|
68
|
+
# move right
|
|
69
|
+
if dpright and dpdown:
|
|
70
|
+
# move diagonal, but have to normalize the values by yourself
|
|
71
|
+
|
|
72
|
+
You now get a Vec2 instead of booleans that can be used directly::
|
|
73
|
+
|
|
74
|
+
@controller.event
|
|
75
|
+
def on_dpad_motion(controller, vector):
|
|
76
|
+
player_position += vector * PLAYER_SPEED
|
|
77
|
+
# Easily normalize for diagonal values:
|
|
78
|
+
player_position += vector.normalize() * PLAYER_SPEED
|
|
79
|
+
|
|
80
|
+
Vectors can also be useful for analog sticks, because it gives an easy way to
|
|
81
|
+
calculate dead-zones using `abs`. For example::
|
|
82
|
+
|
|
83
|
+
@controller.event
|
|
84
|
+
def on_stick_motion(controller, name, vector):
|
|
85
|
+
if abs(vector) <= DEADZONE:
|
|
86
|
+
return
|
|
87
|
+
elif name == "leftstick":
|
|
88
|
+
# Do something with the 2D vector
|
|
89
|
+
elif name == "rightstick":
|
|
90
|
+
# Do something with the 2D vector
|
|
91
|
+
|
|
92
|
+
Normalization of vectors can also be useful for some analog sticks. When dealing
|
|
93
|
+
with Controllers that have non-circular gates, the The absolute values of their
|
|
94
|
+
combined x and y axis can sometimes exceed 1.0. Vector normalization can ensure
|
|
95
|
+
that the maximum value stays within range. For example::
|
|
96
|
+
|
|
97
|
+
vector = min(vector, vector.normalize())
|
|
98
|
+
|
|
99
|
+
You can also of course directly access the individual `Vec2.x` & `Vec2.y`
|
|
100
|
+
attributes. See :py:class:`~pyglet.math.Vec2` for more details on vector types.
|
|
101
|
+
|
|
102
|
+
Gui
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
All widget events now dispatch the widget instance itself as the first argument.
|
|
106
|
+
This is similar to how Controller/Joystick events are implemented. In cases where
|
|
107
|
+
the same handler function is set to multiple widgets, this gives a way to determine
|
|
108
|
+
which widget has dispatched the event.
|
|
109
|
+
|
|
110
|
+
The :py:class:`~pyglet.gui.widget.ToggleButton` and :py:class:`~pyglet.gui.widget.PushButton`
|
|
111
|
+
widgets have a small change. Instead of the image arguments being named "pressed"
|
|
112
|
+
and "depressed", they has been renamed to the correct "pressed" and "unpressed".
|
|
113
|
+
|
|
114
|
+
Math module
|
|
115
|
+
-----------
|
|
116
|
+
In the :py:mod:`~pyglet.math` module, vector types (:py:class:`~pyglet.math.Vec2`,
|
|
117
|
+
:py:class:`~pyglet.math.Vec3`, :py:class:`~pyglet.math.Vec4`) are now
|
|
118
|
+
immutable; all operations will return a new object. In addition, all vector
|
|
119
|
+
objects are now hashable. This has performance benefits, and matches how the Matrix
|
|
120
|
+
types are implemented. For all intents and purposes, the Vec types can be treated
|
|
121
|
+
as tuples.
|
|
122
|
+
|
|
123
|
+
Canvas module
|
|
124
|
+
-------------
|
|
125
|
+
The `pyglet.canvas` module has been renamed to `pyglet.display`, as the canvas
|
|
126
|
+
concept was never fully fleshed out. The canvas concept appears to have been
|
|
127
|
+
meant to allow arbitrary renderable areas. This can now be easily accomplished
|
|
128
|
+
with Framebuffers. The name `display` is a more accurate representation of what
|
|
129
|
+
the code in the module actually relates to. The usage is the same, minus the
|
|
130
|
+
name change::
|
|
131
|
+
|
|
132
|
+
my_display = pyglet.canvas.get_display() # old pyglet 2.0
|
|
133
|
+
my_display = pyglet.display.get_display() # new pyglet 2.1
|
|
134
|
+
|
|
@@ -3,9 +3,9 @@ import pyglet
|
|
|
3
3
|
"""Simple example demonstrating how to get the text in the clipboard as well as putting text in the clipboard."""
|
|
4
4
|
|
|
5
5
|
window = pyglet.window.Window()
|
|
6
|
-
|
|
7
6
|
print("Existing Clipboard Text:", window.get_clipboard_text())
|
|
8
7
|
|
|
8
|
+
|
|
9
9
|
@window.event
|
|
10
10
|
def on_key_press(symbol, modifiers):
|
|
11
11
|
print("Clipboard changed to: Hello World!")
|
|
@@ -15,4 +15,9 @@ def on_key_press(symbol, modifiers):
|
|
|
15
15
|
print("Clipboard Text:", window.get_clipboard_text())
|
|
16
16
|
|
|
17
17
|
|
|
18
|
+
@window.event
|
|
19
|
+
def on_draw():
|
|
20
|
+
window.clear()
|
|
21
|
+
|
|
22
|
+
|
|
18
23
|
pyglet.app.run()
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import pyglet
|
|
2
|
+
pyglet.options["scale_with_dpi"] = True
|
|
3
|
+
pyglet.options["debug_gl"] = False
|
|
4
|
+
|
|
5
|
+
window = pyglet.window.Window(800, 600, caption="DPI Test", resizable=True)
|
|
6
|
+
|
|
7
|
+
print(window.dpi, window.scale)
|
|
8
|
+
|
|
9
|
+
label = pyglet.text.Label('Hello, world',
|
|
10
|
+
font_name='Times New Roman',
|
|
11
|
+
font_size=36,
|
|
12
|
+
x=window.width//2, y=window.height//2,
|
|
13
|
+
anchor_x='center', anchor_y='center'
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
dinosaur = pyglet.resource.animation("programming_guide/dinosaur.gif")
|
|
17
|
+
|
|
18
|
+
sprite = pyglet.sprite.Sprite(dinosaur, x=100, y=100)
|
|
19
|
+
|
|
20
|
+
@window.event
|
|
21
|
+
def on_draw():
|
|
22
|
+
window.clear()
|
|
23
|
+
sprite.draw()
|
|
24
|
+
label.draw()
|
|
25
|
+
|
|
26
|
+
@window.event
|
|
27
|
+
def on_mouse_press(x, y, button, modifier):
|
|
28
|
+
print("Window Size:", window.get_size())
|
|
29
|
+
print("Scaled Click:", x, y)
|
|
30
|
+
|
|
31
|
+
@window.event
|
|
32
|
+
def on_resize(width, height):
|
|
33
|
+
window.on_resize(width, height)
|
|
34
|
+
print("RESIZED", width, height)
|
|
35
|
+
|
|
36
|
+
@window.event
|
|
37
|
+
def on_scale(scale, dpi):
|
|
38
|
+
print("SCALE_X", scale, dpi)
|
|
39
|
+
print("Window Size:", window.get_size())
|
|
40
|
+
print("Window Pixel Ratio:", window.get_pixel_ratio())
|
|
41
|
+
print("Window Frame Buffer Size:", window.get_framebuffer_size())
|
|
42
|
+
|
|
43
|
+
pyglet.app.run()
|
|
@@ -15,8 +15,8 @@ def on_draw():
|
|
|
15
15
|
# load resources to use for Widgets:
|
|
16
16
|
####################################
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
pressed = pyglet.resource.image('
|
|
18
|
+
unpressed = pyglet.resource.image('button_unpressed.png')
|
|
19
|
+
pressed = pyglet.resource.image('button_pressed.png')
|
|
20
20
|
hover = pyglet.resource.image('button_hover.png')
|
|
21
21
|
bar = pyglet.resource.image('bar.png')
|
|
22
22
|
knob = pyglet.resource.image('knob.png')
|
|
@@ -26,23 +26,23 @@ knob = pyglet.resource.image('knob.png')
|
|
|
26
26
|
# Create some event handler functions:
|
|
27
27
|
######################################
|
|
28
28
|
|
|
29
|
-
def slider_handler(value):
|
|
29
|
+
def slider_handler(widget, value):
|
|
30
30
|
slider_label.text = f"Slider Value: {round(value, 1)}"
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
def toggle_button_handler(value):
|
|
33
|
+
def toggle_button_handler(widget, value):
|
|
34
34
|
toggle_label.text = f"Toggle Button: {value}"
|
|
35
35
|
|
|
36
36
|
|
|
37
|
-
def push_button_handler():
|
|
37
|
+
def push_button_handler(widget):
|
|
38
38
|
push_label.text = f"Push Button: True"
|
|
39
39
|
|
|
40
40
|
|
|
41
|
-
def release_button_handler():
|
|
41
|
+
def release_button_handler(widget):
|
|
42
42
|
push_label.text = f"Push Button: False"
|
|
43
43
|
|
|
44
44
|
|
|
45
|
-
def text_entry_handler(text):
|
|
45
|
+
def text_entry_handler(widget, text):
|
|
46
46
|
text_entry_label.text = f"Text: {text}"
|
|
47
47
|
|
|
48
48
|
|
|
@@ -55,13 +55,13 @@ def text_entry_handler(text):
|
|
|
55
55
|
frame = pyglet.gui.Frame(window, order=4)
|
|
56
56
|
|
|
57
57
|
|
|
58
|
-
togglebutton = pyglet.gui.ToggleButton(100, 400, pressed=pressed,
|
|
58
|
+
togglebutton = pyglet.gui.ToggleButton(100, 400, pressed=pressed, unpressed=unpressed, hover=hover, batch=batch)
|
|
59
59
|
togglebutton.set_handler('on_toggle', toggle_button_handler)
|
|
60
60
|
frame.add_widget(togglebutton)
|
|
61
61
|
toggle_label = pyglet.text.Label("Toggle Button: False", x=300, y=400, batch=batch, color=(0, 0, 0, 255))
|
|
62
62
|
|
|
63
63
|
|
|
64
|
-
pushbutton = pyglet.gui.PushButton(100, 300, pressed=pressed,
|
|
64
|
+
pushbutton = pyglet.gui.PushButton(100, 300, pressed=pressed, unpressed=unpressed, hover=hover, batch=batch)
|
|
65
65
|
pushbutton.set_handler('on_press', push_button_handler)
|
|
66
66
|
pushbutton.set_handler('on_release', release_button_handler)
|
|
67
67
|
frame.add_widget(pushbutton)
|