pyglet 2.0.9__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 (874) hide show
  1. {pyglet-2.0.9 → pyglet-2.0.10}/.github/workflows/unittests.yml +1 -5
  2. {pyglet-2.0.9 → pyglet-2.0.10}/.readthedocs.yml +5 -1
  3. {pyglet-2.0.9 → pyglet-2.0.10}/PKG-INFO +3 -2
  4. {pyglet-2.0.9 → pyglet-2.0.10}/README.md +2 -1
  5. {pyglet-2.0.9 → pyglet-2.0.10}/RELEASE_NOTES +36 -0
  6. {pyglet-2.0.9 → pyglet-2.0.10}/contrib/qt_sprite_preview.py +774 -586
  7. {pyglet-2.0.9 → pyglet-2.0.10}/doc/conf.py +6 -0
  8. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/shapes.rst +8 -8
  9. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/window_key.rst +9 -1
  10. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/eventloop.rst +27 -26
  11. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/keyboard.rst +194 -67
  12. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/media.rst +297 -67
  13. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/quickstart.rst +1 -0
  14. pyglet-2.0.10/examples/clipboard.py +18 -0
  15. {pyglet-2.0.9 → pyglet-2.0.10}/examples/media/media_info.py +1 -9
  16. pyglet-2.0.10/examples/media/soundspace/README +38 -0
  17. pyglet-2.0.10/examples/media/soundspace/reader.py +117 -0
  18. pyglet-2.0.10/examples/media/soundspace/res/bass.wav +0 -0
  19. pyglet-2.0.10/examples/media/soundspace/res/drums.wav +0 -0
  20. pyglet-2.0.10/examples/media/soundspace/res/guitar.wav +0 -0
  21. pyglet-2.0.10/examples/media/soundspace/res/piano.wav +0 -0
  22. pyglet-2.0.10/examples/media/soundspace/res/space.txt +24 -0
  23. pyglet-2.0.10/examples/media/soundspace/soundspace.py +660 -0
  24. {pyglet-2.0.9 → pyglet-2.0.10}/examples/model/fpscamera.py +50 -38
  25. pyglet-2.0.10/examples/net/client.py +18 -0
  26. pyglet-2.0.10/examples/net/server.py +25 -0
  27. {pyglet-2.0.9/examples/graphics → pyglet-2.0.10/examples}/shapes.py +3 -0
  28. {pyglet-2.0.9 → pyglet-2.0.10}/examples/window/fixed_resolution.py +37 -34
  29. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/__init__.py +19 -10
  30. pyglet-2.0.10/pyglet/experimental/README.md +6 -0
  31. {pyglet-2.0.9 → pyglet-2.0.10/pyglet}/experimental/geoshader_sprite.py +29 -33
  32. pyglet-2.0.10/pyglet/experimental/net.py +247 -0
  33. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/font/directwrite.py +33 -59
  34. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/font/win32.py +10 -1
  35. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/base.py +195 -46
  36. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/gl_info.py +4 -2
  37. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/lib.py +1 -2
  38. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/win32.py +30 -30
  39. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/graphics/__init__.py +9 -21
  40. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/graphics/shader.py +53 -50
  41. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/graphics/vertexarray.py +8 -9
  42. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/graphics/vertexbuffer.py +50 -74
  43. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/graphics/vertexdomain.py +54 -97
  44. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gui/widgets.py +28 -0
  45. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/__init__.py +19 -5
  46. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/buffer.py +19 -16
  47. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/codecs/wic.py +1 -1
  48. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/controller_db.py +19 -23
  49. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/linux/evdev.py +3 -2
  50. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/win32/xinput.py +2 -2
  51. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/darwin/cocoapy/cocoalibs.py +1 -0
  52. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/win32/__init__.py +12 -1
  53. pyglet-2.0.10/pyglet/libs/win32/com.py +397 -0
  54. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/win32/types.py +8 -1
  55. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/wmf.py +16 -22
  56. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/devices/base.py +1 -2
  57. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/devices/win32.py +10 -10
  58. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/base.py +2 -3
  59. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/directsound/lib_dsound.py +0 -1
  60. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/listener.py +1 -3
  61. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +16 -34
  62. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/player.py +8 -3
  63. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/model/__init__.py +4 -17
  64. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/shapes.py +154 -125
  65. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/sprite.py +4 -17
  66. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/text/__init__.py +2 -0
  67. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/text/caret.py +2 -1
  68. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/text/layout.py +171 -189
  69. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/util.py +0 -31
  70. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/__init__.py +46 -18
  71. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/cocoa/__init__.py +28 -0
  72. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/key.py +10 -1
  73. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/win32/__init__.py +37 -0
  74. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/xlib/__init__.py +142 -5
  75. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet.egg-info/PKG-INFO +3 -2
  76. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet.egg-info/SOURCES.txt +66 -2
  77. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/app/test_eventloop.py +1 -2
  78. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/image/test_imagegrid.py +3 -0
  79. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/image/test_texture3d.py +3 -0
  80. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/media/test_driver.py +15 -12
  81. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_16bpp.bmp].001.png +0 -0
  82. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_1bpp.bmp].001.png +0 -0
  83. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_24bpp.bmp].001.png +0 -0
  84. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_32bpp.bmp].001.png +0 -0
  85. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_4bpp.bmp].001.png +0 -0
  86. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_8bpp.bmp].001.png +0 -0
  87. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgba_32bpp.bmp].001.png +0 -0
  88. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_buffer_copy.001.png +0 -0
  89. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_buffer_saving.001.png +0 -0
  90. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_checkerboard.001.png +0 -0
  91. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_dds_loading[rgb_dxt1.dds].001.png +0 -0
  92. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_dds_loading[rgba_dxt1.dds].001.png +0 -0
  93. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_dds_loading[rgba_dxt3.dds].001.png +0 -0
  94. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_dds_loading[rgba_dxt5.dds].001.png +0 -0
  95. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_depth_buffer_saving.001.png +0 -0
  96. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[8bpp.gif].001.png +0 -0
  97. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[l.png].001.png +0 -0
  98. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[la.png].001.png +0 -0
  99. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgb.png].001.png +0 -0
  100. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgba.png].001.png +0 -0
  101. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_loading[la.png].001.png +0 -0
  102. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_loading[rgb.png].001.png +0 -0
  103. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_loading[rgba.png].001.png +0 -0
  104. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_saving[l.png].001.png +0 -0
  105. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_saving[la.png].001.png +0 -0
  106. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[la.png].001.png +0 -0
  107. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[rgb.png].001.png +0 -0
  108. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[rgb_8bpp.png].001.png +0 -0
  109. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[rgb_8bpp_trans.png].001.png +0 -0
  110. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[rgba.png].001.png +0 -0
  111. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_saving[l.png].001.png +0 -0
  112. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_saving[la.png].001.png +0 -0
  113. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_saving[rgb.png].001.png +0 -0
  114. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_saving[rgba.png].001.png +0 -0
  115. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_16bpp.bmp].001.png +0 -0
  116. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_1bpp.bmp].001.png +0 -0
  117. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_24bpp.bmp].001.png +0 -0
  118. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_32bpp.bmp].001.png +0 -0
  119. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_4bpp.bmp].001.png +0 -0
  120. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_8bpp.bmp].001.png +0 -0
  121. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgba_32bpp.bmp].001.png +0 -0
  122. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_buffer_copy.001.png +0 -0
  123. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_buffer_saving.001.png +0 -0
  124. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_checkerboard.001.png +0 -0
  125. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgb_dxt1.dds].001.png +0 -0
  126. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt1.dds].001.png +0 -0
  127. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt3.dds].001.png +0 -0
  128. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt5.dds].001.png +0 -0
  129. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_depth_buffer_saving.001.png +0 -0
  130. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[8bpp.gif].001.png +0 -0
  131. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[l.png].001.png +0 -0
  132. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[la.png].001.png +0 -0
  133. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgb.png].001.png +0 -0
  134. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgba.png].001.png +0 -0
  135. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[la.png].001.png +0 -0
  136. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[rgb.png].001.png +0 -0
  137. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[rgba.png].001.png +0 -0
  138. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_saving[l.png].001.png +0 -0
  139. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_saving[la.png].001.png +0 -0
  140. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_saving[rgb.png].001.png +0 -0
  141. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_saving[rgba.png].001.png +0 -0
  142. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[la.png].001.png +0 -0
  143. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgb.png].001.png +0 -0
  144. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgb_8bpp.png].001.png +0 -0
  145. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgb_8bpp_trans.png].001.png +0 -0
  146. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgba.png].001.png +0 -0
  147. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_saving[l.png].001.png +0 -0
  148. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_saving[la.png].001.png +0 -0
  149. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_saving[rgb.png].001.png +0 -0
  150. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_saving[rgba.png].001.png +0 -0
  151. pyglet-2.0.10/tests/interactive/shapes/test_shapes.py +179 -0
  152. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/text/test_inline_elements.py +20 -17
  153. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/text/test_inline_elements_style_change.py +15 -14
  154. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/text/test_multiline_wrap.py +18 -18
  155. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/text/test_plain.py +5 -5
  156. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/text/test_style.py +5 -5
  157. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/conftest.py +5 -0
  158. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/shapes/test_shapes.py +24 -2
  159. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/test_events.py +31 -21
  160. {pyglet-2.0.9 → pyglet-2.0.10}/tools/gencontrollerdb.py +3 -3
  161. pyglet-2.0.9/pyglet/libs/win32/com.py +0 -340
  162. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_24bpp.bmp].001.png +0 -0
  163. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_32bpp.bmp].001.png +0 -0
  164. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_4bpp.bmp].001.png +0 -0
  165. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_8bpp.bmp].001.png +0 -0
  166. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgba_32bpp.bmp].001.png +0 -0
  167. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_checkerboard.001.png +0 -0
  168. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgb_dxt1.dds].001.png +0 -0
  169. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt1.dds].001.png +0 -0
  170. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt3.dds].001.png +0 -0
  171. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt5.dds].001.png +0 -0
  172. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[8bpp.gif].001.png +0 -0
  173. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[l.png].001.png +0 -0
  174. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[la.png].001.png +0 -0
  175. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgb.png].001.png +0 -0
  176. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgba.png].001.png +0 -0
  177. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[la.png].001.png +0 -0
  178. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[rgb.png].001.png +0 -0
  179. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[rgba.png].001.png +0 -0
  180. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[la.png].001.png +0 -0
  181. pyglet-2.0.9/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgba.png].001.png +0 -0
  182. {pyglet-2.0.9 → pyglet-2.0.10}/.coveragerc +0 -0
  183. {pyglet-2.0.9 → pyglet-2.0.10}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  184. {pyglet-2.0.9 → pyglet-2.0.10}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  185. {pyglet-2.0.9 → pyglet-2.0.10}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
  186. {pyglet-2.0.9 → pyglet-2.0.10}/.github/workflows/codeql.yml +0 -0
  187. {pyglet-2.0.9 → pyglet-2.0.10}/.gitignore +0 -0
  188. {pyglet-2.0.9 → pyglet-2.0.10}/LICENSE +0 -0
  189. {pyglet-2.0.9 → pyglet-2.0.10}/MANIFEST.in +0 -0
  190. {pyglet-2.0.9 → pyglet-2.0.10}/contrib/aseprite_codec/README +0 -0
  191. {pyglet-2.0.9 → pyglet-2.0.10}/contrib/aseprite_codec/asedemo.py +0 -0
  192. {pyglet-2.0.9 → pyglet-2.0.10}/contrib/aseprite_codec/aseprite.py +0 -0
  193. {pyglet-2.0.9 → pyglet-2.0.10}/contrib/aseprite_codec/running.ase +0 -0
  194. {pyglet-2.0.9 → pyglet-2.0.10}/contrib/logo3d/logo3d.jpg +0 -0
  195. {pyglet-2.0.9 → pyglet-2.0.10}/contrib/logo3d/logo3d.obj.zip +0 -0
  196. {pyglet-2.0.9 → pyglet-2.0.10}/contrib/logo3d/logo3d.wings +0 -0
  197. {pyglet-2.0.9 → pyglet-2.0.10}/contrib/scenemanager.py +0 -0
  198. {pyglet-2.0.9 → pyglet-2.0.10}/contrib/toys/follow_mouse.py +0 -0
  199. {pyglet-2.0.9 → pyglet-2.0.10}/doc/Makefile +0 -0
  200. {pyglet-2.0.9 → pyglet-2.0.10}/doc/README.md +0 -0
  201. {pyglet-2.0.9 → pyglet-2.0.10}/doc/_static/favicon.ico +0 -0
  202. {pyglet-2.0.9 → pyglet-2.0.10}/doc/_static/logo.png +0 -0
  203. {pyglet-2.0.9 → pyglet-2.0.10}/doc/_static/logo5.svg +0 -0
  204. {pyglet-2.0.9 → pyglet-2.0.10}/doc/_static/relatedlogo.png +0 -0
  205. {pyglet-2.0.9 → pyglet-2.0.10}/doc/external_resources.rst +0 -0
  206. {pyglet-2.0.9 → pyglet-2.0.10}/doc/index.rst +0 -0
  207. {pyglet-2.0.9 → pyglet-2.0.10}/doc/internal/contributing.rst +0 -0
  208. {pyglet-2.0.9 → pyglet-2.0.10}/doc/internal/dist.rst +0 -0
  209. {pyglet-2.0.9 → pyglet-2.0.10}/doc/internal/doc.rst +0 -0
  210. {pyglet-2.0.9 → pyglet-2.0.10}/doc/internal/generated.rst +0 -0
  211. {pyglet-2.0.9 → pyglet-2.0.10}/doc/internal/gl.rst +0 -0
  212. {pyglet-2.0.9 → pyglet-2.0.10}/doc/internal/media_logging_manual.rst +0 -0
  213. {pyglet-2.0.9 → pyglet-2.0.10}/doc/internal/media_manual.rst +0 -0
  214. {pyglet-2.0.9 → pyglet-2.0.10}/doc/internal/testing.rst +0 -0
  215. {pyglet-2.0.9 → pyglet-2.0.10}/doc/internal/virtualenv.rst +0 -0
  216. {pyglet-2.0.9 → pyglet-2.0.10}/doc/internal/wraptypes-class.svg +0 -0
  217. {pyglet-2.0.9 → pyglet-2.0.10}/doc/internal/wraptypes.rst +0 -0
  218. {pyglet-2.0.9 → pyglet-2.0.10}/doc/make.bat +0 -0
  219. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/app.rst +0 -0
  220. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/canvas.rst +0 -0
  221. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/clock.rst +0 -0
  222. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/event.rst +0 -0
  223. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/font.rst +0 -0
  224. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/gl.rst +0 -0
  225. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/graphics/allocation.rst +0 -0
  226. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/graphics/index.rst +0 -0
  227. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/graphics/shader.rst +0 -0
  228. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/graphics/vertexbuffer.rst +0 -0
  229. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/graphics/vertexdomain.rst +0 -0
  230. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/gui.rst +0 -0
  231. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/image/animation.rst +0 -0
  232. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/image/atlas.rst +0 -0
  233. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/image/index.rst +0 -0
  234. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/info.rst +0 -0
  235. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/input.rst +0 -0
  236. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/math.rst +0 -0
  237. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/media.rst +0 -0
  238. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/media_synthesis.rst +0 -0
  239. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/pyglet.rst +0 -0
  240. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/resource.rst +0 -0
  241. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/sprite.rst +0 -0
  242. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/text/caret.rst +0 -0
  243. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/text/document.rst +0 -0
  244. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/text/index.rst +0 -0
  245. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/text/layout.rst +0 -0
  246. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/window.rst +0 -0
  247. {pyglet-2.0.9 → pyglet-2.0.10}/doc/modules/window_mouse.rst +0 -0
  248. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/context.rst +0 -0
  249. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/debug.rst +0 -0
  250. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/events.rst +0 -0
  251. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/examplegame.rst +0 -0
  252. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/gl.rst +0 -0
  253. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/graphics.rst +0 -0
  254. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/image.rst +0 -0
  255. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/abstract_image.png +0 -0
  256. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/abstract_image.svg +0 -0
  257. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/buffer_image.png +0 -0
  258. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/buffer_image.svg +0 -0
  259. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/context_flow.png +0 -0
  260. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/context_flow.svg +0 -0
  261. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
  262. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_default.png +0 -0
  263. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
  264. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_no.png +0 -0
  265. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
  266. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
  267. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
  268. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
  269. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
  270. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
  271. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_text.png +0 -0
  272. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
  273. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
  274. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_default.png +0 -0
  275. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_hand.png +0 -0
  276. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_help.png +0 -0
  277. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_no.png +0 -0
  278. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size.png +0 -0
  279. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
  280. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
  281. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
  282. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
  283. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_text.png +0 -0
  284. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_wait.png +0 -0
  285. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
  286. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/explosion.png +0 -0
  287. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/font_metrics.png +0 -0
  288. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/font_metrics.svg +0 -0
  289. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/image_classes.png +0 -0
  290. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/image_classes.svg +0 -0
  291. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/image_grid.png +0 -0
  292. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/image_grid.svg +0 -0
  293. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/image_sequence.png +0 -0
  294. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/image_sequence.svg +0 -0
  295. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/mouse_coordinates.png +0 -0
  296. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
  297. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/screens.png +0 -0
  298. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/screens.svg +0 -0
  299. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/text_classes.png +0 -0
  300. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/text_classes.svg +0 -0
  301. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/window_location.png +0 -0
  302. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/window_location.svg +0 -0
  303. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/window_osx_borderless.png +0 -0
  304. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/window_osx_default.png +0 -0
  305. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/window_osx_dialog.png +0 -0
  306. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/window_osx_tool.png +0 -0
  307. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_default.png +0 -0
  308. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_dialog.png +0 -0
  309. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_overlay.png +0 -0
  310. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_tool.png +0 -0
  311. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_transparent.png +0 -0
  312. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/input.rst +0 -0
  313. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/installation.rst +0 -0
  314. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/math.rst +0 -0
  315. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/migration.rst +0 -0
  316. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/mouse.rst +0 -0
  317. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/options.rst +0 -0
  318. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/resources.rst +0 -0
  319. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/shapes.rst +0 -0
  320. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/text.rst +0 -0
  321. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/time.rst +0 -0
  322. {pyglet-2.0.9 → pyglet-2.0.10}/doc/programming_guide/windowing.rst +0 -0
  323. {pyglet-2.0.9 → pyglet-2.0.10}/doc/requirements.txt +0 -0
  324. {pyglet-2.0.9 → pyglet-2.0.10}/examples/events/events_key_state_handler.py +0 -0
  325. {pyglet-2.0.9 → pyglet-2.0.10}/examples/events/register_event_type.py +0 -0
  326. {pyglet-2.0.9 → pyglet-2.0.10}/examples/events/window_events.py +0 -0
  327. {pyglet-2.0.9 → pyglet-2.0.10}/examples/events/window_platform_event.py +0 -0
  328. {pyglet-2.0.9 → pyglet-2.0.10}/examples/file_dialog.py +0 -0
  329. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/resources/asteroid.png +0 -0
  330. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/resources/bullet.png +0 -0
  331. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/resources/bullet.wav +0 -0
  332. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/resources/engine_flame.png +0 -0
  333. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/resources/player.png +0 -0
  334. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version1/asteroid.py +0 -0
  335. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version1/game/__init__.py +0 -0
  336. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version1/game/load.py +0 -0
  337. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version1/game/resources.py +0 -0
  338. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version2/asteroid.py +0 -0
  339. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version2/game/__init__.py +0 -0
  340. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version2/game/load.py +0 -0
  341. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version2/game/physicalobject.py +0 -0
  342. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version2/game/player.py +0 -0
  343. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version2/game/resources.py +0 -0
  344. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version3/asteroid.py +0 -0
  345. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version3/game/__init__.py +0 -0
  346. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version3/game/load.py +0 -0
  347. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version3/game/physicalobject.py +0 -0
  348. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version3/game/player.py +0 -0
  349. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version3/game/resources.py +0 -0
  350. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version3/game/util.py +0 -0
  351. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version4/asteroid.py +0 -0
  352. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version4/game/__init__.py +0 -0
  353. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version4/game/asteroid.py +0 -0
  354. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version4/game/bullet.py +0 -0
  355. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version4/game/load.py +0 -0
  356. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version4/game/physicalobject.py +0 -0
  357. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version4/game/player.py +0 -0
  358. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version4/game/resources.py +0 -0
  359. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version4/game/util.py +0 -0
  360. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version5/asteroid.py +0 -0
  361. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version5/game/__init__.py +0 -0
  362. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version5/game/asteroid.py +0 -0
  363. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version5/game/bullet.py +0 -0
  364. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version5/game/load.py +0 -0
  365. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version5/game/physicalobject.py +0 -0
  366. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version5/game/player.py +0 -0
  367. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version5/game/resources.py +0 -0
  368. {pyglet-2.0.9 → pyglet-2.0.10}/examples/game/version5/game/util.py +0 -0
  369. {pyglet-2.0.9 → pyglet-2.0.10}/examples/graphics/image_convert.py +0 -0
  370. {pyglet-2.0.9 → pyglet-2.0.10}/examples/graphics/image_display.py +0 -0
  371. {pyglet-2.0.9 → pyglet-2.0.10}/examples/gui/bar.png +0 -0
  372. {pyglet-2.0.9 → pyglet-2.0.10}/examples/gui/button_down.png +0 -0
  373. {pyglet-2.0.9 → pyglet-2.0.10}/examples/gui/button_hover.png +0 -0
  374. {pyglet-2.0.9 → pyglet-2.0.10}/examples/gui/button_up.png +0 -0
  375. {pyglet-2.0.9 → pyglet-2.0.10}/examples/gui/knob.png +0 -0
  376. {pyglet-2.0.9 → pyglet-2.0.10}/examples/gui/widgets.py +0 -0
  377. {pyglet-2.0.9 → pyglet-2.0.10}/examples/hello_world.py +0 -0
  378. {pyglet-2.0.9 → pyglet-2.0.10}/examples/input/apple_remote.py +0 -0
  379. {pyglet-2.0.9 → pyglet-2.0.10}/examples/input/controller.py +0 -0
  380. {pyglet-2.0.9 → pyglet-2.0.10}/examples/input/input.py +0 -0
  381. {pyglet-2.0.9 → pyglet-2.0.10}/examples/input/joystick.py +0 -0
  382. {pyglet-2.0.9 → pyglet-2.0.10}/examples/input/tablet.py +0 -0
  383. {pyglet-2.0.9 → pyglet-2.0.10}/examples/media/media_player.py +0 -0
  384. {pyglet-2.0.9 → pyglet-2.0.10}/examples/media/noisy/README +0 -0
  385. {pyglet-2.0.9 → pyglet-2.0.10}/examples/media/noisy/ball.png +0 -0
  386. {pyglet-2.0.9 → pyglet-2.0.10}/examples/media/noisy/ball.wav +0 -0
  387. {pyglet-2.0.9 → pyglet-2.0.10}/examples/media/noisy/noisy.py +0 -0
  388. {pyglet-2.0.9 → pyglet-2.0.10}/examples/media/synthesizer.py +0 -0
  389. {pyglet-2.0.9 → pyglet-2.0.10}/examples/media/video.py +0 -0
  390. {pyglet-2.0.9 → pyglet-2.0.10}/examples/model/box.mtl +0 -0
  391. {pyglet-2.0.9 → pyglet-2.0.10}/examples/model/box.obj +0 -0
  392. {pyglet-2.0.9 → pyglet-2.0.10}/examples/model/logo3d.mtl +0 -0
  393. {pyglet-2.0.9 → pyglet-2.0.10}/examples/model/logo3d.obj +0 -0
  394. {pyglet-2.0.9 → pyglet-2.0.10}/examples/model/model.py +0 -0
  395. {pyglet-2.0.9 → pyglet-2.0.10}/examples/model/pyglet.png +0 -0
  396. {pyglet-2.0.9 → pyglet-2.0.10}/examples/opengl/compute_shader.py +0 -0
  397. {pyglet-2.0.9 → pyglet-2.0.10}/examples/opengl/egl_context.py +0 -0
  398. {pyglet-2.0.9 → pyglet-2.0.10}/examples/opengl/opengl.py +0 -0
  399. {pyglet-2.0.9 → pyglet-2.0.10}/examples/opengl/opengl_context.py +0 -0
  400. {pyglet-2.0.9 → pyglet-2.0.10}/examples/opengl/opengl_core.py +0 -0
  401. {pyglet-2.0.9 → pyglet-2.0.10}/examples/opengl/opengl_scissor.py +0 -0
  402. {pyglet-2.0.9 → pyglet-2.0.10}/examples/opengl/opengl_shader.py +0 -0
  403. {pyglet-2.0.9 → pyglet-2.0.10}/examples/opengl/pyglet.png +0 -0
  404. {pyglet-2.0.9 → pyglet-2.0.10}/examples/programming_guide/animation.py +0 -0
  405. {pyglet-2.0.9 → pyglet-2.0.10}/examples/programming_guide/dinosaur.gif +0 -0
  406. {pyglet-2.0.9 → pyglet-2.0.10}/examples/programming_guide/events.py +0 -0
  407. {pyglet-2.0.9 → pyglet-2.0.10}/examples/programming_guide/hello_world.py +0 -0
  408. {pyglet-2.0.9 → pyglet-2.0.10}/examples/programming_guide/image_viewer.py +0 -0
  409. {pyglet-2.0.9 → pyglet-2.0.10}/examples/programming_guide/kitten.jpg +0 -0
  410. {pyglet-2.0.9 → pyglet-2.0.10}/examples/programming_guide/window_subclass.py +0 -0
  411. {pyglet-2.0.9 → pyglet-2.0.10}/examples/resources/kitten.jpg +0 -0
  412. {pyglet-2.0.9 → pyglet-2.0.10}/examples/resources/pyglet.png +0 -0
  413. {pyglet-2.0.9 → pyglet-2.0.10}/examples/sprite/depth_sprite.py +0 -0
  414. {pyglet-2.0.9 → pyglet-2.0.10}/examples/sprite/display_sprite.py +0 -0
  415. {pyglet-2.0.9 → pyglet-2.0.10}/examples/sprite/multi_texture_sprite.py +0 -0
  416. {pyglet-2.0.9 → pyglet-2.0.10}/examples/sprite/sprite_batching.py +0 -0
  417. {pyglet-2.0.9 → pyglet-2.0.10}/examples/text/advanced_font.py +0 -0
  418. {pyglet-2.0.9 → pyglet-2.0.10}/examples/text/font_comparison.py +0 -0
  419. {pyglet-2.0.9 → pyglet-2.0.10}/examples/text/html_label.py +0 -0
  420. {pyglet-2.0.9 → pyglet-2.0.10}/examples/text/pyglet.png +0 -0
  421. {pyglet-2.0.9 → pyglet-2.0.10}/examples/text/text_input.py +0 -0
  422. {pyglet-2.0.9 → pyglet-2.0.10}/examples/timer.py +0 -0
  423. {pyglet-2.0.9 → pyglet-2.0.10}/examples/window/camera.py +0 -0
  424. {pyglet-2.0.9 → pyglet-2.0.10}/examples/window/camera_group.py +0 -0
  425. {pyglet-2.0.9 → pyglet-2.0.10}/examples/window/multiple_windows.py +0 -0
  426. {pyglet-2.0.9 → pyglet-2.0.10}/examples/window/overlay_window.py +0 -0
  427. {pyglet-2.0.9 → pyglet-2.0.10}/examples/window/transparent_window.py +0 -0
  428. {pyglet-2.0.9 → pyglet-2.0.10}/experimental/dist_field/README +0 -0
  429. {pyglet-2.0.9 → pyglet-2.0.10}/experimental/dist_field/genfield.py +0 -0
  430. {pyglet-2.0.9 → pyglet-2.0.10}/experimental/dist_field/py.df.png +0 -0
  431. {pyglet-2.0.9 → pyglet-2.0.10}/experimental/dist_field/py.png +0 -0
  432. {pyglet-2.0.9 → pyglet-2.0.10}/experimental/dist_field/renderfield.py +0 -0
  433. {pyglet-2.0.9 → pyglet-2.0.10}/experimental/flaccodec.py +0 -0
  434. {pyglet-2.0.9 → pyglet-2.0.10}/experimental/hello_world.svg +0 -0
  435. {pyglet-2.0.9 → pyglet-2.0.10}/experimental/spritebenchmark.py +0 -0
  436. {pyglet-2.0.9 → pyglet-2.0.10}/experimental/svg_test.py +0 -0
  437. {pyglet-2.0.9 → pyglet-2.0.10}/experimental/wayland/gbm_egl_context.py +0 -0
  438. {pyglet-2.0.9 → pyglet-2.0.10}/experimental/win32priority.py +0 -0
  439. {pyglet-2.0.9 → pyglet-2.0.10}/make.py +0 -0
  440. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/app/__init__.py +0 -0
  441. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/app/base.py +0 -0
  442. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/app/cocoa.py +0 -0
  443. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/app/win32.py +0 -0
  444. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/app/xlib.py +0 -0
  445. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/canvas/__init__.py +0 -0
  446. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/canvas/base.py +0 -0
  447. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/canvas/cocoa.py +0 -0
  448. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/canvas/headless.py +0 -0
  449. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/canvas/win32.py +0 -0
  450. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/canvas/xlib.py +0 -0
  451. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/canvas/xlib_vidmoderestore.py +0 -0
  452. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/clock.py +0 -0
  453. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/customtypes.py +0 -0
  454. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/event.py +0 -0
  455. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/extlibs/__init__.py +0 -0
  456. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/extlibs/png.py +0 -0
  457. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/font/__init__.py +0 -0
  458. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/font/base.py +0 -0
  459. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/font/fontconfig.py +0 -0
  460. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/font/freetype.py +0 -0
  461. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/font/freetype_lib.py +0 -0
  462. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/font/quartz.py +0 -0
  463. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/font/ttf.py +0 -0
  464. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/font/user.py +0 -0
  465. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/font/win32query.py +0 -0
  466. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/__init__.py +0 -0
  467. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/agl.py +0 -0
  468. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/cocoa.py +0 -0
  469. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/gl.py +0 -0
  470. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/gl_compat.py +0 -0
  471. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/glx.py +0 -0
  472. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/glx_info.py +0 -0
  473. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/glxext_arb.py +0 -0
  474. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/glxext_mesa.py +0 -0
  475. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/glxext_nv.py +0 -0
  476. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/headless.py +0 -0
  477. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/lib_agl.py +0 -0
  478. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/lib_glx.py +0 -0
  479. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/lib_wgl.py +0 -0
  480. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/wgl.py +0 -0
  481. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/wgl_info.py +0 -0
  482. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/wglext_arb.py +0 -0
  483. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/wglext_nv.py +0 -0
  484. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gl/xlib.py +0 -0
  485. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/graphics/allocation.py +0 -0
  486. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gui/__init__.py +0 -0
  487. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/gui/frame.py +0 -0
  488. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/animation.py +0 -0
  489. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/atlas.py +0 -0
  490. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/codecs/__init__.py +0 -0
  491. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/codecs/bmp.py +0 -0
  492. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/codecs/dds.py +0 -0
  493. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/codecs/gdiplus.py +0 -0
  494. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
  495. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/codecs/gif.py +0 -0
  496. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/codecs/pil.py +0 -0
  497. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/codecs/png.py +0 -0
  498. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/codecs/quartz.py +0 -0
  499. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/image/codecs/s3tc.py +0 -0
  500. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/info.py +0 -0
  501. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/__init__.py +0 -0
  502. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/base.py +0 -0
  503. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/controller.py +0 -0
  504. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/linux/__init__.py +0 -0
  505. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/linux/evdev_constants.py +0 -0
  506. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/linux/x11_xinput.py +0 -0
  507. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
  508. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/macos/__init__.py +0 -0
  509. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/macos/darwin_hid.py +0 -0
  510. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/win32/__init__.py +0 -0
  511. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/win32/directinput.py +0 -0
  512. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/input/win32/wintab.py +0 -0
  513. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/lib.py +0 -0
  514. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/__init__.py +0 -0
  515. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/darwin/__init__.py +0 -0
  516. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
  517. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
  518. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
  519. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/darwin/coreaudio.py +0 -0
  520. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/darwin/quartzkey.py +0 -0
  521. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/egl/__init__.py +0 -0
  522. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/egl/egl.py +0 -0
  523. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/egl/eglext.py +0 -0
  524. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/egl/lib.py +0 -0
  525. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/wayland/__init__.py +0 -0
  526. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/wayland/gbm.py +0 -0
  527. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/wayland/xkbcommon.py +0 -0
  528. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/win32/constants.py +0 -0
  529. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/win32/context_managers.py +0 -0
  530. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/win32/dinput.py +0 -0
  531. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/win32/libwintab.py +0 -0
  532. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/win32/winkey.py +0 -0
  533. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/x11/__init__.py +0 -0
  534. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/x11/cursorfont.py +0 -0
  535. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/x11/xf86vmode.py +0 -0
  536. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/x11/xinerama.py +0 -0
  537. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/x11/xinput.py +0 -0
  538. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/x11/xlib.py +0 -0
  539. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/libs/x11/xsync.py +0 -0
  540. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/math.py +0 -0
  541. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/__init__.py +0 -0
  542. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/buffered_logger.py +0 -0
  543. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/__init__.py +0 -0
  544. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/base.py +0 -0
  545. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/coreaudio.py +0 -0
  546. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg.py +0 -0
  547. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
  548. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/compat.py +0 -0
  549. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +0 -0
  550. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +0 -0
  551. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +0 -0
  552. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +0 -0
  553. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +0 -0
  554. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/gstreamer.py +0 -0
  555. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/pyogg.py +0 -0
  556. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/codecs/wave.py +0 -0
  557. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/devices/__init__.py +0 -0
  558. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/__init__.py +0 -0
  559. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/directsound/__init__.py +0 -0
  560. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/directsound/adaptation.py +0 -0
  561. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/directsound/exceptions.py +0 -0
  562. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/directsound/interface.py +0 -0
  563. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/openal/__init__.py +0 -0
  564. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/openal/adaptation.py +0 -0
  565. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/openal/interface.py +0 -0
  566. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/openal/lib_alc.py +0 -0
  567. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/openal/lib_openal.py +0 -0
  568. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/pulse/__init__.py +0 -0
  569. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/pulse/adaptation.py +0 -0
  570. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/pulse/interface.py +0 -0
  571. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
  572. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/silent/__init__.py +0 -0
  573. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/silent/adaptation.py +0 -0
  574. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
  575. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/xaudio2/adaptation.py +0 -0
  576. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/drivers/xaudio2/interface.py +0 -0
  577. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/exceptions.py +0 -0
  578. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/instrumentation.py +0 -0
  579. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/mediathreads.py +0 -0
  580. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/media/synthesis.py +0 -0
  581. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/model/codecs/__init__.py +0 -0
  582. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/model/codecs/gltf.py +0 -0
  583. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/model/codecs/obj.py +0 -0
  584. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/resource.py +0 -0
  585. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/text/document.py +0 -0
  586. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/text/formats/__init__.py +0 -0
  587. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/text/formats/attributed.py +0 -0
  588. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/text/formats/html.py +0 -0
  589. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/text/formats/plaintext.py +0 -0
  590. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/text/formats/structured.py +0 -0
  591. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/text/runlist.py +0 -0
  592. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/cocoa/pyglet_delegate.py +0 -0
  593. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/cocoa/pyglet_textview.py +0 -0
  594. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/cocoa/pyglet_view.py +0 -0
  595. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/cocoa/pyglet_window.py +0 -0
  596. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/cocoa/systemcursor.py +0 -0
  597. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/event.py +0 -0
  598. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/headless/__init__.py +0 -0
  599. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet/window/mouse.py +0 -0
  600. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet.egg-info/dependency_links.txt +0 -0
  601. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet.egg-info/top_level.txt +0 -0
  602. {pyglet-2.0.9 → pyglet-2.0.10}/pyglet.egg-info/zip-safe +0 -0
  603. {pyglet-2.0.9 → pyglet-2.0.10}/pyproject.toml +0 -0
  604. {pyglet-2.0.9 → pyglet-2.0.10}/pytest.ini +0 -0
  605. {pyglet-2.0.9 → pyglet-2.0.10}/setup.cfg +0 -0
  606. {pyglet-2.0.9 → pyglet-2.0.10}/setup.py +0 -0
  607. {pyglet-2.0.9 → pyglet-2.0.10}/tests/__init__.py +0 -0
  608. {pyglet-2.0.9 → pyglet-2.0.10}/tests/annotations.py +0 -0
  609. {pyglet-2.0.9 → pyglet-2.0.10}/tests/base/__init__.py +0 -0
  610. {pyglet-2.0.9 → pyglet-2.0.10}/tests/base/data.py +0 -0
  611. {pyglet-2.0.9 → pyglet-2.0.10}/tests/base/event_loop.py +0 -0
  612. {pyglet-2.0.9 → pyglet-2.0.10}/tests/base/interactive.py +0 -0
  613. {pyglet-2.0.9 → pyglet-2.0.10}/tests/base/performance.py +0 -0
  614. {pyglet-2.0.9 → pyglet-2.0.10}/tests/base/test_interactive_test_base.py +0 -0
  615. {pyglet-2.0.9 → pyglet-2.0.10}/tests/conftest.py +0 -0
  616. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/fonts/README +0 -0
  617. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/fonts/action_man.ttf +0 -0
  618. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/fonts/action_man_bold.ttf +0 -0
  619. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
  620. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/fonts/action_man_italic.ttf +0 -0
  621. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
  622. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/8bpp.gif +0 -0
  623. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/cursor.png +0 -0
  624. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/dinosaur.gif +0 -0
  625. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/gdk_close.png +0 -0
  626. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/grey_background.png +0 -0
  627. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/icon1.png +0 -0
  628. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/icon_size1.png +0 -0
  629. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/icon_size2.png +0 -0
  630. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/icon_size3.png +0 -0
  631. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/icon_size4.png +0 -0
  632. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/icon_size5.png +0 -0
  633. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/l.png +0 -0
  634. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/la.png +0 -0
  635. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/multitexture.png +0 -0
  636. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgb.png +0 -0
  637. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgb_16bpp.bmp +0 -0
  638. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgb_1bpp.bmp +0 -0
  639. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgb_24bpp.bmp +0 -0
  640. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgb_32bpp.bmp +0 -0
  641. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgb_4bpp.bmp +0 -0
  642. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgb_8bpp.bmp +0 -0
  643. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgb_8bpp.png +0 -0
  644. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgb_8bpp_trans.png +0 -0
  645. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgb_dxt1.dds +0 -0
  646. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgba.png +0 -0
  647. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgba_32bpp.bmp +0 -0
  648. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgba_dxt1.dds +0 -0
  649. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgba_dxt3.dds +0 -0
  650. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/rgba_dxt5.dds +0 -0
  651. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
  652. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/README +0 -0
  653. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/alert.wav +0 -0
  654. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/login.wav +0 -0
  655. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/logout.wav +0 -0
  656. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/receive.wav +0 -0
  657. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/send.wav +0 -0
  658. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
  659. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
  660. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
  661. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
  662. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
  663. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
  664. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
  665. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
  666. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
  667. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
  668. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
  669. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
  670. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/models/logo3d.mtl +0 -0
  671. {pyglet-2.0.9 → pyglet-2.0.10}/tests/data/models/logo3d.obj +0 -0
  672. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/__init__.py +0 -0
  673. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/app/__init__.py +0 -0
  674. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/font/test_fontconfig.py +0 -0
  675. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/font/test_freetype_face.py +0 -0
  676. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/graphics/__init__.py +0 -0
  677. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/graphics/test_allocation.py +0 -0
  678. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/image/__init__.py +0 -0
  679. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/image/test_gdkpixbuf2.py +0 -0
  680. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/media/__init__.py +0 -0
  681. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/media/mock_player.py +0 -0
  682. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/media/test_directsound.py +0 -0
  683. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/media/test_openal.py +0 -0
  684. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/media/test_player.py +0 -0
  685. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/media/test_pulse.py +0 -0
  686. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/model/__init__.py +0 -0
  687. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/model/test_loading.py +0 -0
  688. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/platform/__init__.py +0 -0
  689. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/platform/test_linux_fontconfig.py +0 -0
  690. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/platform/test_win_context_managers.py +0 -0
  691. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/platform/test_win_multicore_clock.py +0 -0
  692. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/resource/__init__.py +0 -0
  693. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
  694. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/resource/dir1/f2.txt +0 -0
  695. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/resource/dir1/res.zip +0 -0
  696. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/resource/dir2/f6.txt +0 -0
  697. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/resource/f1.txt +0 -0
  698. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/resource/rgbm.png +0 -0
  699. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/resource/test_resource_image_loading.py +0 -0
  700. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/resource/test_resource_loading.py +0 -0
  701. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/text/__init__.py +0 -0
  702. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/text/test_empty_document.py +0 -0
  703. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/window/__init__.py +0 -0
  704. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/window/test_context_share.py +0 -0
  705. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/window/test_event_sequence.py +0 -0
  706. {pyglet-2.0.9 → pyglet-2.0.10}/tests/integration/window/test_window_caption.py +0 -0
  707. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/__init__.py +0 -0
  708. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/conftest.py +0 -0
  709. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/graphics/__init__.py +0 -0
  710. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/graphics/test_multitexture.py +0 -0
  711. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/image/__init__.py +0 -0
  712. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/image/test_image.py +0 -0
  713. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/media/__init__.py +0 -0
  714. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/media/test_player.py +0 -0
  715. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/screenshots/committed/README +0 -0
  716. /pyglet-2.0.9/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
  717. /pyglet-2.0.9/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
  718. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/screenshots/session/README +0 -0
  719. /pyglet-2.0.9/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
  720. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[l.png].001.png +0 -0
  721. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[l.png].001.png +0 -0
  722. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/text/__init__.py +0 -0
  723. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/text/test_caret_color.py +0 -0
  724. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/text/test_content_valign.py +0 -0
  725. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/text/test_html.py +0 -0
  726. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/window/__init__.py +0 -0
  727. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/window/test_window_events.py +0 -0
  728. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/window/test_window_fullscreen.py +0 -0
  729. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/window/test_window_modes.py +0 -0
  730. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/window/test_window_multisample.py +0 -0
  731. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/window/test_window_open.py +0 -0
  732. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/window/test_window_settings.py +0 -0
  733. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/window/test_window_styles.py +0 -0
  734. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/window/window_util.py +0 -0
  735. {pyglet-2.0.9 → pyglet-2.0.10}/tests/interactive/windowed_test_base.py +0 -0
  736. {pyglet-2.0.9 → pyglet-2.0.10}/tests/requirements.txt +0 -0
  737. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/__init__.py +0 -0
  738. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/media/__init__.py +0 -0
  739. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/media/test_listener.py +0 -0
  740. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/media/test_player.py +0 -0
  741. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/media/test_sources.py +0 -0
  742. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/media/test_synthesis.py +0 -0
  743. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/shapes/__init__.py +0 -0
  744. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/shapes/conftest.py +0 -0
  745. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
  746. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/test_atlas.py +0 -0
  747. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/test_clock.py +0 -0
  748. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/test_clock_freq.py +0 -0
  749. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/test_font.py +0 -0
  750. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/test_input.py +0 -0
  751. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/test_math.py +0 -0
  752. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/test_resource_path.py +0 -0
  753. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/test_sprite.py +0 -0
  754. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/test_text.py +0 -0
  755. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/text/__init__.py +0 -0
  756. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/text/test_caret.py +0 -0
  757. {pyglet-2.0.9 → pyglet-2.0.10}/tests/unit/text/test_layout.py +0 -0
  758. {pyglet-2.0.9 → pyglet-2.0.10}/tools/al_info.py +0 -0
  759. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/bokeh_timeline.py +0 -0
  760. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/compare.py +0 -0
  761. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/configure.py +0 -0
  762. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/extractors.py +0 -0
  763. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/fs.py +0 -0
  764. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/mp.py +0 -0
  765. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/mpexceptions.py +0 -0
  766. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/playmany.py +0 -0
  767. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
  768. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/readme_run_tests.txt +0 -0
  769. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/report.py +0 -0
  770. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/reports.py +0 -0
  771. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/retry_crashed.py +0 -0
  772. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/run_test_suite.py +0 -0
  773. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/summarize.py +0 -0
  774. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/test_instrumentation.py +0 -0
  775. {pyglet-2.0.9 → pyglet-2.0.10}/tools/ffmpeg/timeline.py +0 -0
  776. {pyglet-2.0.9 → pyglet-2.0.10}/tools/gendist.sh +0 -0
  777. {pyglet-2.0.9 → pyglet-2.0.10}/tools/gengl.py +0 -0
  778. {pyglet-2.0.9 → pyglet-2.0.10}/tools/gengl_old.py +0 -0
  779. {pyglet-2.0.9 → pyglet-2.0.10}/tools/genwrappers.py +0 -0
  780. {pyglet-2.0.9 → pyglet-2.0.10}/tools/gl.template +0 -0
  781. {pyglet-2.0.9 → pyglet-2.0.10}/tools/gl.xml +0 -0
  782. {pyglet-2.0.9 → pyglet-2.0.10}/tools/gl_info.py +0 -0
  783. {pyglet-2.0.9 → pyglet-2.0.10}/tools/inspect_font.py +0 -0
  784. {pyglet-2.0.9 → pyglet-2.0.10}/tools/requirements.txt +0 -0
  785. {pyglet-2.0.9 → pyglet-2.0.10}/tools/wgl.h +0 -0
  786. {pyglet-2.0.9 → pyglet-2.0.10}/tools/wraptypes/__init__.py +0 -0
  787. {pyglet-2.0.9 → pyglet-2.0.10}/tools/wraptypes/cparser.py +0 -0
  788. {pyglet-2.0.9 → pyglet-2.0.10}/tools/wraptypes/ctypesparser.py +0 -0
  789. {pyglet-2.0.9 → pyglet-2.0.10}/tools/wraptypes/lex.py +0 -0
  790. {pyglet-2.0.9 → pyglet-2.0.10}/tools/wraptypes/preprocessor.py +0 -0
  791. {pyglet-2.0.9 → pyglet-2.0.10}/tools/wraptypes/wrap.py +0 -0
  792. {pyglet-2.0.9 → pyglet-2.0.10}/tools/wraptypes/yacc.py +0 -0
  793. {pyglet-2.0.9 → pyglet-2.0.10}/website/LICENSE.txt +0 -0
  794. {pyglet-2.0.9 → pyglet-2.0.10}/website/README.rst +0 -0
  795. {pyglet-2.0.9 → pyglet-2.0.10}/website/assets/favicon.ico +0 -0
  796. {pyglet-2.0.9 → pyglet-2.0.10}/website/assets/static/css/example-custom-styles.css +0 -0
  797. {pyglet-2.0.9 → pyglet-2.0.10}/website/assets/static/images/pyglet.png +0 -0
  798. {pyglet-2.0.9 → pyglet-2.0.10}/website/content/404.html/contents.lr +0 -0
  799. {pyglet-2.0.9 → pyglet-2.0.10}/website/content/404.html/ngc-5793.jpg +0 -0
  800. {pyglet-2.0.9 → pyglet-2.0.10}/website/content/authors/benjamin/contents.lr +0 -0
  801. {pyglet-2.0.9 → pyglet-2.0.10}/website/content/authors/benjamin/pyglet.png +0 -0
  802. {pyglet-2.0.9 → pyglet-2.0.10}/website/content/authors/contents.lr +0 -0
  803. {pyglet-2.0.9 → pyglet-2.0.10}/website/content/blog/contents.lr +0 -0
  804. {pyglet-2.0.9 → pyglet-2.0.10}/website/content/blog/welcome-blog/contents.lr +0 -0
  805. {pyglet-2.0.9 → pyglet-2.0.10}/website/content/contents.lr +0 -0
  806. {pyglet-2.0.9 → pyglet-2.0.10}/website/content/eclipse.jpg +0 -0
  807. {pyglet-2.0.9 → pyglet-2.0.10}/website/pyglet.lektorproject +0 -0
  808. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/AUTHORS.txt +0 -0
  809. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/CHANGELOG.md +0 -0
  810. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
  811. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/LICENSE.txt +0 -0
  812. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/NOTICE.txt +0 -0
  813. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/README.md +0 -0
  814. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
  815. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
  816. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
  817. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
  818. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  819. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  820. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  821. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
  822. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
  823. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
  824. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
  825. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
  826. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
  827. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
  828. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
  829. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
  830. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
  831. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
  832. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
  833. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
  834. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
  835. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
  836. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
  837. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
  838. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
  839. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
  840. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
  841. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
  842. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
  843. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/images/blog-index.png +0 -0
  844. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/images/full-blog.png +0 -0
  845. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/images/full-page.png +0 -0
  846. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/images/gallery-404.png +0 -0
  847. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
  848. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
  849. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
  850. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/models/404.ini +0 -0
  851. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/models/author.ini +0 -0
  852. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/models/authors.ini +0 -0
  853. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/models/blog-post.ini +0 -0
  854. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/models/blog.ini +0 -0
  855. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/models/page.ini +0 -0
  856. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/models/single-layout.ini +0 -0
  857. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/404.html +0 -0
  858. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/author.html +0 -0
  859. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/authors.html +0 -0
  860. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
  861. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
  862. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
  863. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
  864. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
  865. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
  866. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blog-post.html +0 -0
  867. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blog.html +0 -0
  868. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/layout.html +0 -0
  869. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
  870. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
  871. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/none.html +0 -0
  872. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/page.html +0 -0
  873. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/templates/single-layout.html +0 -0
  874. {pyglet-2.0.9 → pyglet-2.0.10}/website/themes/lektor-icon/theme.ini +0 -0
@@ -192,17 +192,19 @@ XAUDIO2_NO_VIRTUAL_AUDIO_CLIENT = 0x10000 # Used in CreateMasteringVoice to cr
192
192
  class IXAudio2VoiceCallback(com.Interface):
193
193
  _methods_ = [
194
194
  ('OnVoiceProcessingPassStart',
195
- com.STDMETHOD(UINT32)),
195
+ com.VOIDMETHOD(UINT32)),
196
196
  ('OnVoiceProcessingPassEnd',
197
- com.STDMETHOD()),
198
- ('onStreamEnd',
199
- com.STDMETHOD()),
200
- ('onBufferStart',
201
- com.STDMETHOD(ctypes.c_void_p)),
197
+ com.VOIDMETHOD()),
198
+ ('OnStreamEnd',
199
+ com.VOIDMETHOD()),
200
+ ('OnBufferStart',
201
+ com.VOIDMETHOD(ctypes.c_void_p)),
202
202
  ('OnBufferEnd',
203
- com.STDMETHOD(ctypes.c_void_p)),
203
+ com.VOIDMETHOD(ctypes.c_void_p)),
204
204
  ('OnLoopEnd',
205
- com.STDMETHOD(ctypes.c_void_p)),
205
+ com.VOIDMETHOD(ctypes.c_void_p)),
206
+ ('OnVoiceError',
207
+ com.VOIDMETHOD(ctypes.c_void_p, HRESULT))
206
208
  ]
207
209
 
208
210
 
@@ -220,20 +222,9 @@ class XA2SourceCallback(com.COMObject):
220
222
  _interfaces_ = [IXAudio2VoiceCallback]
221
223
 
222
224
  def __init__(self, xa2_player):
225
+ super().__init__()
223
226
  self.xa2_player = xa2_player
224
227
 
225
- def OnVoiceProcessingPassStart(self, bytesRequired):
226
- pass
227
-
228
- def OnVoiceProcessingPassEnd(self):
229
- pass
230
-
231
- def onStreamEnd(self):
232
- pass
233
-
234
- def onBufferStart(self, pBufferContext):
235
- pass
236
-
237
228
  def OnBufferEnd(self, pBufferContext):
238
229
  """At the end of playing one buffer, attempt to refill again.
239
230
  Even if the player is out of sources, it needs to be called to purge all buffers.
@@ -241,10 +232,7 @@ class XA2SourceCallback(com.COMObject):
241
232
  if self.xa2_player:
242
233
  self.xa2_player.refill_source_player()
243
234
 
244
- def OnLoopEnd(self, this, pBufferContext):
245
- pass
246
-
247
- def onVoiceError(self, this, pBufferContext, hresult):
235
+ def OnVoiceError(self, pBufferContext, hresult):
248
236
  raise Exception("Error occurred during audio playback.", hresult)
249
237
 
250
238
 
@@ -362,24 +350,18 @@ class IXAudio2MasteringVoice(IXAudio2Voice):
362
350
  class IXAudio2EngineCallback(com.Interface):
363
351
  _methods_ = [
364
352
  ('OnProcessingPassStart',
365
- com.METHOD(ctypes.c_void_p)),
353
+ com.VOIDMETHOD()),
366
354
  ('OnProcessingPassEnd',
367
- com.METHOD(ctypes.c_void_p)),
355
+ com.VOIDMETHOD()),
368
356
  ('OnCriticalError',
369
- com.METHOD(ctypes.c_void_p, ctypes.c_void_p, ctypes.c_ulong)),
357
+ com.VOIDMETHOD(HRESULT)),
370
358
  ]
371
359
 
372
360
 
373
361
  class XA2EngineCallback(com.COMObject):
374
362
  _interfaces_ = [IXAudio2EngineCallback]
375
363
 
376
- def OnProcessingPassStart(self):
377
- pass
378
-
379
- def OnProcessingPassEnd(self):
380
- pass
381
-
382
- def OnCriticalError(self, this, hresult):
364
+ def OnCriticalError(self, hresult):
383
365
  raise Exception("Critical Error:", hresult)
384
366
 
385
367
 
@@ -109,7 +109,9 @@ class Player(pyglet.event.EventDispatcher):
109
109
  self._playlists = deque()
110
110
  self._audio_player = None
111
111
 
112
+ self._context = pyglet.gl.current_context
112
113
  self._texture = None
114
+
113
115
  # Desired play state (not an indication of actual state).
114
116
  self._playing = False
115
117
 
@@ -455,9 +457,12 @@ class Player(pyglet.event.EventDispatcher):
455
457
 
456
458
  image = source.get_next_video_frame()
457
459
  if image is not None:
458
- if self._texture is None:
459
- self._create_texture()
460
- self._texture.blit_into(image, 0, 0, 0)
460
+
461
+ with self._context:
462
+ if self._texture is None:
463
+ self._create_texture()
464
+ self._texture.blit_into(image, 0, 0, 0)
465
+
461
466
  elif bl.logger is not None:
462
467
  bl.logger.log("p.P.ut.1.8")
463
468
 
@@ -87,25 +87,12 @@ def load(filename, file=None, decoder=None, batch=None, group=None):
87
87
 
88
88
 
89
89
  def get_default_shader():
90
- try:
91
- return pyglet.gl.current_context.model_default_plain_shader
92
- except AttributeError:
93
- vert_shader = shader.Shader(MaterialGroup.default_vert_src, 'vertex')
94
- frag_shader = shader.Shader(MaterialGroup.default_frag_src, 'fragment')
95
- default_shader_program = shader.ShaderProgram(vert_shader, frag_shader)
96
- pyglet.gl.current_context.model_default_plain_shader = default_shader_program
97
- return pyglet.gl.current_context.model_default_plain_shader
98
-
90
+ return pyglet.gl.current_context.create_program((MaterialGroup.default_vert_src, 'vertex'),
91
+ (MaterialGroup.default_frag_src, 'fragment'))
99
92
 
100
93
  def get_default_textured_shader():
101
- try:
102
- return pyglet.gl.current_context.model_default_textured_shader
103
- except AttributeError:
104
- vert_shader = shader.Shader(TexturedMaterialGroup.default_vert_src, 'vertex')
105
- frag_shader = shader.Shader(TexturedMaterialGroup.default_frag_src, 'fragment')
106
- default_shader_program = shader.ShaderProgram(vert_shader, frag_shader)
107
- pyglet.gl.current_context.model_default_textured_shader = default_shader_program
108
- return current_context.model_default_textured_shader
94
+ return pyglet.gl.current_context.create_program((TexturedMaterialGroup.default_vert_src, 'vertex'),
95
+ (TexturedMaterialGroup.default_frag_src, 'fragment'))
109
96
 
110
97
 
111
98
  class Model:
@@ -5,12 +5,11 @@ such as Rectangles, Circles, and Lines. These shapes are made
5
5
  internally from OpenGL primitives, and provide excellent performance
6
6
  when drawn as part of a :py:class:`~pyglet.graphics.Batch`.
7
7
  Convenience methods are provided for positioning, changing color
8
- and opacity, and rotation (where applicable). To create more
9
- complex shapes than what is provided here, the lower level
10
- graphics API is more appropriate.
11
- You can also use the ``in`` operator to check whether a point is
12
- inside a shape.
13
- See the :ref:`guide_graphics` for more details.
8
+ and opacity, and rotation (where applicable).
9
+ The Python ``in`` operator to check whether a point is inside a shape.
10
+
11
+ To create more complex shapes than what is provided here, the lower level
12
+ graphics API is more appropriate. See the :ref:`guide_graphics` for more details.
14
13
 
15
14
  A simple example of drawing shapes::
16
15
 
@@ -102,21 +101,15 @@ fragment_source = """#version 150 core
102
101
 
103
102
 
104
103
  def get_default_shader():
105
- try:
106
- return pyglet.gl.current_context.pyglet_shapes_default_shader
107
- except AttributeError:
108
- _default_vert_shader = pyglet.graphics.shader.Shader(vertex_source, 'vertex')
109
- _default_frag_shader = pyglet.graphics.shader.Shader(fragment_source, 'fragment')
110
- default_shader_program = pyglet.graphics.shader.ShaderProgram(_default_vert_shader, _default_frag_shader)
111
- pyglet.gl.current_context.pyglet_shapes_default_shader = default_shader_program
112
- return default_shader_program
104
+ return pyglet.gl.current_context.create_program((vertex_source, 'vertex'),
105
+ (fragment_source, 'fragment'))
113
106
 
114
107
 
115
108
  def _rotate_point(center, point, angle):
116
109
  prev_angle = math.atan2(point[1] - center[1], point[0] - center[0])
117
110
  now_angle = prev_angle + angle
118
111
  r = math.dist(point, center)
119
- return (center[0] + r * math.cos(now_angle), center[1] + r * math.sin(now_angle))
112
+ return center[0] + r * math.cos(now_angle), center[1] + r * math.sin(now_angle)
120
113
 
121
114
 
122
115
  def _sat(vertices, point):
@@ -198,6 +191,7 @@ class ShapeBase(ABC):
198
191
  """
199
192
 
200
193
  _rgba = (255, 255, 255, 255)
194
+ _rotation = 0
201
195
  _visible = True
202
196
  _x = 0
203
197
  _y = 0
@@ -258,6 +252,29 @@ class ShapeBase(ABC):
258
252
  """
259
253
  raise NotImplementedError("_update_vertices must be defined"
260
254
  "for every ShapeBase subclass")
255
+ @property
256
+ def rotation(self) -> float:
257
+ """Clockwise rotation of the shape in degrees.
258
+
259
+ It will be rotated about its (anchor_x, anchor_y) position,
260
+ which defaults to the first vertex point of the shape.
261
+
262
+ For most shapes, this is the lower left corner. The shapes
263
+ below default to the points their ``radius`` values are
264
+ measured from:
265
+
266
+ * :py:class:`.Circle`
267
+ * :py:class:`.Ellipse`
268
+ * :py:class:`.Arc`
269
+ * :py:class:`.Sector`
270
+ * :py:class:`.Star`
271
+ """
272
+ return self._rotation
273
+
274
+ @rotation.setter
275
+ def rotation(self, rotation: float) -> None:
276
+ self._rotation = rotation
277
+ self._vertex_list.rotation[:] = (rotation,) * self._num_verts
261
278
 
262
279
  def draw(self):
263
280
  """Draw the shape at its current position.
@@ -551,22 +568,6 @@ class Arc(ShapeBase):
551
568
 
552
569
  self._vertex_list.position[:] = vertices
553
570
 
554
- @property
555
- def rotation(self):
556
- """Clockwise rotation of the arc, in degrees.
557
-
558
- The arc will be rotated about its (anchor_x, anchor_y)
559
- position.
560
-
561
- :type: float
562
- """
563
- return self._rotation
564
-
565
- @rotation.setter
566
- def rotation(self, rotation):
567
- self._rotation = rotation
568
- self._vertex_list.rotation[:] = (rotation,) * self._num_verts
569
-
570
571
  @property
571
572
  def angle(self):
572
573
  """The angle of the arc.
@@ -629,6 +630,7 @@ class BezierCurve(ShapeBase):
629
630
  Optional parent group of the curve.
630
631
  """
631
632
  self._points = list(points)
633
+ self._x, self._y = self._points[0]
632
634
  self._t = t
633
635
  self._segments = segments
634
636
  self._num_verts = self._segments * 2
@@ -655,7 +657,7 @@ class BezierCurve(ShapeBase):
655
657
  self._vertex_list = self._group.program.vertex_list(
656
658
  self._num_verts, self._draw_mode, self._batch, self._group,
657
659
  colors=('Bn', self._rgba * self._num_verts),
658
- translation=('f', (self._points[0]) * self._num_verts))
660
+ translation=('f', (self._x, self._y) * self._num_verts))
659
661
 
660
662
  def _update_vertices(self):
661
663
  if not self._visible:
@@ -902,22 +904,6 @@ class Ellipse(ShapeBase):
902
904
  self._b = value
903
905
  self._update_vertices()
904
906
 
905
- @property
906
- def rotation(self):
907
- """Clockwise rotation of the arc, in degrees.
908
-
909
- The arc will be rotated about its (anchor_x, anchor_y)
910
- position.
911
-
912
- :type: float
913
- """
914
- return self._rotation
915
-
916
- @rotation.setter
917
- def rotation(self, rotation):
918
- self._rotation = rotation
919
- self._vertex_list.rotation[:] = (rotation,) * self._num_verts
920
-
921
907
 
922
908
  class Sector(ShapeBase):
923
909
  def __init__(self, x, y, radius, segments=None, angle=math.tau, start_angle=0,
@@ -1048,22 +1034,6 @@ class Sector(ShapeBase):
1048
1034
  self._radius = value
1049
1035
  self._update_vertices()
1050
1036
 
1051
- @property
1052
- def rotation(self):
1053
- """Clockwise rotation of the sector, in degrees.
1054
-
1055
- The sector will be rotated about its (anchor_x, anchor_y)
1056
- position.
1057
-
1058
- :type: float
1059
- """
1060
- return self._rotation
1061
-
1062
- @rotation.setter
1063
- def rotation(self, rotation):
1064
- self._rotation = rotation
1065
- self._vertex_list.rotation[:] = (rotation,) * self._num_verts
1066
-
1067
1037
 
1068
1038
  class Line(ShapeBase):
1069
1039
  def __init__(self, x, y, x2, y2, width=1, color=(255, 255, 255, 255),
@@ -1286,22 +1256,6 @@ class Rectangle(ShapeBase):
1286
1256
  self._height = value
1287
1257
  self._update_vertices()
1288
1258
 
1289
- @property
1290
- def rotation(self):
1291
- """Clockwise rotation of the rectangle, in degrees.
1292
-
1293
- The Rectangle will be rotated about its (anchor_x, anchor_y)
1294
- position.
1295
-
1296
- :type: float
1297
- """
1298
- return self._rotation
1299
-
1300
- @rotation.setter
1301
- def rotation(self, rotation):
1302
- self._rotation = rotation
1303
- self._vertex_list.rotation[:] = (rotation,) * self._num_verts
1304
-
1305
1259
 
1306
1260
  class BorderedRectangle(ShapeBase):
1307
1261
  def __init__(self, x, y, width, height, border=1, color=(255, 255, 255),
@@ -1449,22 +1403,6 @@ class BorderedRectangle(ShapeBase):
1449
1403
  self._height = value
1450
1404
  self._update_vertices()
1451
1405
 
1452
- @property
1453
- def rotation(self):
1454
- """Clockwise rotation of the rectangle, in degrees.
1455
-
1456
- The Rectangle will be rotated about its (anchor_x, anchor_y)
1457
- position.
1458
-
1459
- :type: float
1460
- """
1461
- return self._rotation
1462
-
1463
- @rotation.setter
1464
- def rotation(self, rotation):
1465
- self._rotation = rotation
1466
- self._vertex_list.rotation[:] = (rotation,) * self._num_verts
1467
-
1468
1406
  @property
1469
1407
  def border_color(self):
1470
1408
  """The rectangle's border color.
@@ -1527,6 +1465,122 @@ class BorderedRectangle(ShapeBase):
1527
1465
  self._update_color()
1528
1466
 
1529
1467
 
1468
+ class Box(ShapeBase):
1469
+ def __init__(self, x, y, width, height, thickness=1, color=(255, 255, 255, 255), batch=None, group=None):
1470
+ """Create an unfilled rectangular shape, with optional thickness.
1471
+
1472
+ The box's anchor point defaults to the (x, y) coordinates,
1473
+ which are at the bottom left.
1474
+ Changing the thickness of the box will extend the walls inward;
1475
+ the outward dimesions will not be affected.
1476
+
1477
+ :Parameters:
1478
+ `x` : float
1479
+ The X coordinate of the box.
1480
+ `y` : float
1481
+ The Y coordinate of the box.
1482
+ `width` : float
1483
+ The width of the box.
1484
+ `height` : float
1485
+ The height of the box.
1486
+ `thickness` : float
1487
+ The thickness of the lines that make up the box.
1488
+ `color` : (int, int, int, int)
1489
+ The RGB or RGBA color of the box, specified as a tuple
1490
+ of 3 or 4 ints in the range of 0-255. RGB colors will
1491
+ be treated as having an opacity of 255.
1492
+ `batch` : `~pyglet.graphics.Batch`
1493
+ Optional batch to add the box to.
1494
+ `group` : `~pyglet.graphics.Group`
1495
+ Optional parent group of the box.
1496
+ """
1497
+ self._x = x
1498
+ self._y = y
1499
+ self._width = width
1500
+ self._height = height
1501
+ self._thickness = thickness
1502
+
1503
+ self._num_verts = 8
1504
+
1505
+ r, g, b, *a = color
1506
+ self._rgba = r, g, b, a[0] if a else 255
1507
+
1508
+ program = get_default_shader()
1509
+ self._batch = batch or Batch()
1510
+ self._group = self.group_class(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, program, group)
1511
+
1512
+ self._create_vertex_list()
1513
+ self._update_vertices()
1514
+
1515
+ def __contains__(self, point):
1516
+ assert len(point) == 2
1517
+ point = _rotate_point((self._x, self._y), point, math.radians(self._rotation))
1518
+ x, y = self._x - self._anchor_x, self._y - self._anchor_y
1519
+ return x < point[0] < x + self._width and y < point[1] < y + self._height
1520
+
1521
+ def _create_vertex_list(self):
1522
+ # 3 6
1523
+ # 2 7
1524
+ # 1 4
1525
+ # 0 5
1526
+ indices = [0, 1, 2, 0, 2, 3, 0, 5, 4, 0, 4, 1, 4, 5, 6, 4, 6, 7, 2, 7, 6, 2, 6, 3]
1527
+ self._vertex_list = self._group.program.vertex_list_indexed(
1528
+ self._num_verts, self._draw_mode, indices, self._batch, self._group,
1529
+ colors=('Bn', self._rgba * self._num_verts),
1530
+ translation=('f', (self._x, self._y) * self._num_verts))
1531
+
1532
+ def _update_color(self):
1533
+ self._vertex_list.colors[:] = self._rgba * self._num_verts
1534
+
1535
+ def _update_vertices(self):
1536
+ if not self._visible:
1537
+ self._vertex_list.position[:] = (0, 0) * self._num_verts
1538
+ else:
1539
+
1540
+ t = self._thickness
1541
+ left = -self._anchor_x
1542
+ bottom = -self._anchor_y
1543
+ right = left + self._width
1544
+ top = bottom + self._height
1545
+
1546
+ x1 = left
1547
+ x2 = left + t
1548
+ x3 = right - t
1549
+ x4 = right
1550
+ y1 = bottom
1551
+ y2 = bottom + t
1552
+ y3 = top - t
1553
+ y4 = top
1554
+ # 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7
1555
+ self._vertex_list.position[:] = x1, y1, x2, y2, x2, y3, x1, y4, x3, y2, x4, y1, x4, y4, x3, y3
1556
+
1557
+ @property
1558
+ def width(self):
1559
+ """The width of the Box.
1560
+
1561
+ :type: float
1562
+ """
1563
+ return self._width
1564
+
1565
+ @width.setter
1566
+ def width(self, value):
1567
+ self._width = value
1568
+ self._update_vertices()
1569
+
1570
+ @property
1571
+ def height(self):
1572
+ """The height of the Box.
1573
+
1574
+ :type: float
1575
+ """
1576
+ return self._height
1577
+
1578
+ @height.setter
1579
+ def height(self, value):
1580
+ self._height = value
1581
+ self._update_vertices()
1582
+
1583
+
1530
1584
  class Triangle(ShapeBase):
1531
1585
  def __init__(self, x, y, x2, y2, x3, y3, color=(255, 255, 255, 255),
1532
1586
  batch=None, group=None):
@@ -1771,17 +1825,6 @@ class Star(ShapeBase):
1771
1825
  self._num_spikes = value
1772
1826
  self._update_vertices()
1773
1827
 
1774
- @property
1775
- def rotation(self):
1776
- """Rotation of the star, in degrees.
1777
- """
1778
- return self._rotation
1779
-
1780
- @rotation.setter
1781
- def rotation(self, rotation):
1782
- self._rotation = rotation
1783
- self._vertex_list.rotation[:] = (rotation,) * self._num_verts
1784
-
1785
1828
 
1786
1829
  class Polygon(ShapeBase):
1787
1830
  def __init__(self, *coordinates, color=(255, 255, 255, 255), batch=None, group=None):
@@ -1805,6 +1848,7 @@ class Polygon(ShapeBase):
1805
1848
  # len(self._coordinates) = the number of vertices and sides in the shape.
1806
1849
  self._rotation = 0
1807
1850
  self._coordinates = list(coordinates)
1851
+ self._x, self._y = self._coordinates[0]
1808
1852
  self._num_verts = (len(self._coordinates) - 2) * 3
1809
1853
 
1810
1854
  r, g, b, *a = color
@@ -1826,7 +1870,7 @@ class Polygon(ShapeBase):
1826
1870
  self._vertex_list = self._group.program.vertex_list(
1827
1871
  self._num_verts, self._draw_mode, self._batch, self._group,
1828
1872
  colors=('Bn', self._rgba * self._num_verts),
1829
- translation=('f', (self._coordinates[0]) * self._num_verts))
1873
+ translation=('f', (self._x, self._y) * self._num_verts))
1830
1874
 
1831
1875
  def _update_vertices(self):
1832
1876
  if not self._visible:
@@ -1846,21 +1890,6 @@ class Polygon(ShapeBase):
1846
1890
  # Flattening the list before setting vertices to it.
1847
1891
  self._vertex_list.position[:] = tuple(value for coordinate in triangles for value in coordinate)
1848
1892
 
1849
- @property
1850
- def rotation(self):
1851
- """Clockwise rotation of the polygon, in degrees.
1852
-
1853
- The Polygon will be rotated about its (anchor_x, anchor_y)
1854
- position.
1855
-
1856
- :type: float
1857
- """
1858
- return self._rotation
1859
-
1860
- @rotation.setter
1861
- def rotation(self, rotation):
1862
- self._rotation = rotation
1863
- self._vertex_list.rotation[:] = (rotation,) * self._num_verts
1864
-
1865
1893
 
1866
- __all__ = 'Arc', 'BezierCurve', 'Circle', 'Ellipse', 'Line', 'Rectangle', 'BorderedRectangle', 'Triangle', 'Star', 'Polygon', 'Sector'
1894
+ __all__ = ('Arc', 'Box', 'BezierCurve', 'Circle', 'Ellipse', 'Line', 'Rectangle',
1895
+ 'BorderedRectangle', 'Triangle', 'Star', 'Polygon', 'Sector', 'ShapeBase')
@@ -146,25 +146,12 @@ fragment_array_source = """#version 150 core
146
146
 
147
147
 
148
148
  def get_default_shader():
149
- try:
150
- return pyglet.gl.current_context.pyglet_sprite_default_shader
151
- except AttributeError:
152
- _default_vert_shader = graphics.shader.Shader(vertex_source, 'vertex')
153
- _default_frag_shader = graphics.shader.Shader(fragment_source, 'fragment')
154
- default_shader_program = graphics.shader.ShaderProgram(_default_vert_shader, _default_frag_shader)
155
- pyglet.gl.current_context.pyglet_sprite_default_shader = default_shader_program
156
- return pyglet.gl.current_context.pyglet_sprite_default_shader
157
-
149
+ return pyglet.gl.current_context.create_program((vertex_source, 'vertex'),
150
+ (fragment_source, 'fragment'))
158
151
 
159
152
  def get_default_array_shader():
160
- try:
161
- return pyglet.gl.current_context.pyglet_sprite_default_array_shader
162
- except AttributeError:
163
- _default_vert_shader = graphics.shader.Shader(vertex_source, 'vertex')
164
- _default_array_frag_shader = graphics.shader.Shader(fragment_array_source, 'fragment')
165
- default_shader_program = graphics.shader.ShaderProgram(_default_vert_shader, _default_array_frag_shader)
166
- pyglet.gl.current_context.pyglet_sprite_default_array_shader = default_shader_program
167
- return pyglet.gl.current_context.pyglet_sprite_default_array_shader
153
+ return pyglet.gl.current_context.create_program((vertex_source, 'vertex'),
154
+ (fragment_array_source, 'fragment'))
168
155
 
169
156
 
170
157
  class SpriteGroup(graphics.Group):
@@ -271,6 +271,8 @@ class DocumentLabel(layout.TextLayout):
271
271
 
272
272
  @color.setter
273
273
  def color(self, color):
274
+ r, g, b, *a = color
275
+ color = r, g, b, a[0] if a else 255
274
276
  self.document.set_style(0, len(self.document.text), {'color': color})
275
277
 
276
278
  @property
@@ -98,7 +98,7 @@ class Caret:
98
98
 
99
99
  colors = r, g, b, self._visible_alpha, r, g, b, self._visible_alpha
100
100
 
101
- self._list = self._group.program.vertex_list(2, gl.GL_LINES, batch, self._group, colors=('Bn', colors))
101
+ self._list = self._group.program.vertex_list(2, gl.GL_LINES, self._batch, self._group, colors=('Bn', colors))
102
102
  self._ideal_x = None
103
103
  self._ideal_line = None
104
104
  self._next_attributes = {}
@@ -127,6 +127,7 @@ class Caret:
127
127
 
128
128
  Also disconnects the caret from further layout events.
129
129
  """
130
+ clock.unschedule(self._blink)
130
131
  self._list.delete()
131
132
  self._layout.remove_handlers(self)
132
133