pyglet 2.1.9__tar.gz → 2.1.10__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.
Files changed (821) hide show
  1. {pyglet-2.1.9 → pyglet-2.1.10}/.github/workflows/unittests.yml +3 -3
  2. {pyglet-2.1.9 → pyglet-2.1.10}/PKG-INFO +1 -1
  3. {pyglet-2.1.9 → pyglet-2.1.10}/RELEASE_NOTES +16 -0
  4. {pyglet-2.1.9 → pyglet-2.1.10}/examples/dpi_scaled_window.py +5 -9
  5. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/__init__.py +3 -3
  6. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/app/cocoa.py +2 -0
  7. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/shader.py +1 -1
  8. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/linux/evdev.py +13 -12
  9. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/base.py +23 -32
  10. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg.py +16 -20
  11. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/compat.py +1 -0
  12. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +20 -16
  13. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +6 -6
  14. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +22 -7
  15. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +2 -2
  16. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +2 -2
  17. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/__init__.py +2 -2
  18. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/document.py +2 -2
  19. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/layout/base.py +12 -9
  20. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/__init__.py +3 -2
  21. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/cocoa/__init__.py +9 -9
  22. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/headless/__init__.py +1 -1
  23. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/win32/__init__.py +1 -1
  24. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/xlib/__init__.py +1 -1
  25. pyglet-2.1.10/tests/interactive/text/test_layout_anchoring.py +173 -0
  26. {pyglet-2.1.9 → pyglet-2.1.10}/.coveragerc +0 -0
  27. {pyglet-2.1.9 → pyglet-2.1.10}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  28. {pyglet-2.1.9 → pyglet-2.1.10}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  29. {pyglet-2.1.9 → pyglet-2.1.10}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
  30. {pyglet-2.1.9 → pyglet-2.1.10}/.github/workflows/codeql.yml +0 -0
  31. {pyglet-2.1.9 → pyglet-2.1.10}/.gitignore +0 -0
  32. {pyglet-2.1.9 → pyglet-2.1.10}/.readthedocs.yml +0 -0
  33. {pyglet-2.1.9 → pyglet-2.1.10}/LICENSE +0 -0
  34. {pyglet-2.1.9 → pyglet-2.1.10}/MANIFEST.in +0 -0
  35. {pyglet-2.1.9 → pyglet-2.1.10}/README.md +0 -0
  36. {pyglet-2.1.9 → pyglet-2.1.10}/contrib/aseprite_codec/README +0 -0
  37. {pyglet-2.1.9 → pyglet-2.1.10}/contrib/aseprite_codec/asedemo.py +0 -0
  38. {pyglet-2.1.9 → pyglet-2.1.10}/contrib/aseprite_codec/aseprite.py +0 -0
  39. {pyglet-2.1.9 → pyglet-2.1.10}/contrib/aseprite_codec/running.ase +0 -0
  40. {pyglet-2.1.9 → pyglet-2.1.10}/contrib/logo3d/logo3d.jpg +0 -0
  41. {pyglet-2.1.9 → pyglet-2.1.10}/contrib/logo3d/logo3d.obj.zip +0 -0
  42. {pyglet-2.1.9 → pyglet-2.1.10}/contrib/logo3d/logo3d.wings +0 -0
  43. {pyglet-2.1.9 → pyglet-2.1.10}/contrib/qt_sprite_preview.py +0 -0
  44. {pyglet-2.1.9 → pyglet-2.1.10}/contrib/scenemanager.py +0 -0
  45. {pyglet-2.1.9 → pyglet-2.1.10}/contrib/toys/follow_mouse.py +0 -0
  46. {pyglet-2.1.9 → pyglet-2.1.10}/doc/Makefile +0 -0
  47. {pyglet-2.1.9 → pyglet-2.1.10}/doc/_static/css/custom.css +0 -0
  48. {pyglet-2.1.9 → pyglet-2.1.10}/doc/_static/favicon.ico +0 -0
  49. {pyglet-2.1.9 → pyglet-2.1.10}/doc/_static/logo.png +0 -0
  50. {pyglet-2.1.9 → pyglet-2.1.10}/doc/_static/logo5.svg +0 -0
  51. {pyglet-2.1.9 → pyglet-2.1.10}/doc/_static/relatedlogo.png +0 -0
  52. {pyglet-2.1.9 → pyglet-2.1.10}/doc/conf.py +0 -0
  53. {pyglet-2.1.9 → pyglet-2.1.10}/doc/external_resources.rst +0 -0
  54. {pyglet-2.1.9 → pyglet-2.1.10}/doc/index.rst +0 -0
  55. {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/contributing.rst +0 -0
  56. {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/dist.rst +0 -0
  57. {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/doc.rst +0 -0
  58. {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/generated.rst +0 -0
  59. {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/gl.rst +0 -0
  60. {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/media_logging_manual.rst +0 -0
  61. {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/media_manual.rst +0 -0
  62. {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/testing.rst +0 -0
  63. {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/virtualenv.rst +0 -0
  64. {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/wraptypes-class.svg +0 -0
  65. {pyglet-2.1.9 → pyglet-2.1.10}/doc/internal/wraptypes.rst +0 -0
  66. {pyglet-2.1.9 → pyglet-2.1.10}/doc/make.bat +0 -0
  67. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/app.rst +0 -0
  68. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/clock.rst +0 -0
  69. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/customtypes.rst +0 -0
  70. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/display.rst +0 -0
  71. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/event.rst +0 -0
  72. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/font.rst +0 -0
  73. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/gl.rst +0 -0
  74. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/graphics/allocation.rst +0 -0
  75. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/graphics/index.rst +0 -0
  76. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/graphics/shader.rst +0 -0
  77. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/graphics/vertexbuffer.rst +0 -0
  78. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/graphics/vertexdomain.rst +0 -0
  79. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/gui.rst +0 -0
  80. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/image/animation.rst +0 -0
  81. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/image/atlas.rst +0 -0
  82. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/image/buffer.rst +0 -0
  83. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/image/index.rst +0 -0
  84. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/info.rst +0 -0
  85. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/input.rst +0 -0
  86. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/math.rst +0 -0
  87. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/media.rst +0 -0
  88. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/media_synthesis.rst +0 -0
  89. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/models.rst +0 -0
  90. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/pyglet.rst +0 -0
  91. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/resource.rst +0 -0
  92. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/shapes.rst +0 -0
  93. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/sprite.rst +0 -0
  94. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/text/caret.rst +0 -0
  95. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/text/document.rst +0 -0
  96. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/text/index.rst +0 -0
  97. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/text/layout.rst +0 -0
  98. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/window.rst +0 -0
  99. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/window_key.rst +0 -0
  100. {pyglet-2.1.9 → pyglet-2.1.10}/doc/modules/window_mouse.rst +0 -0
  101. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/context.rst +0 -0
  102. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/debug.rst +0 -0
  103. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/eventloop.rst +0 -0
  104. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/events.rst +0 -0
  105. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/examplegame.rst +0 -0
  106. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/gl.rst +0 -0
  107. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/gui.rst +0 -0
  108. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/image.rst +0 -0
  109. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/abstract_image.png +0 -0
  110. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/abstract_image.svg +0 -0
  111. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/buffer_image.png +0 -0
  112. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/buffer_image.svg +0 -0
  113. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/context_flow.png +0 -0
  114. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/context_flow.svg +0 -0
  115. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
  116. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_default.png +0 -0
  117. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
  118. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_no.png +0 -0
  119. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
  120. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
  121. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
  122. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
  123. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
  124. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
  125. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_text.png +0 -0
  126. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
  127. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
  128. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_default.png +0 -0
  129. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_hand.png +0 -0
  130. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_help.png +0 -0
  131. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_no.png +0 -0
  132. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_size.png +0 -0
  133. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
  134. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
  135. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
  136. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
  137. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_text.png +0 -0
  138. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_wait.png +0 -0
  139. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
  140. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/explosion.png +0 -0
  141. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/font_metrics.png +0 -0
  142. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/font_metrics.svg +0 -0
  143. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/image_classes.png +0 -0
  144. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/image_classes.svg +0 -0
  145. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/image_grid.png +0 -0
  146. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/image_grid.svg +0 -0
  147. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/image_sequence.png +0 -0
  148. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/image_sequence.svg +0 -0
  149. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/mouse_coordinates.png +0 -0
  150. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
  151. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/screens.png +0 -0
  152. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/screens.svg +0 -0
  153. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/text_classes.png +0 -0
  154. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/text_classes.svg +0 -0
  155. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_location.png +0 -0
  156. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_location.svg +0 -0
  157. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_osx_borderless.png +0 -0
  158. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_osx_default.png +0 -0
  159. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_osx_dialog.png +0 -0
  160. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_osx_tool.png +0 -0
  161. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_xp_default.png +0 -0
  162. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_xp_dialog.png +0 -0
  163. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_xp_overlay.png +0 -0
  164. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_xp_tool.png +0 -0
  165. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/img/window_xp_transparent.png +0 -0
  166. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/input.rst +0 -0
  167. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/installation.rst +0 -0
  168. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/keyboard.rst +0 -0
  169. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/math.rst +0 -0
  170. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/media.rst +0 -0
  171. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/migration.rst +0 -0
  172. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/models.rst +0 -0
  173. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/mouse.rst +0 -0
  174. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/opengles.rst +0 -0
  175. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/options.rst +0 -0
  176. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/quickstart.rst +0 -0
  177. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/rendering.rst +0 -0
  178. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/resources.rst +0 -0
  179. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/shapes.rst +0 -0
  180. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/text.rst +0 -0
  181. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/time.rst +0 -0
  182. {pyglet-2.1.9 → pyglet-2.1.10}/doc/programming_guide/windowing.rst +0 -0
  183. {pyglet-2.1.9 → pyglet-2.1.10}/doc/requirements.txt +0 -0
  184. {pyglet-2.1.9 → pyglet-2.1.10}/examples/clipboard.py +0 -0
  185. {pyglet-2.1.9 → pyglet-2.1.10}/examples/events/events_key_state_handler.py +0 -0
  186. {pyglet-2.1.9 → pyglet-2.1.10}/examples/events/register_event_type.py +0 -0
  187. {pyglet-2.1.9 → pyglet-2.1.10}/examples/events/window_events.py +0 -0
  188. {pyglet-2.1.9 → pyglet-2.1.10}/examples/events/window_platform_event.py +0 -0
  189. {pyglet-2.1.9 → pyglet-2.1.10}/examples/file_dialog.py +0 -0
  190. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/resources/asteroid.png +0 -0
  191. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/resources/bullet.png +0 -0
  192. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/resources/bullet.wav +0 -0
  193. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/resources/engine_flame.png +0 -0
  194. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/resources/player.png +0 -0
  195. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version1/asteroid.py +0 -0
  196. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version1/game/__init__.py +0 -0
  197. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version1/game/load.py +0 -0
  198. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version1/game/resources.py +0 -0
  199. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version2/asteroid.py +0 -0
  200. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version2/game/__init__.py +0 -0
  201. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version2/game/load.py +0 -0
  202. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version2/game/physicalobject.py +0 -0
  203. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version2/game/player.py +0 -0
  204. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version2/game/resources.py +0 -0
  205. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/asteroid.py +0 -0
  206. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/game/__init__.py +0 -0
  207. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/game/load.py +0 -0
  208. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/game/physicalobject.py +0 -0
  209. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/game/player.py +0 -0
  210. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/game/resources.py +0 -0
  211. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version3/game/util.py +0 -0
  212. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/asteroid.py +0 -0
  213. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/__init__.py +0 -0
  214. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/asteroid.py +0 -0
  215. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/bullet.py +0 -0
  216. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/load.py +0 -0
  217. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/physicalobject.py +0 -0
  218. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/player.py +0 -0
  219. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/resources.py +0 -0
  220. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version4/game/util.py +0 -0
  221. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/asteroid.py +0 -0
  222. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/__init__.py +0 -0
  223. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/asteroid.py +0 -0
  224. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/bullet.py +0 -0
  225. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/load.py +0 -0
  226. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/physicalobject.py +0 -0
  227. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/player.py +0 -0
  228. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/resources.py +0 -0
  229. {pyglet-2.1.9 → pyglet-2.1.10}/examples/game/version5/game/util.py +0 -0
  230. {pyglet-2.1.9 → pyglet-2.1.10}/examples/graphics/image_convert.py +0 -0
  231. {pyglet-2.1.9 → pyglet-2.1.10}/examples/graphics/image_display.py +0 -0
  232. {pyglet-2.1.9 → pyglet-2.1.10}/examples/gui/bar.png +0 -0
  233. {pyglet-2.1.9 → pyglet-2.1.10}/examples/gui/button_hover.png +0 -0
  234. {pyglet-2.1.9 → pyglet-2.1.10}/examples/gui/button_pressed.png +0 -0
  235. {pyglet-2.1.9 → pyglet-2.1.10}/examples/gui/button_unpressed.png +0 -0
  236. {pyglet-2.1.9 → pyglet-2.1.10}/examples/gui/knob.png +0 -0
  237. {pyglet-2.1.9 → pyglet-2.1.10}/examples/gui/widgets.py +0 -0
  238. {pyglet-2.1.9 → pyglet-2.1.10}/examples/hello_world.py +0 -0
  239. {pyglet-2.1.9 → pyglet-2.1.10}/examples/input/apple_remote.py +0 -0
  240. {pyglet-2.1.9 → pyglet-2.1.10}/examples/input/controller.py +0 -0
  241. {pyglet-2.1.9 → pyglet-2.1.10}/examples/input/input.py +0 -0
  242. {pyglet-2.1.9 → pyglet-2.1.10}/examples/input/joystick.py +0 -0
  243. {pyglet-2.1.9 → pyglet-2.1.10}/examples/input/tablet.py +0 -0
  244. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/media_info.py +0 -0
  245. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/media_player.py +0 -0
  246. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/noisy/README +0 -0
  247. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/noisy/ball.png +0 -0
  248. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/noisy/ball.wav +0 -0
  249. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/noisy/noisy.py +0 -0
  250. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/README +0 -0
  251. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/reader.py +0 -0
  252. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/res/bass.wav +0 -0
  253. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/res/drums.wav +0 -0
  254. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/res/guitar.wav +0 -0
  255. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/res/piano.wav +0 -0
  256. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/res/space.txt +0 -0
  257. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/soundspace/soundspace.py +0 -0
  258. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/synthesizer.py +0 -0
  259. {pyglet-2.1.9 → pyglet-2.1.10}/examples/media/video.py +0 -0
  260. {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/box.mtl +0 -0
  261. {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/box.obj +0 -0
  262. {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/fpscamera.py +0 -0
  263. {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/logo3d.mtl +0 -0
  264. {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/logo3d.obj +0 -0
  265. {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/model.py +0 -0
  266. {pyglet-2.1.9 → pyglet-2.1.10}/examples/model/pyglet.png +0 -0
  267. {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/compute_shader.py +0 -0
  268. {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/egl_context.py +0 -0
  269. {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/minimal_shader.py +0 -0
  270. {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/opengl_context.py +0 -0
  271. {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/opengl_core.py +0 -0
  272. {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/opengl_scissor.py +0 -0
  273. {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/pyglet.png +0 -0
  274. {pyglet-2.1.9 → pyglet-2.1.10}/examples/opengl/torus.py +0 -0
  275. {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/animation.py +0 -0
  276. {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/dinosaur.gif +0 -0
  277. {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/events.py +0 -0
  278. {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/hello_world.py +0 -0
  279. {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/image_viewer.py +0 -0
  280. {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/kitten.jpg +0 -0
  281. {pyglet-2.1.9 → pyglet-2.1.10}/examples/programming_guide/window_subclass.py +0 -0
  282. {pyglet-2.1.9 → pyglet-2.1.10}/examples/resources/Brick1Blue.png +0 -0
  283. {pyglet-2.1.9 → pyglet-2.1.10}/examples/resources/Brick1Crack3.png +0 -0
  284. {pyglet-2.1.9 → pyglet-2.1.10}/examples/resources/Brick1Gray.png +0 -0
  285. {pyglet-2.1.9 → pyglet-2.1.10}/examples/resources/kitten.jpg +0 -0
  286. {pyglet-2.1.9 → pyglet-2.1.10}/examples/resources/pyglet.png +0 -0
  287. {pyglet-2.1.9 → pyglet-2.1.10}/examples/shapes.py +0 -0
  288. {pyglet-2.1.9 → pyglet-2.1.10}/examples/sprite/depth_sprite.py +0 -0
  289. {pyglet-2.1.9 → pyglet-2.1.10}/examples/sprite/display_sprite.py +0 -0
  290. {pyglet-2.1.9 → pyglet-2.1.10}/examples/sprite/multi_texture_sprite.py +0 -0
  291. {pyglet-2.1.9 → pyglet-2.1.10}/examples/sprite/sprite_batching.py +0 -0
  292. {pyglet-2.1.9 → pyglet-2.1.10}/examples/text/advanced_font.py +0 -0
  293. {pyglet-2.1.9 → pyglet-2.1.10}/examples/text/html_label.py +0 -0
  294. {pyglet-2.1.9 → pyglet-2.1.10}/examples/text/pyglet.png +0 -0
  295. {pyglet-2.1.9 → pyglet-2.1.10}/examples/text/text_input.py +0 -0
  296. {pyglet-2.1.9 → pyglet-2.1.10}/examples/text/user_bitmap_font.py +0 -0
  297. {pyglet-2.1.9 → pyglet-2.1.10}/examples/timer.py +0 -0
  298. {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/camera.py +0 -0
  299. {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/camera_group.py +0 -0
  300. {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/fixed_resolution.py +0 -0
  301. {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/fps_change.py +0 -0
  302. {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/multiple_windows.py +0 -0
  303. {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/overlay_window.py +0 -0
  304. {pyglet-2.1.9 → pyglet-2.1.10}/examples/window/transparent_window.py +0 -0
  305. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/dist_field/README +0 -0
  306. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/dist_field/genfield.py +0 -0
  307. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/dist_field/py.df.png +0 -0
  308. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/dist_field/py.png +0 -0
  309. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/dist_field/renderfield.py +0 -0
  310. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/flaccodec.py +0 -0
  311. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/hello_world.svg +0 -0
  312. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/instancing/sprite_instance.py +0 -0
  313. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/instancing/sprite_instance_object.py +0 -0
  314. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/multitexture_sprite/multitexturesprite.py +0 -0
  315. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/spritebenchmark.py +0 -0
  316. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/svg_test.py +0 -0
  317. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/wayland/gbm_egl_context.py +0 -0
  318. {pyglet-2.1.9 → pyglet-2.1.10}/experimental/win32priority.py +0 -0
  319. {pyglet-2.1.9 → pyglet-2.1.10}/make.py +0 -0
  320. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/__init__.pyi +0 -0
  321. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/app/__init__.py +0 -0
  322. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/app/base.py +0 -0
  323. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/app/win32.py +0 -0
  324. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/app/xlib.py +0 -0
  325. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/clock.py +0 -0
  326. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/customtypes.py +0 -0
  327. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/__init__.py +0 -0
  328. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/__init__.pyi +0 -0
  329. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/base.py +0 -0
  330. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/cocoa.py +0 -0
  331. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/headless.py +0 -0
  332. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/win32.py +0 -0
  333. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/xlib.py +0 -0
  334. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/display/xlib_vidmoderestore.py +0 -0
  335. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/event.py +0 -0
  336. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/README.md +0 -0
  337. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/geoshader_sprite.py +0 -0
  338. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/hidraw.py +0 -0
  339. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/jobs.py +0 -0
  340. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/multitexture_sprite.py +0 -0
  341. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/net.py +0 -0
  342. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/experimental/particles.py +0 -0
  343. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/extlibs/__init__.py +0 -0
  344. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/extlibs/earcut.py +0 -0
  345. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/extlibs/png.py +0 -0
  346. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/__init__.py +0 -0
  347. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/base.py +0 -0
  348. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/dwrite/__init__.py +0 -0
  349. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/dwrite/d2d1_lib.py +0 -0
  350. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/dwrite/d2d1_types_lib.py +0 -0
  351. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/dwrite/dwrite_lib.py +0 -0
  352. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/fontconfig.py +0 -0
  353. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/freetype.py +0 -0
  354. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/freetype_lib.py +0 -0
  355. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/harfbuzz/__init__.py +0 -0
  356. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/harfbuzz/harfbuzz_lib.py +0 -0
  357. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/quartz.py +0 -0
  358. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/ttf.py +0 -0
  359. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/user.py +0 -0
  360. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/font/win32.py +0 -0
  361. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/__init__.py +0 -0
  362. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/agl.py +0 -0
  363. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/base.py +0 -0
  364. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/cocoa.py +0 -0
  365. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/gl.py +0 -0
  366. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/gl.pyi +0 -0
  367. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/gl_compat.py +0 -0
  368. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/gl_compat.pyi +0 -0
  369. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/gl_info.py +0 -0
  370. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/glx.py +0 -0
  371. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/glx_info.py +0 -0
  372. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/glxext_arb.py +0 -0
  373. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/glxext_mesa.py +0 -0
  374. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/glxext_nv.py +0 -0
  375. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/headless.py +0 -0
  376. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/lib.py +0 -0
  377. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/lib_agl.py +0 -0
  378. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/lib_glx.py +0 -0
  379. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/lib_wgl.py +0 -0
  380. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/wgl.py +0 -0
  381. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/wgl_info.py +0 -0
  382. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/wglext_arb.py +0 -0
  383. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/wglext_nv.py +0 -0
  384. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/win32.py +0 -0
  385. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gl/xlib.py +0 -0
  386. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/__init__.py +0 -0
  387. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/allocation.py +0 -0
  388. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/instance.py +0 -0
  389. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/vertexarray.py +0 -0
  390. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/vertexbuffer.py +0 -0
  391. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/graphics/vertexdomain.py +0 -0
  392. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gui/__init__.py +0 -0
  393. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gui/frame.py +0 -0
  394. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gui/ninepatch.py +0 -0
  395. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/gui/widgets.py +0 -0
  396. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/__init__.py +0 -0
  397. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/animation.py +0 -0
  398. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/atlas.py +0 -0
  399. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/buffer.py +0 -0
  400. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/__init__.py +0 -0
  401. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/bmp.py +0 -0
  402. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/dds.py +0 -0
  403. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/gdiplus.py +0 -0
  404. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
  405. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/gif.py +0 -0
  406. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/pil.py +0 -0
  407. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/png.py +0 -0
  408. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/quartz.py +0 -0
  409. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/s3tc.py +0 -0
  410. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/wic.py +0 -0
  411. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/image/codecs/wincodec_lib.py +0 -0
  412. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/info.py +0 -0
  413. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/__init__.py +0 -0
  414. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/base.py +0 -0
  415. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/controller.py +0 -0
  416. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/controller_db.py +0 -0
  417. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/linux/__init__.py +0 -0
  418. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/linux/evdev_constants.py +0 -0
  419. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/linux/x11_xinput.py +0 -0
  420. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
  421. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/macos/__init__.py +0 -0
  422. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/macos/darwin_hid.py +0 -0
  423. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/win32/__init__.py +0 -0
  424. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/win32/directinput.py +0 -0
  425. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/win32/wintab.py +0 -0
  426. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/input/win32/xinput.py +0 -0
  427. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/lib.py +0 -0
  428. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/__init__.py +0 -0
  429. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/__init__.py +0 -0
  430. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
  431. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/cocoapy/cocoalibs.py +0 -0
  432. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
  433. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
  434. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/coreaudio.py +0 -0
  435. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/darwin/quartzkey.py +0 -0
  436. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/egl/__init__.py +0 -0
  437. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/egl/egl.py +0 -0
  438. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/egl/eglext.py +0 -0
  439. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/egl/lib.py +0 -0
  440. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/ioctl.py +0 -0
  441. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/wayland/__init__.py +0 -0
  442. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/wayland/gbm.py +0 -0
  443. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/wayland/xkbcommon.py +0 -0
  444. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/__init__.py +0 -0
  445. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/com.py +0 -0
  446. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/constants.py +0 -0
  447. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/context_managers.py +0 -0
  448. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/dinput.py +0 -0
  449. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/libwintab.py +0 -0
  450. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/types.py +0 -0
  451. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/win32/winkey.py +0 -0
  452. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/__init__.py +0 -0
  453. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/cursorfont.py +0 -0
  454. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xf86vmode.py +0 -0
  455. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xinerama.py +0 -0
  456. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xinput.py +0 -0
  457. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xlib.py +0 -0
  458. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xrandr.py +0 -0
  459. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xrender.py +0 -0
  460. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/libs/x11/xsync.py +0 -0
  461. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/math.py +0 -0
  462. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/__init__.py +0 -0
  463. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/buffered_logger.py +0 -0
  464. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/__init__.py +0 -0
  465. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/coreaudio.py +0 -0
  466. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
  467. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/gstreamer.py +0 -0
  468. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/pyogg.py +0 -0
  469. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/wave.py +0 -0
  470. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/codecs/wmf.py +0 -0
  471. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/devices/__init__.py +0 -0
  472. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/devices/base.py +0 -0
  473. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/devices/win32.py +0 -0
  474. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/__init__.py +0 -0
  475. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/base.py +0 -0
  476. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/directsound/__init__.py +0 -0
  477. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/directsound/adaptation.py +0 -0
  478. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/directsound/exceptions.py +0 -0
  479. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/directsound/interface.py +0 -0
  480. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/directsound/lib_dsound.py +0 -0
  481. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/listener.py +0 -0
  482. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/openal/__init__.py +0 -0
  483. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/openal/adaptation.py +0 -0
  484. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/openal/interface.py +0 -0
  485. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/openal/lib_alc.py +0 -0
  486. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/openal/lib_openal.py +0 -0
  487. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/pulse/__init__.py +0 -0
  488. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/pulse/adaptation.py +0 -0
  489. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/pulse/interface.py +0 -0
  490. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
  491. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/silent/__init__.py +0 -0
  492. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/silent/adaptation.py +0 -0
  493. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
  494. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/xaudio2/adaptation.py +0 -0
  495. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/xaudio2/interface.py +0 -0
  496. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +0 -0
  497. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/exceptions.py +0 -0
  498. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/instrumentation.py +0 -0
  499. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/player.py +0 -0
  500. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/player_worker_thread.py +0 -0
  501. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/media/synthesis.py +0 -0
  502. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/model/__init__.py +0 -0
  503. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/model/codecs/__init__.py +0 -0
  504. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/model/codecs/base.py +0 -0
  505. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/model/codecs/gltf.py +0 -0
  506. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/model/codecs/obj.py +0 -0
  507. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/py.typed +0 -0
  508. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/resource.py +0 -0
  509. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/shapes.py +0 -0
  510. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/sprite.py +0 -0
  511. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/caret.py +0 -0
  512. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/formats/__init__.py +0 -0
  513. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/formats/attributed.py +0 -0
  514. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/formats/html.py +0 -0
  515. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/formats/plaintext.py +0 -0
  516. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/formats/structured.py +0 -0
  517. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/layout/__init__.py +0 -0
  518. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/layout/incremental.py +0 -0
  519. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/layout/scrolling.py +0 -0
  520. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/text/runlist.py +0 -0
  521. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/util.py +0 -0
  522. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/cocoa/pyglet_delegate.py +0 -0
  523. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/cocoa/pyglet_textview.py +0 -0
  524. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/cocoa/pyglet_view.py +0 -0
  525. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/cocoa/pyglet_window.py +0 -0
  526. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/cocoa/systemcursor.py +0 -0
  527. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/event.py +0 -0
  528. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/key.py +0 -0
  529. {pyglet-2.1.9 → pyglet-2.1.10}/pyglet/window/mouse.py +0 -0
  530. {pyglet-2.1.9 → pyglet-2.1.10}/pyproject.toml +0 -0
  531. {pyglet-2.1.9 → pyglet-2.1.10}/pytest.ini +0 -0
  532. {pyglet-2.1.9 → pyglet-2.1.10}/setup.py +0 -0
  533. {pyglet-2.1.9 → pyglet-2.1.10}/tests/__init__.py +0 -0
  534. {pyglet-2.1.9 → pyglet-2.1.10}/tests/annotations.py +0 -0
  535. {pyglet-2.1.9 → pyglet-2.1.10}/tests/base/__init__.py +0 -0
  536. {pyglet-2.1.9 → pyglet-2.1.10}/tests/base/data.py +0 -0
  537. {pyglet-2.1.9 → pyglet-2.1.10}/tests/base/event_loop.py +0 -0
  538. {pyglet-2.1.9 → pyglet-2.1.10}/tests/base/interactive.py +0 -0
  539. {pyglet-2.1.9 → pyglet-2.1.10}/tests/base/performance.py +0 -0
  540. {pyglet-2.1.9 → pyglet-2.1.10}/tests/conftest.py +0 -0
  541. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/README +0 -0
  542. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/action_man.ttf +0 -0
  543. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/action_man_atlas.png +0 -0
  544. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/action_man_bold.ttf +0 -0
  545. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
  546. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/action_man_italic.ttf +0 -0
  547. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
  548. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/8bpp.gif +0 -0
  549. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/cursor.png +0 -0
  550. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/dinosaur.gif +0 -0
  551. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/gdk_close.png +0 -0
  552. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/grey_background.png +0 -0
  553. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/icon1.png +0 -0
  554. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/icon_size1.png +0 -0
  555. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/icon_size2.png +0 -0
  556. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/icon_size3.png +0 -0
  557. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/icon_size4.png +0 -0
  558. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/icon_size5.png +0 -0
  559. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/l.png +0 -0
  560. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/la.png +0 -0
  561. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/multitexture.png +0 -0
  562. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb.png +0 -0
  563. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_16bpp.bmp +0 -0
  564. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_1bpp.bmp +0 -0
  565. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_24bpp.bmp +0 -0
  566. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_32bpp.bmp +0 -0
  567. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_4bpp.bmp +0 -0
  568. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_8bpp.bmp +0 -0
  569. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_8bpp.png +0 -0
  570. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_8bpp_trans.png +0 -0
  571. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgb_dxt1.dds +0 -0
  572. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgba.png +0 -0
  573. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgba_32bpp.bmp +0 -0
  574. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgba_dxt1.dds +0 -0
  575. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgba_dxt3.dds +0 -0
  576. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/rgba_dxt5.dds +0 -0
  577. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
  578. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/README +0 -0
  579. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/alert.wav +0 -0
  580. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/login.wav +0 -0
  581. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/logout.wav +0 -0
  582. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/receive.wav +0 -0
  583. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/send.wav +0 -0
  584. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
  585. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
  586. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
  587. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
  588. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
  589. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
  590. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
  591. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
  592. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
  593. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
  594. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
  595. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
  596. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/models/logo3d.mtl +0 -0
  597. {pyglet-2.1.9 → pyglet-2.1.10}/tests/data/models/logo3d.obj +0 -0
  598. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/__init__.py +0 -0
  599. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/app/__init__.py +0 -0
  600. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/app/test_eventloop.py +0 -0
  601. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/conftest.py +0 -0
  602. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/font/test_fontconfig.py +0 -0
  603. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/font/test_freetype_face.py +0 -0
  604. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/graphics/__init__.py +0 -0
  605. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/graphics/test_allocation.py +0 -0
  606. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/graphics/test_batch_migration.py +0 -0
  607. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/graphics/test_shaders.py +0 -0
  608. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/image/__init__.py +0 -0
  609. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/image/test_gdkpixbuf2.py +0 -0
  610. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/image/test_imagegrid.py +0 -0
  611. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/image/test_texture3d.py +0 -0
  612. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/__init__.py +0 -0
  613. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/mock_player.py +0 -0
  614. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/test_directsound.py +0 -0
  615. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/test_driver.py +0 -0
  616. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/test_openal.py +0 -0
  617. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/test_player.py +0 -0
  618. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/media/test_pulse.py +0 -0
  619. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/model/__init__.py +0 -0
  620. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/model/test_loading.py +0 -0
  621. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/platform/__init__.py +0 -0
  622. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/platform/test_win_context_managers.py +0 -0
  623. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/platform/test_win_multicore_clock.py +0 -0
  624. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/__init__.py +0 -0
  625. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
  626. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/dir1/f2.txt +0 -0
  627. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/dir1/res.zip +0 -0
  628. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/dir2/f6.txt +0 -0
  629. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/f1.txt +0 -0
  630. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/rgbm.png +0 -0
  631. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/test_resource_image_loading.py +0 -0
  632. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/resource/test_resource_loading.py +0 -0
  633. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/test_integrations.py +0 -0
  634. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/text/__init__.py +0 -0
  635. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/text/test_empty_document.py +0 -0
  636. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/text/test_label_creation.py +0 -0
  637. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/text/test_layout_creation.py +0 -0
  638. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/window/__init__.py +0 -0
  639. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/window/test_context_share.py +0 -0
  640. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/window/test_event_sequence.py +0 -0
  641. {pyglet-2.1.9 → pyglet-2.1.10}/tests/integration/window/test_window_caption.py +0 -0
  642. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/__init__.py +0 -0
  643. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/conftest.py +0 -0
  644. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/image/__init__.py +0 -0
  645. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/image/test_image.py +0 -0
  646. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/media/__init__.py +0 -0
  647. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/media/test_player.py +0 -0
  648. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/screenshots/committed/README +0 -0
  649. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/screenshots/session/README +0 -0
  650. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/shapes/test_shapes.py +0 -0
  651. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/test_interactive_test_base.py +0 -0
  652. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/__init__.py +0 -0
  653. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_caret_color.py +0 -0
  654. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_content_valign.py +0 -0
  655. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_html.py +0 -0
  656. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_inline_elements.py +0 -0
  657. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_inline_elements_style_change.py +0 -0
  658. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_multiline_wrap.py +0 -0
  659. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_plain.py +0 -0
  660. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/text/test_style.py +0 -0
  661. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/__init__.py +0 -0
  662. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_events.py +0 -0
  663. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_fullscreen.py +0 -0
  664. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_modes.py +0 -0
  665. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_multisample.py +0 -0
  666. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_open.py +0 -0
  667. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_settings.py +0 -0
  668. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/test_window_styles.py +0 -0
  669. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/window/window_util.py +0 -0
  670. {pyglet-2.1.9 → pyglet-2.1.10}/tests/interactive/windowed_test_base.py +0 -0
  671. {pyglet-2.1.9 → pyglet-2.1.10}/tests/requirements.txt +0 -0
  672. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/__init__.py +0 -0
  673. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/conftest.py +0 -0
  674. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/math/test_mat.py +0 -0
  675. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/math/test_quat.py +0 -0
  676. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/math/test_vec2.py +0 -0
  677. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/math/test_vec3.py +0 -0
  678. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/math/test_vec4.py +0 -0
  679. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/media/__init__.py +0 -0
  680. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/media/test_listener.py +0 -0
  681. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/media/test_player.py +0 -0
  682. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/media/test_sources.py +0 -0
  683. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/media/test_synthesis.py +0 -0
  684. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/platform/__init__.py +0 -0
  685. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/platform/test_mac_objc.py +0 -0
  686. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shader/__init__.py +0 -0
  687. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shader/conftest.py +0 -0
  688. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shader/test_shader.py +0 -0
  689. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shapes/__init__.py +0 -0
  690. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shapes/conftest.py +0 -0
  691. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
  692. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/shapes/test_shapes.py +0 -0
  693. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_atlas.py +0 -0
  694. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_clock.py +0 -0
  695. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_clock_freq.py +0 -0
  696. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_events.py +0 -0
  697. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_font.py +0 -0
  698. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_input.py +0 -0
  699. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_resource_path.py +0 -0
  700. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_sprite.py +0 -0
  701. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/test_text.py +0 -0
  702. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/text/__init__.py +0 -0
  703. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/text/test_caret.py +0 -0
  704. {pyglet-2.1.9 → pyglet-2.1.10}/tests/unit/text/test_layout.py +0 -0
  705. {pyglet-2.1.9 → pyglet-2.1.10}/tools/al_info.py +0 -0
  706. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/bokeh_timeline.py +0 -0
  707. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/compare.py +0 -0
  708. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/configure.py +0 -0
  709. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/extractors.py +0 -0
  710. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/fs.py +0 -0
  711. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/mp.py +0 -0
  712. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/mpexceptions.py +0 -0
  713. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/playmany.py +0 -0
  714. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
  715. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/readme_run_tests.txt +0 -0
  716. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/report.py +0 -0
  717. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/reports.py +0 -0
  718. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/retry_crashed.py +0 -0
  719. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/run_test_suite.py +0 -0
  720. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/summarize.py +0 -0
  721. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/test_instrumentation.py +0 -0
  722. {pyglet-2.1.9 → pyglet-2.1.10}/tools/ffmpeg/timeline.py +0 -0
  723. {pyglet-2.1.9 → pyglet-2.1.10}/tools/gencontrollerdb.py +0 -0
  724. {pyglet-2.1.9 → pyglet-2.1.10}/tools/gengl.py +0 -0
  725. {pyglet-2.1.9 → pyglet-2.1.10}/tools/genwrappers.py +0 -0
  726. {pyglet-2.1.9 → pyglet-2.1.10}/tools/gl.template +0 -0
  727. {pyglet-2.1.9 → pyglet-2.1.10}/tools/gl.xml +0 -0
  728. {pyglet-2.1.9 → pyglet-2.1.10}/tools/gl_info.py +0 -0
  729. {pyglet-2.1.9 → pyglet-2.1.10}/tools/gl_stub.template +0 -0
  730. {pyglet-2.1.9 → pyglet-2.1.10}/tools/inspect_font.py +0 -0
  731. {pyglet-2.1.9 → pyglet-2.1.10}/tools/requirements.txt +0 -0
  732. {pyglet-2.1.9 → pyglet-2.1.10}/tools/wgl.h +0 -0
  733. {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/__init__.py +0 -0
  734. {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/cparser.py +0 -0
  735. {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/ctypesparser.py +0 -0
  736. {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/lex.py +0 -0
  737. {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/preprocessor.py +0 -0
  738. {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/wrap.py +0 -0
  739. {pyglet-2.1.9 → pyglet-2.1.10}/tools/wraptypes/yacc.py +0 -0
  740. {pyglet-2.1.9 → pyglet-2.1.10}/website/LICENSE.txt +0 -0
  741. {pyglet-2.1.9 → pyglet-2.1.10}/website/README.rst +0 -0
  742. {pyglet-2.1.9 → pyglet-2.1.10}/website/assets/favicon.ico +0 -0
  743. {pyglet-2.1.9 → pyglet-2.1.10}/website/assets/static/css/example-custom-styles.css +0 -0
  744. {pyglet-2.1.9 → pyglet-2.1.10}/website/assets/static/images/pyglet.png +0 -0
  745. {pyglet-2.1.9 → pyglet-2.1.10}/website/content/404.html/contents.lr +0 -0
  746. {pyglet-2.1.9 → pyglet-2.1.10}/website/content/404.html/ngc-5793.jpg +0 -0
  747. {pyglet-2.1.9 → pyglet-2.1.10}/website/content/authors/benjamin/contents.lr +0 -0
  748. {pyglet-2.1.9 → pyglet-2.1.10}/website/content/authors/benjamin/pyglet.png +0 -0
  749. {pyglet-2.1.9 → pyglet-2.1.10}/website/content/authors/contents.lr +0 -0
  750. {pyglet-2.1.9 → pyglet-2.1.10}/website/content/blog/contents.lr +0 -0
  751. {pyglet-2.1.9 → pyglet-2.1.10}/website/content/blog/welcome-blog/contents.lr +0 -0
  752. {pyglet-2.1.9 → pyglet-2.1.10}/website/content/contents.lr +0 -0
  753. {pyglet-2.1.9 → pyglet-2.1.10}/website/content/eclipse.jpg +0 -0
  754. {pyglet-2.1.9 → pyglet-2.1.10}/website/pyglet.lektorproject +0 -0
  755. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/AUTHORS.txt +0 -0
  756. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/CHANGELOG.md +0 -0
  757. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
  758. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/LICENSE.txt +0 -0
  759. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/NOTICE.txt +0 -0
  760. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/README.md +0 -0
  761. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
  762. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
  763. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
  764. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
  765. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  766. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  767. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  768. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
  769. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
  770. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
  771. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
  772. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
  773. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
  774. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
  775. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
  776. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
  777. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
  778. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
  779. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
  780. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
  781. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
  782. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
  783. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
  784. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
  785. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
  786. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
  787. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
  788. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
  789. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
  790. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/blog-index.png +0 -0
  791. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/full-blog.png +0 -0
  792. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/full-page.png +0 -0
  793. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/gallery-404.png +0 -0
  794. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
  795. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
  796. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
  797. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/404.ini +0 -0
  798. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/author.ini +0 -0
  799. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/authors.ini +0 -0
  800. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/blog-post.ini +0 -0
  801. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/blog.ini +0 -0
  802. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/page.ini +0 -0
  803. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/models/single-layout.ini +0 -0
  804. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/404.html +0 -0
  805. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/author.html +0 -0
  806. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/authors.html +0 -0
  807. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
  808. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
  809. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
  810. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
  811. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
  812. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
  813. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blog-post.html +0 -0
  814. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/blog.html +0 -0
  815. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/layout.html +0 -0
  816. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
  817. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
  818. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/none.html +0 -0
  819. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/page.html +0 -0
  820. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/templates/single-layout.html +0 -0
  821. {pyglet-2.1.9 → pyglet-2.1.10}/website/themes/lektor-icon/theme.ini +0 -0
@@ -7,7 +7,7 @@ jobs:
7
7
  runs-on: ubuntu-latest
8
8
  strategy:
9
9
  matrix:
10
- python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', 'pypy-3.10' ]
10
+ python-version: [ '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.10' ]
11
11
  name: Python ${{ matrix.python-version }} ubuntu-latest
12
12
  steps:
13
13
  - uses: actions/checkout@v4
@@ -28,7 +28,7 @@ jobs:
28
28
  runs-on: macos-latest
29
29
  strategy:
30
30
  matrix:
31
- python-version: [ '3.10', '3.11', '3.12' ]
31
+ python-version: [ '3.10', '3.11', '3.12', '3.13', '3.14']
32
32
  name: Python ${{ matrix.python-version }} OSX
33
33
  steps:
34
34
  - uses: actions/checkout@v4
@@ -47,7 +47,7 @@ jobs:
47
47
  runs-on: windows-latest
48
48
  strategy:
49
49
  matrix:
50
- python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ]
50
+ python-version: [ '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
51
51
  name: Python ${{ matrix.python-version }} Windows
52
52
  steps:
53
53
  - uses: actions/checkout@v4
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyglet
3
- Version: 2.1.9
3
+ Version: 2.1.10
4
4
  Summary: pyglet is a cross-platform games and multimedia package.
5
5
  Author-email: Alex Holkner & contributors <Alex.Holkner@gmail.com>
6
6
  Requires-Python: >=3.8
@@ -1,3 +1,19 @@
1
+ pyglet 2.1.10
2
+
3
+ Changes
4
+ -------
5
+ media: Add support for FFmpeg 8.0 (#1365)
6
+ window: Update default dpi_scaling option to "platform". (#1383)
7
+ window: Convert the Window event queue to a deque. (#1362)
8
+ input.evdev: Do not attempt to reuse Controller instances on re-connect, as naming conflicts can occur.
9
+
10
+ Bugfixes
11
+ --------
12
+ text: fix typing of Label.__init__'s align argument. (#1361)
13
+ text: Update the passed args for attributed text. (#1379)
14
+ shader: Fixed number of elements for GL_FLOAT_MAT3 (9, not 6) in pyglet.graphics.shader._uniform_setters. (#1364)
15
+
16
+
1
17
  pyglet 2.1.9
2
18
 
3
19
  Changes
@@ -1,7 +1,5 @@
1
1
  import pyglet
2
-
3
- pyglet.options["debug_gl"] = False
4
- pyglet.options.dpi_scaling = "scaled"
2
+ pyglet.options.debug_gl = False
5
3
 
6
4
  window = pyglet.window.Window(800, 600, caption="DPI Test", resizable=True)
7
5
  batch = pyglet.graphics.Batch()
@@ -31,8 +29,7 @@ labels = [hello_label, mouse_enter_label, mouse_leave_label, mouse_motion_label,
31
29
  dinosaur = pyglet.resource.animation("programming_guide/dinosaur.gif")
32
30
 
33
31
  sprite = pyglet.sprite.Sprite(dinosaur, x=100, y=140, batch=batch)
34
- if pyglet.options.dpi_scaling != "real":
35
- sprite.scale = window.scale
32
+ sprite.scale = window.scale
36
33
 
37
34
 
38
35
  @window.event
@@ -99,10 +96,9 @@ def on_scale(scale, dpi):
99
96
  print("Window Size:", window.get_size())
100
97
  print("Window Scale Ratio:", window.scale)
101
98
  print("Window Frame Buffer Size:", window.get_framebuffer_size())
102
- if pyglet.options.dpi_scaling != "real":
103
- for label in labels:
104
- label.dpi = dpi
105
- sprite.scale = window.scale
99
+ for label in labels:
100
+ label.dpi = dpi
101
+ sprite.scale = window.scale
106
102
 
107
103
 
108
104
  pyglet.app.run()
@@ -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.9'
18
+ version = '2.1.10'
19
19
  __version__ = version
20
20
 
21
21
  MIN_PYTHON_VERSION = 3, 8
@@ -255,8 +255,8 @@ class Options:
255
255
 
256
256
  .. versionadded:: 2.0.5"""
257
257
 
258
- dpi_scaling: Literal["real", "scaled", "stretch", "platform"] = "real"
259
- """For 'HiDPI' displays, Window behavior can differ between operating systems. Defaults to `'real'`.
258
+ dpi_scaling: Literal["real", "scaled", "stretch", "platform"] = "platform"
259
+ """For 'HiDPI' displays, Window behavior can differ between operating systems. Defaults to `'platform'`.
260
260
 
261
261
  The current options are an attempt to create consistent behavior across all of the operating systems.
262
262
 
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  import signal
2
4
  import time
3
5
 
@@ -159,7 +159,7 @@ _uniform_setters: dict[int, tuple[GLDataType, GLFunc, GLFunc, int]] = {
159
159
  gl.GL_UNSIGNED_INT_SAMPLER_3D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
160
160
 
161
161
  gl.GL_FLOAT_MAT2: (gl.GLfloat, gl.glUniformMatrix2fv, gl.glProgramUniformMatrix2fv, 4),
162
- gl.GL_FLOAT_MAT3: (gl.GLfloat, gl.glUniformMatrix3fv, gl.glProgramUniformMatrix3fv, 6),
162
+ gl.GL_FLOAT_MAT3: (gl.GLfloat, gl.glUniformMatrix3fv, gl.glProgramUniformMatrix3fv, 9),
163
163
  gl.GL_FLOAT_MAT4: (gl.GLfloat, gl.glUniformMatrix4fv, gl.glProgramUniformMatrix4fv, 16),
164
164
 
165
165
  # TODO: test/implement these:
@@ -33,22 +33,24 @@ except ImportError:
33
33
  return c.read(fd, buffers, 3072)
34
34
 
35
35
 
36
- KeyMaxArray = _c_byte * ((KEY_MAX // 8) + 1)
36
+ KeyMaxArray = _c_byte * (KEY_MAX // 8 + 1)
37
37
 
38
38
 
39
- class EvdevButton(Button):
39
+ class _EvdevInfo:
40
40
  event_type: int
41
41
  event_code: int
42
42
 
43
43
 
44
- class EvdevAbsoluteAxis(AbsoluteAxis):
45
- event_type: int
46
- event_code: int
44
+ class EvdevButton(Button, _EvdevInfo):
45
+ pass
47
46
 
48
47
 
49
- class EvdevRelativeAxis(RelativeAxis):
50
- event_type: int
51
- event_code: int
48
+ class EvdevAbsoluteAxis(AbsoluteAxis, _EvdevInfo):
49
+ pass
50
+
51
+
52
+ class EvdevRelativeAxis(RelativeAxis, _EvdevInfo):
53
+ pass
52
54
 
53
55
 
54
56
  # Structures from /linux/blob/master/include/uapi/linux/input.h
@@ -193,7 +195,6 @@ def EVIOCGBIT(fileno, ev, buffer):
193
195
 
194
196
 
195
197
  def EVIOCGABS(fileno, ev, buffer=InputABSInfo()):
196
- print("absbuffer instance:", buffer)
197
198
  return _IOR_len('E', 0x40 + ev)(fileno, buffer)
198
199
 
199
200
 
@@ -540,10 +541,9 @@ class EvdevControllerManager(ControllerManager, XlibSelectDevice):
540
541
  else:
541
542
  return # No device could be created
542
543
 
543
- # Reuse existing controller instance if it exists, or create a new one:
544
- if controller := self._controllers.get(name, _create_controller(device)):
544
+ if controller := _create_controller(device):
545
545
  self._controllers[name] = controller
546
- # Dispatch event in main thread:
546
+ # Post the event in the main thread:
547
547
  self.post_event('on_connect', controller)
548
548
 
549
549
  def select(self):
@@ -559,6 +559,7 @@ class EvdevControllerManager(ControllerManager, XlibSelectDevice):
559
559
 
560
560
  for name in disappeared:
561
561
  if controller := self._controllers.get(name):
562
+ del self._controllers[name]
562
563
  self.dispatch_event('on_disconnect', controller)
563
564
 
564
565
  def get_controllers(self) -> list[Controller]:
@@ -1,9 +1,11 @@
1
+ from __future__ import annotations
2
+
1
3
  import ctypes
2
4
  import io
5
+ from dataclasses import dataclass
3
6
  from typing import TYPE_CHECKING, BinaryIO, List, Optional, Union
4
7
 
5
- from pyglet.media.exceptions import MediaException, CannotSeekException
6
- from pyglet.util import next_or_equal_power_of_two
8
+ from pyglet.media.exceptions import CannotSeekException, MediaException
7
9
 
8
10
  if TYPE_CHECKING:
9
11
  from pyglet.image import AbstractImage
@@ -77,7 +79,7 @@ class AudioFormat:
77
79
  self.__class__.__name__, self.channels, self.sample_size,
78
80
  self.sample_rate)
79
81
 
80
-
82
+ @dataclass
81
83
  class VideoFormat:
82
84
  """Video details.
83
85
 
@@ -98,20 +100,10 @@ class VideoFormat:
98
100
 
99
101
  .. versionadded:: 1.2
100
102
  """
101
-
102
- def __init__(self, width: int, height: int, sample_aspect: float = 1.0) -> None:
103
- self.width = width
104
- self.height = height
105
- self.sample_aspect = sample_aspect
106
- self.frame_rate = None
107
-
108
- def __eq__(self, other) -> bool:
109
- if isinstance(other, VideoFormat):
110
- return (self.width == other.width and
111
- self.height == other.height and
112
- self.sample_aspect == other.sample_aspect and
113
- self.frame_rate == other.frame_rate)
114
- return False
103
+ width: int
104
+ height: int
105
+ sample_aspect: float = 0.0
106
+ frame_rate: float | None = None
115
107
 
116
108
 
117
109
  class AudioData:
@@ -132,14 +124,14 @@ class AudioData:
132
124
  `timestamp` and `duration` are unused and will be removed eventually.
133
125
  """
134
126
 
135
- __slots__ = 'data', 'length', 'timestamp', 'duration', 'events', 'pointer'
127
+ __slots__ = 'data', 'duration', 'events', 'length', 'pointer', 'timestamp'
136
128
 
137
129
  def __init__(self,
138
- data: Union[bytes, ctypes.Array],
130
+ data: bytes | ctypes.Array,
139
131
  length: int,
140
132
  timestamp: float = 0.0,
141
133
  duration: float = 0.0,
142
- events: Optional[List['MediaEvent']] = None) -> None:
134
+ events: list[MediaEvent] | None = None) -> None:
143
135
 
144
136
  if isinstance(data, bytes):
145
137
  # bytes are treated specially by ctypes and can be cast to a void pointer, get
@@ -163,6 +155,7 @@ class AudioData:
163
155
  self.events = [] if events is None else events
164
156
 
165
157
 
158
+ @dataclass
166
159
  class SourceInfo:
167
160
  """Source metadata information.
168
161
 
@@ -180,15 +173,14 @@ class SourceInfo:
180
173
 
181
174
  .. versionadded:: 1.2
182
175
  """
183
-
184
- title = ''
185
- author = ''
186
- copyright = ''
187
- comment = ''
188
- album = ''
189
- year = 0
190
- track = 0
191
- genre = ''
176
+ title: str = ''
177
+ author: str = ''
178
+ copyright: str = ''
179
+ comment: str = ''
180
+ album: str = ''
181
+ year: int = 0
182
+ track: int = 0
183
+ genre: str = ''
192
184
 
193
185
 
194
186
  class Source:
@@ -255,9 +247,8 @@ class Source:
255
247
  player.on_player_eos = _on_player_eos
256
248
  return player
257
249
 
258
- def get_animation(self) -> 'Animation':
259
- """
260
- Import all video frames into memory.
250
+ def get_animation(self) -> Animation:
251
+ """Import all video frames into memory.
261
252
 
262
253
  An empty animation will be returned if the source has no video.
263
254
  Otherwise, the animation will contain all unplayed video frames (the
@@ -7,6 +7,7 @@ from ctypes import (
7
7
  POINTER,
8
8
  Array,
9
9
  Structure,
10
+ _Pointer,
10
11
  addressof,
11
12
  byref,
12
13
  c_char_p,
@@ -18,20 +19,20 @@ from ctypes import (
18
19
  memmove,
19
20
  )
20
21
  from dataclasses import dataclass
21
- from typing import BinaryIO, TYPE_CHECKING, Iterator, Sequence
22
-
23
- from _ctypes import _Pointer
22
+ from typing import TYPE_CHECKING, BinaryIO, Iterator, Sequence
24
23
 
25
24
  import pyglet
26
25
  import pyglet.lib
27
26
  from pyglet import image
27
+ from pyglet.media.exceptions import MediaFormatException
28
28
  from pyglet.util import asbytes, asstr
29
+
29
30
  from . import MediaDecoder
30
31
  from .base import AudioData, AudioFormat, SourceInfo, StaticSource, StreamingSource, VideoFormat
31
32
  from .ffmpeg_lib import (
32
33
  AV_CODEC_ID_VP8,
33
34
  AV_CODEC_ID_VP9,
34
- FF_INPUT_BUFFER_PADDING_SIZE,
35
+ AV_INPUT_BUFFER_PADDING_SIZE,
35
36
  SWS_FAST_BILINEAR,
36
37
  AVPacket,
37
38
  SwrContext,
@@ -63,7 +64,6 @@ from .ffmpeg_lib.libavutil import (
63
64
  avutil,
64
65
  )
65
66
  from .ffmpeg_lib.libswresample import swresample, swresample_version
66
- from ..exceptions import MediaFormatException
67
67
 
68
68
  if TYPE_CHECKING:
69
69
  from .ffmpeg_lib.libavformat import AVStream
@@ -128,7 +128,7 @@ def ffmpeg_get_audio_buffer_size(audio_format):
128
128
 
129
129
  Buffer size can accommodate 1 sec of audio data.
130
130
  """
131
- return audio_format.bytes_per_second + FF_INPUT_BUFFER_PADDING_SIZE
131
+ return audio_format.bytes_per_second + AV_INPUT_BUFFER_PADDING_SIZE
132
132
 
133
133
 
134
134
  def ffmpeg_init():
@@ -489,10 +489,7 @@ def ffmpeg_get_packet_pts(file: FFmpegFile, packet: _Pointer[AVPacket]) -> float
489
489
 
490
490
  def ffmpeg_get_frame_ts(stream: FFmpegStream) -> float:
491
491
  ts = stream.frame.contents.best_effort_timestamp
492
- timestamp = avutil.av_rescale_q(ts,
493
- stream.time_base,
494
- AV_TIME_BASE_Q)
495
- return timestamp
492
+ return avutil.av_rescale_q(ts, stream.time_base, AV_TIME_BASE_Q)
496
493
 
497
494
 
498
495
  def ffmpeg_init_packet() -> _Pointer[AVPacket]:
@@ -847,7 +844,7 @@ class FFmpegSource(StreamingSource):
847
844
  # more packets are in stream.
848
845
  return ffmpeg_read(self._file, self._packet)
849
846
 
850
- def _process_packet(self) -> AudioPacket | VideoPacket:
847
+ def _process_packet(self) -> AudioPacket | VideoPacket | None:
851
848
  """Process the packet that has been just read.
852
849
 
853
850
  Determines whether it's a video or audio packet and queue it in the
@@ -859,18 +856,18 @@ class FFmpegSource(StreamingSource):
859
856
 
860
857
  if self._packet.contents.stream_index == self._video_stream_index:
861
858
  video_packet = VideoPacket(self._packet, timestamp)
862
-
863
859
  if _debug:
864
860
  print('Created and queued packet %d (%f)' % (video_packet.id, video_packet.timestamp))
865
861
 
866
862
  self.videoq.append(video_packet)
867
863
  return video_packet
868
864
 
869
- elif self.audio_format and self._packet.contents.stream_index == self._audio_stream_index:
865
+ if self.audio_format and self._packet.contents.stream_index == self._audio_stream_index:
870
866
  audio_packet = AudioPacket(self._packet, timestamp)
871
867
 
872
868
  self.audioq.append(audio_packet)
873
869
  return audio_packet
870
+ return None
874
871
 
875
872
  def get_audio_data(self, num_bytes: int, compensation_time: float=0.0) -> AudioData | None:
876
873
  data = b''
@@ -1040,9 +1037,8 @@ class FFmpegSource(StreamingSource):
1040
1037
  width = self.video_format.width
1041
1038
  height = self.video_format.height
1042
1039
  pitch = width * 4
1043
- # https://ffmpeg.org/doxygen/3.3/group__lavc__decoding.html#ga8f5b632a03ce83ac8e025894b1fc307a
1044
- nbytes = (pitch * height + FF_INPUT_BUFFER_PADDING_SIZE)
1045
- buffer = (c_uint8 * nbytes)()
1040
+ buf_size = avutil.av_image_get_buffer_size(AV_PIX_FMT_RGBA, width, height, 1)
1041
+ buffer = (c_uint8 * buf_size)()
1046
1042
  try:
1047
1043
  result = self._ffmpeg_decode_video(video_packet.packet, buffer)
1048
1044
  except FFmpegException:
@@ -1070,11 +1066,8 @@ class FFmpegSource(StreamingSource):
1070
1066
  stream = self._video_stream
1071
1067
  rgba_ptrs = (POINTER(c_uint8) * 4)()
1072
1068
  rgba_stride = (c_int * 4)()
1073
- width = stream.codec_context.contents.width
1074
- height = stream.codec_context.contents.height
1075
1069
  if stream.type != AVMEDIA_TYPE_VIDEO:
1076
1070
  raise FFmpegException('Trying to decode video on a non-video stream.')
1077
-
1078
1071
  sent_result = avcodec.avcodec_send_packet(
1079
1072
  stream.codec_context,
1080
1073
  packet,
@@ -1097,6 +1090,9 @@ class FFmpegSource(StreamingSource):
1097
1090
  descr = buf.value
1098
1091
  raise FFmpegException(f'Video: Error occurred receiving frame. {descr.decode()}')
1099
1092
 
1093
+ width = stream.frame.contents.width
1094
+ height = stream.frame.contents.height
1095
+
1100
1096
  avutil.av_image_fill_arrays(rgba_ptrs, rgba_stride, data_out,
1101
1097
  AV_PIX_FMT_RGBA, width, height, 1)
1102
1098
 
@@ -1141,7 +1137,7 @@ class FFmpegSource(StreamingSource):
1141
1137
  ts = None
1142
1138
 
1143
1139
  if _debug:
1144
- print('Next video timestamp is', ts)
1140
+ print(f'Next video packet timestamp is: {ts}')
1145
1141
  return ts
1146
1142
 
1147
1143
  def get_next_video_frame(self, skip_empty_frame: bool=True) -> int | None:
@@ -18,6 +18,7 @@ release_versions = {
18
18
  5: {'avcodec': 59, 'avformat': 59, 'avutil': 57, 'swresample': 4, 'swscale': 6}, # 5.x
19
19
  6: {'avcodec': 60, 'avformat': 60, 'avutil': 58, 'swresample': 4, 'swscale': 7}, # 6.x
20
20
  7: {'avcodec': 61, 'avformat': 61, 'avutil': 59, 'swresample': 5, 'swscale': 8}, # 7.x
21
+ 8: {'avcodec': 62, 'avformat': 62, 'avutil': 60, 'swresample': 6, 'swscale': 9}, # 8.x
21
22
  }
22
23
 
23
24
  # Removals done per library and version.
@@ -1,7 +1,7 @@
1
1
  """Wrapper for include/libavcodec/avcodec.h
2
2
  """
3
3
 
4
- from ctypes import c_int, c_uint16, c_int64, c_uint32, c_uint64, c_size_t
4
+ from ctypes import c_int, c_uint16, c_int64, c_uint32, c_uint64, c_size_t, c_char
5
5
  from ctypes import c_uint8, c_uint, c_float, c_char_p
6
6
  from ctypes import c_void_p, POINTER, CFUNCTYPE, Structure
7
7
 
@@ -15,8 +15,8 @@ _debug = debug_print('debug_media')
15
15
 
16
16
  avcodec = pyglet.lib.load_library(
17
17
  'avcodec',
18
- win32=('avcodec-61', 'avcodec-60', 'avcodec-59', 'avcodec-58'),
19
- darwin=('avcodec.61', 'avcodec.60', 'avcodec.59', 'avcodec.58')
18
+ win32=('avcodec-62', 'avcodec-61', 'avcodec-60', 'avcodec-59', 'avcodec-58'),
19
+ darwin=('avcodec.62', 'avcodec.61', 'avcodec.60', 'avcodec.59', 'avcodec.58')
20
20
  )
21
21
 
22
22
  avcodec.avcodec_version.restype = c_int
@@ -25,8 +25,8 @@ avcodec_version = avcodec.avcodec_version() >> 16
25
25
 
26
26
  compat.set_version('avcodec', avcodec_version)
27
27
 
28
-
29
- FF_INPUT_BUFFER_PADDING_SIZE = 32
28
+ # Since version 4.0 this is 64
29
+ AV_INPUT_BUFFER_PADDING_SIZE = 64
30
30
 
31
31
 
32
32
  class AVPacketSideData(Structure):
@@ -67,7 +67,7 @@ AVPacket_Fields = [
67
67
  compat.add_version_changes('avcodec', 58, AVPacket, AVPacket_Fields,
68
68
  removals=('opaque', 'opaque_ref', 'time_base'))
69
69
 
70
- for compat_ver in (59, 60, 61):
70
+ for compat_ver in (59, 60, 61, 62):
71
71
  compat.add_version_changes('avcodec', compat_ver, AVPacket, AVPacket_Fields,
72
72
  removals=('convergence_duration',))
73
73
 
@@ -118,8 +118,9 @@ for compat_ver in (58, 59, 60):
118
118
  compat.add_version_changes('avcodec', compat_ver, AVCodecParameters, AVCodecParameters_Fields,
119
119
  removals=('coded_side_data', 'nb_coded_side_data', 'ch_layout', 'framerate'))
120
120
 
121
- compat.add_version_changes('avcodec', 61, AVCodecParameters, AVCodecParameters_Fields,
122
- removals=('channel_layout', 'channels'))
121
+ for compat_ver in (61, 62):
122
+ compat.add_version_changes('avcodec', compat_ver, AVCodecParameters, AVCodecParameters_Fields,
123
+ removals=('channel_layout', 'channels'))
123
124
 
124
125
 
125
126
  class AVProfile(Structure):
@@ -188,7 +189,7 @@ AVClass = libavutil.AVClass
188
189
  AVFrame = libavutil.AVFrame
189
190
  AV_NUM_DATA_POINTERS = libavutil.AV_NUM_DATA_POINTERS
190
191
 
191
- # Significant deprecation and re-ordering of the entire structure makes it unmanagable to
192
+ # Significant deprecation and re-ordering of the entire structure makes it unmanageable to
192
193
  # track of all the changes via compat module. Re-define the structure and compat the new one going forward.
193
194
  if avcodec_version >= 61:
194
195
  AVCodecContext_Fields = [
@@ -217,7 +218,7 @@ if avcodec_version >= 61:
217
218
  ("framerate", AVRational),
218
219
 
219
220
  # Video fields
220
- ("ticks_per_frame", c_int), # Deprecated in 61.
221
+ ("ticks_per_frame", c_int), # Deprecated in 61. (removed in 62)
221
222
  ("delay", c_int),
222
223
  ("width", c_int),
223
224
  ("height", c_int),
@@ -334,7 +335,7 @@ if avcodec_version >= 61:
334
335
  POINTER(c_int), c_int)),
335
336
  ("profile", c_int),
336
337
  ("level", c_int),
337
- ("properties", c_uint),
338
+ ("properties", c_uint), # deprecated in 62
338
339
  ("skip_loop_filter", c_int), # enum AVDiscard
339
340
  ("skip_idct", c_int), # enum AVDiscard
340
341
  ("skip_frame", c_int), # enum AVDiscard
@@ -364,8 +365,11 @@ if avcodec_version >= 61:
364
365
  ("nb_decoded_side_data", c_int),
365
366
  ]
366
367
 
367
- compat.add_version_changes('avcodec', 61, AVCodecContext, AVCodecContext_Fields, removals=None)
368
+ compat.add_version_changes('avcodec', 61, AVCodecContext, AVCodecContext_Fields,
369
+ removals=None)
368
370
 
371
+ compat.add_version_changes('avcodec', 62, AVCodecContext, AVCodecContext_Fields,
372
+ removals=("ticks_per_frame",))
369
373
  else:
370
374
  AVCodecContext_Fields = [
371
375
  ('av_class', POINTER(AVClass)),
@@ -621,10 +625,10 @@ avcodec.avcodec_find_decoder_by_name.restype = POINTER(AVCodec)
621
625
  avcodec.avcodec_find_decoder_by_name.argtypes = [c_char_p]
622
626
 
623
627
  __all__ = [
624
- 'avcodec',
625
- 'FF_INPUT_BUFFER_PADDING_SIZE',
626
- 'AVPacket',
627
- 'AVCodecContext',
628
628
  'AV_CODEC_ID_VP8',
629
629
  'AV_CODEC_ID_VP9',
630
+ 'AV_INPUT_BUFFER_PADDING_SIZE',
631
+ 'AVCodecContext',
632
+ 'AVPacket',
633
+ 'avcodec',
630
634
  ]
@@ -14,8 +14,8 @@ _debug = debug_print('debug_media')
14
14
 
15
15
  avformat = pyglet.lib.load_library(
16
16
  'avformat',
17
- win32=('avformat-61', 'avformat-60', 'avformat-59', 'avformat-58'),
18
- darwin=('avformat.61', 'avformat.60', 'avformat.59', 'avformat.58')
17
+ win32=('avformat-62', 'avformat-61', 'avformat-60', 'avformat-59', 'avformat-58'),
18
+ darwin=('avformat.62', 'avformat.61', 'avformat.60', 'avformat.59', 'avformat.58')
19
19
  )
20
20
 
21
21
  avformat.avformat_version.restype = c_int
@@ -147,7 +147,7 @@ compat.add_version_changes('avformat', 58, AVStream, AVStream_Fields, removals=(
147
147
  compat.add_version_changes('avformat', 59, AVStream, AVStream_Fields,
148
148
  removals=('av_class', 'codec', 'recommended_encoder_configuration', 'info'))
149
149
 
150
- for compat_ver in (60, 61):
150
+ for compat_ver in (60, 61, 62):
151
151
  compat.add_version_changes('avformat', compat_ver, AVStream, AVStream_Fields,
152
152
  removals=('codec', 'recommended_encoder_configuration', 'info'),
153
153
  repositions=(compat.Reposition("codecpar", "id"),))
@@ -318,8 +318,8 @@ if avformat_version >= 61:
318
318
  ('io_close2', CFUNCTYPE(c_int, POINTER(AVFormatContext), POINTER(AVIOContext))) # Added in 59.
319
319
  ]
320
320
 
321
- compat.add_version_changes('avformat', 61, AVFormatContext, AVFormatContext_Fields, removals=None)
322
-
321
+ for compat_ver in (61, 62):
322
+ compat.add_version_changes('avformat', compat_ver, AVFormatContext, AVFormatContext_Fields, removals=None)
323
323
 
324
324
  else:
325
325
  AVFormatContext_Fields = [
@@ -410,7 +410,7 @@ else:
410
410
  compat.add_version_changes('avformat', 58, AVFormatContext, AVFormatContext_Fields,
411
411
  removals=('skip_estimate_duration_from_pts', 'max_probe_packets', 'io_close2'))
412
412
 
413
- for compat_ver in (59, 60):
413
+ for compat_ver in (59, 60, 61, 62):
414
414
  compat.add_version_changes('avformat', compat_ver, AVFormatContext, AVFormatContext_Fields,
415
415
  removals=('filename', 'internal'))
416
416
 
@@ -12,8 +12,8 @@ _debug = debug_print('debug_media')
12
12
 
13
13
  avutil = pyglet.lib.load_library(
14
14
  'avutil',
15
- win32=('avutil-59', 'avutil-58', 'avutil-57', 'avutil-56'),
16
- darwin=('avutil.59', 'avutil.58', 'avutil.57', 'avutil.56')
15
+ win32=('avutil-60', 'avutil-59', 'avutil-58', 'avutil-57', 'avutil-56'),
16
+ darwin=('avutil.60', 'avutil.59', 'avutil.58', 'avutil.57', 'avutil.56')
17
17
  )
18
18
 
19
19
  avutil.avutil_version.restype = c_int
@@ -148,9 +148,9 @@ AVFrame_Fields = [
148
148
  ('opaque', c_void_p),
149
149
  ('error', c_uint64 * AV_NUM_DATA_POINTERS), # Deprecated. Removed in 57.
150
150
  ('repeat_pict', c_int),
151
- ('interlaced_frame', c_int), # deprecated in 59. Targeted for removal. Use AV_FRAME_FLAG_INTERLACED
152
- ('top_field_first', c_int), # deprecated in 59. Targeted for removal. Use AV_FRAME_FLAG_TOP_FIELD_FIRST
153
- ('palette_has_changed', c_int), # deprecated in 59. Targeted for removal.
151
+ ('interlaced_frame', c_int), # deprecated in 59. Targeted for removal. Use AV_FRAME_FLAG_INTERLACED (removed in 60)
152
+ ('top_field_first', c_int), # deprecated in 59. Targeted for removal. Use AV_FRAME_FLAG_TOP_FIELD_FIRST (removed in 60)
153
+ ('palette_has_changed', c_int), # deprecated in 59. Targeted for removal. (removed in 60)
154
154
  ('reordered_opaque', c_int64), # removed in 59.
155
155
  ('sample_rate', c_int),
156
156
  ('channel_layout', c_uint64), # removed in 59.
@@ -170,7 +170,7 @@ AVFrame_Fields = [
170
170
  ('pkt_duration', c_int64), # removed in 59?
171
171
  ('metadata', POINTER(AVDictionary)),
172
172
  ('decode_error_flags', c_int),
173
- ('channels', c_int),
173
+ ('channels', c_int), # removed in 59.
174
174
  ('pkt_size', c_int), # deprecated in 59. use AV_CODEC_FLAG_COPY_OPAQUE to pass through arbitrary user data from packets to frames
175
175
  ('qscale_table', POINTER(c_int8)), # Deprecated. Removed in 57.
176
176
  ('qstride', c_int), # Deprecated. Removed in 57.
@@ -198,9 +198,18 @@ for compat_ver in (57, 58):
198
198
  compat.add_version_changes('avutil', 59, AVFrame, AVFrame_Fields,
199
199
  removals=('pkt_pts', 'error', 'qscale_table', 'qstride', 'qscale_type', 'qp_table_buf',
200
200
  'channels', 'channel_layout',
201
- 'coded_picture_number', 'display_picture_number', 'reordered_opaque', 'pkt_duration'
201
+ 'coded_picture_number', 'display_picture_number', 'reordered_opaque',
202
+ 'pkt_duration',
202
203
  ))
203
204
 
205
+ compat.add_version_changes('avutil', 60, AVFrame, AVFrame_Fields,
206
+ removals=('pkt_pts', 'error', 'qscale_table', 'qstride', 'qscale_type', 'qp_table_buf',
207
+ 'channels', 'channel_layout',
208
+ 'coded_picture_number', 'display_picture_number', 'reordered_opaque',
209
+ 'pkt_duration',
210
+ 'interlaced_frame', 'top_field_first', 'palette_has_changed', 'pkt_pos',
211
+ 'pkt_size',
212
+ ))
204
213
 
205
214
  AV_NOPTS_VALUE = -0x8000000000000000
206
215
  AV_TIME_BASE = 1000000
@@ -250,6 +259,12 @@ avutil.av_get_bytes_per_sample.argtypes = [c_int]
250
259
  avutil.av_strerror.restype = c_int
251
260
  avutil.av_strerror.argtypes = [c_int, c_char_p, c_size_t]
252
261
 
262
+ avutil.av_get_pix_fmt_name.restype = c_char_p
263
+ avutil.av_get_pix_fmt_name.argtypes = [c_int]
264
+
265
+ avutil.av_image_get_buffer_size.restype = c_int
266
+ avutil.av_image_get_buffer_size.argtypes = [c_int, c_int, c_int, c_int]
267
+
253
268
  avutil.av_image_fill_arrays.restype = c_int
254
269
  avutil.av_image_fill_arrays.argtypes = [POINTER(c_uint8) * 4, c_int * 4,
255
270
  POINTER(c_uint8), c_int, c_int, c_int, c_int]
@@ -13,8 +13,8 @@ _debug = debug_print('debug_media')
13
13
 
14
14
  swresample = pyglet.lib.load_library(
15
15
  'swresample',
16
- win32=('swresample-5', 'swresample-4', 'swresample-3'),
17
- darwin=('swresample.5', 'swresample.4', 'swresample.3')
16
+ win32=('swresample-6', 'swresample-5', 'swresample-4', 'swresample-3'),
17
+ darwin=('swresample.6', 'swresample.5', 'swresample.4', 'swresample.3')
18
18
  )
19
19
 
20
20
  swresample.swresample_version.restype = c_int