pyglet 2.1.dev3__tar.gz → 2.1.dev4__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 (796) hide show
  1. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/PKG-INFO +7 -3
  2. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/README.md +6 -2
  3. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/RELEASE_NOTES +26 -2
  4. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/contrib/toys/follow_mouse.py +11 -1
  5. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/index.rst +1 -0
  6. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/internal/doc.rst +31 -1
  7. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/events.rst +1 -1
  8. pyglet-2.1.dev4/doc/programming_guide/math.rst +115 -0
  9. pyglet-2.1.dev4/doc/programming_guide/opengles.rst +94 -0
  10. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/quickstart.rst +4 -0
  11. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/rendering.rst +28 -10
  12. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/events/register_event_type.py +1 -1
  13. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/events/window_platform_event.py +1 -2
  14. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version1/asteroid.py +1 -1
  15. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version2/asteroid.py +1 -1
  16. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version2/game/load.py +3 -1
  17. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version3/asteroid.py +1 -1
  18. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version3/game/player.py +2 -1
  19. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version3/game/resources.py +1 -1
  20. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version4/asteroid.py +1 -1
  21. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version4/game/player.py +2 -1
  22. {pyglet-2.1.dev3/examples/game/version5 → pyglet-2.1.dev4/examples/game/version4}/game/resources.py +1 -1
  23. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version5/asteroid.py +2 -2
  24. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version5/game/player.py +2 -1
  25. {pyglet-2.1.dev3/examples/game/version4 → pyglet-2.1.dev4/examples/game/version5}/game/resources.py +1 -1
  26. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/graphics/image_convert.py +0 -1
  27. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/graphics/image_display.py +7 -2
  28. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/gui/widgets.py +4 -4
  29. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/input/input.py +0 -1
  30. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/input/joystick.py +0 -1
  31. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/media_info.py +1 -1
  32. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/media_player.py +12 -6
  33. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/noisy/noisy.py +0 -1
  34. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/soundspace/reader.py +2 -1
  35. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/soundspace/soundspace.py +5 -5
  36. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/synthesizer.py +1 -1
  37. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/video.py +0 -1
  38. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/model/fpscamera.py +5 -5
  39. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/opengl/egl_context.py +7 -2
  40. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/opengl/minimal_shader.py +12 -1
  41. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/opengl/opengl_core.py +6 -3
  42. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/opengl/torus.py +8 -1
  43. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/programming_guide/events.py +0 -1
  44. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/programming_guide/hello_world.py +2 -2
  45. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/shapes.py +1 -1
  46. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/sprite/display_sprite.py +1 -1
  47. pyglet-2.1.dev4/examples/text/advanced_font.py +59 -0
  48. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/text/html_label.py +2 -2
  49. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/text/text_input.py +2 -2
  50. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/timer.py +1 -1
  51. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/window/camera_group.py +2 -3
  52. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/experimental/dist_field/README +1 -2
  53. pyglet-2.1.dev4/experimental/dist_field/renderfield.py +269 -0
  54. pyglet-2.1.dev4/experimental/instancing/sprite_instance.py +70 -0
  55. pyglet-2.1.dev4/experimental/instancing/sprite_instance_object.py +100 -0
  56. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/experimental/svg_test.py +22 -1
  57. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/make.py +7 -3
  58. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/__init__.py +55 -29
  59. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/__init__.pyi +7 -0
  60. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/app/win32.py +1 -1
  61. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/display/__init__.py +4 -2
  62. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/display/cocoa.py +4 -4
  63. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/display/headless.py +1 -1
  64. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/display/win32.py +22 -2
  65. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/display/xlib.py +13 -9
  66. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/event.py +21 -14
  67. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/experimental/particles.py +73 -39
  68. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/font/__init__.py +4 -6
  69. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/font/directwrite.py +5 -4
  70. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/font/freetype.py +3 -3
  71. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/font/freetype_lib.py +3 -3
  72. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/font/quartz.py +1 -1
  73. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/font/win32.py +4 -4
  74. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/__init__.py +23 -16
  75. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/agl.py +1 -1
  76. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/base.py +66 -37
  77. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/cocoa.py +69 -61
  78. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/gl.py +5 -2
  79. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/gl_compat.py +18 -3
  80. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/gl_info.py +47 -64
  81. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/glx.py +10 -19
  82. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/glx_info.py +38 -19
  83. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/glxext_arb.py +6 -10
  84. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/glxext_mesa.py +1 -1
  85. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/glxext_nv.py +4 -8
  86. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/headless.py +54 -40
  87. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/lib.py +21 -17
  88. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/lib_agl.py +10 -4
  89. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/lib_glx.py +16 -8
  90. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/lib_wgl.py +17 -11
  91. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/wgl_info.py +10 -12
  92. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/win32.py +77 -56
  93. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/xlib.py +63 -32
  94. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/graphics/__init__.py +246 -159
  95. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/graphics/allocation.py +61 -81
  96. pyglet-2.1.dev4/pyglet/graphics/instance.py +77 -0
  97. pyglet-2.1.dev4/pyglet/graphics/shader.py +1493 -0
  98. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/graphics/vertexarray.py +20 -11
  99. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/graphics/vertexbuffer.py +106 -78
  100. pyglet-2.1.dev4/pyglet/graphics/vertexdomain.py +888 -0
  101. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/__init__.py +104 -85
  102. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/codecs/__init__.py +9 -8
  103. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/lib.py +53 -55
  104. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/win32/__init__.py +1 -1
  105. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/win32/dinput.py +12 -10
  106. pyglet-2.1.dev4/pyglet/math.py +1486 -0
  107. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/shapes.py +6 -1
  108. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/__init__.py +23 -4
  109. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/caret.py +4 -4
  110. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/document.py +16 -16
  111. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/formats/html.py +4 -4
  112. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/formats/structured.py +3 -3
  113. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/layout/base.py +55 -36
  114. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/__init__.py +21 -0
  115. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/cocoa/pyglet_textview.py +8 -0
  116. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/win32/__init__.py +5 -13
  117. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/xlib/__init__.py +1 -0
  118. pyglet-2.1.dev4/pyproject.toml +112 -0
  119. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/text/test_style.py +4 -10
  120. pyglet-2.1.dev3/tests/unit/test_math.py → pyglet-2.1.dev4/tests/unit/math/test_mat.py +34 -42
  121. pyglet-2.1.dev4/tests/unit/math/test_quat.py +33 -0
  122. pyglet-2.1.dev4/tests/unit/math/test_vec2.py +416 -0
  123. pyglet-2.1.dev4/tests/unit/math/test_vec3.py +377 -0
  124. pyglet-2.1.dev4/tests/unit/math/test_vec4.py +397 -0
  125. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/gengl.py +21 -22
  126. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/wraptypes/wrap.py +52 -57
  127. pyglet-2.1.dev3/doc/README.md +0 -48
  128. pyglet-2.1.dev3/doc/programming_guide/math.rst +0 -76
  129. pyglet-2.1.dev3/examples/text/advanced_font.py +0 -49
  130. pyglet-2.1.dev3/experimental/dist_field/renderfield.py +0 -274
  131. pyglet-2.1.dev3/pyglet/graphics/shader.py +0 -1209
  132. pyglet-2.1.dev3/pyglet/graphics/vertexdomain.py +0 -526
  133. pyglet-2.1.dev3/pyglet/math.py +0 -972
  134. pyglet-2.1.dev3/pyproject.toml +0 -79
  135. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/.coveragerc +0 -0
  136. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  137. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  138. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
  139. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/.github/workflows/codeql.yml +0 -0
  140. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/.github/workflows/unittests.yml +0 -0
  141. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/.gitignore +0 -0
  142. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/.readthedocs.yml +0 -0
  143. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/LICENSE +0 -0
  144. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/MANIFEST.in +0 -0
  145. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/contrib/aseprite_codec/README +0 -0
  146. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/contrib/aseprite_codec/asedemo.py +0 -0
  147. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/contrib/aseprite_codec/aseprite.py +0 -0
  148. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/contrib/aseprite_codec/running.ase +0 -0
  149. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/contrib/logo3d/logo3d.jpg +0 -0
  150. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/contrib/logo3d/logo3d.obj.zip +0 -0
  151. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/contrib/logo3d/logo3d.wings +0 -0
  152. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/contrib/qt_sprite_preview.py +0 -0
  153. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/contrib/scenemanager.py +0 -0
  154. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/Makefile +0 -0
  155. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/_static/css/custom.css +0 -0
  156. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/_static/favicon.ico +0 -0
  157. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/_static/logo.png +0 -0
  158. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/_static/logo5.svg +0 -0
  159. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/_static/relatedlogo.png +0 -0
  160. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/conf.py +0 -0
  161. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/external_resources.rst +0 -0
  162. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/internal/contributing.rst +0 -0
  163. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/internal/dist.rst +0 -0
  164. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/internal/generated.rst +0 -0
  165. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/internal/gl.rst +0 -0
  166. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/internal/media_logging_manual.rst +0 -0
  167. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/internal/media_manual.rst +0 -0
  168. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/internal/testing.rst +0 -0
  169. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/internal/virtualenv.rst +0 -0
  170. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/internal/wraptypes-class.svg +0 -0
  171. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/internal/wraptypes.rst +0 -0
  172. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/make.bat +0 -0
  173. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/app.rst +0 -0
  174. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/canvas.rst +0 -0
  175. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/clock.rst +0 -0
  176. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/customtypes.rst +0 -0
  177. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/event.rst +0 -0
  178. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/font.rst +0 -0
  179. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/gl.rst +0 -0
  180. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/graphics/allocation.rst +0 -0
  181. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/graphics/index.rst +0 -0
  182. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/graphics/shader.rst +0 -0
  183. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/graphics/vertexbuffer.rst +0 -0
  184. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/graphics/vertexdomain.rst +0 -0
  185. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/gui.rst +0 -0
  186. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/image/animation.rst +0 -0
  187. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/image/atlas.rst +0 -0
  188. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/image/buffer.rst +0 -0
  189. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/image/index.rst +0 -0
  190. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/info.rst +0 -0
  191. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/input.rst +0 -0
  192. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/math.rst +0 -0
  193. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/media.rst +0 -0
  194. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/media_synthesis.rst +0 -0
  195. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/pyglet.rst +0 -0
  196. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/resource.rst +0 -0
  197. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/shapes.rst +0 -0
  198. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/sprite.rst +0 -0
  199. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/text/caret.rst +0 -0
  200. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/text/document.rst +0 -0
  201. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/text/index.rst +0 -0
  202. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/text/layout.rst +0 -0
  203. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/window.rst +0 -0
  204. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/window_key.rst +0 -0
  205. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/modules/window_mouse.rst +0 -0
  206. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/context.rst +0 -0
  207. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/debug.rst +0 -0
  208. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/eventloop.rst +0 -0
  209. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/examplegame.rst +0 -0
  210. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/gl.rst +0 -0
  211. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/gui.rst +0 -0
  212. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/image.rst +0 -0
  213. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/abstract_image.png +0 -0
  214. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/abstract_image.svg +0 -0
  215. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/buffer_image.png +0 -0
  216. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/buffer_image.svg +0 -0
  217. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/context_flow.png +0 -0
  218. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/context_flow.svg +0 -0
  219. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
  220. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_mac_default.png +0 -0
  221. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
  222. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_mac_no.png +0 -0
  223. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
  224. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
  225. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
  226. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
  227. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
  228. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
  229. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_mac_text.png +0 -0
  230. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
  231. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
  232. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_default.png +0 -0
  233. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_hand.png +0 -0
  234. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_help.png +0 -0
  235. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_no.png +0 -0
  236. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_size.png +0 -0
  237. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
  238. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
  239. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
  240. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
  241. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_text.png +0 -0
  242. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_wait.png +0 -0
  243. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
  244. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/explosion.png +0 -0
  245. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/font_metrics.png +0 -0
  246. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/font_metrics.svg +0 -0
  247. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/image_classes.png +0 -0
  248. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/image_classes.svg +0 -0
  249. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/image_grid.png +0 -0
  250. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/image_grid.svg +0 -0
  251. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/image_sequence.png +0 -0
  252. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/image_sequence.svg +0 -0
  253. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/mouse_coordinates.png +0 -0
  254. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
  255. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/screens.png +0 -0
  256. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/screens.svg +0 -0
  257. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/text_classes.png +0 -0
  258. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/text_classes.svg +0 -0
  259. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/window_location.png +0 -0
  260. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/window_location.svg +0 -0
  261. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/window_osx_borderless.png +0 -0
  262. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/window_osx_default.png +0 -0
  263. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/window_osx_dialog.png +0 -0
  264. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/window_osx_tool.png +0 -0
  265. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/window_xp_default.png +0 -0
  266. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/window_xp_dialog.png +0 -0
  267. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/window_xp_overlay.png +0 -0
  268. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/window_xp_tool.png +0 -0
  269. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/img/window_xp_transparent.png +0 -0
  270. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/input.rst +0 -0
  271. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/installation.rst +0 -0
  272. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/keyboard.rst +0 -0
  273. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/media.rst +0 -0
  274. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/migration.rst +0 -0
  275. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/mouse.rst +0 -0
  276. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/options.rst +0 -0
  277. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/resources.rst +0 -0
  278. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/shapes.rst +0 -0
  279. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/text.rst +0 -0
  280. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/time.rst +0 -0
  281. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/programming_guide/windowing.rst +0 -0
  282. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/doc/requirements.txt +0 -0
  283. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/clipboard.py +0 -0
  284. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/dpi_scaled_window.py +0 -0
  285. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/events/events_key_state_handler.py +0 -0
  286. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/events/window_events.py +0 -0
  287. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/file_dialog.py +0 -0
  288. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/resources/asteroid.png +0 -0
  289. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/resources/bullet.png +0 -0
  290. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/resources/bullet.wav +0 -0
  291. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/resources/engine_flame.png +0 -0
  292. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/resources/player.png +0 -0
  293. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version1/game/__init__.py +0 -0
  294. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version1/game/load.py +0 -0
  295. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version1/game/resources.py +0 -0
  296. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version2/game/__init__.py +0 -0
  297. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version2/game/physicalobject.py +0 -0
  298. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version2/game/player.py +0 -0
  299. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version2/game/resources.py +0 -0
  300. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version3/game/__init__.py +0 -0
  301. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version3/game/load.py +0 -0
  302. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version3/game/physicalobject.py +0 -0
  303. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version3/game/util.py +0 -0
  304. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version4/game/__init__.py +0 -0
  305. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version4/game/asteroid.py +0 -0
  306. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version4/game/bullet.py +0 -0
  307. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version4/game/load.py +0 -0
  308. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version4/game/physicalobject.py +0 -0
  309. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version4/game/util.py +0 -0
  310. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version5/game/__init__.py +0 -0
  311. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version5/game/asteroid.py +0 -0
  312. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version5/game/bullet.py +0 -0
  313. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version5/game/load.py +0 -0
  314. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version5/game/physicalobject.py +0 -0
  315. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/game/version5/game/util.py +0 -0
  316. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/gui/bar.png +0 -0
  317. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/gui/button_hover.png +0 -0
  318. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/gui/button_pressed.png +0 -0
  319. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/gui/button_unpressed.png +0 -0
  320. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/gui/knob.png +0 -0
  321. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/hello_world.py +0 -0
  322. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/input/apple_remote.py +0 -0
  323. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/input/controller.py +0 -0
  324. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/input/tablet.py +0 -0
  325. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/noisy/README +0 -0
  326. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/noisy/ball.png +0 -0
  327. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/noisy/ball.wav +0 -0
  328. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/soundspace/README +0 -0
  329. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/soundspace/res/bass.wav +0 -0
  330. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/soundspace/res/drums.wav +0 -0
  331. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/soundspace/res/guitar.wav +0 -0
  332. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/soundspace/res/piano.wav +0 -0
  333. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/media/soundspace/res/space.txt +0 -0
  334. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/model/box.mtl +0 -0
  335. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/model/box.obj +0 -0
  336. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/model/logo3d.mtl +0 -0
  337. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/model/logo3d.obj +0 -0
  338. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/model/model.py +0 -0
  339. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/model/pyglet.png +0 -0
  340. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/opengl/compute_shader.py +0 -0
  341. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/opengl/opengl_context.py +0 -0
  342. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/opengl/opengl_scissor.py +0 -0
  343. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/opengl/pyglet.png +0 -0
  344. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/programming_guide/animation.py +0 -0
  345. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/programming_guide/dinosaur.gif +0 -0
  346. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/programming_guide/image_viewer.py +0 -0
  347. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/programming_guide/kitten.jpg +0 -0
  348. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/programming_guide/window_subclass.py +0 -0
  349. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/resources/kitten.jpg +0 -0
  350. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/resources/pyglet.png +0 -0
  351. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/sprite/depth_sprite.py +0 -0
  352. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/sprite/multi_texture_sprite.py +0 -0
  353. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/sprite/sprite_batching.py +0 -0
  354. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/text/pyglet.png +0 -0
  355. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/window/camera.py +0 -0
  356. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/window/fixed_resolution.py +0 -0
  357. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/window/fps_change.py +0 -0
  358. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/window/multiple_windows.py +0 -0
  359. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/window/overlay_window.py +0 -0
  360. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/examples/window/transparent_window.py +0 -0
  361. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/experimental/dist_field/genfield.py +0 -0
  362. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/experimental/dist_field/py.df.png +0 -0
  363. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/experimental/dist_field/py.png +0 -0
  364. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/experimental/flaccodec.py +0 -0
  365. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/experimental/hello_world.svg +0 -0
  366. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/experimental/spritebenchmark.py +0 -0
  367. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/experimental/wayland/gbm_egl_context.py +0 -0
  368. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/experimental/win32priority.py +0 -0
  369. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/app/__init__.py +0 -0
  370. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/app/base.py +0 -0
  371. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/app/cocoa.py +0 -0
  372. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/app/xlib.py +0 -0
  373. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/clock.py +0 -0
  374. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/customtypes.py +0 -0
  375. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/display/base.py +0 -0
  376. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/display/xlib_vidmoderestore.py +0 -0
  377. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/experimental/README.md +0 -0
  378. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/experimental/geoshader_sprite.py +0 -0
  379. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/experimental/hidraw.py +0 -0
  380. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/experimental/net.py +0 -0
  381. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/extlibs/__init__.py +0 -0
  382. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/extlibs/earcut.py +0 -0
  383. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/extlibs/png.py +0 -0
  384. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/font/base.py +0 -0
  385. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/font/fontconfig.py +0 -0
  386. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/font/ttf.py +0 -0
  387. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/font/user.py +0 -0
  388. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/wgl.py +0 -0
  389. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/wglext_arb.py +0 -0
  390. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gl/wglext_nv.py +0 -0
  391. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gui/__init__.py +0 -0
  392. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gui/frame.py +0 -0
  393. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gui/ninepatch.py +0 -0
  394. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/gui/widgets.py +0 -0
  395. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/animation.py +0 -0
  396. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/atlas.py +0 -0
  397. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/buffer.py +0 -0
  398. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/codecs/bmp.py +0 -0
  399. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/codecs/dds.py +0 -0
  400. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/codecs/gdiplus.py +0 -0
  401. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
  402. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/codecs/gif.py +0 -0
  403. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/codecs/pil.py +0 -0
  404. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/codecs/png.py +0 -0
  405. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/codecs/quartz.py +0 -0
  406. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/codecs/s3tc.py +0 -0
  407. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/image/codecs/wic.py +0 -0
  408. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/info.py +0 -0
  409. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/__init__.py +0 -0
  410. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/base.py +0 -0
  411. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/controller.py +0 -0
  412. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/controller_db.py +0 -0
  413. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/linux/__init__.py +0 -0
  414. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/linux/evdev.py +0 -0
  415. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/linux/evdev_constants.py +0 -0
  416. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/linux/x11_xinput.py +0 -0
  417. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
  418. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/macos/__init__.py +0 -0
  419. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/macos/darwin_hid.py +0 -0
  420. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/win32/__init__.py +0 -0
  421. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/win32/directinput.py +0 -0
  422. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/win32/wintab.py +0 -0
  423. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/input/win32/xinput.py +0 -0
  424. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/__init__.py +0 -0
  425. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/darwin/__init__.py +0 -0
  426. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
  427. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/darwin/cocoapy/cocoalibs.py +0 -0
  428. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
  429. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
  430. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/darwin/coreaudio.py +0 -0
  431. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/darwin/quartzkey.py +0 -0
  432. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/egl/__init__.py +0 -0
  433. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/egl/egl.py +0 -0
  434. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/egl/eglext.py +0 -0
  435. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/egl/lib.py +0 -0
  436. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/ioctl.py +0 -0
  437. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/wayland/__init__.py +0 -0
  438. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/wayland/gbm.py +0 -0
  439. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/wayland/xkbcommon.py +0 -0
  440. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/win32/com.py +0 -0
  441. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/win32/constants.py +0 -0
  442. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/win32/context_managers.py +0 -0
  443. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/win32/libwintab.py +0 -0
  444. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/win32/types.py +0 -0
  445. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/win32/winkey.py +0 -0
  446. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/x11/__init__.py +0 -0
  447. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/x11/cursorfont.py +0 -0
  448. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/x11/xf86vmode.py +0 -0
  449. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/x11/xinerama.py +0 -0
  450. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/x11/xinput.py +0 -0
  451. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/x11/xlib.py +0 -0
  452. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/libs/x11/xsync.py +0 -0
  453. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/__init__.py +0 -0
  454. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/buffered_logger.py +0 -0
  455. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/__init__.py +0 -0
  456. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/base.py +0 -0
  457. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/coreaudio.py +0 -0
  458. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/ffmpeg.py +0 -0
  459. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
  460. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/ffmpeg_lib/compat.py +0 -0
  461. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +0 -0
  462. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +0 -0
  463. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +0 -0
  464. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +0 -0
  465. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +0 -0
  466. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/gstreamer.py +0 -0
  467. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/pyogg.py +0 -0
  468. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/wave.py +0 -0
  469. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/codecs/wmf.py +0 -0
  470. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/devices/__init__.py +0 -0
  471. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/devices/base.py +0 -0
  472. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/devices/win32.py +0 -0
  473. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/__init__.py +0 -0
  474. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/base.py +0 -0
  475. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/directsound/__init__.py +0 -0
  476. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/directsound/adaptation.py +0 -0
  477. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/directsound/exceptions.py +0 -0
  478. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/directsound/interface.py +0 -0
  479. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/directsound/lib_dsound.py +0 -0
  480. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/listener.py +0 -0
  481. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/openal/__init__.py +0 -0
  482. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/openal/adaptation.py +0 -0
  483. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/openal/interface.py +0 -0
  484. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/openal/lib_alc.py +0 -0
  485. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/openal/lib_openal.py +0 -0
  486. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/pulse/__init__.py +0 -0
  487. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/pulse/adaptation.py +0 -0
  488. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/pulse/interface.py +0 -0
  489. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
  490. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/silent/__init__.py +0 -0
  491. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/silent/adaptation.py +0 -0
  492. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
  493. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/xaudio2/adaptation.py +0 -0
  494. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/xaudio2/interface.py +0 -0
  495. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +0 -0
  496. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/exceptions.py +0 -0
  497. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/instrumentation.py +0 -0
  498. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/player.py +0 -0
  499. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/player_worker_thread.py +0 -0
  500. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/media/synthesis.py +0 -0
  501. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/model/__init__.py +0 -0
  502. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/model/codecs/__init__.py +0 -0
  503. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/model/codecs/gltf.py +0 -0
  504. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/model/codecs/obj.py +0 -0
  505. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/resource.py +2 -2
  506. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/sprite.py +0 -0
  507. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/formats/__init__.py +0 -0
  508. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/formats/attributed.py +0 -0
  509. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/formats/plaintext.py +0 -0
  510. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/layout/__init__.py +0 -0
  511. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/layout/incremental.py +0 -0
  512. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/layout/scrolling.py +0 -0
  513. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/text/runlist.py +0 -0
  514. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/util.py +0 -0
  515. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/cocoa/__init__.py +0 -0
  516. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/cocoa/pyglet_delegate.py +0 -0
  517. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/cocoa/pyglet_view.py +0 -0
  518. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/cocoa/pyglet_window.py +0 -0
  519. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/cocoa/systemcursor.py +0 -0
  520. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/event.py +0 -0
  521. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/headless/__init__.py +0 -0
  522. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/key.py +0 -0
  523. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pyglet/window/mouse.py +0 -0
  524. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/pytest.ini +0 -0
  525. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/setup.py +0 -0
  526. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/__init__.py +0 -0
  527. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/annotations.py +0 -0
  528. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/base/__init__.py +0 -0
  529. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/base/data.py +0 -0
  530. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/base/event_loop.py +0 -0
  531. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/base/interactive.py +0 -0
  532. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/base/performance.py +0 -0
  533. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/conftest.py +0 -0
  534. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/fonts/README +0 -0
  535. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/fonts/action_man.ttf +0 -0
  536. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/fonts/action_man_bold.ttf +0 -0
  537. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
  538. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/fonts/action_man_italic.ttf +0 -0
  539. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
  540. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/8bpp.gif +0 -0
  541. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/cursor.png +0 -0
  542. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/dinosaur.gif +0 -0
  543. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/gdk_close.png +0 -0
  544. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/grey_background.png +0 -0
  545. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/icon1.png +0 -0
  546. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/icon_size1.png +0 -0
  547. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/icon_size2.png +0 -0
  548. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/icon_size3.png +0 -0
  549. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/icon_size4.png +0 -0
  550. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/icon_size5.png +0 -0
  551. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/l.png +0 -0
  552. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/la.png +0 -0
  553. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/multitexture.png +0 -0
  554. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgb.png +0 -0
  555. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgb_16bpp.bmp +0 -0
  556. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgb_1bpp.bmp +0 -0
  557. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgb_24bpp.bmp +0 -0
  558. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgb_32bpp.bmp +0 -0
  559. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgb_4bpp.bmp +0 -0
  560. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgb_8bpp.bmp +0 -0
  561. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgb_8bpp.png +0 -0
  562. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgb_8bpp_trans.png +0 -0
  563. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgb_dxt1.dds +0 -0
  564. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgba.png +0 -0
  565. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgba_32bpp.bmp +0 -0
  566. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgba_dxt1.dds +0 -0
  567. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgba_dxt3.dds +0 -0
  568. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/rgba_dxt5.dds +0 -0
  569. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
  570. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/README +0 -0
  571. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/alert.wav +0 -0
  572. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/login.wav +0 -0
  573. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/logout.wav +0 -0
  574. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/receive.wav +0 -0
  575. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/send.wav +0 -0
  576. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
  577. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
  578. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
  579. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
  580. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
  581. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
  582. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
  583. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
  584. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
  585. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
  586. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
  587. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
  588. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/models/logo3d.mtl +0 -0
  589. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/data/models/logo3d.obj +0 -0
  590. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/__init__.py +0 -0
  591. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/app/__init__.py +0 -0
  592. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/app/test_eventloop.py +0 -0
  593. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/font/test_fontconfig.py +0 -0
  594. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/font/test_freetype_face.py +0 -0
  595. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/graphics/__init__.py +0 -0
  596. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/graphics/test_allocation.py +0 -0
  597. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/graphics/test_batch_migration.py +0 -0
  598. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/image/__init__.py +0 -0
  599. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/image/test_gdkpixbuf2.py +0 -0
  600. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/image/test_imagegrid.py +0 -0
  601. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/image/test_texture3d.py +0 -0
  602. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/media/__init__.py +0 -0
  603. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/media/mock_player.py +0 -0
  604. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/media/test_directsound.py +0 -0
  605. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/media/test_driver.py +0 -0
  606. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/media/test_openal.py +0 -0
  607. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/media/test_player.py +0 -0
  608. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/media/test_pulse.py +0 -0
  609. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/model/__init__.py +0 -0
  610. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/model/test_loading.py +0 -0
  611. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/platform/__init__.py +0 -0
  612. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/platform/test_win_context_managers.py +0 -0
  613. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/platform/test_win_multicore_clock.py +0 -0
  614. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/resource/__init__.py +0 -0
  615. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
  616. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/resource/dir1/f2.txt +0 -0
  617. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/resource/dir1/res.zip +0 -0
  618. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/resource/dir2/f6.txt +0 -0
  619. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/resource/f1.txt +0 -0
  620. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/resource/rgbm.png +0 -0
  621. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/resource/test_resource_image_loading.py +0 -0
  622. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/resource/test_resource_loading.py +0 -0
  623. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/text/__init__.py +0 -0
  624. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/text/test_empty_document.py +0 -0
  625. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/text/test_label_creation.py +0 -0
  626. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/text/test_layout_creation.py +0 -0
  627. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/window/__init__.py +0 -0
  628. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/window/test_context_share.py +0 -0
  629. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/window/test_event_sequence.py +0 -0
  630. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/integration/window/test_window_caption.py +0 -0
  631. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/__init__.py +0 -0
  632. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/conftest.py +0 -0
  633. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/image/__init__.py +0 -0
  634. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/image/test_image.py +0 -0
  635. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/media/__init__.py +0 -0
  636. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/media/test_player.py +0 -0
  637. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/screenshots/committed/README +0 -0
  638. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/screenshots/session/README +0 -0
  639. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/shapes/test_shapes.py +0 -0
  640. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/test_interactive_test_base.py +0 -0
  641. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/text/__init__.py +0 -0
  642. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/text/test_caret_color.py +0 -0
  643. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/text/test_content_valign.py +0 -0
  644. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/text/test_html.py +0 -0
  645. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/text/test_inline_elements.py +0 -0
  646. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/text/test_inline_elements_style_change.py +0 -0
  647. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/text/test_multiline_wrap.py +0 -0
  648. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/text/test_plain.py +0 -0
  649. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/window/__init__.py +0 -0
  650. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/window/test_window_events.py +0 -0
  651. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/window/test_window_fullscreen.py +0 -0
  652. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/window/test_window_modes.py +0 -0
  653. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/window/test_window_multisample.py +0 -0
  654. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/window/test_window_open.py +0 -0
  655. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/window/test_window_settings.py +0 -0
  656. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/window/test_window_styles.py +0 -0
  657. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/window/window_util.py +0 -0
  658. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/interactive/windowed_test_base.py +0 -0
  659. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/requirements.txt +0 -0
  660. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/__init__.py +0 -0
  661. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/conftest.py +0 -0
  662. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/media/__init__.py +0 -0
  663. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/media/test_listener.py +0 -0
  664. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/media/test_player.py +0 -0
  665. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/media/test_sources.py +0 -0
  666. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/media/test_synthesis.py +0 -0
  667. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/shapes/__init__.py +0 -0
  668. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/shapes/conftest.py +0 -0
  669. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
  670. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/shapes/test_shapes.py +0 -0
  671. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/test_atlas.py +0 -0
  672. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/test_clock.py +0 -0
  673. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/test_clock_freq.py +0 -0
  674. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/test_events.py +0 -0
  675. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/test_font.py +0 -0
  676. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/test_input.py +0 -0
  677. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/test_resource_path.py +0 -0
  678. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/test_sprite.py +0 -0
  679. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/test_text.py +0 -0
  680. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/text/__init__.py +0 -0
  681. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/text/test_caret.py +0 -0
  682. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tests/unit/text/test_layout.py +0 -0
  683. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/al_info.py +0 -0
  684. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/bokeh_timeline.py +0 -0
  685. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/compare.py +0 -0
  686. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/configure.py +0 -0
  687. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/extractors.py +0 -0
  688. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/fs.py +0 -0
  689. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/mp.py +0 -0
  690. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/mpexceptions.py +0 -0
  691. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/playmany.py +0 -0
  692. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
  693. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/readme_run_tests.txt +0 -0
  694. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/report.py +0 -0
  695. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/reports.py +0 -0
  696. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/retry_crashed.py +0 -0
  697. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/run_test_suite.py +0 -0
  698. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/summarize.py +0 -0
  699. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/test_instrumentation.py +0 -0
  700. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/ffmpeg/timeline.py +0 -0
  701. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/gencontrollerdb.py +0 -0
  702. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/genwrappers.py +0 -0
  703. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/gl.template +0 -0
  704. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/gl.xml +0 -0
  705. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/gl_info.py +0 -0
  706. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/inspect_font.py +0 -0
  707. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/requirements.txt +0 -0
  708. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/wgl.h +0 -0
  709. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/wraptypes/__init__.py +0 -0
  710. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/wraptypes/cparser.py +0 -0
  711. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/wraptypes/ctypesparser.py +0 -0
  712. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/wraptypes/lex.py +0 -0
  713. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/wraptypes/preprocessor.py +0 -0
  714. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/tools/wraptypes/yacc.py +0 -0
  715. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/LICENSE.txt +0 -0
  716. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/README.rst +0 -0
  717. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/assets/favicon.ico +0 -0
  718. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/assets/static/css/example-custom-styles.css +0 -0
  719. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/assets/static/images/pyglet.png +0 -0
  720. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/content/404.html/contents.lr +0 -0
  721. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/content/404.html/ngc-5793.jpg +0 -0
  722. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/content/authors/benjamin/contents.lr +0 -0
  723. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/content/authors/benjamin/pyglet.png +0 -0
  724. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/content/authors/contents.lr +0 -0
  725. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/content/blog/contents.lr +0 -0
  726. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/content/blog/welcome-blog/contents.lr +0 -0
  727. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/content/contents.lr +0 -0
  728. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/content/eclipse.jpg +0 -0
  729. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/pyglet.lektorproject +0 -0
  730. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/AUTHORS.txt +0 -0
  731. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/CHANGELOG.md +0 -0
  732. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
  733. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/LICENSE.txt +0 -0
  734. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/NOTICE.txt +0 -0
  735. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/README.md +0 -0
  736. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
  737. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
  738. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
  739. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
  740. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  741. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  742. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  743. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
  744. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
  745. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
  746. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
  747. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
  748. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
  749. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
  750. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
  751. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
  752. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
  753. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
  754. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
  755. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
  756. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
  757. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
  758. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
  759. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
  760. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
  761. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
  762. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
  763. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
  764. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
  765. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/images/blog-index.png +0 -0
  766. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/images/full-blog.png +0 -0
  767. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/images/full-page.png +0 -0
  768. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/images/gallery-404.png +0 -0
  769. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
  770. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
  771. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
  772. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/models/404.ini +0 -0
  773. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/models/author.ini +0 -0
  774. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/models/authors.ini +0 -0
  775. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/models/blog-post.ini +0 -0
  776. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/models/blog.ini +0 -0
  777. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/models/page.ini +0 -0
  778. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/models/single-layout.ini +0 -0
  779. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/404.html +0 -0
  780. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/author.html +0 -0
  781. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/authors.html +0 -0
  782. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
  783. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
  784. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
  785. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
  786. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
  787. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
  788. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/blog-post.html +0 -0
  789. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/blog.html +0 -0
  790. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/layout.html +0 -0
  791. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
  792. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
  793. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/none.html +0 -0
  794. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/page.html +0 -0
  795. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/templates/single-layout.html +0 -0
  796. {pyglet-2.1.dev3 → pyglet-2.1.dev4}/website/themes/lektor-icon/theme.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyglet
3
- Version: 2.1.dev3
3
+ Version: 2.1.dev4
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
@@ -128,10 +128,14 @@ code, is a bug that deserves to be reported on a ticket.
128
128
 
129
129
  ## Building Docs
130
130
 
131
+ [Documentation and Type Hints]: https://pyglet.readthedocs.io/en/latest/internal/doc.html
132
+
133
+ To get started quickly:
134
+
131
135
  pip install -r doc/requirements.txt
132
- python setup.py build_sphinx
136
+ python make.py docs
133
137
 
134
- Please check [the README.md file in the doc directory](doc/README.md) for more details.
138
+ Please check [Documentation and Type Hints][] guide to learn more.
135
139
 
136
140
  ## Testing
137
141
 
@@ -119,10 +119,14 @@ code, is a bug that deserves to be reported on a ticket.
119
119
 
120
120
  ## Building Docs
121
121
 
122
+ [Documentation and Type Hints]: https://pyglet.readthedocs.io/en/latest/internal/doc.html
123
+
124
+ To get started quickly:
125
+
122
126
  pip install -r doc/requirements.txt
123
- python setup.py build_sphinx
127
+ python make.py docs
124
128
 
125
- Please check [the README.md file in the doc directory](doc/README.md) for more details.
129
+ Please check [Documentation and Type Hints][] guide to learn more.
126
130
 
127
131
  ## Testing
128
132
 
@@ -2,13 +2,37 @@ pyglet 2.0.16
2
2
 
3
3
  Changes and Improvements
4
4
  ------------------------
5
- - library-wide overhaul of docstrings, and addition of type hints (#1084)
5
+ - library-wide overhaul of docstrings, and addition of type hints. (#1084)
6
+ - sprite: Add `blend_mode` property to change BLEND_MODE without needing to re-create the Sprite.
7
+ - sprite: Deprecate `AdvancedSprite`, and merge functionality into default `Sprite` class.
8
+ - sprite: Add `get_sprite_group` method, allowing easy usage of custom SpriteGroups in subclasses.
9
+ - image: Code for `Texture.blit` has been inlined. (#1109)
10
+ - shapes: Concave polygon can be drawn by earcutting a polygon. (#1121)
11
+ - shapes: Add Rounded Rectangle shape. (#1131)
12
+ - shapes: Add `thickness` property to `Box` shapes.
13
+ - libs: Add `pyglet.libs.ioctl` module, to consolidate shared code on Linux.
14
+ - gui: Add a pseudo "nine-path" Sprite-like class for variable sized windows.
15
+ - math: Add `match` statement support to Vec classes.
16
+ - graphics: Don't re-create a Shader each call to `draw` or `draw_indexed`.
17
+ - pyglet.options: Add runtime typing enforcement to user-set options.
18
+ - pyglet.experimental: Add simple GPU-based particle system in `particles` module.
19
+ - text.layout: Update `on_style_text` to be more efficient.
6
20
 
7
21
  Bugfixes
8
22
  --------
9
- - resource: Fix indexing of directories inside of Zip files. Remove broken code for multi-part archives.
23
+ - window.macos: Fix constant appearance of blinking caret on M1 based Macs. (#1160)
24
+ - window.xlib: Avoid XSet/UnsetICFocus calls when _have_utf8 is False. (#1049)
25
+ - window.win32: Fix application not updating timers and redrawing during moves. (#1125)
10
26
  - shapes: Add missing `thickness` property to Box.
11
27
  - shapes: Add missing docstrings to `Arc` `thickness` property.
28
+ - shapes: Fix ShapeBase.group setter to only migrate batch when batch is not None. (#1090)
29
+ - shapes: BezierCurve: fix miter artifacts from #1134. (#1155)
30
+ - examples: Fix "more" button outline in soundspace example. (#1085)
31
+ - tests: Fix a rarely-failing audio time test. (#1092)
32
+ - input.controller: Fix accidentially missed mappings.
33
+ - graphics.shader: Add missing parent program reference in Uniforms (#1103)
34
+ - graphics.domain: Fix VertexList.resize method.
35
+ - text.directwrite: Fix crash with dw_legacy_naming. Check if a custom collection exists before find a font with it.
12
36
 
13
37
 
14
38
  pyglet 2.0.15
@@ -16,7 +16,17 @@ import sys
16
16
  import random
17
17
 
18
18
  import pyglet
19
- from pyglet.gl import *
19
+ from pyglet.gl import (
20
+ glEnable,
21
+ glBlendFunc,
22
+ glFlush,
23
+ Config,
24
+ GL_BLEND,
25
+ GL_LINE_SMOOTH,
26
+ GL_LINES,
27
+ GL_SRC_ALPHA,
28
+ GL_ONE_MINUS_SRC_ALPHA,
29
+ )
20
30
 
21
31
  # open a single-buffered window so we can do cheap accumulation
22
32
  config = Config(double_buffer=False)
@@ -61,6 +61,7 @@ If you are migrating from an older version of pyglet, please read through
61
61
  programming_guide/time
62
62
  programming_guide/context
63
63
  programming_guide/gl
64
+ programming_guide/opengles
64
65
  programming_guide/math
65
66
  programming_guide/eventloop
66
67
  programming_guide/examplegame
@@ -191,7 +191,8 @@ some helper functions for common build and distribution related tasks. For docs,
191
191
  ./make.py docs --open
192
192
 
193
193
 
194
- If the build succeeds, the generated static web pages will be in ``doc/_build/html``.
194
+ If the build succeeds, a browser window will open. You can skip this by omitting `--open`.
195
+ The generated static web pages will be in ``doc/_build/html``.
195
196
 
196
197
  You can also build the documentation by using Sphinx's ``Makefile``:
197
198
 
@@ -202,6 +203,35 @@ You can also build the documentation by using Sphinx's ``Makefile``:
202
203
  make.bat html # Windows
203
204
 
204
205
 
206
+ Note that there are also additional build targets beyond HTML, but
207
+ they may require installing additional dependencies. Run ``make help``
208
+ to see a list of them:
209
+
210
+ .. code:: console
211
+
212
+ $ make help
213
+ Please use `make <target>' where <target> is one of
214
+ html to make standalone HTML files
215
+ dirhtml to make HTML files named index.html in directories
216
+ singlehtml to make a single large HTML file
217
+ pickle to make pickle files
218
+ json to make JSON files
219
+ htmlhelp to make HTML files and a HTML help project
220
+ qthelp to make HTML files and a qthelp project
221
+ devhelp to make HTML files and a Devhelp project
222
+ epub to make an epub
223
+ latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
224
+ latexpdf to make LaTeX files and run them through pdflatex
225
+ text to make text files
226
+ man to make manual pages
227
+ texinfo to make Texinfo files
228
+ info to make Texinfo files and run them through makeinfo
229
+ gettext to make PO message catalogs
230
+ changes to make an overview of all changed/added/deprecated items
231
+ linkcheck to check all external links for integrity
232
+ doctest to run all doctests embedded in the documentation (if enabled)
233
+
234
+
205
235
  auto-generated details
206
236
  ^^^^^^^^^^^^^^^^^^^^^^
207
237
 
@@ -17,7 +17,7 @@ your own classes easily.
17
17
  Even handlers are simply functions or methods that are written to accept the same
18
18
  arguments as the dispatched event. Event handlers can be registered or unregistered
19
19
  during runtime. More than one handler can be registered to receive the same events,
20
- which is described in the following sections. Event dispatchers can _optionally_ have
20
+ which is described in the following sections. Event dispatchers can *optionally* have
21
21
  default handlers for some of their events. Your own handlers can replace these entirely,
22
22
  or just be added on.
23
23
 
@@ -0,0 +1,115 @@
1
+ .. _guide_math:
2
+
3
+ Matrix and Vector Math
4
+ ======================
5
+
6
+ Modern OpenGL depends on matrixes for projection, translation, and other things. To
7
+ provide out-of-the-box functionality, pyglet's :py:mod:`~pyglet.math` module includes
8
+ the necessary Matrix and Vector types to cover common use cases. Provided types are:
9
+ :py:class:`~pyglet.math.Vec2`, :py:class:`~pyglet.math.Vec3`, :py:class:`~pyglet.math.Vec4`,
10
+ :py:class:`~pyglet.math.Mat3`, and :py:class:`~pyglet.math.Mat4`.
11
+
12
+ See the :py:mod:`~pyglet.math` API documentation for a full list of methods and operations
13
+ that these objects support.
14
+
15
+ .. note:: Matrix and Vector types are ``tuple`` subclasses. They are therefore
16
+ immutable - all operations return a **new** object; they are not updated in-place.
17
+
18
+
19
+ Creating a Matrix
20
+ -----------------
21
+ A Matrix can be created with no arguments, or by passing the initial values::
22
+
23
+ my_matrix = Mat4()
24
+ # or
25
+ my_matrix = Mat4(1.0, 0.0, 0.0, 0.0,
26
+ 0.0, 1.0, 0.0, 0.0,
27
+ 0.0, 0.0, 1.0, 0.0,
28
+ 0.0, 0.0, 0.0, 1.0)
29
+
30
+ If no arguments are given on creation, an "identity" matrix will be created by default.
31
+ (1.0 on the main diagonal, as shown here).
32
+
33
+ More conveniently, you can also create matrixes from one of their helper class methods.
34
+
35
+
36
+ Matrix Helper Methods
37
+ ---------------------
38
+ When working with 3D graphics in OpenGL, A common operation is setting a perspective
39
+ projection matrix. The ``Mat4`` class includes a helper method for this task. The arguments
40
+ are similar to what you will find in popular OpenGL math libraries::
41
+
42
+ # Perspective (3D) projection matrix:
43
+ projection = Mat4.perspective_projection(aspect_ratio, z_near=0.1, z_far=255, fov=60)
44
+
45
+ For setting a projection matrix on the current OpenGL context, pyglet Windows have
46
+ a ``projection`` property. This points to a projection matrix used by all of pyglet's
47
+ built-in classes, and can be set as follows::
48
+
49
+ my_matrix = Mat4.perspective_projection(aspect_ratio, z_near=0.1, z_far=255)
50
+ window.projection = my_matrix
51
+
52
+ For working with 2D graphics, a helper method also exists for creating orthogonal projection
53
+ matrixes, which is created and set in a similar way::
54
+
55
+ # Orthographic (2D) projection matrix:
56
+ my_matrix = Mat4.orthogonal_projection(0, width, 0, height, z_near=-255, z_far=255)
57
+ window.projection = my_matrix
58
+
59
+ By default, pyglet is already set up with an orthographic projection matrix. It automatically
60
+ updates this 2D matrix whenever a Window is created or resized. This is done inside of the
61
+ Window's ``on_resize`` event handler. If you plan to set your own 3D or 2D projection matrix,
62
+ a useful pattern is to override the default ``on_resize`` event handler with your own::
63
+
64
+ @window.event
65
+ def on_resize(width, height):
66
+ # window.viewport = (0, 0, width, height)
67
+ window.projection = Mat4.perspective_projection(window.aspect_ratio, z_near=0.1, z_far=255)
68
+ return pyglet.event.EVENT_HANDLED # Don't call the default handler
69
+
70
+
71
+ In addition to the ``projection`` property, pyglet Windows also contain a ``view`` property that
72
+ points to another matrix that is used internally by pyglet's built-in classes. The view matrix
73
+ gets multiplied with the projection matrix, controlling the final positioning and rendering of
74
+ pyglet's built-in objects like Sprites, Shapes, and text. Unlike the projection matrix the view
75
+ matrix defaults to an indentity matrix, and therefore has no effect initially. This makes it useful
76
+ for users to set their own matrix on it, and controll zooming or translating (panning) a "camera".
77
+ The ``Mat4`` class contains helper methods for creating these types of matrixes::
78
+
79
+ # translate the camera +100 on the X axis:
80
+ view_matrix = Mat4.from_translation(vector=Vec3(x=100, y=0, z=0))
81
+ # or scale by 2X (be careful of the Z values):
82
+ view_matrix = Mat4.from_scale(vector=Vec3(x=2.0, y=2.0, z=1.0))
83
+
84
+ window.view = view_matrix
85
+
86
+ You can of course create multiple matrixes and multiply them together, such as to zoom and
87
+ then translate, or translate and then zoom, etc. Be careful of multiplication order, as matrix
88
+ multiplication is non-commutative.
89
+
90
+ See the :py:mod:`~pyglet.math` API documentation for a full list of helper class methods.
91
+
92
+
93
+ Matrix Multiplication
94
+ ---------------------
95
+ Matrix classes in pyglet use the Python ``matmul`` (``@``) operator for matrix multiplication.
96
+ The ``star`` operator (``*``) is not allowed, and will raise an exception. For example::
97
+
98
+ new_matrix = rotation_matrix @ translation_matrix
99
+
100
+
101
+ Creating Vectors
102
+ ----------------
103
+ pyglet includes classes for 2D, 3D, and 4D vectors: :py:class:`~pyglet.math.Vec2`,
104
+ :py:class:`~pyglet.math.Vec3` and :py:class:`~pyglet.math.Vec4`. These Vec types support
105
+ most mathematical operations, and implement helper methods for most common vector operations.
106
+ Vecs are created with their values.
107
+
108
+ myvec2 = Vec2() # same as Vec(x=0.0, y=0.0)
109
+ myvec2 = Vec2(-4.5, 3.0)
110
+ myvec3 = Vec3(100.0, 400.0, 1.0)
111
+
112
+
113
+ Vector Operations
114
+ -----------------
115
+ TBD
@@ -0,0 +1,94 @@
1
+ .. _programming-guide-opengles:
2
+
3
+
4
+ OpenGL ES
5
+ =========
6
+
7
+ Pyglet has experimental support for OpenGL ES 3.2, with some limitations. Devices like Raspberry Pi 4
8
+ and 5 supports OpenGL ES 3.1 with extensions covering most of the missing 3.2 features (with the
9
+ exception of tessellation shaders). There are likely other devices with ES support that can run Pyglet.
10
+
11
+ Creating a window / context
12
+ ---------------------------
13
+
14
+ In order to successfully create a context and window with OpenGL ES we first need to:
15
+
16
+ * Likely disable the shadow window because very few environments supports this
17
+ * Pass in a custom config at window creation specifying OpenGL ES and version
18
+
19
+ Example::
20
+
21
+ import pyglet
22
+
23
+ # Disable shadow window
24
+ pyglet.options.shadow_window = False
25
+
26
+ # Query the best config for the screen
27
+ display = pyglet.display.get_display()
28
+ screen = display.get_default_screen()
29
+ config = screen.get_best_config()
30
+
31
+ # Specify that we want to use OpenGL ES 3.1
32
+ # This is very specific to the Raspberry Pi 4 and 5. Use 3.2 if you can.
33
+ config.opengl_api = "gles"
34
+ config.major_version = 3
35
+ config.minor_version = 1
36
+
37
+ # Create the window
38
+ window = pyglet.window.Window(config=config)
39
+
40
+
41
+ Limitations
42
+ -----------
43
+
44
+ Multisampling
45
+ ~~~~~~~~~~~~
46
+
47
+ Be careful with enabling multisampling on the window. Likely
48
+ ``get_best_config()`` will not have multisampling enabled.
49
+
50
+ Textures
51
+ ~~~~~~~~
52
+
53
+ Pixel format for textures and images are limited to ``RGBA``. If you try to
54
+ load any other pixel format through pyglet's image loading functions you
55
+ will get an error when they are turned into OpenGL textures later.
56
+
57
+ The reason for this limitation is that OpenGL ES does not support pixel
58
+ format conversion during pixel transfer, meaning when calling ``glTexImage``
59
+ to upload pixel data to the GPU, the pixel format must match the internalformat.
60
+ In desktop OpenGL an RGB image will be automatically converted to RGBA during
61
+ this transfer. This is not supported in OpenGL ES.
62
+
63
+ You are, however, free to create your own textures with any pixel format
64
+ using the gl bindings directly.
65
+
66
+ Compute Shader
67
+ ~~~~~~~~~~~~~~
68
+
69
+ If you are planning to bind textures to image units with the intention of
70
+ using them in a compute shader, you need to create these textures yourself
71
+ using the gl bindings and allocate space using ``glTexStorage``. Pyglet is
72
+ using ``glTexImage`` to allocate space and upload the pixel data for textures.
73
+
74
+ The difference here is that ``glTexStorage`` creates immutable storage. You can
75
+ only call it once and then fill the allocated space with pixel data using
76
+ ``glTexSubImage``. ``glTexImage`` on the other hand can be called multiple times
77
+ reallocating the texture storage each time. Likely OpenGL ES doesn't want to
78
+ deal with the extra complexity of validating the texture storage of images
79
+ every time a compute shader is dispatched.
80
+
81
+ In short: Create your own textures with immutable storage if you are planning
82
+ to use them in a compute shader.
83
+
84
+ Shaders
85
+ -------
86
+
87
+ Pyglet's shader system supports basic conversion between GLSL 1.5/3.3 shaders
88
+ to GLES 3.2 shaders when running in OpenGL ES mode. This is to ensure that
89
+ pyglet's built-in shaders also works with GL ES. This system is not perfect
90
+ and are likely to have some flaws.
91
+
92
+ Currently the shaders are converted to ES 3.1 shaders as a careful approach
93
+ manually enabling extensions needed for ES 3.2. Precisions qualifiers are
94
+ injected using ``mediump`` by default.
@@ -8,6 +8,10 @@ when presented with a large amount of reference material to read.
8
8
  This chapter gives a very quick introduction to pyglet without going into
9
9
  too much detail.
10
10
 
11
+ .. Note::
12
+ If you intend to use OpenGL ES with pyglet on devices like the Raspberry
13
+ Pi, please read the :ref:`programming-guide-opengles` section first.
14
+
11
15
  Hello, World
12
16
  ------------
13
17
 
@@ -5,7 +5,11 @@ Shaders and Rendering
5
5
 
6
6
  At the lowest level, pyglet uses OpenGL to draw graphics in program windows.
7
7
  The OpenGL interface is exposed via the :py:mod:`pyglet.gl` module
8
- (see :ref:`guide_gl`).
8
+ (see :ref:`guid
9
+
10
+ .. Note::
11
+ If you intend to use OpenGL ES with pyglet on devices like the Raspberry
12
+ Pi, please read the :ref:`programming-guide-opengles` section first.
9
13
 
10
14
  For new users, however, using the OpenGL interface directly can be daunting.
11
15
  The :py:mod:`pyglet.graphics` module provides high level abstractions that
@@ -147,12 +151,12 @@ Then you can set (or get) the value using the uniform name as a key::
147
151
  program['time'] = delta_time
148
152
 
149
153
 
150
- Uniform Buffer Objects (Uniform Blocks)
151
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
154
+ Uniform Blocks and Uniform Buffer Objects
155
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
156
+
157
+ Pyglet also introspects and makes Uniform Blocks (or Interface Blocks) available, including ways to manage and use Uniform Buffer Objects.
152
158
 
153
- Pyglet also offers access to Uniform Buffer Objects or Uniform Blocks. These are special objects that can be used to
154
- share uniforms between different programs. For example, by default, Pyglet's ``projection`` and ``view`` matrix
155
- are both contained in the ``WindowBlock`` uniform block. Which looks like this in the vertex shader::
159
+ By default, Pyglet's ``projection`` and ``view`` matrix are both contained in the ``WindowBlock`` uniform block. Which looks like this in the vertex shader::
156
160
 
157
161
  uniform WindowBlock
158
162
  {
@@ -162,8 +166,11 @@ are both contained in the ``WindowBlock`` uniform block. Which looks like this i
162
166
 
163
167
  You can view what uniform blocks exist in a :py:class:`~pyglet.graphics.shader.ShaderProgram` using the `uniform_blocks`
164
168
  property. This is a dictionary containing a Uniform Block name key to a :py:class:`~pyglet.graphics.shader.UniformBlock`
165
- object value. In the above example, the name would be ``WindowBlock`` while the ``window`` identifier is used in the GLSL
166
- shader itself.
169
+ object value. In the above example, the name would be ``WindowBlock`` while the ``window`` instance identifier is used in the GLSL shader itself.
170
+
171
+ Normally with OpenGL, you would have to manually assign a global binding point value to each Uniform Block for each Shader Program, as they are created. With Pyglet, the global binding values and assignments are all taken care of internally.
172
+
173
+ Uniform Blocks can be a convenient way to update uniforms of multiple Shader Programs at once, as their data is shared. This allows you to access the same information from multiple Shader Programs without having to bind every program using it, just to modify the uniform values. This can be achieved through a :py:class:`~pyglet.graphics.shader.UniformBufferObject`.
167
174
 
168
175
  To modify the uniforms in a :py:class:`~pyglet.graphics.shader.UniformBlock`, you must first create a
169
176
  :py:class:`~pyglet.graphics.shader.UniformBufferObject` using the
@@ -171,12 +178,23 @@ To modify the uniforms in a :py:class:`~pyglet.graphics.shader.UniformBlock`, yo
171
178
 
172
179
  ubo = program.uniform_blocks['WindowBlock'].create_ubo()
173
180
 
174
- The :py:class:`~pyglet.graphics.shader.UniformBufferObject` can then be used, and acts as a context manager for easy
175
- access to its uniforms::
181
+ The :py:class:`~pyglet.graphics.shader.UniformBufferObject` can then be used as a context manager for easy
182
+ access to update its uniforms::
176
183
 
177
184
  with ubo as window_block:
178
185
  window_block.projection[:] = new_matrix
179
186
 
187
+ You can also create multiple :py:class:`~pyglet.graphics.shader.UniformBufferObject` instances if you need to swap between different sets of data. Calling :py:meth:`~pyglet.graphics.shader.UniformBufferObject.bind` will bind the buffers data to the associated binding point.
188
+
189
+ There may come a point where you don't want a specific :py:class:`~pyglet.graphics.shader.ShaderProgram`, or a group of them, to use the same uniform data set as the rest of your shaders. At this point, you will have to modify the binding point of those Uniform Blocks to one that is unused. This can be done through :py:meth:`~pyglet.graphics.shader.UniformBlock.set_binding`. Once the binding has been set, you will have to create a new :py:class:`~pyglet.graphics.shader.UniformBufferObject` using the :py:meth:`~pyglet.graphics.shader.UniformBlock.create_ubo` method again and supply it with your new data set.
190
+
191
+ .. warning:: When assigning custom binding points through py:meth:`~pyglet.graphics.shader.UniformBlock.set_binding`, it is recommended to use an unassigned binding point, as unexpected behavior may occur. A warning will be output if such a collision occurs.
192
+
193
+ The maximum binding point value is determined by the hardware. This can be retrieved by calling :py:func:`~pyglet.graphics.shader.get_maximum_binding_count`. It is recommended to use a number
194
+ higher than the amount of Uniform Blocks in your application to prevent collisions.
195
+
196
+ .. note:: Binding point 0 cannot be set, as it is used internally for ``WindowBlock``.
197
+
180
198
 
181
199
  Creating Vertex Lists
182
200
  ^^^^^^^^^^^^^^^^^^^^^
@@ -41,7 +41,7 @@ def create_alarm(dt):
41
41
  @register_event_type('on_wake_up')
42
42
  class Alarms(EventDispatcher):
43
43
  def on_wake_up(self, dt):
44
- print('Yet another {} seconds wasted! Wake up!'.format(dt))
44
+ print(f'Yet another {dt} seconds wasted! Wake up!')
45
45
 
46
46
 
47
47
  alarms = Alarms()
@@ -10,7 +10,6 @@ A message will be printed to stdout when the following events are caught:
10
10
 
11
11
  """
12
12
 
13
- from __future__ import print_function
14
13
 
15
14
  import pyglet
16
15
 
@@ -23,7 +22,7 @@ if pyglet.compat_platform.startswith('linux'):
23
22
 
24
23
  elif pyglet.compat_platform == 'darwin':
25
24
  _have_cocoa = True
26
- from pyglet.window.cocoa import *
25
+ # from pyglet.window.cocoa import *
27
26
 
28
27
  elif pyglet.compat_platform in ('win32', 'cygwin'):
29
28
  _have_win32 = True
@@ -12,7 +12,7 @@ level_label = pyglet.text.Label(text="Version 1: Static Graphics",
12
12
  # Initialize the player sprite
13
13
  player_ship = pyglet.sprite.Sprite(img=resources.player_image, x=400, y=300)
14
14
 
15
- # Make three asteroids so we have something to shoot at
15
+ # Make three asteroids so we have something to shoot at
16
16
  asteroids = load.asteroids(3, player_ship.position)
17
17
 
18
18
 
@@ -17,7 +17,7 @@ player_ship = player.Player(x=400, y=300, batch=main_batch)
17
17
  # Make three sprites to represent remaining lives
18
18
  player_lives = load.player_lives(2, main_batch)
19
19
 
20
- # Make three asteroids so we have something to shoot at
20
+ # Make three asteroids so we have something to shoot at
21
21
  asteroids = load.asteroids(3, player_ship.position, main_batch)
22
22
 
23
23
  # Store all objects that update each frame in a list
@@ -1,4 +1,6 @@
1
- import pyglet, math, random
1
+ import pyglet
2
+ import math
3
+ import random
2
4
  from . import physicalobject, resources
3
5
 
4
6
 
@@ -17,7 +17,7 @@ player_ship = player.Player(x=400, y=300, batch=main_batch)
17
17
  # Make three sprites to represent remaining lives
18
18
  player_lives = load.player_lives(2, main_batch)
19
19
 
20
- # Make three asteroids so we have something to shoot at
20
+ # Make three asteroids so we have something to shoot at
21
21
  asteroids = load.asteroids(3, player_ship.position, main_batch)
22
22
 
23
23
  # Store all objects that update each frame in a list
@@ -1,4 +1,5 @@
1
- import pyglet, math
1
+ import pyglet
2
+ import math
2
3
  from pyglet.window import key
3
4
  from . import physicalobject, resources
4
5
 
@@ -21,7 +21,7 @@ center_image(bullet_image)
21
21
  asteroid_image = pyglet.resource.image("asteroid.png")
22
22
  center_image(asteroid_image)
23
23
 
24
- # The engine flame should not be centered on the ship. Rather, it should be shown
24
+ # The engine flame should not be centered on the ship. Rather, it should be shown
25
25
  # behind it. To achieve this effect, we just set the anchor point outside the
26
26
  # image bounds.
27
27
  engine_image = pyglet.resource.image("engine_flame.png")
@@ -17,7 +17,7 @@ player_ship = player.Player(x=400, y=300, batch=main_batch)
17
17
  # Make three sprites to represent remaining lives
18
18
  player_lives = load.player_lives(2, main_batch)
19
19
 
20
- # Make three asteroids so we have something to shoot at
20
+ # Make three asteroids so we have something to shoot at
21
21
  asteroids = load.asteroids(3, player_ship.position, main_batch)
22
22
 
23
23
  # Store all objects that update each frame in a list
@@ -1,4 +1,5 @@
1
- import pyglet, math
1
+ import pyglet
2
+ import math
2
3
  from pyglet.window import key
3
4
  from . import bullet, physicalobject, resources
4
5
 
@@ -21,7 +21,7 @@ center_image(bullet_image)
21
21
  asteroid_image = pyglet.resource.image("asteroid.png")
22
22
  center_image(asteroid_image)
23
23
 
24
- # The engine flame should not be centered on the ship. Rather, it should be shown
24
+ # The engine flame should not be centered on the ship. Rather, it should be shown
25
25
  # behind it. To achieve this effect, we just set the anchor point outside the
26
26
  # image bounds.
27
27
  engine_image = pyglet.resource.image("engine_flame.png")
@@ -56,7 +56,7 @@ def reset_level(num_lives=2):
56
56
  # Make three sprites to represent remaining lives
57
57
  player_lives = load.player_lives(num_lives, main_batch)
58
58
 
59
- # Make some asteroids so we have something to shoot at
59
+ # Make some asteroids so we have something to shoot at
60
60
  asteroids = load.asteroids(num_asteroids, player_ship.position, main_batch)
61
61
 
62
62
  # Store all objects that update each frame in a list
@@ -120,7 +120,7 @@ def update(dt):
120
120
  for to_remove in [obj for obj in game_objects if obj.dead]:
121
121
  if to_remove == player_ship:
122
122
  player_dead = True
123
- # If the dying object spawned any new objects, add those to the
123
+ # If the dying object spawned any new objects, add those to the
124
124
  # game_objects list later
125
125
  to_add.extend(to_remove.new_objects)
126
126
 
@@ -1,4 +1,5 @@
1
- import pyglet, math
1
+ import pyglet
2
+ import math
2
3
  from pyglet.window import key
3
4
  from . import bullet, physicalobject, resources
4
5
 
@@ -21,7 +21,7 @@ center_image(bullet_image)
21
21
  asteroid_image = pyglet.resource.image("asteroid.png")
22
22
  center_image(asteroid_image)
23
23
 
24
- # The engine flame should not be centered on the ship. Rather, it should be shown
24
+ # The engine flame should not be centered on the ship. Rather, it should be shown
25
25
  # behind it. To achieve this effect, we just set the anchor point outside the
26
26
  # image bounds.
27
27
  engine_image = pyglet.resource.image("engine_flame.png")
@@ -6,7 +6,6 @@ Usage::
6
6
 
7
7
  """
8
8
 
9
- from __future__ import print_function
10
9
 
11
10
  import sys
12
11
 
@@ -8,12 +8,17 @@ Usage::
8
8
  A checkerboard background is visible behind any transparent areas.
9
9
  """
10
10
 
11
- from __future__ import print_function
12
11
 
13
12
  import sys
14
13
 
15
14
  import pyglet
16
- from pyglet.gl import *
15
+ from pyglet.gl import (
16
+ glEnable,
17
+ glBlendFunc,
18
+ GL_BLEND,
19
+ GL_ONE_MINUS_SRC_ALPHA,
20
+ GL_SRC_ALPHA,
21
+ )
17
22
 
18
23
  window = pyglet.window.Window(visible=False, resizable=True)
19
24