pyglet 2.0.8__zip → 2.0.10__zip

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 (876) hide show
  1. {pyglet-2.0.8 → pyglet-2.0.10}/.github/workflows/unittests.yml +1 -5
  2. {pyglet-2.0.8 → pyglet-2.0.10}/.gitignore +3 -0
  3. {pyglet-2.0.8 → pyglet-2.0.10}/.readthedocs.yml +5 -1
  4. {pyglet-2.0.8 → pyglet-2.0.10}/PKG-INFO +3 -2
  5. {pyglet-2.0.8 → pyglet-2.0.10}/README.md +2 -1
  6. {pyglet-2.0.8 → pyglet-2.0.10}/RELEASE_NOTES +55 -0
  7. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/qt_sprite_preview.py +774 -586
  8. {pyglet-2.0.8 → pyglet-2.0.10}/doc/conf.py +6 -0
  9. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/shapes.rst +8 -8
  10. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/window_key.rst +9 -1
  11. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/eventloop.rst +57 -53
  12. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/keyboard.rst +194 -67
  13. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/media.rst +297 -67
  14. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/quickstart.rst +1 -0
  15. pyglet-2.0.10/examples/clipboard.py +18 -0
  16. {pyglet-2.0.8 → pyglet-2.0.10}/examples/input/controller.py +4 -0
  17. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/media_info.py +1 -9
  18. pyglet-2.0.10/examples/media/soundspace/README +38 -0
  19. pyglet-2.0.10/examples/media/soundspace/reader.py +117 -0
  20. pyglet-2.0.10/examples/media/soundspace/res/bass.wav +0 -0
  21. pyglet-2.0.10/examples/media/soundspace/res/drums.wav +0 -0
  22. pyglet-2.0.10/examples/media/soundspace/res/guitar.wav +0 -0
  23. pyglet-2.0.10/examples/media/soundspace/res/piano.wav +0 -0
  24. pyglet-2.0.10/examples/media/soundspace/res/space.txt +24 -0
  25. pyglet-2.0.10/examples/media/soundspace/soundspace.py +660 -0
  26. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/fpscamera.py +50 -38
  27. pyglet-2.0.10/examples/net/client.py +18 -0
  28. pyglet-2.0.10/examples/net/server.py +25 -0
  29. pyglet-2.0.10/examples/opengl/compute_shader.py +39 -0
  30. {pyglet-2.0.8/examples/graphics → pyglet-2.0.10/examples}/shapes.py +3 -0
  31. {pyglet-2.0.8 → pyglet-2.0.10}/examples/window/fixed_resolution.py +37 -34
  32. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/__init__.py +21 -10
  33. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/app/base.py +13 -1
  34. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/cocoa.py +6 -0
  35. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/clock.py +47 -116
  36. pyglet-2.0.10/pyglet/customtypes.py +12 -0
  37. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/event.py +16 -16
  38. pyglet-2.0.10/pyglet/experimental/README.md +6 -0
  39. pyglet-2.0.10/pyglet/experimental/geoshader_sprite.py +792 -0
  40. pyglet-2.0.10/pyglet/experimental/net.py +247 -0
  41. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/directwrite.py +33 -59
  42. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/win32.py +85 -25
  43. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/base.py +195 -46
  44. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/gl_info.py +4 -2
  45. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/lib.py +1 -2
  46. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/win32.py +30 -30
  47. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/graphics/__init__.py +9 -21
  48. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/graphics/shader.py +53 -50
  49. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/graphics/vertexarray.py +8 -9
  50. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/graphics/vertexbuffer.py +50 -74
  51. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/graphics/vertexdomain.py +54 -97
  52. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gui/frame.py +2 -2
  53. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gui/widgets.py +31 -3
  54. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/__init__.py +35 -14
  55. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/atlas.py +9 -9
  56. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/buffer.py +19 -16
  57. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/wic.py +8 -10
  58. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/controller_db.py +19 -23
  59. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/linux/evdev.py +3 -2
  60. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/win32/xinput.py +2 -2
  61. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/cocoapy/cocoalibs.py +1 -0
  62. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/__init__.py +12 -1
  63. pyglet-2.0.10/pyglet/libs/win32/com.py +397 -0
  64. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/types.py +9 -1
  65. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/math.py +18 -43
  66. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/wmf.py +16 -22
  67. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/devices/base.py +28 -24
  68. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/devices/win32.py +93 -47
  69. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/base.py +6 -4
  70. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/directsound/adaptation.py +13 -8
  71. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/directsound/lib_dsound.py +0 -1
  72. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/listener.py +1 -3
  73. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/openal/adaptation.py +17 -7
  74. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/xaudio2/adaptation.py +2 -1
  75. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/xaudio2/interface.py +12 -9
  76. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +16 -34
  77. pyglet-2.0.10/pyglet/media/mediathreads.py +129 -0
  78. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/player.py +8 -3
  79. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/model/__init__.py +4 -17
  80. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/model/codecs/obj.py +1 -0
  81. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/shapes.py +194 -143
  82. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/sprite.py +4 -17
  83. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/__init__.py +2 -0
  84. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/caret.py +2 -1
  85. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/layout.py +171 -189
  86. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/util.py +6 -35
  87. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/__init__.py +75 -35
  88. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/cocoa/__init__.py +28 -0
  89. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/cocoa/pyglet_textview.py +11 -4
  90. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/key.py +10 -1
  91. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/win32/__init__.py +37 -0
  92. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/xlib/__init__.py +142 -5
  93. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet.egg-info/PKG-INFO +3 -2
  94. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet.egg-info/SOURCES.txt +68 -2
  95. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/app/test_eventloop.py +1 -2
  96. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/image/test_imagegrid.py +3 -0
  97. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/image/test_texture3d.py +3 -0
  98. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/test_driver.py +15 -12
  99. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_16bpp.bmp].001.png +0 -0
  100. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_1bpp.bmp].001.png +0 -0
  101. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_24bpp.bmp].001.png +0 -0
  102. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_32bpp.bmp].001.png +0 -0
  103. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_4bpp.bmp].001.png +0 -0
  104. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_8bpp.bmp].001.png +0 -0
  105. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgba_32bpp.bmp].001.png +0 -0
  106. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_buffer_copy.001.png +0 -0
  107. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_buffer_saving.001.png +0 -0
  108. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_checkerboard.001.png +0 -0
  109. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_dds_loading[rgb_dxt1.dds].001.png +0 -0
  110. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_dds_loading[rgba_dxt1.dds].001.png +0 -0
  111. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_dds_loading[rgba_dxt3.dds].001.png +0 -0
  112. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_dds_loading[rgba_dxt5.dds].001.png +0 -0
  113. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_depth_buffer_saving.001.png +0 -0
  114. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[8bpp.gif].001.png +0 -0
  115. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[l.png].001.png +0 -0
  116. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[la.png].001.png +0 -0
  117. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgb.png].001.png +0 -0
  118. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgba.png].001.png +0 -0
  119. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_loading[la.png].001.png +0 -0
  120. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_loading[rgb.png].001.png +0 -0
  121. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_loading[rgba.png].001.png +0 -0
  122. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_saving[l.png].001.png +0 -0
  123. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_saving[la.png].001.png +0 -0
  124. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[la.png].001.png +0 -0
  125. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[rgb.png].001.png +0 -0
  126. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[rgb_8bpp.png].001.png +0 -0
  127. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[rgb_8bpp_trans.png].001.png +0 -0
  128. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[rgba.png].001.png +0 -0
  129. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_saving[l.png].001.png +0 -0
  130. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_saving[la.png].001.png +0 -0
  131. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_saving[rgb.png].001.png +0 -0
  132. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_saving[rgba.png].001.png +0 -0
  133. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_16bpp.bmp].001.png +0 -0
  134. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_1bpp.bmp].001.png +0 -0
  135. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_24bpp.bmp].001.png +0 -0
  136. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_32bpp.bmp].001.png +0 -0
  137. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_4bpp.bmp].001.png +0 -0
  138. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_8bpp.bmp].001.png +0 -0
  139. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgba_32bpp.bmp].001.png +0 -0
  140. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_buffer_copy.001.png +0 -0
  141. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_buffer_saving.001.png +0 -0
  142. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_checkerboard.001.png +0 -0
  143. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgb_dxt1.dds].001.png +0 -0
  144. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt1.dds].001.png +0 -0
  145. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt3.dds].001.png +0 -0
  146. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt5.dds].001.png +0 -0
  147. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_depth_buffer_saving.001.png +0 -0
  148. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[8bpp.gif].001.png +0 -0
  149. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[l.png].001.png +0 -0
  150. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[la.png].001.png +0 -0
  151. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgb.png].001.png +0 -0
  152. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgba.png].001.png +0 -0
  153. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[la.png].001.png +0 -0
  154. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[rgb.png].001.png +0 -0
  155. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[rgba.png].001.png +0 -0
  156. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_saving[l.png].001.png +0 -0
  157. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_saving[la.png].001.png +0 -0
  158. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_saving[rgb.png].001.png +0 -0
  159. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_saving[rgba.png].001.png +0 -0
  160. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[la.png].001.png +0 -0
  161. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgb.png].001.png +0 -0
  162. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgb_8bpp.png].001.png +0 -0
  163. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgb_8bpp_trans.png].001.png +0 -0
  164. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgba.png].001.png +0 -0
  165. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_saving[l.png].001.png +0 -0
  166. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_saving[la.png].001.png +0 -0
  167. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_saving[rgb.png].001.png +0 -0
  168. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_saving[rgba.png].001.png +0 -0
  169. pyglet-2.0.10/tests/interactive/shapes/test_shapes.py +179 -0
  170. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_inline_elements.py +20 -17
  171. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_inline_elements_style_change.py +15 -14
  172. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_multiline_wrap.py +18 -18
  173. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_plain.py +5 -5
  174. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_style.py +5 -5
  175. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/conftest.py +5 -0
  176. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/shapes/test_shapes.py +24 -2
  177. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_events.py +31 -21
  178. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gencontrollerdb.py +3 -3
  179. pyglet-2.0.8/experimental/geoshader_sprite.py +0 -367
  180. pyglet-2.0.8/pyglet/libs/win32/com.py +0 -340
  181. pyglet-2.0.8/pyglet/media/mediathreads.py +0 -152
  182. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_24bpp.bmp].001.png +0 -0
  183. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_32bpp.bmp].001.png +0 -0
  184. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_4bpp.bmp].001.png +0 -0
  185. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_8bpp.bmp].001.png +0 -0
  186. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgba_32bpp.bmp].001.png +0 -0
  187. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_checkerboard.001.png +0 -0
  188. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgb_dxt1.dds].001.png +0 -0
  189. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt1.dds].001.png +0 -0
  190. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt3.dds].001.png +0 -0
  191. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt5.dds].001.png +0 -0
  192. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[8bpp.gif].001.png +0 -0
  193. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[l.png].001.png +0 -0
  194. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[la.png].001.png +0 -0
  195. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgb.png].001.png +0 -0
  196. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgba.png].001.png +0 -0
  197. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[la.png].001.png +0 -0
  198. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[rgb.png].001.png +0 -0
  199. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[rgba.png].001.png +0 -0
  200. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[la.png].001.png +0 -0
  201. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgba.png].001.png +0 -0
  202. {pyglet-2.0.8 → pyglet-2.0.10}/.coveragerc +0 -0
  203. {pyglet-2.0.8 → pyglet-2.0.10}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  204. {pyglet-2.0.8 → pyglet-2.0.10}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  205. {pyglet-2.0.8 → pyglet-2.0.10}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
  206. {pyglet-2.0.8 → pyglet-2.0.10}/.github/workflows/codeql.yml +0 -0
  207. {pyglet-2.0.8 → pyglet-2.0.10}/LICENSE +0 -0
  208. {pyglet-2.0.8 → pyglet-2.0.10}/MANIFEST.in +0 -0
  209. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/aseprite_codec/README +0 -0
  210. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/aseprite_codec/asedemo.py +0 -0
  211. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/aseprite_codec/aseprite.py +0 -0
  212. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/aseprite_codec/running.ase +0 -0
  213. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/logo3d/logo3d.jpg +0 -0
  214. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/logo3d/logo3d.obj.zip +0 -0
  215. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/logo3d/logo3d.wings +0 -0
  216. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/scenemanager.py +0 -0
  217. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/toys/follow_mouse.py +0 -0
  218. {pyglet-2.0.8 → pyglet-2.0.10}/doc/Makefile +0 -0
  219. {pyglet-2.0.8 → pyglet-2.0.10}/doc/README.md +0 -0
  220. {pyglet-2.0.8 → pyglet-2.0.10}/doc/_static/favicon.ico +0 -0
  221. {pyglet-2.0.8 → pyglet-2.0.10}/doc/_static/logo.png +0 -0
  222. {pyglet-2.0.8 → pyglet-2.0.10}/doc/_static/logo5.svg +0 -0
  223. {pyglet-2.0.8 → pyglet-2.0.10}/doc/_static/relatedlogo.png +0 -0
  224. {pyglet-2.0.8 → pyglet-2.0.10}/doc/external_resources.rst +0 -0
  225. {pyglet-2.0.8 → pyglet-2.0.10}/doc/index.rst +0 -0
  226. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/contributing.rst +0 -0
  227. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/dist.rst +0 -0
  228. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/doc.rst +0 -0
  229. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/generated.rst +0 -0
  230. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/gl.rst +0 -0
  231. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/media_logging_manual.rst +0 -0
  232. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/media_manual.rst +0 -0
  233. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/testing.rst +0 -0
  234. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/virtualenv.rst +0 -0
  235. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/wraptypes-class.svg +0 -0
  236. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/wraptypes.rst +0 -0
  237. {pyglet-2.0.8 → pyglet-2.0.10}/doc/make.bat +0 -0
  238. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/app.rst +0 -0
  239. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/canvas.rst +0 -0
  240. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/clock.rst +0 -0
  241. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/event.rst +0 -0
  242. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/font.rst +0 -0
  243. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/gl.rst +0 -0
  244. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/graphics/allocation.rst +0 -0
  245. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/graphics/index.rst +0 -0
  246. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/graphics/shader.rst +0 -0
  247. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/graphics/vertexbuffer.rst +0 -0
  248. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/graphics/vertexdomain.rst +0 -0
  249. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/gui.rst +0 -0
  250. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/image/animation.rst +0 -0
  251. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/image/atlas.rst +0 -0
  252. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/image/index.rst +0 -0
  253. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/info.rst +0 -0
  254. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/input.rst +0 -0
  255. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/math.rst +0 -0
  256. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/media.rst +0 -0
  257. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/media_synthesis.rst +0 -0
  258. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/pyglet.rst +0 -0
  259. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/resource.rst +0 -0
  260. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/sprite.rst +0 -0
  261. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/text/caret.rst +0 -0
  262. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/text/document.rst +0 -0
  263. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/text/index.rst +0 -0
  264. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/text/layout.rst +0 -0
  265. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/window.rst +0 -0
  266. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/window_mouse.rst +0 -0
  267. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/context.rst +0 -0
  268. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/debug.rst +0 -0
  269. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/events.rst +0 -0
  270. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/examplegame.rst +0 -0
  271. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/gl.rst +0 -0
  272. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/graphics.rst +0 -0
  273. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/image.rst +0 -0
  274. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/abstract_image.png +0 -0
  275. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/abstract_image.svg +0 -0
  276. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/buffer_image.png +0 -0
  277. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/buffer_image.svg +0 -0
  278. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/context_flow.png +0 -0
  279. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/context_flow.svg +0 -0
  280. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
  281. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_default.png +0 -0
  282. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
  283. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_no.png +0 -0
  284. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
  285. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
  286. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
  287. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
  288. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
  289. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
  290. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_text.png +0 -0
  291. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
  292. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
  293. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_default.png +0 -0
  294. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_hand.png +0 -0
  295. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_help.png +0 -0
  296. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_no.png +0 -0
  297. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size.png +0 -0
  298. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
  299. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
  300. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
  301. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
  302. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_text.png +0 -0
  303. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_wait.png +0 -0
  304. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
  305. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/explosion.png +0 -0
  306. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/font_metrics.png +0 -0
  307. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/font_metrics.svg +0 -0
  308. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/image_classes.png +0 -0
  309. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/image_classes.svg +0 -0
  310. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/image_grid.png +0 -0
  311. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/image_grid.svg +0 -0
  312. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/image_sequence.png +0 -0
  313. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/image_sequence.svg +0 -0
  314. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/mouse_coordinates.png +0 -0
  315. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
  316. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/screens.png +0 -0
  317. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/screens.svg +0 -0
  318. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/text_classes.png +0 -0
  319. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/text_classes.svg +0 -0
  320. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_location.png +0 -0
  321. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_location.svg +0 -0
  322. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_osx_borderless.png +0 -0
  323. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_osx_default.png +0 -0
  324. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_osx_dialog.png +0 -0
  325. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_osx_tool.png +0 -0
  326. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_default.png +0 -0
  327. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_dialog.png +0 -0
  328. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_overlay.png +0 -0
  329. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_tool.png +0 -0
  330. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_transparent.png +0 -0
  331. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/input.rst +0 -0
  332. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/installation.rst +0 -0
  333. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/math.rst +0 -0
  334. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/migration.rst +0 -0
  335. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/mouse.rst +0 -0
  336. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/options.rst +0 -0
  337. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/resources.rst +0 -0
  338. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/shapes.rst +0 -0
  339. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/text.rst +0 -0
  340. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/time.rst +0 -0
  341. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/windowing.rst +0 -0
  342. {pyglet-2.0.8 → pyglet-2.0.10}/doc/requirements.txt +0 -0
  343. {pyglet-2.0.8 → pyglet-2.0.10}/examples/events/events_key_state_handler.py +0 -0
  344. {pyglet-2.0.8 → pyglet-2.0.10}/examples/events/register_event_type.py +0 -0
  345. {pyglet-2.0.8 → pyglet-2.0.10}/examples/events/window_events.py +0 -0
  346. {pyglet-2.0.8 → pyglet-2.0.10}/examples/events/window_platform_event.py +0 -0
  347. {pyglet-2.0.8 → pyglet-2.0.10}/examples/file_dialog.py +0 -0
  348. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/resources/asteroid.png +0 -0
  349. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/resources/bullet.png +0 -0
  350. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/resources/bullet.wav +0 -0
  351. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/resources/engine_flame.png +0 -0
  352. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/resources/player.png +0 -0
  353. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version1/asteroid.py +0 -0
  354. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version1/game/__init__.py +0 -0
  355. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version1/game/load.py +0 -0
  356. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version1/game/resources.py +0 -0
  357. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version2/asteroid.py +0 -0
  358. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version2/game/__init__.py +0 -0
  359. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version2/game/load.py +0 -0
  360. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version2/game/physicalobject.py +0 -0
  361. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version2/game/player.py +0 -0
  362. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version2/game/resources.py +0 -0
  363. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/asteroid.py +0 -0
  364. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/game/__init__.py +0 -0
  365. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/game/load.py +0 -0
  366. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/game/physicalobject.py +0 -0
  367. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/game/player.py +0 -0
  368. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/game/resources.py +0 -0
  369. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/game/util.py +0 -0
  370. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/asteroid.py +0 -0
  371. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/__init__.py +0 -0
  372. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/asteroid.py +0 -0
  373. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/bullet.py +0 -0
  374. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/load.py +0 -0
  375. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/physicalobject.py +0 -0
  376. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/player.py +0 -0
  377. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/resources.py +0 -0
  378. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/util.py +0 -0
  379. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/asteroid.py +0 -0
  380. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/__init__.py +0 -0
  381. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/asteroid.py +0 -0
  382. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/bullet.py +0 -0
  383. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/load.py +0 -0
  384. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/physicalobject.py +0 -0
  385. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/player.py +0 -0
  386. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/resources.py +0 -0
  387. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/util.py +0 -0
  388. {pyglet-2.0.8 → pyglet-2.0.10}/examples/graphics/image_convert.py +0 -0
  389. {pyglet-2.0.8 → pyglet-2.0.10}/examples/graphics/image_display.py +0 -0
  390. {pyglet-2.0.8 → pyglet-2.0.10}/examples/gui/bar.png +0 -0
  391. {pyglet-2.0.8 → pyglet-2.0.10}/examples/gui/button_down.png +0 -0
  392. {pyglet-2.0.8 → pyglet-2.0.10}/examples/gui/button_hover.png +0 -0
  393. {pyglet-2.0.8 → pyglet-2.0.10}/examples/gui/button_up.png +0 -0
  394. {pyglet-2.0.8 → pyglet-2.0.10}/examples/gui/knob.png +0 -0
  395. {pyglet-2.0.8 → pyglet-2.0.10}/examples/gui/widgets.py +0 -0
  396. {pyglet-2.0.8 → pyglet-2.0.10}/examples/hello_world.py +0 -0
  397. {pyglet-2.0.8 → pyglet-2.0.10}/examples/input/apple_remote.py +0 -0
  398. {pyglet-2.0.8 → pyglet-2.0.10}/examples/input/input.py +0 -0
  399. {pyglet-2.0.8 → pyglet-2.0.10}/examples/input/joystick.py +0 -0
  400. {pyglet-2.0.8 → pyglet-2.0.10}/examples/input/tablet.py +0 -0
  401. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/media_player.py +0 -0
  402. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/noisy/README +0 -0
  403. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/noisy/ball.png +0 -0
  404. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/noisy/ball.wav +0 -0
  405. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/noisy/noisy.py +0 -0
  406. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/synthesizer.py +0 -0
  407. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/video.py +0 -0
  408. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/box.mtl +0 -0
  409. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/box.obj +0 -0
  410. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/logo3d.mtl +0 -0
  411. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/logo3d.obj +0 -0
  412. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/model.py +0 -0
  413. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/pyglet.png +0 -0
  414. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/egl_context.py +0 -0
  415. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/opengl.py +0 -0
  416. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/opengl_context.py +0 -0
  417. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/opengl_core.py +0 -0
  418. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/opengl_scissor.py +0 -0
  419. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/opengl_shader.py +0 -0
  420. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/pyglet.png +0 -0
  421. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/animation.py +0 -0
  422. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/dinosaur.gif +0 -0
  423. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/events.py +0 -0
  424. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/hello_world.py +0 -0
  425. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/image_viewer.py +0 -0
  426. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/kitten.jpg +0 -0
  427. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/window_subclass.py +0 -0
  428. {pyglet-2.0.8 → pyglet-2.0.10}/examples/resources/kitten.jpg +0 -0
  429. {pyglet-2.0.8 → pyglet-2.0.10}/examples/resources/pyglet.png +0 -0
  430. {pyglet-2.0.8 → pyglet-2.0.10}/examples/sprite/depth_sprite.py +0 -0
  431. {pyglet-2.0.8 → pyglet-2.0.10}/examples/sprite/display_sprite.py +0 -0
  432. {pyglet-2.0.8 → pyglet-2.0.10}/examples/sprite/multi_texture_sprite.py +0 -0
  433. {pyglet-2.0.8 → pyglet-2.0.10}/examples/sprite/sprite_batching.py +0 -0
  434. {pyglet-2.0.8 → pyglet-2.0.10}/examples/text/advanced_font.py +0 -0
  435. {pyglet-2.0.8 → pyglet-2.0.10}/examples/text/font_comparison.py +0 -0
  436. {pyglet-2.0.8 → pyglet-2.0.10}/examples/text/html_label.py +0 -0
  437. {pyglet-2.0.8 → pyglet-2.0.10}/examples/text/pyglet.png +0 -0
  438. {pyglet-2.0.8 → pyglet-2.0.10}/examples/text/text_input.py +0 -0
  439. {pyglet-2.0.8 → pyglet-2.0.10}/examples/timer.py +0 -0
  440. {pyglet-2.0.8 → pyglet-2.0.10}/examples/window/camera.py +0 -0
  441. {pyglet-2.0.8 → pyglet-2.0.10}/examples/window/camera_group.py +0 -0
  442. {pyglet-2.0.8 → pyglet-2.0.10}/examples/window/multiple_windows.py +0 -0
  443. {pyglet-2.0.8 → pyglet-2.0.10}/examples/window/overlay_window.py +0 -0
  444. {pyglet-2.0.8 → pyglet-2.0.10}/examples/window/transparent_window.py +0 -0
  445. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/dist_field/README +0 -0
  446. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/dist_field/genfield.py +0 -0
  447. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/dist_field/py.df.png +0 -0
  448. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/dist_field/py.png +0 -0
  449. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/dist_field/renderfield.py +0 -0
  450. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/flaccodec.py +0 -0
  451. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/hello_world.svg +0 -0
  452. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/spritebenchmark.py +0 -0
  453. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/svg_test.py +0 -0
  454. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/wayland/gbm_egl_context.py +0 -0
  455. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/win32priority.py +0 -0
  456. {pyglet-2.0.8 → pyglet-2.0.10}/make.py +0 -0
  457. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/app/__init__.py +0 -0
  458. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/app/cocoa.py +0 -0
  459. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/app/win32.py +0 -0
  460. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/app/xlib.py +0 -0
  461. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/__init__.py +0 -0
  462. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/base.py +0 -0
  463. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/headless.py +0 -0
  464. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/win32.py +0 -0
  465. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/xlib.py +0 -0
  466. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/xlib_vidmoderestore.py +0 -0
  467. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/extlibs/__init__.py +0 -0
  468. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/extlibs/png.py +0 -0
  469. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/__init__.py +0 -0
  470. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/base.py +0 -0
  471. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/fontconfig.py +0 -0
  472. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/freetype.py +0 -0
  473. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/freetype_lib.py +0 -0
  474. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/quartz.py +0 -0
  475. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/ttf.py +0 -0
  476. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/user.py +0 -0
  477. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/win32query.py +0 -0
  478. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/__init__.py +0 -0
  479. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/agl.py +0 -0
  480. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/cocoa.py +0 -0
  481. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/gl.py +0 -0
  482. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/gl_compat.py +0 -0
  483. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/glx.py +0 -0
  484. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/glx_info.py +0 -0
  485. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/glxext_arb.py +0 -0
  486. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/glxext_mesa.py +0 -0
  487. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/glxext_nv.py +0 -0
  488. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/headless.py +0 -0
  489. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/lib_agl.py +0 -0
  490. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/lib_glx.py +0 -0
  491. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/lib_wgl.py +0 -0
  492. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/wgl.py +0 -0
  493. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/wgl_info.py +0 -0
  494. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/wglext_arb.py +0 -0
  495. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/wglext_nv.py +0 -0
  496. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/xlib.py +0 -0
  497. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/graphics/allocation.py +0 -0
  498. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gui/__init__.py +0 -0
  499. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/animation.py +0 -0
  500. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/__init__.py +0 -0
  501. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/bmp.py +0 -0
  502. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/dds.py +0 -0
  503. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/gdiplus.py +0 -0
  504. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
  505. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/gif.py +0 -0
  506. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/pil.py +0 -0
  507. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/png.py +0 -0
  508. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/quartz.py +0 -0
  509. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/s3tc.py +0 -0
  510. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/info.py +0 -0
  511. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/__init__.py +0 -0
  512. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/base.py +0 -0
  513. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/controller.py +0 -0
  514. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/linux/__init__.py +0 -0
  515. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/linux/evdev_constants.py +0 -0
  516. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/linux/x11_xinput.py +0 -0
  517. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
  518. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/macos/__init__.py +0 -0
  519. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/macos/darwin_hid.py +0 -0
  520. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/win32/__init__.py +0 -0
  521. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/win32/directinput.py +0 -0
  522. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/win32/wintab.py +0 -0
  523. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/lib.py +0 -0
  524. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/__init__.py +0 -0
  525. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/__init__.py +0 -0
  526. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
  527. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
  528. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
  529. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/coreaudio.py +0 -0
  530. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/quartzkey.py +0 -0
  531. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/egl/__init__.py +0 -0
  532. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/egl/egl.py +0 -0
  533. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/egl/eglext.py +0 -0
  534. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/egl/lib.py +0 -0
  535. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/wayland/__init__.py +0 -0
  536. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/wayland/gbm.py +0 -0
  537. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/wayland/xkbcommon.py +0 -0
  538. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/constants.py +0 -0
  539. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/context_managers.py +0 -0
  540. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/dinput.py +0 -0
  541. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/libwintab.py +0 -0
  542. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/winkey.py +0 -0
  543. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/__init__.py +0 -0
  544. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/cursorfont.py +0 -0
  545. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/xf86vmode.py +0 -0
  546. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/xinerama.py +0 -0
  547. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/xinput.py +0 -0
  548. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/xlib.py +0 -0
  549. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/xsync.py +0 -0
  550. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/__init__.py +0 -0
  551. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/buffered_logger.py +0 -0
  552. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/__init__.py +0 -0
  553. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/base.py +0 -0
  554. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/coreaudio.py +0 -0
  555. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg.py +0 -0
  556. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
  557. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/compat.py +0 -0
  558. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +0 -0
  559. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +0 -0
  560. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +0 -0
  561. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +0 -0
  562. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +0 -0
  563. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/gstreamer.py +0 -0
  564. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/pyogg.py +0 -0
  565. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/wave.py +0 -0
  566. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/devices/__init__.py +0 -0
  567. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/__init__.py +0 -0
  568. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/directsound/__init__.py +0 -0
  569. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/directsound/exceptions.py +0 -0
  570. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/directsound/interface.py +0 -0
  571. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/openal/__init__.py +0 -0
  572. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/openal/interface.py +0 -0
  573. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/openal/lib_alc.py +0 -0
  574. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/openal/lib_openal.py +0 -0
  575. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/pulse/__init__.py +0 -0
  576. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/pulse/adaptation.py +0 -0
  577. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/pulse/interface.py +0 -0
  578. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
  579. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/silent/__init__.py +0 -0
  580. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/silent/adaptation.py +0 -0
  581. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
  582. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/exceptions.py +0 -0
  583. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/instrumentation.py +0 -0
  584. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/synthesis.py +0 -0
  585. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/model/codecs/__init__.py +0 -0
  586. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/model/codecs/gltf.py +0 -0
  587. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/resource.py +0 -0
  588. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/document.py +0 -0
  589. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/formats/__init__.py +0 -0
  590. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/formats/attributed.py +0 -0
  591. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/formats/html.py +0 -0
  592. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/formats/plaintext.py +0 -0
  593. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/formats/structured.py +0 -0
  594. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/runlist.py +0 -0
  595. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/cocoa/pyglet_delegate.py +0 -0
  596. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/cocoa/pyglet_view.py +0 -0
  597. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/cocoa/pyglet_window.py +0 -0
  598. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/cocoa/systemcursor.py +0 -0
  599. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/event.py +0 -0
  600. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/headless/__init__.py +0 -0
  601. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/mouse.py +0 -0
  602. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet.egg-info/dependency_links.txt +0 -0
  603. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet.egg-info/top_level.txt +0 -0
  604. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet.egg-info/zip-safe +0 -0
  605. {pyglet-2.0.8 → pyglet-2.0.10}/pyproject.toml +0 -0
  606. {pyglet-2.0.8 → pyglet-2.0.10}/pytest.ini +0 -0
  607. {pyglet-2.0.8 → pyglet-2.0.10}/setup.cfg +0 -0
  608. {pyglet-2.0.8 → pyglet-2.0.10}/setup.py +0 -0
  609. {pyglet-2.0.8 → pyglet-2.0.10}/tests/__init__.py +0 -0
  610. {pyglet-2.0.8 → pyglet-2.0.10}/tests/annotations.py +0 -0
  611. {pyglet-2.0.8 → pyglet-2.0.10}/tests/base/__init__.py +0 -0
  612. {pyglet-2.0.8 → pyglet-2.0.10}/tests/base/data.py +0 -0
  613. {pyglet-2.0.8 → pyglet-2.0.10}/tests/base/event_loop.py +0 -0
  614. {pyglet-2.0.8 → pyglet-2.0.10}/tests/base/interactive.py +0 -0
  615. {pyglet-2.0.8 → pyglet-2.0.10}/tests/base/performance.py +0 -0
  616. {pyglet-2.0.8 → pyglet-2.0.10}/tests/base/test_interactive_test_base.py +0 -0
  617. {pyglet-2.0.8 → pyglet-2.0.10}/tests/conftest.py +0 -0
  618. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/fonts/README +0 -0
  619. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/fonts/action_man.ttf +0 -0
  620. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/fonts/action_man_bold.ttf +0 -0
  621. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
  622. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/fonts/action_man_italic.ttf +0 -0
  623. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
  624. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/8bpp.gif +0 -0
  625. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/cursor.png +0 -0
  626. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/dinosaur.gif +0 -0
  627. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/gdk_close.png +0 -0
  628. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/grey_background.png +0 -0
  629. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/icon1.png +0 -0
  630. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/icon_size1.png +0 -0
  631. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/icon_size2.png +0 -0
  632. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/icon_size3.png +0 -0
  633. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/icon_size4.png +0 -0
  634. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/icon_size5.png +0 -0
  635. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/l.png +0 -0
  636. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/la.png +0 -0
  637. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/multitexture.png +0 -0
  638. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb.png +0 -0
  639. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_16bpp.bmp +0 -0
  640. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_1bpp.bmp +0 -0
  641. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_24bpp.bmp +0 -0
  642. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_32bpp.bmp +0 -0
  643. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_4bpp.bmp +0 -0
  644. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_8bpp.bmp +0 -0
  645. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_8bpp.png +0 -0
  646. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_8bpp_trans.png +0 -0
  647. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_dxt1.dds +0 -0
  648. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgba.png +0 -0
  649. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgba_32bpp.bmp +0 -0
  650. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgba_dxt1.dds +0 -0
  651. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgba_dxt3.dds +0 -0
  652. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgba_dxt5.dds +0 -0
  653. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
  654. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/README +0 -0
  655. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/alert.wav +0 -0
  656. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/login.wav +0 -0
  657. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/logout.wav +0 -0
  658. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/receive.wav +0 -0
  659. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/send.wav +0 -0
  660. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
  661. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
  662. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
  663. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
  664. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
  665. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
  666. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
  667. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
  668. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
  669. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
  670. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
  671. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
  672. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/models/logo3d.mtl +0 -0
  673. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/models/logo3d.obj +0 -0
  674. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/__init__.py +0 -0
  675. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/app/__init__.py +0 -0
  676. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/font/test_fontconfig.py +0 -0
  677. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/font/test_freetype_face.py +0 -0
  678. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/graphics/__init__.py +0 -0
  679. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/graphics/test_allocation.py +0 -0
  680. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/image/__init__.py +0 -0
  681. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/image/test_gdkpixbuf2.py +0 -0
  682. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/__init__.py +0 -0
  683. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/mock_player.py +0 -0
  684. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/test_directsound.py +0 -0
  685. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/test_openal.py +0 -0
  686. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/test_player.py +0 -0
  687. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/test_pulse.py +0 -0
  688. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/model/__init__.py +0 -0
  689. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/model/test_loading.py +0 -0
  690. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/platform/__init__.py +0 -0
  691. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/platform/test_linux_fontconfig.py +0 -0
  692. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/platform/test_win_context_managers.py +0 -0
  693. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/platform/test_win_multicore_clock.py +0 -0
  694. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/__init__.py +0 -0
  695. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
  696. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/dir1/f2.txt +0 -0
  697. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/dir1/res.zip +0 -0
  698. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/dir2/f6.txt +0 -0
  699. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/f1.txt +0 -0
  700. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/rgbm.png +0 -0
  701. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/test_resource_image_loading.py +0 -0
  702. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/test_resource_loading.py +0 -0
  703. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/text/__init__.py +0 -0
  704. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/text/test_empty_document.py +0 -0
  705. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/window/__init__.py +0 -0
  706. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/window/test_context_share.py +0 -0
  707. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/window/test_event_sequence.py +0 -0
  708. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/window/test_window_caption.py +0 -0
  709. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/__init__.py +0 -0
  710. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/conftest.py +0 -0
  711. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/graphics/__init__.py +0 -0
  712. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/graphics/test_multitexture.py +0 -0
  713. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/image/__init__.py +0 -0
  714. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/image/test_image.py +0 -0
  715. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/media/__init__.py +0 -0
  716. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/media/test_player.py +0 -0
  717. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/screenshots/committed/README +0 -0
  718. /pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.graphics.test_multitexture.test_multitexture.001.png → /pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_saving[rgb.png].001.png +0 -0
  719. /pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_16bpp.bmp].001.png → /pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_saving[rgba.png].001.png +0 -0
  720. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/screenshots/session/README +0 -0
  721. /pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_1bpp.bmp].001.png → /pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.graphics.test_multitexture.test_multitexture.001.png +0 -0
  722. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[l.png].001.png +0 -0
  723. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[l.png].001.png +0 -0
  724. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/__init__.py +0 -0
  725. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_caret_color.py +0 -0
  726. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_content_valign.py +0 -0
  727. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_html.py +0 -0
  728. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/__init__.py +0 -0
  729. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_events.py +0 -0
  730. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_fullscreen.py +0 -0
  731. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_modes.py +0 -0
  732. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_multisample.py +0 -0
  733. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_open.py +0 -0
  734. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_settings.py +0 -0
  735. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_styles.py +0 -0
  736. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/window_util.py +0 -0
  737. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/windowed_test_base.py +0 -0
  738. {pyglet-2.0.8 → pyglet-2.0.10}/tests/requirements.txt +0 -0
  739. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/__init__.py +0 -0
  740. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/media/__init__.py +0 -0
  741. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/media/test_listener.py +0 -0
  742. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/media/test_player.py +0 -0
  743. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/media/test_sources.py +0 -0
  744. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/media/test_synthesis.py +0 -0
  745. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/shapes/__init__.py +0 -0
  746. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/shapes/conftest.py +0 -0
  747. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
  748. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_atlas.py +0 -0
  749. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_clock.py +0 -0
  750. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_clock_freq.py +0 -0
  751. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_font.py +0 -0
  752. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_input.py +0 -0
  753. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_math.py +0 -0
  754. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_resource_path.py +0 -0
  755. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_sprite.py +0 -0
  756. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_text.py +0 -0
  757. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/text/__init__.py +0 -0
  758. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/text/test_caret.py +0 -0
  759. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/text/test_layout.py +0 -0
  760. {pyglet-2.0.8 → pyglet-2.0.10}/tools/al_info.py +0 -0
  761. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/bokeh_timeline.py +0 -0
  762. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/compare.py +0 -0
  763. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/configure.py +0 -0
  764. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/extractors.py +0 -0
  765. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/fs.py +0 -0
  766. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/mp.py +0 -0
  767. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/mpexceptions.py +0 -0
  768. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/playmany.py +0 -0
  769. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
  770. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/readme_run_tests.txt +0 -0
  771. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/report.py +0 -0
  772. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/reports.py +0 -0
  773. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/retry_crashed.py +0 -0
  774. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/run_test_suite.py +0 -0
  775. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/summarize.py +0 -0
  776. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/test_instrumentation.py +0 -0
  777. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/timeline.py +0 -0
  778. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gendist.sh +0 -0
  779. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gengl.py +0 -0
  780. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gengl_old.py +0 -0
  781. {pyglet-2.0.8 → pyglet-2.0.10}/tools/genwrappers.py +0 -0
  782. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gl.template +0 -0
  783. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gl.xml +0 -0
  784. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gl_info.py +0 -0
  785. {pyglet-2.0.8 → pyglet-2.0.10}/tools/inspect_font.py +0 -0
  786. {pyglet-2.0.8 → pyglet-2.0.10}/tools/requirements.txt +0 -0
  787. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wgl.h +0 -0
  788. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/__init__.py +0 -0
  789. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/cparser.py +0 -0
  790. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/ctypesparser.py +0 -0
  791. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/lex.py +0 -0
  792. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/preprocessor.py +0 -0
  793. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/wrap.py +0 -0
  794. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/yacc.py +0 -0
  795. {pyglet-2.0.8 → pyglet-2.0.10}/website/LICENSE.txt +0 -0
  796. {pyglet-2.0.8 → pyglet-2.0.10}/website/README.rst +0 -0
  797. {pyglet-2.0.8 → pyglet-2.0.10}/website/assets/favicon.ico +0 -0
  798. {pyglet-2.0.8 → pyglet-2.0.10}/website/assets/static/css/example-custom-styles.css +0 -0
  799. {pyglet-2.0.8 → pyglet-2.0.10}/website/assets/static/images/pyglet.png +0 -0
  800. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/404.html/contents.lr +0 -0
  801. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/404.html/ngc-5793.jpg +0 -0
  802. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/authors/benjamin/contents.lr +0 -0
  803. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/authors/benjamin/pyglet.png +0 -0
  804. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/authors/contents.lr +0 -0
  805. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/blog/contents.lr +0 -0
  806. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/blog/welcome-blog/contents.lr +0 -0
  807. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/contents.lr +0 -0
  808. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/eclipse.jpg +0 -0
  809. {pyglet-2.0.8 → pyglet-2.0.10}/website/pyglet.lektorproject +0 -0
  810. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/AUTHORS.txt +0 -0
  811. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/CHANGELOG.md +0 -0
  812. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
  813. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/LICENSE.txt +0 -0
  814. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/NOTICE.txt +0 -0
  815. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/README.md +0 -0
  816. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
  817. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
  818. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
  819. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
  820. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  821. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  822. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  823. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
  824. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
  825. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
  826. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
  827. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
  828. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
  829. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
  830. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
  831. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
  832. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
  833. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
  834. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
  835. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
  836. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
  837. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
  838. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
  839. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
  840. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
  841. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
  842. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
  843. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
  844. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
  845. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/blog-index.png +0 -0
  846. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/full-blog.png +0 -0
  847. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/full-page.png +0 -0
  848. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/gallery-404.png +0 -0
  849. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
  850. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
  851. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
  852. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/404.ini +0 -0
  853. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/author.ini +0 -0
  854. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/authors.ini +0 -0
  855. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/blog-post.ini +0 -0
  856. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/blog.ini +0 -0
  857. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/page.ini +0 -0
  858. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/single-layout.ini +0 -0
  859. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/404.html +0 -0
  860. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/author.html +0 -0
  861. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/authors.html +0 -0
  862. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
  863. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
  864. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
  865. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
  866. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
  867. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
  868. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blog-post.html +0 -0
  869. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blog.html +0 -0
  870. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/layout.html +0 -0
  871. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
  872. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
  873. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/none.html +0 -0
  874. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/page.html +0 -0
  875. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/single-layout.html +0 -0
  876. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/theme.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  import weakref
2
2
 
3
- from math import atan2, cos, sin, radians, pi
3
+ from math import cos, sin, radians
4
4
 
5
5
  import pyglet
6
6
 
@@ -8,12 +8,18 @@ from pyglet.gl import glEnable, GL_DEPTH_TEST, GL_CULL_FACE
8
8
  from pyglet.math import Vec2, Vec3, Mat4, clamp
9
9
 
10
10
 
11
- window = pyglet.window.Window(width=720, height=480, resizable=True)
12
- batch = pyglet.graphics.Batch()
13
- time = 0
11
+ class FPSCamera:
12
+ """A 3D projection "first person" camera example.
14
13
 
14
+ Windows in pyglet contain `view` and `projection` matrices,
15
+ which are shared with all default shaders in a `WindowBlock` UBO.
16
+ This Camera class handles events from the mouse & keyboard and
17
+ Controller, and updates these Window matrices.
15
18
 
16
- class FPSCamera:
19
+ Note mouse input will be captured once you click on the Window,
20
+ which sets the mouse as exclusive. Pressing ESC once will set
21
+ the mouse as non-exclusive.
22
+ """
17
23
  def __init__(self, window, position=Vec3(0, 0, 0), target=Vec3(0, 0, -1), up=Vec3(0, 1, 0)):
18
24
  self.position = position
19
25
  self.target = target
@@ -32,6 +38,8 @@ class FPSCamera:
32
38
  pyglet.window.key.A: "left",
33
39
  pyglet.window.key.D: "right"}
34
40
 
41
+ self.inputs = {direction : False for direction in self.input_map.values()}
42
+
35
43
  self.mouse_look = Vec2()
36
44
  self.keybord_move = Vec3()
37
45
  self.controller_look = Vec2()
@@ -40,7 +48,8 @@ class FPSCamera:
40
48
  self._window = weakref.proxy(window)
41
49
  self._window.view = Mat4.look_at(position, target, up)
42
50
  self._window.push_handlers(self)
43
- self._window.set_exclusive_mouse(True)
51
+
52
+ self._exclusive_mouse = False
44
53
 
45
54
  def on_deactivate(self):
46
55
  # Prevent input from getting "stuck"
@@ -48,7 +57,7 @@ class FPSCamera:
48
57
 
49
58
  def on_resize(self, width, height):
50
59
  self._window.viewport = (0, 0, width, height)
51
- self._window.projection = Mat4.perspective_projection(window.aspect_ratio, z_near=0.1, z_far=100, fov=45)
60
+ self._window.projection = Mat4.perspective_projection(self._window.aspect_ratio, z_near=0.1, z_far=100, fov=45)
52
61
  return pyglet.event.EVENT_HANDLED
53
62
 
54
63
  def on_refresh(self, dt):
@@ -60,12 +69,12 @@ class FPSCamera:
60
69
  self.yaw = self.yaw + self.controller_look.x
61
70
  self.pitch = clamp(self.pitch + self.controller_look.y, -89.0, 89.0)
62
71
 
63
- if abs(self.mouse_look) > 0:
72
+ if abs(self.mouse_look) > 0.0:
64
73
  # Reset the vector back to 0 each time, because there is no event
65
74
  # for when the mouse stops moving. It will get "stuck" otherwise.
66
75
  self.yaw += self.mouse_look.x * 0.1
67
76
  self.pitch = clamp(self.pitch + self.mouse_look.y * 0.1, -89.0, 89.0)
68
- self.mouse_look[:] = 0, 0
77
+ self.mouse_look[:] = 0.0, 0.0
69
78
 
70
79
  self.target = Vec3(cos(radians(self.yaw)) * cos(radians(self.pitch)),
71
80
  sin(radians(self.pitch)),
@@ -78,6 +87,15 @@ class FPSCamera:
78
87
  if abs(self.controller_move) > self.deadzone:
79
88
  self.position += self.controller_move * speed
80
89
 
90
+ if self.inputs["forward"]:
91
+ self.position += (self.target * speed)
92
+ if self.inputs["backward"]:
93
+ self.position -= (self.target * speed)
94
+ if self.inputs["left"]:
95
+ self.position -= (self.target.cross(self.up).normalize() * speed)
96
+ if self.inputs["right"]:
97
+ self.position += (self.target.cross(self.up).normalize() * speed)
98
+
81
99
  if abs(self.keybord_move) > 0:
82
100
  self.position += self.keybord_move * speed
83
101
 
@@ -86,38 +104,31 @@ class FPSCamera:
86
104
  # Mouse input
87
105
 
88
106
  def on_mouse_motion(self, x, y, dx, dy):
107
+ if not self._exclusive_mouse:
108
+ return
89
109
  self.mouse_look[:] = dx, dy
90
110
 
111
+ def on_mouse_press(self, x, y, button, modifiers):
112
+ if not self._exclusive_mouse:
113
+ self._exclusive_mouse = True
114
+ self._window.set_exclusive_mouse(True)
115
+
91
116
  # Keyboard input
92
117
 
93
118
  def on_key_press(self, symbol, mod):
94
- if symbol in self.input_map:
119
+ if symbol == pyglet.window.key.ESCAPE:
120
+ self._exclusive_mouse = False
121
+ self._window.set_exclusive_mouse(False)
122
+ return pyglet.event.EVENT_HANDLED
95
123
 
124
+ if symbol in self.input_map:
96
125
  direction = self.input_map[symbol]
97
-
98
- if direction == 'forward':
99
- self.keybord_move += self.target
100
- elif direction == 'backward':
101
- self.keybord_move -= self.target
102
- elif direction == 'left':
103
- self.keybord_move -= self.target.cross(self.up).normalize()
104
- elif direction == 'right':
105
- self.keybord_move += self.target.cross(self.up).normalize()
106
-
126
+ self.inputs[direction] = True
107
127
 
108
128
  def on_key_release(self, symbol, mod):
109
129
  if symbol in self.input_map:
110
-
111
130
  direction = self.input_map[symbol]
112
-
113
- if direction == 'forward':
114
- self.keybord_move -= self.target
115
- elif direction == 'backward':
116
- self.keybord_move += self.target
117
- elif direction == 'left':
118
- self.keybord_move += self.target.cross(self.up).normalize()
119
- elif direction == 'right':
120
- self.keybord_move -= self.target.cross(self.up).normalize()
131
+ self.inputs[direction] = False
121
132
 
122
133
  # Controller input
123
134
 
@@ -126,25 +137,26 @@ class FPSCamera:
126
137
  self.controller_move = self.target * yvalue + self.target.cross(self.up).normalize() * xvalue
127
138
 
128
139
  elif stick == "rightstick":
129
- self.controller_look[:] = xvalue, yvalue, 0
140
+ self.controller_look[:] = xvalue, yvalue
130
141
 
131
142
 
132
143
 
133
- @window.event
134
- def on_draw():
135
- window.clear()
136
- batch.draw()
144
+ if __name__ == "__main__":
145
+ window = pyglet.window.Window(width=964, height=540, resizable=True)
146
+ batch = pyglet.graphics.Batch()
137
147
 
148
+ @window.event
149
+ def on_draw():
150
+ window.clear()
151
+ batch.draw()
138
152
 
139
- if __name__ == "__main__":
140
153
  glEnable(GL_DEPTH_TEST)
141
154
  glEnable(GL_CULL_FACE)
142
155
 
143
156
  model_logo = pyglet.model.load("logo3d.obj", batch=batch)
144
157
  model_box = pyglet.model.load("box.obj", batch=batch)
145
158
 
146
- # Set the application wide view matrix (camera):
147
- # window.view = Mat4.look_at(position=Vec3(0, 0, 5), target=Vec3(0, 0, 0), up=Vec3(0, 1, 0))
159
+ # Camera controls the global projection & view matrixes:
148
160
  camera = FPSCamera(window, position=Vec3(0, 0, 5))
149
161
 
150
162
  if controllers := pyglet.input.get_controllers():
@@ -0,0 +1,18 @@
1
+ from pyglet.experimental import net
2
+
3
+
4
+ client = net.Client(address='localhost', port=1234)
5
+
6
+
7
+ @client.event
8
+ def on_receive(message):
9
+ print(f"Received: {message}")
10
+
11
+
12
+ @client.event
13
+ def on_disconnect(message):
14
+ print(f"Received: {message}")
15
+
16
+
17
+ client.send(b'ping')
18
+
@@ -0,0 +1,25 @@
1
+ import pyglet
2
+
3
+ from pyglet.experimental import net
4
+
5
+
6
+ server = net.Server(address='0.0.0.0', port=1234)
7
+
8
+
9
+ def pong(connection, message):
10
+ print(f"Received '{message}' from '{connection}'")
11
+ connection.send(b'pong')
12
+
13
+
14
+ @server.event
15
+ def on_connection(connection):
16
+ print(f"New client connected: {connection}")
17
+ connection.set_handler('on_receive', pong)
18
+
19
+
20
+ @server.event
21
+ def on_disconnection(connection):
22
+ print(f"Client disconnected: {connection}")
23
+
24
+
25
+ pyglet.app.run()
@@ -0,0 +1,39 @@
1
+ """Minimal Compute Shader example.
2
+
3
+ This example creates a Compute Shader from source,
4
+ attached a texture to it, and writes into the texture.
5
+ The texture is then saved to disk as a .png file.
6
+ """
7
+
8
+ import pyglet
9
+
10
+ from pyglet.gl import GL_RGBA32F, GL_ALL_BARRIER_BITS
11
+
12
+
13
+ compute_src = """#version 430 core
14
+ layout (local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
15
+
16
+ layout(rgba32f) uniform image2D img_output;
17
+
18
+ void main() {
19
+ vec4 value = vec4(0.0, 0.0, 0.0, 1.0);
20
+ ivec2 texel_coord = ivec2(gl_GlobalInvocationID.xy);
21
+ value.r = float(texel_coord.x)/(gl_NumWorkGroups.x);
22
+ value.g = float(texel_coord.y)/(gl_NumWorkGroups.y);
23
+
24
+ imageStore(img_output, texel_coord, value);
25
+ }
26
+ """
27
+
28
+ program = pyglet.graphics.shader.ComputeShaderProgram(compute_src)
29
+
30
+ # Create a Texture, and bind it to the shader
31
+ out_texture = pyglet.image.Texture.create(540, 540, internalformat=GL_RGBA32F)
32
+ out_texture.bind_image_texture(unit=program.uniforms['img_output'].location)
33
+
34
+
35
+ with program:
36
+ program.dispatch(out_texture.width, out_texture.height, 1, barrier=GL_ALL_BARRIER_BITS)
37
+
38
+
39
+ out_texture.save('compute_output.png')
@@ -43,6 +43,8 @@ class ShapesDemo(pyglet.window.Window):
43
43
 
44
44
  self.polygon = shapes.Polygon([400, 100], [500, 10], [600, 100], [550, 175], [450, 150], batch=self.batch)
45
45
 
46
+ self.box = shapes.Box(60, 40, 200, 100, thickness=2, color=(244, 55, 55), batch=self.batch)
47
+
46
48
  def on_draw(self):
47
49
  """Clear the screen and draw shapes"""
48
50
  self.clear()
@@ -54,6 +56,7 @@ class ShapesDemo(pyglet.window.Window):
54
56
  self.square.rotation = self.time * 15
55
57
  self.rectangle.y = 200 + math.sin(self.time) * 190
56
58
  self.circle.radius = 75 + math.sin(self.time * 1.17) * 25
59
+ self.triangle.rotation = self.time * 15
57
60
 
58
61
  self.line.x = 360 + math.sin(self.time * 0.81) * 360
59
62
  self.line.x2 = 360 + math.sin(self.time * 1.34) * 360
@@ -4,28 +4,32 @@ size, but rendering to the full screen.
4
4
 
5
5
  The method used in this example is:
6
6
 
7
- 1. Create a Framebuffer object, and a Texture of the desired resolution
8
- 2. Attach the Texture to the Framebuffer.
9
- 2. Bind the Framebuffer as the current render target.
10
- 3. Render the scene using any OpenGL functions (here, just a shape).
11
- 4. Unbind the Framebuffer, and blit the Texture scaled to fill the screen.
7
+ 1. Create a Framebuffer object, a Texture, and a depth buffer.
8
+ 2. Attach the Texture and depth buffer to the Framebuffer.
9
+ 3. Bind the Framebuffer as the current render target.
10
+ 4. Render the scene using any OpenGL functions (here, just a shape).
11
+ 5. Unbind the Framebuffer, and blit the Texture scaled to fill the screen.
12
12
  """
13
13
 
14
- from pyglet.gl import *
15
14
  import pyglet
16
15
 
16
+ from pyglet.gl import *
17
+
17
18
 
18
19
  class FixedResolution:
19
20
  def __init__(self, window, width, height):
20
21
  self.window = window
22
+ self.window.set_minimum_size(width, height)
21
23
  self.width = width
22
24
  self.height = height
23
25
 
24
26
  self._target_area = 0, 0, 0, 0, 0
25
27
 
26
28
  self.framebuffer = pyglet.image.Framebuffer()
27
- self.texture = pyglet.image.Texture.create(width, height, min_filter=GL_NEAREST, mag_filter=GL_NEAREST)
28
- self.framebuffer.attach_texture(self.texture)
29
+ self._color_buffer = pyglet.image.Texture.create(width, height, min_filter=GL_NEAREST, mag_filter=GL_NEAREST)
30
+ self._depth_buffer = pyglet.image.buffer.Renderbuffer(width, height, GL_DEPTH_COMPONENT)
31
+ self.framebuffer.attach_texture(self._color_buffer)
32
+ self.framebuffer.attach_renderbuffer(self._depth_buffer, attachment=GL_DEPTH_ATTACHMENT)
29
33
 
30
34
  self.window.push_handlers(self)
31
35
 
@@ -52,7 +56,7 @@ class FixedResolution:
52
56
 
53
57
  def __exit__(self, *unused):
54
58
  self.framebuffer.unbind()
55
- self.texture.blit(*self._target_area)
59
+ self._color_buffer.blit(*self._target_area)
56
60
 
57
61
  def begin(self):
58
62
  self.__enter__()
@@ -65,37 +69,36 @@ class FixedResolution:
65
69
  # Simple program using the Viewport:
66
70
  ###################################
67
71
 
68
- window = pyglet.window.Window(960, 540, resizable=True)
69
-
70
- # Create an instance of the FixedResolution class. Use
71
- # 320x180 resolution to make the effect completely obvious:
72
- fixed_res = FixedResolution(window, width=320, height=180)
73
-
72
+ if __name__ == '__main__':
73
+ window = pyglet.window.Window(960, 540, resizable=True)
74
74
 
75
- def update(dt):
76
- global rectangle
77
- rectangle.rotation += dt * 10
75
+ # Create an instance of the FixedResolution class. Use
76
+ # 320x180 resolution to make the effect completely obvious:
77
+ fixed_res = FixedResolution(window, width=320, height=180)
78
78
 
79
79
 
80
- @window.event
81
- def on_draw():
82
- window.clear()
80
+ @window.event
81
+ def on_draw():
82
+ window.clear()
83
83
 
84
- # The FixedResolution instance can be used as a context manager:
85
- with fixed_res:
86
- rectangle.draw()
84
+ # The FixedResolution instance can be used as a context manager:
85
+ with fixed_res:
86
+ rectangle.draw()
87
87
 
88
- # # Alternatively, you can do it manually:
89
- # fixed_res.begin()
90
- # rectangle.draw()
91
- # fixed_res.end()
88
+ # # Alternatively, you can do it manually:
89
+ # fixed_res.begin()
90
+ # rectangle.draw()
91
+ # fixed_res.end()
92
92
 
93
93
 
94
- # Create a simple Rectangle to show the effect
95
- rectangle = pyglet.shapes.Rectangle(x=160, y=90, color=(200, 50, 50), width=100, height=100)
96
- rectangle.anchor_position = 50, 50
94
+ # Create a simple Rectangle to show the effect
95
+ rectangle = pyglet.shapes.Rectangle(x=160, y=90, color=(200, 50, 50), width=100, height=100)
96
+ rectangle.anchor_position = 50, 50
97
97
 
98
- # Schedule the update function at 60fps
99
- pyglet.clock.schedule_interval(update, 1/60)
100
- pyglet.app.run()
98
+ def update(dt):
99
+ global rectangle
100
+ rectangle.rotation += dt * 10
101
101
 
102
+ # Schedule the update function at 60fps
103
+ pyglet.clock.schedule_interval(update, 1 / 60)
104
+ pyglet.app.run()
@@ -9,7 +9,7 @@ import sys
9
9
  from typing import TYPE_CHECKING
10
10
 
11
11
  #: The release version
12
- version = '2.0.8'
12
+ version = '2.0.10'
13
13
  __version__ = version
14
14
 
15
15
  MIN_PYTHON_VERSION = 3, 8
@@ -31,8 +31,10 @@ _enable_optimisations = not __debug__
31
31
  if getattr(sys, 'frozen', None):
32
32
  _enable_optimisations = True
33
33
 
34
- #: Global dict of pyglet options. To change an option from its default, you
35
- #: must import ``pyglet`` before any sub-packages. For example::
34
+ #: Global dict of pyglet options.
35
+ #:
36
+ #: To change an option from its default, you must import
37
+ #: ``pyglet`` before any sub-packages. For example::
36
38
  #:
37
39
  #: import pyglet
38
40
  #: pyglet.options['debug_gl'] = False
@@ -48,14 +50,21 @@ if getattr(sys, 'frozen', None):
48
50
  #: The non-development options are:
49
51
  #:
50
52
  #: audio
51
- #: A sequence of the names of audio modules to attempt to load, in
52
- #: order of preference. Valid driver names are:
53
+ #: A :py:class:`~typing.Sequence` of valid audio modules names. They will
54
+ #: be tried from first to last until either a driver loads or no entries
55
+ #: remain. See :ref:`guide-audio-driver-order` for more information.
56
+ #:
57
+ #: Valid driver names are:
58
+ #:
59
+ #: * ``'xaudio2'``, the Windows Xaudio2 audio module (Windows only)
60
+ #: * ``'directsound'``, the Windows DirectSound audio module (Windows only)
61
+ #: * ``'pulse'``, the :ref:`guide-audio-driver-pulseaudio` module
62
+ #: (Linux only, otherwise nearly ubiquitous. Limited features; use
63
+ #: ``'openal'`` for more.)
64
+ #: * ``'openal'``, the :ref:`guide-audio-driver-openal` audio module
65
+ #: (A library may need to be installed on Windows and Linux)
66
+ #: * ``'silent'``, no audio
53
67
  #:
54
- #: * xaudio2, the Windows Xaudio2 audio module (Windows only)
55
- #: * directsound, the Windows DirectSound audio module (Windows only)
56
- #: * pulse, the PulseAudio module (Linux only)
57
- #: * openal, the OpenAL audio module
58
- #: * silent, no audio
59
68
  #: debug_lib
60
69
  #: If True, prints the path of each dynamic library loaded.
61
70
  #: debug_gl
@@ -336,6 +345,7 @@ if TYPE_CHECKING:
336
345
  from . import app
337
346
  from . import canvas
338
347
  from . import clock
348
+ from . import customtypes
339
349
  from . import event
340
350
  from . import font
341
351
  from . import gl
@@ -356,6 +366,7 @@ else:
356
366
  app = _ModuleProxy('app')
357
367
  canvas = _ModuleProxy('canvas')
358
368
  clock = _ModuleProxy('clock')
369
+ customtypes = _ModuleProxy('customtypes')
359
370
  event = _ModuleProxy('event')
360
371
  font = _ModuleProxy('font')
361
372
  gl = _ModuleProxy('gl')
@@ -122,12 +122,24 @@ class EventLoop(event.EventDispatcher):
122
122
  def run(self, interval=1/60):
123
123
  """Begin processing events, scheduled functions and window updates.
124
124
 
125
+ :Parameters:
126
+ `interval` : float or None [default: 1/60]
127
+ Windows redraw interval, in seconds (framerate).
128
+ If `interval == 0`, windows will redraw at maximum rate.
129
+ If `interval is None`, Pyglet will not call its redraw function.
130
+ The user must schedule (or call on demand) a custom redraw
131
+ function for each window, allowing a custom framerate per window.
132
+ (see example in documentation)
133
+
125
134
  This method returns when :py:attr:`has_exit` is set to True.
126
135
 
127
136
  Developers are discouraged from overriding this method, as the
128
137
  implementation is platform-specific.
129
138
  """
130
- if not interval:
139
+ if interval is None:
140
+ # User application will manage a custom _redraw_windows() method
141
+ pass
142
+ elif interval == 0:
131
143
  self.clock.schedule(self._redraw_windows)
132
144
  else:
133
145
  self.clock.schedule_interval(self._redraw_windows, interval)
@@ -78,6 +78,12 @@ class CocoaScreen(Screen):
78
78
  self.height = mode.height
79
79
 
80
80
  def restore_mode(self):
81
+ match_attrs = ['width', 'height', 'depth', 'rate']
82
+ current_mode = self.get_mode()
83
+ if all(getattr(current_mode, attr) == getattr(self._default_mode, attr) for
84
+ attr in match_attrs):
85
+ # Already in default mode
86
+ return
81
87
  quartz.CGDisplaySetDisplayMode(self._cg_display_id, self._default_mode.cgmode, None)
82
88
  quartz.CGDisplayRelease(self._cg_display_id)
83
89