pyglet 2.0.8__zip → 2.0.10__zip

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (876) hide show
  1. {pyglet-2.0.8 → pyglet-2.0.10}/.github/workflows/unittests.yml +1 -5
  2. {pyglet-2.0.8 → pyglet-2.0.10}/.gitignore +3 -0
  3. {pyglet-2.0.8 → pyglet-2.0.10}/.readthedocs.yml +5 -1
  4. {pyglet-2.0.8 → pyglet-2.0.10}/PKG-INFO +3 -2
  5. {pyglet-2.0.8 → pyglet-2.0.10}/README.md +2 -1
  6. {pyglet-2.0.8 → pyglet-2.0.10}/RELEASE_NOTES +55 -0
  7. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/qt_sprite_preview.py +774 -586
  8. {pyglet-2.0.8 → pyglet-2.0.10}/doc/conf.py +6 -0
  9. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/shapes.rst +8 -8
  10. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/window_key.rst +9 -1
  11. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/eventloop.rst +57 -53
  12. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/keyboard.rst +194 -67
  13. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/media.rst +297 -67
  14. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/quickstart.rst +1 -0
  15. pyglet-2.0.10/examples/clipboard.py +18 -0
  16. {pyglet-2.0.8 → pyglet-2.0.10}/examples/input/controller.py +4 -0
  17. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/media_info.py +1 -9
  18. pyglet-2.0.10/examples/media/soundspace/README +38 -0
  19. pyglet-2.0.10/examples/media/soundspace/reader.py +117 -0
  20. pyglet-2.0.10/examples/media/soundspace/res/bass.wav +0 -0
  21. pyglet-2.0.10/examples/media/soundspace/res/drums.wav +0 -0
  22. pyglet-2.0.10/examples/media/soundspace/res/guitar.wav +0 -0
  23. pyglet-2.0.10/examples/media/soundspace/res/piano.wav +0 -0
  24. pyglet-2.0.10/examples/media/soundspace/res/space.txt +24 -0
  25. pyglet-2.0.10/examples/media/soundspace/soundspace.py +660 -0
  26. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/fpscamera.py +50 -38
  27. pyglet-2.0.10/examples/net/client.py +18 -0
  28. pyglet-2.0.10/examples/net/server.py +25 -0
  29. pyglet-2.0.10/examples/opengl/compute_shader.py +39 -0
  30. {pyglet-2.0.8/examples/graphics → pyglet-2.0.10/examples}/shapes.py +3 -0
  31. {pyglet-2.0.8 → pyglet-2.0.10}/examples/window/fixed_resolution.py +37 -34
  32. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/__init__.py +21 -10
  33. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/app/base.py +13 -1
  34. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/cocoa.py +6 -0
  35. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/clock.py +47 -116
  36. pyglet-2.0.10/pyglet/customtypes.py +12 -0
  37. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/event.py +16 -16
  38. pyglet-2.0.10/pyglet/experimental/README.md +6 -0
  39. pyglet-2.0.10/pyglet/experimental/geoshader_sprite.py +792 -0
  40. pyglet-2.0.10/pyglet/experimental/net.py +247 -0
  41. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/directwrite.py +33 -59
  42. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/win32.py +85 -25
  43. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/base.py +195 -46
  44. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/gl_info.py +4 -2
  45. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/lib.py +1 -2
  46. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/win32.py +30 -30
  47. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/graphics/__init__.py +9 -21
  48. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/graphics/shader.py +53 -50
  49. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/graphics/vertexarray.py +8 -9
  50. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/graphics/vertexbuffer.py +50 -74
  51. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/graphics/vertexdomain.py +54 -97
  52. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gui/frame.py +2 -2
  53. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gui/widgets.py +31 -3
  54. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/__init__.py +35 -14
  55. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/atlas.py +9 -9
  56. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/buffer.py +19 -16
  57. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/wic.py +8 -10
  58. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/controller_db.py +19 -23
  59. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/linux/evdev.py +3 -2
  60. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/win32/xinput.py +2 -2
  61. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/cocoapy/cocoalibs.py +1 -0
  62. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/__init__.py +12 -1
  63. pyglet-2.0.10/pyglet/libs/win32/com.py +397 -0
  64. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/types.py +9 -1
  65. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/math.py +18 -43
  66. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/wmf.py +16 -22
  67. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/devices/base.py +28 -24
  68. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/devices/win32.py +93 -47
  69. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/base.py +6 -4
  70. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/directsound/adaptation.py +13 -8
  71. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/directsound/lib_dsound.py +0 -1
  72. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/listener.py +1 -3
  73. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/openal/adaptation.py +17 -7
  74. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/xaudio2/adaptation.py +2 -1
  75. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/xaudio2/interface.py +12 -9
  76. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +16 -34
  77. pyglet-2.0.10/pyglet/media/mediathreads.py +129 -0
  78. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/player.py +8 -3
  79. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/model/__init__.py +4 -17
  80. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/model/codecs/obj.py +1 -0
  81. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/shapes.py +194 -143
  82. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/sprite.py +4 -17
  83. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/__init__.py +2 -0
  84. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/caret.py +2 -1
  85. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/layout.py +171 -189
  86. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/util.py +6 -35
  87. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/__init__.py +75 -35
  88. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/cocoa/__init__.py +28 -0
  89. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/cocoa/pyglet_textview.py +11 -4
  90. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/key.py +10 -1
  91. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/win32/__init__.py +37 -0
  92. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/xlib/__init__.py +142 -5
  93. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet.egg-info/PKG-INFO +3 -2
  94. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet.egg-info/SOURCES.txt +68 -2
  95. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/app/test_eventloop.py +1 -2
  96. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/image/test_imagegrid.py +3 -0
  97. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/image/test_texture3d.py +3 -0
  98. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/test_driver.py +15 -12
  99. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_16bpp.bmp].001.png +0 -0
  100. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_1bpp.bmp].001.png +0 -0
  101. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_24bpp.bmp].001.png +0 -0
  102. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_32bpp.bmp].001.png +0 -0
  103. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_4bpp.bmp].001.png +0 -0
  104. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgb_8bpp.bmp].001.png +0 -0
  105. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_bmp_loading[rgba_32bpp.bmp].001.png +0 -0
  106. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_buffer_copy.001.png +0 -0
  107. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_buffer_saving.001.png +0 -0
  108. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_checkerboard.001.png +0 -0
  109. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_dds_loading[rgb_dxt1.dds].001.png +0 -0
  110. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_dds_loading[rgba_dxt1.dds].001.png +0 -0
  111. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_dds_loading[rgba_dxt3.dds].001.png +0 -0
  112. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_dds_loading[rgba_dxt5.dds].001.png +0 -0
  113. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_depth_buffer_saving.001.png +0 -0
  114. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[8bpp.gif].001.png +0 -0
  115. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[l.png].001.png +0 -0
  116. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[la.png].001.png +0 -0
  117. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgb.png].001.png +0 -0
  118. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgba.png].001.png +0 -0
  119. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_loading[la.png].001.png +0 -0
  120. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_loading[rgb.png].001.png +0 -0
  121. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_loading[rgba.png].001.png +0 -0
  122. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_saving[l.png].001.png +0 -0
  123. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_saving[la.png].001.png +0 -0
  124. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[la.png].001.png +0 -0
  125. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[rgb.png].001.png +0 -0
  126. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[rgb_8bpp.png].001.png +0 -0
  127. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[rgb_8bpp_trans.png].001.png +0 -0
  128. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_loading[rgba.png].001.png +0 -0
  129. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_saving[l.png].001.png +0 -0
  130. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_saving[la.png].001.png +0 -0
  131. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_saving[rgb.png].001.png +0 -0
  132. pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pypng_saving[rgba.png].001.png +0 -0
  133. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_16bpp.bmp].001.png +0 -0
  134. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_1bpp.bmp].001.png +0 -0
  135. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_24bpp.bmp].001.png +0 -0
  136. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_32bpp.bmp].001.png +0 -0
  137. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_4bpp.bmp].001.png +0 -0
  138. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_8bpp.bmp].001.png +0 -0
  139. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgba_32bpp.bmp].001.png +0 -0
  140. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_buffer_copy.001.png +0 -0
  141. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_buffer_saving.001.png +0 -0
  142. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_checkerboard.001.png +0 -0
  143. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgb_dxt1.dds].001.png +0 -0
  144. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt1.dds].001.png +0 -0
  145. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt3.dds].001.png +0 -0
  146. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt5.dds].001.png +0 -0
  147. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_depth_buffer_saving.001.png +0 -0
  148. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[8bpp.gif].001.png +0 -0
  149. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[l.png].001.png +0 -0
  150. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[la.png].001.png +0 -0
  151. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgb.png].001.png +0 -0
  152. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgba.png].001.png +0 -0
  153. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[la.png].001.png +0 -0
  154. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[rgb.png].001.png +0 -0
  155. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[rgba.png].001.png +0 -0
  156. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_saving[l.png].001.png +0 -0
  157. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_saving[la.png].001.png +0 -0
  158. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_saving[rgb.png].001.png +0 -0
  159. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_saving[rgba.png].001.png +0 -0
  160. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[la.png].001.png +0 -0
  161. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgb.png].001.png +0 -0
  162. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgb_8bpp.png].001.png +0 -0
  163. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgb_8bpp_trans.png].001.png +0 -0
  164. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgba.png].001.png +0 -0
  165. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_saving[l.png].001.png +0 -0
  166. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_saving[la.png].001.png +0 -0
  167. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_saving[rgb.png].001.png +0 -0
  168. pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_saving[rgba.png].001.png +0 -0
  169. pyglet-2.0.10/tests/interactive/shapes/test_shapes.py +179 -0
  170. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_inline_elements.py +20 -17
  171. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_inline_elements_style_change.py +15 -14
  172. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_multiline_wrap.py +18 -18
  173. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_plain.py +5 -5
  174. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_style.py +5 -5
  175. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/conftest.py +5 -0
  176. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/shapes/test_shapes.py +24 -2
  177. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_events.py +31 -21
  178. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gencontrollerdb.py +3 -3
  179. pyglet-2.0.8/experimental/geoshader_sprite.py +0 -367
  180. pyglet-2.0.8/pyglet/libs/win32/com.py +0 -340
  181. pyglet-2.0.8/pyglet/media/mediathreads.py +0 -152
  182. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_24bpp.bmp].001.png +0 -0
  183. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_32bpp.bmp].001.png +0 -0
  184. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_4bpp.bmp].001.png +0 -0
  185. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_8bpp.bmp].001.png +0 -0
  186. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgba_32bpp.bmp].001.png +0 -0
  187. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_checkerboard.001.png +0 -0
  188. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgb_dxt1.dds].001.png +0 -0
  189. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt1.dds].001.png +0 -0
  190. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt3.dds].001.png +0 -0
  191. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_dds_loading[rgba_dxt5.dds].001.png +0 -0
  192. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[8bpp.gif].001.png +0 -0
  193. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[l.png].001.png +0 -0
  194. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[la.png].001.png +0 -0
  195. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgb.png].001.png +0 -0
  196. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_gdkpixbuf2_loading[rgba.png].001.png +0 -0
  197. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[la.png].001.png +0 -0
  198. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[rgb.png].001.png +0 -0
  199. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[rgba.png].001.png +0 -0
  200. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[la.png].001.png +0 -0
  201. pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[rgba.png].001.png +0 -0
  202. {pyglet-2.0.8 → pyglet-2.0.10}/.coveragerc +0 -0
  203. {pyglet-2.0.8 → pyglet-2.0.10}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  204. {pyglet-2.0.8 → pyglet-2.0.10}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  205. {pyglet-2.0.8 → pyglet-2.0.10}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
  206. {pyglet-2.0.8 → pyglet-2.0.10}/.github/workflows/codeql.yml +0 -0
  207. {pyglet-2.0.8 → pyglet-2.0.10}/LICENSE +0 -0
  208. {pyglet-2.0.8 → pyglet-2.0.10}/MANIFEST.in +0 -0
  209. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/aseprite_codec/README +0 -0
  210. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/aseprite_codec/asedemo.py +0 -0
  211. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/aseprite_codec/aseprite.py +0 -0
  212. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/aseprite_codec/running.ase +0 -0
  213. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/logo3d/logo3d.jpg +0 -0
  214. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/logo3d/logo3d.obj.zip +0 -0
  215. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/logo3d/logo3d.wings +0 -0
  216. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/scenemanager.py +0 -0
  217. {pyglet-2.0.8 → pyglet-2.0.10}/contrib/toys/follow_mouse.py +0 -0
  218. {pyglet-2.0.8 → pyglet-2.0.10}/doc/Makefile +0 -0
  219. {pyglet-2.0.8 → pyglet-2.0.10}/doc/README.md +0 -0
  220. {pyglet-2.0.8 → pyglet-2.0.10}/doc/_static/favicon.ico +0 -0
  221. {pyglet-2.0.8 → pyglet-2.0.10}/doc/_static/logo.png +0 -0
  222. {pyglet-2.0.8 → pyglet-2.0.10}/doc/_static/logo5.svg +0 -0
  223. {pyglet-2.0.8 → pyglet-2.0.10}/doc/_static/relatedlogo.png +0 -0
  224. {pyglet-2.0.8 → pyglet-2.0.10}/doc/external_resources.rst +0 -0
  225. {pyglet-2.0.8 → pyglet-2.0.10}/doc/index.rst +0 -0
  226. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/contributing.rst +0 -0
  227. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/dist.rst +0 -0
  228. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/doc.rst +0 -0
  229. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/generated.rst +0 -0
  230. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/gl.rst +0 -0
  231. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/media_logging_manual.rst +0 -0
  232. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/media_manual.rst +0 -0
  233. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/testing.rst +0 -0
  234. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/virtualenv.rst +0 -0
  235. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/wraptypes-class.svg +0 -0
  236. {pyglet-2.0.8 → pyglet-2.0.10}/doc/internal/wraptypes.rst +0 -0
  237. {pyglet-2.0.8 → pyglet-2.0.10}/doc/make.bat +0 -0
  238. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/app.rst +0 -0
  239. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/canvas.rst +0 -0
  240. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/clock.rst +0 -0
  241. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/event.rst +0 -0
  242. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/font.rst +0 -0
  243. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/gl.rst +0 -0
  244. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/graphics/allocation.rst +0 -0
  245. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/graphics/index.rst +0 -0
  246. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/graphics/shader.rst +0 -0
  247. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/graphics/vertexbuffer.rst +0 -0
  248. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/graphics/vertexdomain.rst +0 -0
  249. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/gui.rst +0 -0
  250. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/image/animation.rst +0 -0
  251. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/image/atlas.rst +0 -0
  252. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/image/index.rst +0 -0
  253. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/info.rst +0 -0
  254. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/input.rst +0 -0
  255. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/math.rst +0 -0
  256. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/media.rst +0 -0
  257. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/media_synthesis.rst +0 -0
  258. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/pyglet.rst +0 -0
  259. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/resource.rst +0 -0
  260. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/sprite.rst +0 -0
  261. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/text/caret.rst +0 -0
  262. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/text/document.rst +0 -0
  263. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/text/index.rst +0 -0
  264. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/text/layout.rst +0 -0
  265. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/window.rst +0 -0
  266. {pyglet-2.0.8 → pyglet-2.0.10}/doc/modules/window_mouse.rst +0 -0
  267. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/context.rst +0 -0
  268. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/debug.rst +0 -0
  269. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/events.rst +0 -0
  270. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/examplegame.rst +0 -0
  271. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/gl.rst +0 -0
  272. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/graphics.rst +0 -0
  273. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/image.rst +0 -0
  274. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/abstract_image.png +0 -0
  275. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/abstract_image.svg +0 -0
  276. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/buffer_image.png +0 -0
  277. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/buffer_image.svg +0 -0
  278. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/context_flow.png +0 -0
  279. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/context_flow.svg +0 -0
  280. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
  281. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_default.png +0 -0
  282. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
  283. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_no.png +0 -0
  284. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
  285. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
  286. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
  287. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
  288. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
  289. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
  290. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_text.png +0 -0
  291. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
  292. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
  293. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_default.png +0 -0
  294. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_hand.png +0 -0
  295. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_help.png +0 -0
  296. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_no.png +0 -0
  297. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size.png +0 -0
  298. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
  299. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
  300. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
  301. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
  302. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_text.png +0 -0
  303. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_wait.png +0 -0
  304. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
  305. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/explosion.png +0 -0
  306. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/font_metrics.png +0 -0
  307. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/font_metrics.svg +0 -0
  308. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/image_classes.png +0 -0
  309. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/image_classes.svg +0 -0
  310. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/image_grid.png +0 -0
  311. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/image_grid.svg +0 -0
  312. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/image_sequence.png +0 -0
  313. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/image_sequence.svg +0 -0
  314. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/mouse_coordinates.png +0 -0
  315. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
  316. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/screens.png +0 -0
  317. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/screens.svg +0 -0
  318. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/text_classes.png +0 -0
  319. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/text_classes.svg +0 -0
  320. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_location.png +0 -0
  321. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_location.svg +0 -0
  322. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_osx_borderless.png +0 -0
  323. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_osx_default.png +0 -0
  324. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_osx_dialog.png +0 -0
  325. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_osx_tool.png +0 -0
  326. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_default.png +0 -0
  327. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_dialog.png +0 -0
  328. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_overlay.png +0 -0
  329. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_tool.png +0 -0
  330. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/img/window_xp_transparent.png +0 -0
  331. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/input.rst +0 -0
  332. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/installation.rst +0 -0
  333. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/math.rst +0 -0
  334. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/migration.rst +0 -0
  335. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/mouse.rst +0 -0
  336. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/options.rst +0 -0
  337. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/resources.rst +0 -0
  338. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/shapes.rst +0 -0
  339. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/text.rst +0 -0
  340. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/time.rst +0 -0
  341. {pyglet-2.0.8 → pyglet-2.0.10}/doc/programming_guide/windowing.rst +0 -0
  342. {pyglet-2.0.8 → pyglet-2.0.10}/doc/requirements.txt +0 -0
  343. {pyglet-2.0.8 → pyglet-2.0.10}/examples/events/events_key_state_handler.py +0 -0
  344. {pyglet-2.0.8 → pyglet-2.0.10}/examples/events/register_event_type.py +0 -0
  345. {pyglet-2.0.8 → pyglet-2.0.10}/examples/events/window_events.py +0 -0
  346. {pyglet-2.0.8 → pyglet-2.0.10}/examples/events/window_platform_event.py +0 -0
  347. {pyglet-2.0.8 → pyglet-2.0.10}/examples/file_dialog.py +0 -0
  348. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/resources/asteroid.png +0 -0
  349. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/resources/bullet.png +0 -0
  350. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/resources/bullet.wav +0 -0
  351. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/resources/engine_flame.png +0 -0
  352. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/resources/player.png +0 -0
  353. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version1/asteroid.py +0 -0
  354. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version1/game/__init__.py +0 -0
  355. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version1/game/load.py +0 -0
  356. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version1/game/resources.py +0 -0
  357. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version2/asteroid.py +0 -0
  358. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version2/game/__init__.py +0 -0
  359. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version2/game/load.py +0 -0
  360. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version2/game/physicalobject.py +0 -0
  361. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version2/game/player.py +0 -0
  362. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version2/game/resources.py +0 -0
  363. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/asteroid.py +0 -0
  364. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/game/__init__.py +0 -0
  365. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/game/load.py +0 -0
  366. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/game/physicalobject.py +0 -0
  367. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/game/player.py +0 -0
  368. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/game/resources.py +0 -0
  369. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version3/game/util.py +0 -0
  370. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/asteroid.py +0 -0
  371. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/__init__.py +0 -0
  372. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/asteroid.py +0 -0
  373. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/bullet.py +0 -0
  374. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/load.py +0 -0
  375. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/physicalobject.py +0 -0
  376. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/player.py +0 -0
  377. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/resources.py +0 -0
  378. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version4/game/util.py +0 -0
  379. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/asteroid.py +0 -0
  380. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/__init__.py +0 -0
  381. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/asteroid.py +0 -0
  382. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/bullet.py +0 -0
  383. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/load.py +0 -0
  384. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/physicalobject.py +0 -0
  385. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/player.py +0 -0
  386. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/resources.py +0 -0
  387. {pyglet-2.0.8 → pyglet-2.0.10}/examples/game/version5/game/util.py +0 -0
  388. {pyglet-2.0.8 → pyglet-2.0.10}/examples/graphics/image_convert.py +0 -0
  389. {pyglet-2.0.8 → pyglet-2.0.10}/examples/graphics/image_display.py +0 -0
  390. {pyglet-2.0.8 → pyglet-2.0.10}/examples/gui/bar.png +0 -0
  391. {pyglet-2.0.8 → pyglet-2.0.10}/examples/gui/button_down.png +0 -0
  392. {pyglet-2.0.8 → pyglet-2.0.10}/examples/gui/button_hover.png +0 -0
  393. {pyglet-2.0.8 → pyglet-2.0.10}/examples/gui/button_up.png +0 -0
  394. {pyglet-2.0.8 → pyglet-2.0.10}/examples/gui/knob.png +0 -0
  395. {pyglet-2.0.8 → pyglet-2.0.10}/examples/gui/widgets.py +0 -0
  396. {pyglet-2.0.8 → pyglet-2.0.10}/examples/hello_world.py +0 -0
  397. {pyglet-2.0.8 → pyglet-2.0.10}/examples/input/apple_remote.py +0 -0
  398. {pyglet-2.0.8 → pyglet-2.0.10}/examples/input/input.py +0 -0
  399. {pyglet-2.0.8 → pyglet-2.0.10}/examples/input/joystick.py +0 -0
  400. {pyglet-2.0.8 → pyglet-2.0.10}/examples/input/tablet.py +0 -0
  401. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/media_player.py +0 -0
  402. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/noisy/README +0 -0
  403. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/noisy/ball.png +0 -0
  404. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/noisy/ball.wav +0 -0
  405. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/noisy/noisy.py +0 -0
  406. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/synthesizer.py +0 -0
  407. {pyglet-2.0.8 → pyglet-2.0.10}/examples/media/video.py +0 -0
  408. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/box.mtl +0 -0
  409. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/box.obj +0 -0
  410. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/logo3d.mtl +0 -0
  411. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/logo3d.obj +0 -0
  412. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/model.py +0 -0
  413. {pyglet-2.0.8 → pyglet-2.0.10}/examples/model/pyglet.png +0 -0
  414. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/egl_context.py +0 -0
  415. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/opengl.py +0 -0
  416. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/opengl_context.py +0 -0
  417. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/opengl_core.py +0 -0
  418. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/opengl_scissor.py +0 -0
  419. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/opengl_shader.py +0 -0
  420. {pyglet-2.0.8 → pyglet-2.0.10}/examples/opengl/pyglet.png +0 -0
  421. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/animation.py +0 -0
  422. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/dinosaur.gif +0 -0
  423. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/events.py +0 -0
  424. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/hello_world.py +0 -0
  425. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/image_viewer.py +0 -0
  426. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/kitten.jpg +0 -0
  427. {pyglet-2.0.8 → pyglet-2.0.10}/examples/programming_guide/window_subclass.py +0 -0
  428. {pyglet-2.0.8 → pyglet-2.0.10}/examples/resources/kitten.jpg +0 -0
  429. {pyglet-2.0.8 → pyglet-2.0.10}/examples/resources/pyglet.png +0 -0
  430. {pyglet-2.0.8 → pyglet-2.0.10}/examples/sprite/depth_sprite.py +0 -0
  431. {pyglet-2.0.8 → pyglet-2.0.10}/examples/sprite/display_sprite.py +0 -0
  432. {pyglet-2.0.8 → pyglet-2.0.10}/examples/sprite/multi_texture_sprite.py +0 -0
  433. {pyglet-2.0.8 → pyglet-2.0.10}/examples/sprite/sprite_batching.py +0 -0
  434. {pyglet-2.0.8 → pyglet-2.0.10}/examples/text/advanced_font.py +0 -0
  435. {pyglet-2.0.8 → pyglet-2.0.10}/examples/text/font_comparison.py +0 -0
  436. {pyglet-2.0.8 → pyglet-2.0.10}/examples/text/html_label.py +0 -0
  437. {pyglet-2.0.8 → pyglet-2.0.10}/examples/text/pyglet.png +0 -0
  438. {pyglet-2.0.8 → pyglet-2.0.10}/examples/text/text_input.py +0 -0
  439. {pyglet-2.0.8 → pyglet-2.0.10}/examples/timer.py +0 -0
  440. {pyglet-2.0.8 → pyglet-2.0.10}/examples/window/camera.py +0 -0
  441. {pyglet-2.0.8 → pyglet-2.0.10}/examples/window/camera_group.py +0 -0
  442. {pyglet-2.0.8 → pyglet-2.0.10}/examples/window/multiple_windows.py +0 -0
  443. {pyglet-2.0.8 → pyglet-2.0.10}/examples/window/overlay_window.py +0 -0
  444. {pyglet-2.0.8 → pyglet-2.0.10}/examples/window/transparent_window.py +0 -0
  445. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/dist_field/README +0 -0
  446. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/dist_field/genfield.py +0 -0
  447. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/dist_field/py.df.png +0 -0
  448. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/dist_field/py.png +0 -0
  449. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/dist_field/renderfield.py +0 -0
  450. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/flaccodec.py +0 -0
  451. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/hello_world.svg +0 -0
  452. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/spritebenchmark.py +0 -0
  453. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/svg_test.py +0 -0
  454. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/wayland/gbm_egl_context.py +0 -0
  455. {pyglet-2.0.8 → pyglet-2.0.10}/experimental/win32priority.py +0 -0
  456. {pyglet-2.0.8 → pyglet-2.0.10}/make.py +0 -0
  457. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/app/__init__.py +0 -0
  458. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/app/cocoa.py +0 -0
  459. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/app/win32.py +0 -0
  460. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/app/xlib.py +0 -0
  461. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/__init__.py +0 -0
  462. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/base.py +0 -0
  463. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/headless.py +0 -0
  464. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/win32.py +0 -0
  465. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/xlib.py +0 -0
  466. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/canvas/xlib_vidmoderestore.py +0 -0
  467. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/extlibs/__init__.py +0 -0
  468. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/extlibs/png.py +0 -0
  469. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/__init__.py +0 -0
  470. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/base.py +0 -0
  471. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/fontconfig.py +0 -0
  472. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/freetype.py +0 -0
  473. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/freetype_lib.py +0 -0
  474. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/quartz.py +0 -0
  475. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/ttf.py +0 -0
  476. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/user.py +0 -0
  477. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/font/win32query.py +0 -0
  478. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/__init__.py +0 -0
  479. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/agl.py +0 -0
  480. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/cocoa.py +0 -0
  481. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/gl.py +0 -0
  482. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/gl_compat.py +0 -0
  483. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/glx.py +0 -0
  484. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/glx_info.py +0 -0
  485. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/glxext_arb.py +0 -0
  486. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/glxext_mesa.py +0 -0
  487. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/glxext_nv.py +0 -0
  488. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/headless.py +0 -0
  489. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/lib_agl.py +0 -0
  490. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/lib_glx.py +0 -0
  491. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/lib_wgl.py +0 -0
  492. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/wgl.py +0 -0
  493. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/wgl_info.py +0 -0
  494. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/wglext_arb.py +0 -0
  495. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/wglext_nv.py +0 -0
  496. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gl/xlib.py +0 -0
  497. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/graphics/allocation.py +0 -0
  498. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/gui/__init__.py +0 -0
  499. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/animation.py +0 -0
  500. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/__init__.py +0 -0
  501. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/bmp.py +0 -0
  502. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/dds.py +0 -0
  503. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/gdiplus.py +0 -0
  504. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
  505. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/gif.py +0 -0
  506. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/pil.py +0 -0
  507. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/png.py +0 -0
  508. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/quartz.py +0 -0
  509. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/image/codecs/s3tc.py +0 -0
  510. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/info.py +0 -0
  511. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/__init__.py +0 -0
  512. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/base.py +0 -0
  513. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/controller.py +0 -0
  514. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/linux/__init__.py +0 -0
  515. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/linux/evdev_constants.py +0 -0
  516. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/linux/x11_xinput.py +0 -0
  517. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
  518. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/macos/__init__.py +0 -0
  519. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/macos/darwin_hid.py +0 -0
  520. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/win32/__init__.py +0 -0
  521. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/win32/directinput.py +0 -0
  522. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/input/win32/wintab.py +0 -0
  523. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/lib.py +0 -0
  524. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/__init__.py +0 -0
  525. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/__init__.py +0 -0
  526. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
  527. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
  528. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
  529. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/coreaudio.py +0 -0
  530. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/darwin/quartzkey.py +0 -0
  531. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/egl/__init__.py +0 -0
  532. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/egl/egl.py +0 -0
  533. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/egl/eglext.py +0 -0
  534. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/egl/lib.py +0 -0
  535. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/wayland/__init__.py +0 -0
  536. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/wayland/gbm.py +0 -0
  537. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/wayland/xkbcommon.py +0 -0
  538. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/constants.py +0 -0
  539. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/context_managers.py +0 -0
  540. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/dinput.py +0 -0
  541. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/libwintab.py +0 -0
  542. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/win32/winkey.py +0 -0
  543. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/__init__.py +0 -0
  544. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/cursorfont.py +0 -0
  545. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/xf86vmode.py +0 -0
  546. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/xinerama.py +0 -0
  547. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/xinput.py +0 -0
  548. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/xlib.py +0 -0
  549. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/libs/x11/xsync.py +0 -0
  550. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/__init__.py +0 -0
  551. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/buffered_logger.py +0 -0
  552. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/__init__.py +0 -0
  553. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/base.py +0 -0
  554. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/coreaudio.py +0 -0
  555. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg.py +0 -0
  556. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
  557. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/compat.py +0 -0
  558. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +0 -0
  559. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libavformat.py +0 -0
  560. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +0 -0
  561. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +0 -0
  562. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +0 -0
  563. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/gstreamer.py +0 -0
  564. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/pyogg.py +0 -0
  565. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/codecs/wave.py +0 -0
  566. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/devices/__init__.py +0 -0
  567. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/__init__.py +0 -0
  568. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/directsound/__init__.py +0 -0
  569. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/directsound/exceptions.py +0 -0
  570. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/directsound/interface.py +0 -0
  571. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/openal/__init__.py +0 -0
  572. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/openal/interface.py +0 -0
  573. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/openal/lib_alc.py +0 -0
  574. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/openal/lib_openal.py +0 -0
  575. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/pulse/__init__.py +0 -0
  576. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/pulse/adaptation.py +0 -0
  577. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/pulse/interface.py +0 -0
  578. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
  579. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/silent/__init__.py +0 -0
  580. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/silent/adaptation.py +0 -0
  581. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
  582. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/exceptions.py +0 -0
  583. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/instrumentation.py +0 -0
  584. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/media/synthesis.py +0 -0
  585. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/model/codecs/__init__.py +0 -0
  586. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/model/codecs/gltf.py +0 -0
  587. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/resource.py +0 -0
  588. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/document.py +0 -0
  589. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/formats/__init__.py +0 -0
  590. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/formats/attributed.py +0 -0
  591. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/formats/html.py +0 -0
  592. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/formats/plaintext.py +0 -0
  593. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/formats/structured.py +0 -0
  594. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/text/runlist.py +0 -0
  595. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/cocoa/pyglet_delegate.py +0 -0
  596. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/cocoa/pyglet_view.py +0 -0
  597. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/cocoa/pyglet_window.py +0 -0
  598. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/cocoa/systemcursor.py +0 -0
  599. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/event.py +0 -0
  600. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/headless/__init__.py +0 -0
  601. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet/window/mouse.py +0 -0
  602. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet.egg-info/dependency_links.txt +0 -0
  603. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet.egg-info/top_level.txt +0 -0
  604. {pyglet-2.0.8 → pyglet-2.0.10}/pyglet.egg-info/zip-safe +0 -0
  605. {pyglet-2.0.8 → pyglet-2.0.10}/pyproject.toml +0 -0
  606. {pyglet-2.0.8 → pyglet-2.0.10}/pytest.ini +0 -0
  607. {pyglet-2.0.8 → pyglet-2.0.10}/setup.cfg +0 -0
  608. {pyglet-2.0.8 → pyglet-2.0.10}/setup.py +0 -0
  609. {pyglet-2.0.8 → pyglet-2.0.10}/tests/__init__.py +0 -0
  610. {pyglet-2.0.8 → pyglet-2.0.10}/tests/annotations.py +0 -0
  611. {pyglet-2.0.8 → pyglet-2.0.10}/tests/base/__init__.py +0 -0
  612. {pyglet-2.0.8 → pyglet-2.0.10}/tests/base/data.py +0 -0
  613. {pyglet-2.0.8 → pyglet-2.0.10}/tests/base/event_loop.py +0 -0
  614. {pyglet-2.0.8 → pyglet-2.0.10}/tests/base/interactive.py +0 -0
  615. {pyglet-2.0.8 → pyglet-2.0.10}/tests/base/performance.py +0 -0
  616. {pyglet-2.0.8 → pyglet-2.0.10}/tests/base/test_interactive_test_base.py +0 -0
  617. {pyglet-2.0.8 → pyglet-2.0.10}/tests/conftest.py +0 -0
  618. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/fonts/README +0 -0
  619. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/fonts/action_man.ttf +0 -0
  620. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/fonts/action_man_bold.ttf +0 -0
  621. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
  622. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/fonts/action_man_italic.ttf +0 -0
  623. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
  624. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/8bpp.gif +0 -0
  625. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/cursor.png +0 -0
  626. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/dinosaur.gif +0 -0
  627. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/gdk_close.png +0 -0
  628. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/grey_background.png +0 -0
  629. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/icon1.png +0 -0
  630. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/icon_size1.png +0 -0
  631. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/icon_size2.png +0 -0
  632. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/icon_size3.png +0 -0
  633. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/icon_size4.png +0 -0
  634. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/icon_size5.png +0 -0
  635. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/l.png +0 -0
  636. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/la.png +0 -0
  637. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/multitexture.png +0 -0
  638. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb.png +0 -0
  639. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_16bpp.bmp +0 -0
  640. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_1bpp.bmp +0 -0
  641. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_24bpp.bmp +0 -0
  642. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_32bpp.bmp +0 -0
  643. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_4bpp.bmp +0 -0
  644. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_8bpp.bmp +0 -0
  645. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_8bpp.png +0 -0
  646. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_8bpp_trans.png +0 -0
  647. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgb_dxt1.dds +0 -0
  648. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgba.png +0 -0
  649. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgba_32bpp.bmp +0 -0
  650. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgba_dxt1.dds +0 -0
  651. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgba_dxt3.dds +0 -0
  652. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/rgba_dxt5.dds +0 -0
  653. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
  654. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/README +0 -0
  655. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/alert.wav +0 -0
  656. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/login.wav +0 -0
  657. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/logout.wav +0 -0
  658. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/receive.wav +0 -0
  659. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/send.wav +0 -0
  660. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
  661. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
  662. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
  663. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
  664. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
  665. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
  666. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
  667. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
  668. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
  669. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
  670. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
  671. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
  672. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/models/logo3d.mtl +0 -0
  673. {pyglet-2.0.8 → pyglet-2.0.10}/tests/data/models/logo3d.obj +0 -0
  674. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/__init__.py +0 -0
  675. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/app/__init__.py +0 -0
  676. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/font/test_fontconfig.py +0 -0
  677. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/font/test_freetype_face.py +0 -0
  678. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/graphics/__init__.py +0 -0
  679. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/graphics/test_allocation.py +0 -0
  680. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/image/__init__.py +0 -0
  681. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/image/test_gdkpixbuf2.py +0 -0
  682. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/__init__.py +0 -0
  683. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/mock_player.py +0 -0
  684. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/test_directsound.py +0 -0
  685. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/test_openal.py +0 -0
  686. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/test_player.py +0 -0
  687. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/media/test_pulse.py +0 -0
  688. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/model/__init__.py +0 -0
  689. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/model/test_loading.py +0 -0
  690. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/platform/__init__.py +0 -0
  691. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/platform/test_linux_fontconfig.py +0 -0
  692. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/platform/test_win_context_managers.py +0 -0
  693. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/platform/test_win_multicore_clock.py +0 -0
  694. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/__init__.py +0 -0
  695. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
  696. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/dir1/f2.txt +0 -0
  697. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/dir1/res.zip +0 -0
  698. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/dir2/f6.txt +0 -0
  699. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/f1.txt +0 -0
  700. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/rgbm.png +0 -0
  701. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/test_resource_image_loading.py +0 -0
  702. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/resource/test_resource_loading.py +0 -0
  703. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/text/__init__.py +0 -0
  704. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/text/test_empty_document.py +0 -0
  705. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/window/__init__.py +0 -0
  706. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/window/test_context_share.py +0 -0
  707. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/window/test_event_sequence.py +0 -0
  708. {pyglet-2.0.8 → pyglet-2.0.10}/tests/integration/window/test_window_caption.py +0 -0
  709. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/__init__.py +0 -0
  710. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/conftest.py +0 -0
  711. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/graphics/__init__.py +0 -0
  712. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/graphics/test_multitexture.py +0 -0
  713. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/image/__init__.py +0 -0
  714. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/image/test_image.py +0 -0
  715. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/media/__init__.py +0 -0
  716. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/media/test_player.py +0 -0
  717. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/screenshots/committed/README +0 -0
  718. /pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.graphics.test_multitexture.test_multitexture.001.png → /pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_saving[rgb.png].001.png +0 -0
  719. /pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_16bpp.bmp].001.png → /pyglet-2.0.10/tests/interactive/screenshots/committed/tests.interactive.image.test_image.test_pil_saving[rgba.png].001.png +0 -0
  720. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/screenshots/session/README +0 -0
  721. /pyglet-2.0.8/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_bmp_loading[rgb_1bpp.bmp].001.png → /pyglet-2.0.10/tests/interactive/screenshots/session/tests.interactive.graphics.test_multitexture.test_multitexture.001.png +0 -0
  722. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pil_loading[l.png].001.png +0 -0
  723. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/screenshots/session/tests.interactive.image.test_image.test_pypng_loading[l.png].001.png +0 -0
  724. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/__init__.py +0 -0
  725. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_caret_color.py +0 -0
  726. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_content_valign.py +0 -0
  727. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/text/test_html.py +0 -0
  728. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/__init__.py +0 -0
  729. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_events.py +0 -0
  730. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_fullscreen.py +0 -0
  731. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_modes.py +0 -0
  732. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_multisample.py +0 -0
  733. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_open.py +0 -0
  734. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_settings.py +0 -0
  735. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/test_window_styles.py +0 -0
  736. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/window/window_util.py +0 -0
  737. {pyglet-2.0.8 → pyglet-2.0.10}/tests/interactive/windowed_test_base.py +0 -0
  738. {pyglet-2.0.8 → pyglet-2.0.10}/tests/requirements.txt +0 -0
  739. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/__init__.py +0 -0
  740. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/media/__init__.py +0 -0
  741. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/media/test_listener.py +0 -0
  742. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/media/test_player.py +0 -0
  743. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/media/test_sources.py +0 -0
  744. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/media/test_synthesis.py +0 -0
  745. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/shapes/__init__.py +0 -0
  746. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/shapes/conftest.py +0 -0
  747. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
  748. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_atlas.py +0 -0
  749. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_clock.py +0 -0
  750. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_clock_freq.py +0 -0
  751. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_font.py +0 -0
  752. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_input.py +0 -0
  753. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_math.py +0 -0
  754. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_resource_path.py +0 -0
  755. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_sprite.py +0 -0
  756. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/test_text.py +0 -0
  757. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/text/__init__.py +0 -0
  758. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/text/test_caret.py +0 -0
  759. {pyglet-2.0.8 → pyglet-2.0.10}/tests/unit/text/test_layout.py +0 -0
  760. {pyglet-2.0.8 → pyglet-2.0.10}/tools/al_info.py +0 -0
  761. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/bokeh_timeline.py +0 -0
  762. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/compare.py +0 -0
  763. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/configure.py +0 -0
  764. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/extractors.py +0 -0
  765. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/fs.py +0 -0
  766. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/mp.py +0 -0
  767. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/mpexceptions.py +0 -0
  768. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/playmany.py +0 -0
  769. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
  770. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/readme_run_tests.txt +0 -0
  771. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/report.py +0 -0
  772. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/reports.py +0 -0
  773. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/retry_crashed.py +0 -0
  774. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/run_test_suite.py +0 -0
  775. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/summarize.py +0 -0
  776. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/test_instrumentation.py +0 -0
  777. {pyglet-2.0.8 → pyglet-2.0.10}/tools/ffmpeg/timeline.py +0 -0
  778. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gendist.sh +0 -0
  779. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gengl.py +0 -0
  780. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gengl_old.py +0 -0
  781. {pyglet-2.0.8 → pyglet-2.0.10}/tools/genwrappers.py +0 -0
  782. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gl.template +0 -0
  783. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gl.xml +0 -0
  784. {pyglet-2.0.8 → pyglet-2.0.10}/tools/gl_info.py +0 -0
  785. {pyglet-2.0.8 → pyglet-2.0.10}/tools/inspect_font.py +0 -0
  786. {pyglet-2.0.8 → pyglet-2.0.10}/tools/requirements.txt +0 -0
  787. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wgl.h +0 -0
  788. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/__init__.py +0 -0
  789. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/cparser.py +0 -0
  790. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/ctypesparser.py +0 -0
  791. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/lex.py +0 -0
  792. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/preprocessor.py +0 -0
  793. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/wrap.py +0 -0
  794. {pyglet-2.0.8 → pyglet-2.0.10}/tools/wraptypes/yacc.py +0 -0
  795. {pyglet-2.0.8 → pyglet-2.0.10}/website/LICENSE.txt +0 -0
  796. {pyglet-2.0.8 → pyglet-2.0.10}/website/README.rst +0 -0
  797. {pyglet-2.0.8 → pyglet-2.0.10}/website/assets/favicon.ico +0 -0
  798. {pyglet-2.0.8 → pyglet-2.0.10}/website/assets/static/css/example-custom-styles.css +0 -0
  799. {pyglet-2.0.8 → pyglet-2.0.10}/website/assets/static/images/pyglet.png +0 -0
  800. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/404.html/contents.lr +0 -0
  801. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/404.html/ngc-5793.jpg +0 -0
  802. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/authors/benjamin/contents.lr +0 -0
  803. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/authors/benjamin/pyglet.png +0 -0
  804. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/authors/contents.lr +0 -0
  805. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/blog/contents.lr +0 -0
  806. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/blog/welcome-blog/contents.lr +0 -0
  807. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/contents.lr +0 -0
  808. {pyglet-2.0.8 → pyglet-2.0.10}/website/content/eclipse.jpg +0 -0
  809. {pyglet-2.0.8 → pyglet-2.0.10}/website/pyglet.lektorproject +0 -0
  810. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/AUTHORS.txt +0 -0
  811. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/CHANGELOG.md +0 -0
  812. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
  813. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/LICENSE.txt +0 -0
  814. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/NOTICE.txt +0 -0
  815. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/README.md +0 -0
  816. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
  817. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
  818. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
  819. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
  820. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  821. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  822. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  823. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
  824. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
  825. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
  826. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
  827. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
  828. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
  829. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
  830. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
  831. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
  832. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
  833. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
  834. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
  835. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
  836. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
  837. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
  838. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
  839. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
  840. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
  841. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
  842. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
  843. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
  844. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
  845. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/blog-index.png +0 -0
  846. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/full-blog.png +0 -0
  847. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/full-page.png +0 -0
  848. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/gallery-404.png +0 -0
  849. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
  850. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
  851. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
  852. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/404.ini +0 -0
  853. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/author.ini +0 -0
  854. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/authors.ini +0 -0
  855. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/blog-post.ini +0 -0
  856. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/blog.ini +0 -0
  857. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/page.ini +0 -0
  858. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/models/single-layout.ini +0 -0
  859. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/404.html +0 -0
  860. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/author.html +0 -0
  861. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/authors.html +0 -0
  862. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
  863. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
  864. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
  865. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
  866. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
  867. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
  868. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blog-post.html +0 -0
  869. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/blog.html +0 -0
  870. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/layout.html +0 -0
  871. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
  872. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
  873. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/none.html +0 -0
  874. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/page.html +0 -0
  875. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/templates/single-layout.html +0 -0
  876. {pyglet-2.0.8 → pyglet-2.0.10}/website/themes/lektor-icon/theme.ini +0 -0
@@ -127,11 +127,175 @@ from pyglet import graphics
127
127
  from pyglet.gl import *
128
128
  from pyglet.event import EventDispatcher
129
129
  from pyglet.text import runlist
130
- from pyglet.graphics import shader
131
130
  from pyglet.font.base import grapheme_break
132
131
 
133
132
  _is_pyglet_doc_run = hasattr(sys, "is_pyglet_doc_run") and sys.is_pyglet_doc_run
134
133
 
134
+
135
+ layout_vertex_source = """#version 330 core
136
+ in vec3 position;
137
+ in vec4 colors;
138
+ in vec3 tex_coords;
139
+ in vec3 translation;
140
+ in vec2 anchor;
141
+ in float rotation;
142
+
143
+ out vec4 text_colors;
144
+ out vec2 texture_coords;
145
+ out vec4 vert_position;
146
+
147
+ uniform WindowBlock
148
+ {
149
+ mat4 projection;
150
+ mat4 view;
151
+ } window;
152
+
153
+ mat4 m_rotation = mat4(1.0);
154
+ mat4 m_anchor = mat4(1.0);
155
+ mat4 m_neganchor = mat4(1.0);
156
+
157
+ void main()
158
+ {
159
+ m_anchor[3][0] = anchor.x;
160
+ m_anchor[3][1] = anchor.y;
161
+ m_neganchor[3][0] = -anchor.x;
162
+ m_neganchor[3][1] = -anchor.y;
163
+ m_rotation[0][0] = cos(-radians(rotation));
164
+ m_rotation[0][1] = sin(-radians(rotation));
165
+ m_rotation[1][0] = -sin(-radians(rotation));
166
+ m_rotation[1][1] = cos(-radians(rotation));
167
+
168
+ gl_Position = window.projection * window.view * m_anchor * m_rotation * m_neganchor * vec4(position + translation, 1.0);
169
+
170
+ vert_position = vec4(position + translation, 1.0);
171
+ text_colors = colors;
172
+ texture_coords = tex_coords.xy;
173
+ }
174
+ """
175
+
176
+ layout_fragment_source = """#version 330 core
177
+ in vec4 text_colors;
178
+ in vec2 texture_coords;
179
+ in vec4 vert_position;
180
+
181
+ out vec4 final_colors;
182
+
183
+ uniform sampler2D text;
184
+ uniform bool scissor;
185
+ uniform vec4 scissor_area;
186
+
187
+ void main()
188
+ {
189
+ final_colors = vec4(text_colors.rgb, texture(text, texture_coords).a * text_colors.a);
190
+ if (scissor == true) {
191
+ if (vert_position.x < scissor_area[0]) discard; // left
192
+ if (vert_position.y < scissor_area[1]) discard; // bottom
193
+ if (vert_position.x > scissor_area[0] + scissor_area[2]) discard; // right
194
+ if (vert_position.y > scissor_area[1] + scissor_area[3]) discard; // top
195
+ }
196
+ }
197
+ """
198
+
199
+ layout_fragment_image_source = """#version 330 core
200
+ in vec4 text_colors;
201
+ in vec2 texture_coords;
202
+ in vec4 vert_position;
203
+
204
+ uniform sampler2D image_texture;
205
+
206
+ out vec4 final_colors;
207
+
208
+ uniform sampler2D text;
209
+ uniform bool scissor;
210
+ uniform vec4 scissor_area;
211
+
212
+ void main()
213
+ {
214
+ final_colors = texture(image_texture, texture_coords.xy);
215
+ if (scissor == true) {
216
+ if (vert_position.x < scissor_area[0]) discard; // left
217
+ if (vert_position.y < scissor_area[1]) discard; // bottom
218
+ if (vert_position.x > scissor_area[0] + scissor_area[2]) discard; // right
219
+ if (vert_position.y > scissor_area[1] + scissor_area[3]) discard; // top
220
+ }
221
+ }
222
+ """
223
+
224
+ decoration_vertex_source = """#version 330 core
225
+ in vec3 position;
226
+ in vec4 colors;
227
+ in vec3 translation;
228
+ in vec2 anchor;
229
+ in float rotation;
230
+
231
+ out vec4 vert_colors;
232
+ out vec4 vert_position;
233
+
234
+ uniform WindowBlock
235
+ {
236
+ mat4 projection;
237
+ mat4 view;
238
+ } window;
239
+
240
+ mat4 m_rotation = mat4(1.0);
241
+ mat4 m_anchor = mat4(1.0);
242
+ mat4 m_neganchor = mat4(1.0);
243
+
244
+ void main()
245
+ {
246
+ m_anchor[3][0] = anchor.x;
247
+ m_anchor[3][1] = anchor.y;
248
+ m_neganchor[3][0] = -anchor.x;
249
+ m_neganchor[3][1] = -anchor.y;
250
+ m_rotation[0][0] = cos(-radians(rotation));
251
+ m_rotation[0][1] = sin(-radians(rotation));
252
+ m_rotation[1][0] = -sin(-radians(rotation));
253
+ m_rotation[1][1] = cos(-radians(rotation));
254
+
255
+ gl_Position = window.projection * window.view * m_anchor * m_rotation * m_neganchor * vec4(position + translation, 1.0);
256
+
257
+ vert_position = vec4(position + translation, 1.0);
258
+ vert_colors = colors;
259
+ }
260
+ """
261
+
262
+ decoration_fragment_source = """#version 330 core
263
+ in vec4 vert_colors;
264
+ in vec4 vert_position;
265
+
266
+ out vec4 final_colors;
267
+
268
+ uniform bool scissor;
269
+ uniform vec4 scissor_area;
270
+
271
+ void main()
272
+ {
273
+ final_colors = vert_colors;
274
+ if (scissor == true) {
275
+ if (vert_position.x < scissor_area[0]) discard; // left
276
+ if (vert_position.y < scissor_area[1]) discard; // bottom
277
+ if (vert_position.x > scissor_area[0] + scissor_area[2]) discard; // right
278
+ if (vert_position.y > scissor_area[1] + scissor_area[3]) discard; // top
279
+ }
280
+ }
281
+ """
282
+
283
+
284
+ def get_default_layout_shader():
285
+ return pyglet.gl.current_context.create_program((layout_vertex_source, 'vertex'),
286
+ (layout_fragment_source, 'fragment'))
287
+
288
+
289
+ def get_default_image_layout_shader():
290
+ return pyglet.gl.current_context.create_program((layout_vertex_source, 'vertex'),
291
+ (layout_fragment_image_source, 'fragment'))
292
+
293
+
294
+ def get_default_decoration_shader():
295
+ return pyglet.gl.current_context.create_program((decoration_vertex_source, 'vertex'),
296
+ (decoration_fragment_source, 'fragment'))
297
+
298
+
135
299
  _distance_re = re.compile(r'([-0-9.]+)([a-zA-Z]+)')
136
300
 
137
301
 
@@ -376,18 +540,15 @@ class _GlyphBox(_AbstractBox):
376
540
  x1 = x2
377
541
 
378
542
  if background_vertices:
379
- background_indices = []
380
- bg_count = len(background_vertices) // 2
543
+ bg_count = len(background_vertices) // 3
544
+ background_indices = [(0, 1, 2, 0, 2, 3)[i % 6] for i in range(bg_count * 3)]
381
545
  decoration_program = get_default_decoration_shader()
382
- for bg_idx in range(bg_count):
383
- background_indices.extend([element + (bg_idx * 4) for element in [0, 1, 2, 0, 2, 3]])
384
-
385
- background_list = decoration_program.vertex_list_indexed(bg_count * 4, GL_TRIANGLES, background_indices,
546
+ background_list = decoration_program.vertex_list_indexed(bg_count, GL_TRIANGLES, background_indices,
386
547
  layout.batch, layout.background_decoration_group,
387
548
  position=('f', background_vertices),
388
549
  colors=('Bn', background_colors),
389
- rotation=('f', (rotation,) * 4),
390
- anchor=('f', (anchor_x, anchor_y) * 4))
550
+ rotation=('f', (rotation,) * bg_count),
551
+ anchor=('f', (anchor_x, anchor_y) * bg_count))
391
552
  context.add_list(background_list)
392
553
 
393
554
  if underline_vertices:
@@ -503,186 +664,7 @@ class _InvalidRange:
503
664
  return self.end > self.start
504
665
 
505
666
 
506
- layout_vertex_source = """#version 330 core
507
- in vec3 position;
508
- in vec4 colors;
509
- in vec3 tex_coords;
510
- in vec3 translation;
511
- in vec2 anchor;
512
- in float rotation;
513
-
514
- out vec4 text_colors;
515
- out vec2 texture_coords;
516
- out vec4 vert_position;
517
-
518
- uniform WindowBlock
519
- {
520
- mat4 projection;
521
- mat4 view;
522
- } window;
523
-
524
- mat4 m_rotation = mat4(1.0);
525
- mat4 m_anchor = mat4(1.0);
526
- mat4 m_neganchor = mat4(1.0);
527
-
528
- void main()
529
- {
530
- m_anchor[3][0] = anchor.x;
531
- m_anchor[3][1] = anchor.y;
532
- m_neganchor[3][0] = -anchor.x;
533
- m_neganchor[3][1] = -anchor.y;
534
- m_rotation[0][0] = cos(-radians(rotation));
535
- m_rotation[0][1] = sin(-radians(rotation));
536
- m_rotation[1][0] = -sin(-radians(rotation));
537
- m_rotation[1][1] = cos(-radians(rotation));
538
-
539
- gl_Position = window.projection * window.view * m_anchor * m_rotation * m_neganchor * vec4(position + translation, 1.0);
540
-
541
- vert_position = vec4(position + translation, 1.0);
542
- text_colors = colors;
543
- texture_coords = tex_coords.xy;
544
- }
545
- """
546
-
547
- layout_fragment_source = """#version 330 core
548
- in vec4 text_colors;
549
- in vec2 texture_coords;
550
- in vec4 vert_position;
551
-
552
- out vec4 final_colors;
553
-
554
- uniform sampler2D text;
555
- uniform bool scissor;
556
- uniform vec4 scissor_area;
557
-
558
- void main()
559
- {
560
- final_colors = vec4(text_colors.rgb, texture(text, texture_coords).a * text_colors.a);
561
- if (scissor == true) {
562
- if (vert_position.x < scissor_area[0]) discard; // left
563
- if (vert_position.y < scissor_area[1]) discard; // bottom
564
- if (vert_position.x > scissor_area[0] + scissor_area[2]) discard; // right
565
- if (vert_position.y > scissor_area[1] + scissor_area[3]) discard; // top
566
- }
567
- }
568
- """
569
-
570
- layout_fragment_image_source = """#version 330 core
571
- in vec4 text_colors;
572
- in vec2 texture_coords;
573
- in vec4 vert_position;
574
-
575
- uniform sampler2D image_texture;
576
-
577
- out vec4 final_colors;
578
-
579
- uniform sampler2D text;
580
- uniform bool scissor;
581
- uniform vec4 scissor_area;
582
-
583
- void main()
584
- {
585
- final_colors = texture(image_texture, texture_coords.xy);
586
- if (scissor == true) {
587
- if (vert_position.x < scissor_area[0]) discard; // left
588
- if (vert_position.y < scissor_area[1]) discard; // bottom
589
- if (vert_position.x > scissor_area[0] + scissor_area[2]) discard; // right
590
- if (vert_position.y > scissor_area[1] + scissor_area[3]) discard; // top
591
- }
592
- }
593
- """
594
-
595
- decoration_vertex_source = """#version 330 core
596
- in vec3 position;
597
- in vec4 colors;
598
- in vec3 translation;
599
- in vec2 anchor;
600
- in float rotation;
601
-
602
- out vec4 vert_colors;
603
- out vec4 vert_position;
604
-
605
- uniform WindowBlock
606
- {
607
- mat4 projection;
608
- mat4 view;
609
- } window;
610
-
611
- mat4 m_rotation = mat4(1.0);
612
- mat4 m_anchor = mat4(1.0);
613
- mat4 m_neganchor = mat4(1.0);
614
-
615
- void main()
616
- {
617
- m_anchor[3][0] = anchor.x;
618
- m_anchor[3][1] = anchor.y;
619
- m_neganchor[3][0] = -anchor.x;
620
- m_neganchor[3][1] = -anchor.y;
621
- m_rotation[0][0] = cos(-radians(rotation));
622
- m_rotation[0][1] = sin(-radians(rotation));
623
- m_rotation[1][0] = -sin(-radians(rotation));
624
- m_rotation[1][1] = cos(-radians(rotation));
625
-
626
- gl_Position = window.projection * window.view * m_anchor * m_rotation * m_neganchor * vec4(position + translation, 1.0);
627
-
628
- vert_position = vec4(position + translation, 1.0);
629
- vert_colors = colors;
630
- }
631
- """
632
-
633
- decoration_fragment_source = """#version 330 core
634
- in vec4 vert_colors;
635
- in vec4 vert_position;
636
-
637
- out vec4 final_colors;
638
-
639
- uniform bool scissor;
640
- uniform vec4 scissor_area;
641
-
642
- void main()
643
- {
644
- final_colors = vert_colors;
645
- if (scissor == true) {
646
- if (vert_position.x < scissor_area[0]) discard; // left
647
- if (vert_position.y < scissor_area[1]) discard; // bottom
648
- if (vert_position.x > scissor_area[0] + scissor_area[2]) discard; // right
649
- if (vert_position.y > scissor_area[1] + scissor_area[3]) discard; // top
650
- }
651
- }
652
- """
653
-
654
-
655
- def get_default_layout_shader():
656
- try:
657
- return pyglet.gl.current_context.pyglet_text_layout_shader
658
- except AttributeError:
659
- pyglet.gl.current_context.pyglet_text_layout_shader = shader.ShaderProgram(
660
- shader.Shader(layout_vertex_source, 'vertex'),
661
- shader.Shader(layout_fragment_source, 'fragment'),
662
- )
663
- return pyglet.gl.current_context.pyglet_text_layout_shader
664
-
665
-
666
- def get_default_image_layout_shader():
667
- try:
668
- return pyglet.gl.current_context.pyglet_text_layout_image_shader
669
- except AttributeError:
670
- pyglet.gl.current_context.pyglet_text_layout_image_shader = shader.ShaderProgram(
671
- shader.Shader(layout_vertex_source, 'vertex'),
672
- shader.Shader(layout_fragment_image_source, 'fragment'),
673
- )
674
- return pyglet.gl.current_context.pyglet_text_layout_image_shader
675
-
676
-
677
- def get_default_decoration_shader():
678
- try:
679
- return pyglet.gl.current_context.pyglet_text_decoration_shader
680
- except AttributeError:
681
- pyglet.gl.current_context.pyglet_text_decoration_shader = shader.ShaderProgram(
682
- shader.Shader(decoration_vertex_source, 'vertex'),
683
- shader.Shader(decoration_fragment_source, 'fragment'),
684
- )
685
- return pyglet.gl.current_context.pyglet_text_decoration_shader
667
+ # ####################
686
668
 
687
669
 
688
670
  class TextLayoutGroup(graphics.Group):
@@ -31,37 +31,6 @@ def asstr(s):
31
31
  return s.decode("utf-8")
32
32
 
33
33
 
34
- def with_metaclass(meta, *bases):
35
- """
36
- Function from jinja2/_compat.py. License: BSD.
37
- Use it like this::
38
- class BaseForm:
39
- pass
40
- class FormType(type):
41
- pass
42
- class Form(with_metaclass(FormType, BaseForm)):
43
- pass
44
- This requires a bit of explanation: the basic idea is to make a
45
- dummy metaclass for one level of class instantiation that replaces
46
- itself with the actual metaclass. Because of internal type checks
47
- we also need to make sure that we downgrade the custom metaclass
48
- for one level to something closer to type (that's why __call__ and
49
- __init__ comes back from type etc.).
50
- This has the advantage over six.with_metaclass of not introducing
51
- dummy classes into the final MRO.
52
- """
53
- class MetaClass(meta):
54
- __call__ = type.__call__
55
- __init__ = type.__init__
56
-
57
- def __new__(cls, name, this_bases, d):
58
- if this_bases is None:
59
- return type.__new__(cls, name, (), d)
60
- return meta(name, bases, d)
61
-
62
- return MetaClass('temporary_class', None, {})
63
-
64
-
65
34
  def debug_print(enabled_or_option='debug'):
66
35
  """Get a debug printer that is enabled based on a boolean input or a pyglet option.
67
36
  The debug print function returned should be used in an assert. This way it can be
@@ -114,8 +83,9 @@ class CodecRegistry:
114
83
  will be return if no encoders for that extension are available.
115
84
  """
116
85
  if filename:
117
- extension = os.path.splitext(filename)[1].lower()
118
- return self._encoder_extensions.get(extension, [])
86
+ root, ext = os.path.splitext(filename)
87
+ extension = ext if ext else root # If only ".ext" is provided
88
+ return self._encoder_extensions.get(extension.lower(), [])
119
89
  return self._encoders
120
90
 
121
91
  def get_decoders(self, filename=None):
@@ -124,8 +94,9 @@ class CodecRegistry:
124
94
  will be return if no encoders for that extension are available.
125
95
  """
126
96
  if filename:
127
- extension = os.path.splitext(filename)[1].lower()
128
- return self._decoder_extensions.get(extension, [])
97
+ root, ext = os.path.splitext(filename)
98
+ extension = ext if ext else root # If only ".ext" is provided
99
+ return self._decoder_extensions.get(extension.lower(), [])
129
100
  return self._decoders
130
101
 
131
102
  def add_decoders(self, module):
@@ -99,7 +99,6 @@ from pyglet import gl
99
99
  from pyglet.math import Mat4
100
100
  from pyglet.event import EventDispatcher
101
101
  from pyglet.window import key, event
102
- from pyglet.util import with_metaclass
103
102
  from pyglet.graphics import shader
104
103
 
105
104
 
@@ -256,7 +255,7 @@ class _WindowMetaclass(type):
256
255
  super(_WindowMetaclass, cls).__init__(name, bases, dict)
257
256
 
258
257
 
259
- class BaseWindow(with_metaclass(_WindowMetaclass, EventDispatcher)):
258
+ class BaseWindow(EventDispatcher, metaclass=_WindowMetaclass):
260
259
  """Platform-independent application window.
261
260
 
262
261
  A window is a "heavyweight" object occupying operating system resources.
@@ -274,9 +273,10 @@ class BaseWindow(with_metaclass(_WindowMetaclass, EventDispatcher)):
274
273
  conventions. This will ensure it is not obscured by other windows,
275
274
  and appears on an appropriate screen for the user.
276
275
 
277
- To render into a window, you must first call `switch_to`, to make
278
- it the current OpenGL context. If you use only one window in the
279
- application, there is no need to do this.
276
+ To render into a window, you must first call its :py:meth:`.switch_to`
277
+ method to make it the active OpenGL context. If you use only one
278
+ window in your application, you can skip this step as it will always
279
+ be the active context.
280
280
  """
281
281
 
282
282
  # Filled in by metaclass with the names of all methods on this (sub)class
@@ -639,7 +639,8 @@ class BaseWindow(with_metaclass(_WindowMetaclass, EventDispatcher)):
639
639
  """Clear the window.
640
640
 
641
641
  This is a convenience method for clearing the color and depth
642
- buffer. The window must be the active context (see `switch_to`).
642
+ buffer. The window must be the active context (see
643
+ :py:meth:`.switch_to`).
643
644
  """
644
645
  gl.glClear(gl.GL_COLOR_BUFFER_BIT | gl.GL_DEPTH_BUFFER_BIT)
645
646
 
@@ -647,10 +648,12 @@ class BaseWindow(with_metaclass(_WindowMetaclass, EventDispatcher)):
647
648
  """Close the window.
648
649
 
649
650
  After closing the window, the GL context will be invalid. The
650
- window instance cannot be reused once closed (see also `set_visible`).
651
+ window instance cannot be reused once closed. To re-use windows,
652
+ see :py:meth:`.set_visible` instead.
651
653
 
652
- The `pyglet.app.EventLoop.on_window_close` event is dispatched on
653
- `pyglet.app.event_loop` when this method is called.
654
+ The :py:meth:`pyglet.app.EventLoop.on_window_close` event is
655
+ dispatched by the :py:attr:`pyglet.app.event_loop` when this method
656
+ is called.
654
657
  """
655
658
  from pyglet import app
656
659
  if not self._context:
@@ -677,10 +680,25 @@ class BaseWindow(with_metaclass(_WindowMetaclass, EventDispatcher)):
677
680
  and advanced applications that must integrate their event loop
678
681
  into another framework.
679
682
 
680
- Typical applications should use `pyglet.app.run`.
683
+ Typical applications should use :py:func:`pyglet.app.run`.
681
684
  """
682
685
  raise NotImplementedError('abstract')
683
686
 
687
+ def draw(self, dt: float):
688
+ """Redraw the Window contents.
689
+
690
+ This method will first call the :py:meth:`~pyglet.window.Window.`switch_to`
691
+ method to make the GL context current. It then dispatches the
692
+ :py:meth:`~pyglet.window.Window.on_draw` and
693
+ :py:meth:`~pyglet.window.Window.on_refresh`
694
+ events. Finally, it calls the :py:meth:`~pyglet.window.Window.flip`
695
+ method to swap the front and back OpenGL buffers.
696
+ """
697
+ self.switch_to()
698
+ self.dispatch_event('on_draw')
699
+ self.dispatch_event('on_refresh', dt)
700
+ self.flip()
701
+
684
702
  def draw_mouse_cursor(self):
685
703
  """Draw the custom mouse cursor.
686
704
 
@@ -701,11 +719,14 @@ class BaseWindow(with_metaclass(_WindowMetaclass, EventDispatcher)):
701
719
  """Swap the OpenGL front and back buffers.
702
720
 
703
721
  Call this method on a double-buffered window to update the
704
- visible display with the back buffer. The contents of the back buffer
705
- is undefined after this operation.
722
+ visible display with the back buffer. Windows are
723
+ double-buffered by default unless you turn this feature off.
724
+
725
+ The contents of the back buffer are undefined after this operation.
706
726
 
707
- Windows are double-buffered by default. This method is called
708
- automatically by `EventLoop` after the :py:meth:`~pyglet.window.Window.on_draw` event.
727
+ The default :py:attr:`~pyglet.app.event_loop` automatically
728
+ calls this method after the window's
729
+ :py:meth:`~pyglet.window.Window.on_draw` event.
709
730
  """
710
731
  raise NotImplementedError('abstract')
711
732
 
@@ -777,6 +798,25 @@ class BaseWindow(with_metaclass(_WindowMetaclass, EventDispatcher)):
777
798
  """
778
799
  raise NotImplementedError()
779
800
 
801
+ def get_clipboard_text(self) -> str:
802
+ """Access the system clipboard and attempt to retrieve text.
803
+
804
+ :rtype: `str`
805
+ :return: A string from the clipboard. String will be empty if no text found.
806
+ """
807
+ raise NotImplementedError()
808
+
809
+ def set_clipboard_text(self, text: str):
810
+ """Access the system clipboard and set a text string as the clipboard data.
811
+
812
+ This will clear the existing clipboard.
813
+
814
+ :Parameters:
815
+ `text` : str
816
+ Text you want to place in the clipboard.
817
+ """
818
+ raise NotImplementedError()
819
+
780
820
  def minimize(self):
781
821
  """Minimize the window.
782
822
  """
@@ -1144,10 +1184,13 @@ class BaseWindow(with_metaclass(_WindowMetaclass, EventDispatcher)):
1144
1184
  def switch_to(self):
1145
1185
  """Make this window the current OpenGL rendering context.
1146
1186
 
1147
- Only one OpenGL context can be active at a time. This method sets
1148
- the current window's context to be current. You should use this
1149
- method in preference to `pyglet.gl.Context.set_current`, as it may
1150
- perform additional initialisation functions.
1187
+ Only one OpenGL context can be active at a time. This method
1188
+ sets the current window context as the active one.
1189
+
1190
+ In most cases, you should use this method instead of directly
1191
+ calling :py:meth:`pyglet.gl.Context.set_current`. The latter
1192
+ will not perform platform-specific state management tasks for
1193
+ you.
1151
1194
  """
1152
1195
  raise NotImplementedError('abstract')
1153
1196
 
@@ -1411,15 +1454,13 @@ class BaseWindow(with_metaclass(_WindowMetaclass, EventDispatcher)):
1411
1454
  """
1412
1455
 
1413
1456
  def on_draw(self):
1414
- """The window contents must be redrawn.
1457
+ """The window contents should be redrawn.
1415
1458
 
1416
- The `EventLoop` will dispatch this event when the window
1417
- should be redrawn. This will happen during idle time after
1418
- any window events and after any scheduled functions were called.
1419
-
1420
- The window will already have the GL context, so there is no
1421
- need to call `switch_to`. The window's `flip` method will
1422
- be called after this event, so your event handler should not.
1459
+ The `EventLoop` will dispatch this event when the `draw`
1460
+ method has been called. The window will already have the
1461
+ GL context, so there is no need to call `switch_to`. The window's
1462
+ `flip` method will be called immediately after this event,
1463
+ so your event handler should not.
1423
1464
 
1424
1465
  You should make no assumptions about the window contents when
1425
1466
  this event is triggered; a resize or expose event may have
@@ -1601,11 +1642,11 @@ class BaseWindow(with_metaclass(_WindowMetaclass, EventDispatcher)):
1601
1642
  """
1602
1643
 
1603
1644
  def on_mouse_leave(self, x, y):
1604
- """The mouse was moved outside of the window.
1645
+ """The mouse was moved outside the window.
1605
1646
 
1606
1647
  This event will not be triggered if the mouse is currently being
1607
1648
  dragged. Note that the coordinates of the mouse pointer will be
1608
- outside of the window rectangle.
1649
+ outside the window rectangle.
1609
1650
 
1610
1651
  :Parameters:
1611
1652
  `x` : int
@@ -1632,14 +1673,13 @@ class BaseWindow(with_metaclass(_WindowMetaclass, EventDispatcher)):
1632
1673
  """
1633
1674
 
1634
1675
  def on_refresh(self, dt):
1635
- """The window contents must be redrawn.
1636
-
1637
- The `EventLoop` will dispatch this event when the window
1638
- should be redrawn.
1676
+ """The window contents should be redrawn.
1639
1677
 
1640
- The window will already have the GL context, so there is no
1641
- need to call `switch_to`. The window's `flip` method will
1642
- be called after this event, so your event handler should not.
1678
+ The `EventLoop` will dispatch this event when the `draw`
1679
+ method has been called. The window will already have the
1680
+ GL context, so there is no need to call `switch_to`. The window's
1681
+ `flip` method will be called immediately after this event, so your
1682
+ event handler should not.
1643
1683
 
1644
1684
  You should make no assumptions about the window contents when
1645
1685
  this event is triggered; a resize or expose event may have
@@ -21,6 +21,7 @@ NSColor = cocoapy.ObjCClass('NSColor')
21
21
  NSEvent = cocoapy.ObjCClass('NSEvent')
22
22
  NSArray = cocoapy.ObjCClass('NSArray')
23
23
  NSImage = cocoapy.ObjCClass('NSImage')
24
+ NSPasteboard = cocoapy.ObjCClass('NSPasteboard')
24
25
 
25
26
  quartz = cocoapy.quartz
26
27
  cf = cocoapy.cf
@@ -567,5 +568,32 @@ class CocoaWindow(BaseWindow):
567
568
  NSApp = NSApplication.sharedApplication()
568
569
  NSApp.setPresentationOptions_(options)
569
570
 
571
+ def set_clipboard_text(self, text: str):
572
+ with AutoReleasePool():
573
+ pasteboard = NSPasteboard.generalPasteboard()
574
+
575
+ pasteboard.clearContents()
576
+
577
+ array = NSArray.arrayWithObject_(cocoapy.NSPasteboardTypeString)
578
+ pasteboard.declareTypes_owner_(array, None)
579
+
580
+ text_nsstring = cocoapy.get_NSString(text)
581
+
582
+ pasteboard.setString_forType_(text_nsstring, cocoapy.NSPasteboardTypeString)
583
+
584
+ def get_clipboard_text(self) -> str:
585
+ text = ''
586
+ with AutoReleasePool():
587
+ pasteboard = NSPasteboard.generalPasteboard()
588
+
589
+ if pasteboard.types().containsObject_(cocoapy.NSPasteboardTypeString):
590
+ text_obj = pasteboard.stringForType_(cocoapy.NSPasteboardTypeString)
591
+ if text_obj:
592
+ text = text_obj.UTF8String().decode('utf-8')
593
+
594
+ return text
595
+
596
+
597
+
570
598
 
571
599
  __all__ = ["CocoaWindow"]