pyglet 2.1.dev7__tar.gz → 2.1rc2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (811) hide show
  1. {pyglet-2.1.dev7 → pyglet-2.1rc2}/PKG-INFO +1 -1
  2. {pyglet-2.1.dev7 → pyglet-2.1rc2}/RELEASE_NOTES +20 -0
  3. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/index.rst +3 -2
  4. pyglet-2.1rc2/doc/modules/models.rst +6 -0
  5. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/media.rst +10 -4
  6. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/migration.rst +22 -8
  7. pyglet-2.1rc2/doc/programming_guide/models.rst +10 -0
  8. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/dpi_scaled_window.py +15 -0
  9. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/model/fpscamera.py +5 -6
  10. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/model/model.py +4 -2
  11. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/__init__.py +9 -2
  12. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/__init__.pyi +0 -1
  13. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/experimental/jobs.py +11 -9
  14. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/font/__init__.py +9 -9
  15. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/font/directwrite.py +21 -24
  16. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/font/fontconfig.py +68 -20
  17. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/font/freetype.py +13 -9
  18. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/font/quartz.py +8 -2
  19. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/font/user.py +12 -11
  20. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/font/win32.py +6 -2
  21. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/base.py +8 -8
  22. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/headless.py +4 -2
  23. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/graphics/shader.py +1 -2
  24. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/graphics/vertexbuffer.py +16 -14
  25. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/graphics/vertexdomain.py +6 -2
  26. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/base.py +10 -15
  27. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/controller_db.py +10 -6
  28. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/ffmpeg.py +232 -123
  29. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/ffmpeg_lib/compat.py +1 -0
  30. pyglet-2.1rc2/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +630 -0
  31. pyglet-2.1rc2/pyglet/media/codecs/ffmpeg_lib/libavformat.py +467 -0
  32. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/ffmpeg_lib/libavutil.py +81 -25
  33. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/ffmpeg_lib/libswresample.py +24 -10
  34. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/ffmpeg_lib/libswscale.py +2 -2
  35. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/model/__init__.py +60 -103
  36. pyglet-2.1rc2/pyglet/model/codecs/__init__.py +58 -0
  37. pyglet-2.1rc2/pyglet/model/codecs/base.py +140 -0
  38. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/model/codecs/gltf.py +115 -70
  39. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/model/codecs/obj.py +52 -43
  40. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/resource.py +5 -12
  41. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/__init__.py +30 -10
  42. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/document.py +24 -24
  43. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/formats/attributed.py +1 -1
  44. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/formats/html.py +7 -7
  45. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/layout/__init__.py +2 -2
  46. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/layout/incremental.py +1 -1
  47. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/runlist.py +1 -1
  48. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/__init__.py +4 -4
  49. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/cocoa/__init__.py +5 -5
  50. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/cocoa/pyglet_textview.py +6 -2
  51. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/win32/__init__.py +3 -3
  52. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/xlib/__init__.py +33 -14
  53. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/model/test_loading.py +9 -9
  54. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/text/test_empty_document.py +3 -3
  55. pyglet-2.1.dev7/pyglet/media/codecs/ffmpeg_lib/libavcodec.py +0 -437
  56. pyglet-2.1.dev7/pyglet/media/codecs/ffmpeg_lib/libavformat.py +0 -317
  57. pyglet-2.1.dev7/pyglet/model/codecs/__init__.py +0 -63
  58. pyglet-2.1.dev7/pyglet/model/codecs/base.py +0 -104
  59. {pyglet-2.1.dev7 → pyglet-2.1rc2}/.coveragerc +0 -0
  60. {pyglet-2.1.dev7 → pyglet-2.1rc2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  61. {pyglet-2.1.dev7 → pyglet-2.1rc2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  62. {pyglet-2.1.dev7 → pyglet-2.1rc2}/.github/ISSUE_TEMPLATE/questions--or-other.md +0 -0
  63. {pyglet-2.1.dev7 → pyglet-2.1rc2}/.github/workflows/codeql.yml +0 -0
  64. {pyglet-2.1.dev7 → pyglet-2.1rc2}/.github/workflows/unittests.yml +0 -0
  65. {pyglet-2.1.dev7 → pyglet-2.1rc2}/.gitignore +0 -0
  66. {pyglet-2.1.dev7 → pyglet-2.1rc2}/.readthedocs.yml +0 -0
  67. {pyglet-2.1.dev7 → pyglet-2.1rc2}/LICENSE +0 -0
  68. {pyglet-2.1.dev7 → pyglet-2.1rc2}/MANIFEST.in +0 -0
  69. {pyglet-2.1.dev7 → pyglet-2.1rc2}/README.md +0 -0
  70. {pyglet-2.1.dev7 → pyglet-2.1rc2}/contrib/aseprite_codec/README +0 -0
  71. {pyglet-2.1.dev7 → pyglet-2.1rc2}/contrib/aseprite_codec/asedemo.py +0 -0
  72. {pyglet-2.1.dev7 → pyglet-2.1rc2}/contrib/aseprite_codec/aseprite.py +0 -0
  73. {pyglet-2.1.dev7 → pyglet-2.1rc2}/contrib/aseprite_codec/running.ase +0 -0
  74. {pyglet-2.1.dev7 → pyglet-2.1rc2}/contrib/logo3d/logo3d.jpg +0 -0
  75. {pyglet-2.1.dev7 → pyglet-2.1rc2}/contrib/logo3d/logo3d.obj.zip +0 -0
  76. {pyglet-2.1.dev7 → pyglet-2.1rc2}/contrib/logo3d/logo3d.wings +0 -0
  77. {pyglet-2.1.dev7 → pyglet-2.1rc2}/contrib/qt_sprite_preview.py +0 -0
  78. {pyglet-2.1.dev7 → pyglet-2.1rc2}/contrib/scenemanager.py +0 -0
  79. {pyglet-2.1.dev7 → pyglet-2.1rc2}/contrib/toys/follow_mouse.py +0 -0
  80. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/Makefile +0 -0
  81. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/_static/css/custom.css +0 -0
  82. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/_static/favicon.ico +0 -0
  83. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/_static/logo.png +0 -0
  84. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/_static/logo5.svg +0 -0
  85. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/_static/relatedlogo.png +0 -0
  86. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/conf.py +0 -0
  87. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/external_resources.rst +0 -0
  88. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/internal/contributing.rst +0 -0
  89. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/internal/dist.rst +0 -0
  90. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/internal/doc.rst +0 -0
  91. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/internal/generated.rst +0 -0
  92. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/internal/gl.rst +0 -0
  93. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/internal/media_logging_manual.rst +0 -0
  94. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/internal/media_manual.rst +0 -0
  95. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/internal/testing.rst +0 -0
  96. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/internal/virtualenv.rst +0 -0
  97. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/internal/wraptypes-class.svg +0 -0
  98. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/internal/wraptypes.rst +0 -0
  99. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/make.bat +0 -0
  100. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/app.rst +0 -0
  101. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/clock.rst +0 -0
  102. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/customtypes.rst +0 -0
  103. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/display.rst +0 -0
  104. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/event.rst +0 -0
  105. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/font.rst +0 -0
  106. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/gl.rst +0 -0
  107. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/graphics/allocation.rst +0 -0
  108. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/graphics/index.rst +0 -0
  109. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/graphics/shader.rst +0 -0
  110. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/graphics/vertexbuffer.rst +0 -0
  111. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/graphics/vertexdomain.rst +0 -0
  112. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/gui.rst +0 -0
  113. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/image/animation.rst +0 -0
  114. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/image/atlas.rst +0 -0
  115. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/image/buffer.rst +0 -0
  116. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/image/index.rst +0 -0
  117. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/info.rst +0 -0
  118. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/input.rst +0 -0
  119. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/math.rst +0 -0
  120. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/media.rst +0 -0
  121. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/media_synthesis.rst +0 -0
  122. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/pyglet.rst +0 -0
  123. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/resource.rst +0 -0
  124. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/shapes.rst +0 -0
  125. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/sprite.rst +0 -0
  126. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/text/caret.rst +0 -0
  127. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/text/document.rst +0 -0
  128. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/text/index.rst +0 -0
  129. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/text/layout.rst +0 -0
  130. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/window.rst +0 -0
  131. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/window_key.rst +0 -0
  132. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/modules/window_mouse.rst +0 -0
  133. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/context.rst +0 -0
  134. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/debug.rst +0 -0
  135. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/eventloop.rst +0 -0
  136. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/events.rst +0 -0
  137. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/examplegame.rst +0 -0
  138. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/gl.rst +0 -0
  139. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/gui.rst +0 -0
  140. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/image.rst +0 -0
  141. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/abstract_image.png +0 -0
  142. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/abstract_image.svg +0 -0
  143. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/buffer_image.png +0 -0
  144. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/buffer_image.svg +0 -0
  145. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/context_flow.png +0 -0
  146. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/context_flow.svg +0 -0
  147. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_mac_crosshair.png +0 -0
  148. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_mac_default.png +0 -0
  149. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_mac_hand.png +0 -0
  150. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_mac_no.png +0 -0
  151. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_mac_size_down.png +0 -0
  152. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_mac_size_left.png +0 -0
  153. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_mac_size_left_right.png +0 -0
  154. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_mac_size_right.png +0 -0
  155. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_mac_size_up.png +0 -0
  156. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_mac_size_up_down.png +0 -0
  157. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_mac_text.png +0 -0
  158. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_mac_wait.png +0 -0
  159. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_crosshair.png +0 -0
  160. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_default.png +0 -0
  161. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_hand.png +0 -0
  162. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_help.png +0 -0
  163. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_no.png +0 -0
  164. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_size.png +0 -0
  165. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_size_left_right.png +0 -0
  166. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_size_nesw.png +0 -0
  167. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_size_nwse.png +0 -0
  168. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_size_up_down.png +0 -0
  169. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_text.png +0 -0
  170. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_wait.png +0 -0
  171. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/cursor_win_wait_arrow.png +0 -0
  172. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/explosion.png +0 -0
  173. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/font_metrics.png +0 -0
  174. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/font_metrics.svg +0 -0
  175. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/image_classes.png +0 -0
  176. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/image_classes.svg +0 -0
  177. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/image_grid.png +0 -0
  178. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/image_grid.svg +0 -0
  179. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/image_sequence.png +0 -0
  180. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/image_sequence.svg +0 -0
  181. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/mouse_coordinates.png +0 -0
  182. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/mouse_coordinates.svg +0 -0
  183. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/screens.png +0 -0
  184. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/screens.svg +0 -0
  185. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/text_classes.png +0 -0
  186. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/text_classes.svg +0 -0
  187. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/window_location.png +0 -0
  188. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/window_location.svg +0 -0
  189. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/window_osx_borderless.png +0 -0
  190. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/window_osx_default.png +0 -0
  191. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/window_osx_dialog.png +0 -0
  192. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/window_osx_tool.png +0 -0
  193. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/window_xp_default.png +0 -0
  194. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/window_xp_dialog.png +0 -0
  195. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/window_xp_overlay.png +0 -0
  196. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/window_xp_tool.png +0 -0
  197. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/img/window_xp_transparent.png +0 -0
  198. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/input.rst +0 -0
  199. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/installation.rst +0 -0
  200. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/keyboard.rst +0 -0
  201. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/math.rst +0 -0
  202. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/mouse.rst +0 -0
  203. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/opengles.rst +0 -0
  204. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/options.rst +0 -0
  205. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/quickstart.rst +0 -0
  206. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/rendering.rst +0 -0
  207. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/resources.rst +0 -0
  208. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/shapes.rst +0 -0
  209. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/text.rst +0 -0
  210. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/time.rst +0 -0
  211. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/programming_guide/windowing.rst +0 -0
  212. {pyglet-2.1.dev7 → pyglet-2.1rc2}/doc/requirements.txt +0 -0
  213. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/clipboard.py +0 -0
  214. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/events/events_key_state_handler.py +0 -0
  215. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/events/register_event_type.py +0 -0
  216. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/events/window_events.py +0 -0
  217. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/events/window_platform_event.py +0 -0
  218. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/file_dialog.py +0 -0
  219. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/resources/asteroid.png +0 -0
  220. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/resources/bullet.png +0 -0
  221. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/resources/bullet.wav +0 -0
  222. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/resources/engine_flame.png +0 -0
  223. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/resources/player.png +0 -0
  224. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version1/asteroid.py +0 -0
  225. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version1/game/__init__.py +0 -0
  226. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version1/game/load.py +0 -0
  227. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version1/game/resources.py +0 -0
  228. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version2/asteroid.py +0 -0
  229. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version2/game/__init__.py +0 -0
  230. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version2/game/load.py +0 -0
  231. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version2/game/physicalobject.py +0 -0
  232. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version2/game/player.py +0 -0
  233. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version2/game/resources.py +0 -0
  234. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version3/asteroid.py +0 -0
  235. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version3/game/__init__.py +0 -0
  236. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version3/game/load.py +0 -0
  237. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version3/game/physicalobject.py +0 -0
  238. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version3/game/player.py +0 -0
  239. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version3/game/resources.py +0 -0
  240. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version3/game/util.py +0 -0
  241. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version4/asteroid.py +0 -0
  242. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version4/game/__init__.py +0 -0
  243. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version4/game/asteroid.py +0 -0
  244. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version4/game/bullet.py +0 -0
  245. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version4/game/load.py +0 -0
  246. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version4/game/physicalobject.py +0 -0
  247. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version4/game/player.py +0 -0
  248. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version4/game/resources.py +0 -0
  249. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version4/game/util.py +0 -0
  250. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version5/asteroid.py +0 -0
  251. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version5/game/__init__.py +0 -0
  252. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version5/game/asteroid.py +0 -0
  253. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version5/game/bullet.py +0 -0
  254. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version5/game/load.py +0 -0
  255. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version5/game/physicalobject.py +0 -0
  256. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version5/game/player.py +0 -0
  257. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version5/game/resources.py +0 -0
  258. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/game/version5/game/util.py +0 -0
  259. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/graphics/image_convert.py +0 -0
  260. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/graphics/image_display.py +0 -0
  261. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/gui/bar.png +0 -0
  262. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/gui/button_hover.png +0 -0
  263. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/gui/button_pressed.png +0 -0
  264. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/gui/button_unpressed.png +0 -0
  265. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/gui/knob.png +0 -0
  266. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/gui/widgets.py +0 -0
  267. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/hello_world.py +0 -0
  268. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/input/apple_remote.py +0 -0
  269. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/input/controller.py +0 -0
  270. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/input/input.py +0 -0
  271. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/input/joystick.py +0 -0
  272. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/input/tablet.py +0 -0
  273. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/media_info.py +0 -0
  274. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/media_player.py +0 -0
  275. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/noisy/README +0 -0
  276. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/noisy/ball.png +0 -0
  277. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/noisy/ball.wav +0 -0
  278. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/noisy/noisy.py +0 -0
  279. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/soundspace/README +0 -0
  280. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/soundspace/reader.py +0 -0
  281. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/soundspace/res/bass.wav +0 -0
  282. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/soundspace/res/drums.wav +0 -0
  283. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/soundspace/res/guitar.wav +0 -0
  284. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/soundspace/res/piano.wav +0 -0
  285. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/soundspace/res/space.txt +0 -0
  286. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/soundspace/soundspace.py +0 -0
  287. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/synthesizer.py +0 -0
  288. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/media/video.py +0 -0
  289. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/model/box.mtl +0 -0
  290. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/model/box.obj +0 -0
  291. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/model/logo3d.mtl +0 -0
  292. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/model/logo3d.obj +0 -0
  293. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/model/pyglet.png +0 -0
  294. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/opengl/compute_shader.py +0 -0
  295. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/opengl/egl_context.py +0 -0
  296. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/opengl/minimal_shader.py +0 -0
  297. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/opengl/opengl_context.py +0 -0
  298. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/opengl/opengl_core.py +0 -0
  299. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/opengl/opengl_scissor.py +0 -0
  300. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/opengl/pyglet.png +0 -0
  301. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/opengl/torus.py +0 -0
  302. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/programming_guide/animation.py +0 -0
  303. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/programming_guide/dinosaur.gif +0 -0
  304. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/programming_guide/events.py +0 -0
  305. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/programming_guide/hello_world.py +0 -0
  306. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/programming_guide/image_viewer.py +0 -0
  307. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/programming_guide/kitten.jpg +0 -0
  308. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/programming_guide/window_subclass.py +0 -0
  309. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/resources/Brick1Blue.png +0 -0
  310. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/resources/Brick1Crack3.png +0 -0
  311. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/resources/Brick1Gray.png +0 -0
  312. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/resources/kitten.jpg +0 -0
  313. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/resources/pyglet.png +0 -0
  314. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/shapes.py +0 -0
  315. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/sprite/depth_sprite.py +0 -0
  316. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/sprite/display_sprite.py +0 -0
  317. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/sprite/multi_texture_sprite.py +0 -0
  318. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/sprite/sprite_batching.py +0 -0
  319. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/text/advanced_font.py +0 -0
  320. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/text/html_label.py +0 -0
  321. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/text/pyglet.png +0 -0
  322. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/text/text_input.py +0 -0
  323. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/timer.py +0 -0
  324. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/window/camera.py +0 -0
  325. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/window/camera_group.py +0 -0
  326. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/window/fixed_resolution.py +0 -0
  327. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/window/fps_change.py +0 -0
  328. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/window/multiple_windows.py +0 -0
  329. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/window/overlay_window.py +0 -0
  330. {pyglet-2.1.dev7 → pyglet-2.1rc2}/examples/window/transparent_window.py +0 -0
  331. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/dist_field/README +0 -0
  332. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/dist_field/genfield.py +0 -0
  333. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/dist_field/py.df.png +0 -0
  334. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/dist_field/py.png +0 -0
  335. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/dist_field/renderfield.py +0 -0
  336. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/flaccodec.py +0 -0
  337. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/hello_world.svg +0 -0
  338. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/instancing/sprite_instance.py +0 -0
  339. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/instancing/sprite_instance_object.py +0 -0
  340. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/multitexture_sprite/multitexturesprite.py +0 -0
  341. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/spritebenchmark.py +0 -0
  342. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/svg_test.py +0 -0
  343. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/wayland/gbm_egl_context.py +0 -0
  344. {pyglet-2.1.dev7 → pyglet-2.1rc2}/experimental/win32priority.py +0 -0
  345. {pyglet-2.1.dev7 → pyglet-2.1rc2}/make.py +0 -0
  346. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/app/__init__.py +0 -0
  347. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/app/base.py +0 -0
  348. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/app/cocoa.py +0 -0
  349. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/app/win32.py +0 -0
  350. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/app/xlib.py +0 -0
  351. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/clock.py +0 -0
  352. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/customtypes.py +0 -0
  353. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/display/__init__.py +0 -0
  354. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/display/__init__.pyi +0 -0
  355. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/display/base.py +0 -0
  356. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/display/cocoa.py +0 -0
  357. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/display/headless.py +0 -0
  358. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/display/win32.py +0 -0
  359. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/display/xlib.py +0 -0
  360. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/display/xlib_vidmoderestore.py +0 -0
  361. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/event.py +0 -0
  362. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/experimental/README.md +0 -0
  363. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/experimental/geoshader_sprite.py +0 -0
  364. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/experimental/hidraw.py +0 -0
  365. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/experimental/multitexture_sprite.py +0 -0
  366. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/experimental/net.py +0 -0
  367. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/experimental/particles.py +0 -0
  368. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/extlibs/__init__.py +0 -0
  369. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/extlibs/earcut.py +0 -0
  370. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/extlibs/png.py +0 -0
  371. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/font/base.py +0 -0
  372. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/font/freetype_lib.py +0 -0
  373. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/font/ttf.py +0 -0
  374. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/__init__.py +0 -0
  375. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/agl.py +0 -0
  376. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/cocoa.py +0 -0
  377. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/gl.py +0 -0
  378. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/gl_compat.py +0 -0
  379. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/gl_info.py +0 -0
  380. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/glx.py +0 -0
  381. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/glx_info.py +0 -0
  382. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/glxext_arb.py +0 -0
  383. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/glxext_mesa.py +0 -0
  384. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/glxext_nv.py +0 -0
  385. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/lib.py +0 -0
  386. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/lib_agl.py +0 -0
  387. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/lib_glx.py +0 -0
  388. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/lib_wgl.py +0 -0
  389. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/wgl.py +0 -0
  390. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/wgl_info.py +0 -0
  391. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/wglext_arb.py +0 -0
  392. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/wglext_nv.py +0 -0
  393. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/win32.py +0 -0
  394. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gl/xlib.py +0 -0
  395. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/graphics/__init__.py +0 -0
  396. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/graphics/allocation.py +0 -0
  397. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/graphics/instance.py +0 -0
  398. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/graphics/vertexarray.py +0 -0
  399. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gui/__init__.py +0 -0
  400. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gui/frame.py +0 -0
  401. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gui/ninepatch.py +0 -0
  402. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/gui/widgets.py +0 -0
  403. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/__init__.py +0 -0
  404. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/animation.py +0 -0
  405. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/atlas.py +0 -0
  406. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/buffer.py +0 -0
  407. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/codecs/__init__.py +0 -0
  408. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/codecs/bmp.py +0 -0
  409. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/codecs/dds.py +0 -0
  410. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/codecs/gdiplus.py +0 -0
  411. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/codecs/gdkpixbuf2.py +0 -0
  412. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/codecs/gif.py +0 -0
  413. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/codecs/pil.py +0 -0
  414. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/codecs/png.py +0 -0
  415. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/codecs/quartz.py +0 -0
  416. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/codecs/s3tc.py +0 -0
  417. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/image/codecs/wic.py +0 -0
  418. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/info.py +0 -0
  419. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/__init__.py +0 -0
  420. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/controller.py +0 -0
  421. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/linux/__init__.py +0 -0
  422. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/linux/evdev.py +0 -0
  423. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/linux/evdev_constants.py +0 -0
  424. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/linux/x11_xinput.py +0 -0
  425. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/linux/x11_xinput_tablet.py +0 -0
  426. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/macos/__init__.py +0 -0
  427. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/macos/darwin_hid.py +0 -0
  428. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/win32/__init__.py +0 -0
  429. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/win32/directinput.py +0 -0
  430. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/win32/wintab.py +0 -0
  431. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/input/win32/xinput.py +0 -0
  432. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/lib.py +0 -0
  433. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/__init__.py +0 -0
  434. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/darwin/__init__.py +0 -0
  435. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/darwin/cocoapy/__init__.py +0 -0
  436. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/darwin/cocoapy/cocoalibs.py +0 -0
  437. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/darwin/cocoapy/cocoatypes.py +0 -0
  438. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/darwin/cocoapy/runtime.py +0 -0
  439. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/darwin/coreaudio.py +0 -0
  440. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/darwin/quartzkey.py +0 -0
  441. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/egl/__init__.py +0 -0
  442. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/egl/egl.py +0 -0
  443. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/egl/eglext.py +0 -0
  444. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/egl/lib.py +0 -0
  445. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/ioctl.py +0 -0
  446. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/wayland/__init__.py +0 -0
  447. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/wayland/gbm.py +0 -0
  448. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/wayland/xkbcommon.py +0 -0
  449. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/win32/__init__.py +0 -0
  450. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/win32/com.py +0 -0
  451. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/win32/constants.py +0 -0
  452. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/win32/context_managers.py +0 -0
  453. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/win32/dinput.py +0 -0
  454. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/win32/libwintab.py +0 -0
  455. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/win32/types.py +0 -0
  456. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/win32/winkey.py +0 -0
  457. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/x11/__init__.py +0 -0
  458. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/x11/cursorfont.py +0 -0
  459. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/x11/xf86vmode.py +0 -0
  460. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/x11/xinerama.py +0 -0
  461. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/x11/xinput.py +0 -0
  462. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/x11/xlib.py +0 -0
  463. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/libs/x11/xsync.py +0 -0
  464. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/math.py +0 -0
  465. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/__init__.py +0 -0
  466. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/buffered_logger.py +0 -0
  467. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/__init__.py +0 -0
  468. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/base.py +0 -0
  469. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/coreaudio.py +0 -0
  470. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/ffmpeg_lib/__init__.py +0 -0
  471. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/gstreamer.py +0 -0
  472. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/pyogg.py +0 -0
  473. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/wave.py +0 -0
  474. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/codecs/wmf.py +0 -0
  475. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/devices/__init__.py +0 -0
  476. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/devices/base.py +0 -0
  477. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/devices/win32.py +0 -0
  478. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/__init__.py +0 -0
  479. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/base.py +0 -0
  480. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/directsound/__init__.py +0 -0
  481. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/directsound/adaptation.py +0 -0
  482. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/directsound/exceptions.py +0 -0
  483. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/directsound/interface.py +0 -0
  484. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/directsound/lib_dsound.py +0 -0
  485. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/listener.py +0 -0
  486. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/openal/__init__.py +0 -0
  487. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/openal/adaptation.py +0 -0
  488. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/openal/interface.py +0 -0
  489. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/openal/lib_alc.py +0 -0
  490. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/openal/lib_openal.py +0 -0
  491. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/pulse/__init__.py +0 -0
  492. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/pulse/adaptation.py +0 -0
  493. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/pulse/interface.py +0 -0
  494. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/pulse/lib_pulseaudio.py +0 -0
  495. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/silent/__init__.py +0 -0
  496. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/silent/adaptation.py +0 -0
  497. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/xaudio2/__init__.py +0 -0
  498. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/xaudio2/adaptation.py +0 -0
  499. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/xaudio2/interface.py +0 -0
  500. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/drivers/xaudio2/lib_xaudio2.py +0 -0
  501. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/exceptions.py +0 -0
  502. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/instrumentation.py +0 -0
  503. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/player.py +0 -0
  504. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/player_worker_thread.py +0 -0
  505. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/media/synthesis.py +0 -0
  506. {pyglet-2.1.dev7 → pyglet-2.1rc2/pyglet}/py.typed +0 -0
  507. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/shapes.py +0 -0
  508. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/sprite.py +0 -0
  509. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/caret.py +0 -0
  510. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/formats/__init__.py +0 -0
  511. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/formats/plaintext.py +0 -0
  512. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/formats/structured.py +0 -0
  513. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/layout/base.py +0 -0
  514. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/text/layout/scrolling.py +0 -0
  515. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/util.py +0 -0
  516. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/cocoa/pyglet_delegate.py +0 -0
  517. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/cocoa/pyglet_view.py +0 -0
  518. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/cocoa/pyglet_window.py +0 -0
  519. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/cocoa/systemcursor.py +0 -0
  520. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/event.py +0 -0
  521. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/headless/__init__.py +0 -0
  522. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/key.py +0 -0
  523. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyglet/window/mouse.py +0 -0
  524. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pyproject.toml +0 -0
  525. {pyglet-2.1.dev7 → pyglet-2.1rc2}/pytest.ini +0 -0
  526. {pyglet-2.1.dev7 → pyglet-2.1rc2}/setup.py +0 -0
  527. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/__init__.py +0 -0
  528. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/annotations.py +0 -0
  529. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/base/__init__.py +0 -0
  530. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/base/data.py +0 -0
  531. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/base/event_loop.py +0 -0
  532. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/base/interactive.py +0 -0
  533. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/base/performance.py +0 -0
  534. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/conftest.py +0 -0
  535. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/fonts/README +0 -0
  536. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/fonts/action_man.ttf +0 -0
  537. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/fonts/action_man_bold.ttf +0 -0
  538. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/fonts/action_man_bold_italic.ttf +0 -0
  539. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/fonts/action_man_italic.ttf +0 -0
  540. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/fonts/courR12-ISO8859-1.pcf +0 -0
  541. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/8bpp.gif +0 -0
  542. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/cursor.png +0 -0
  543. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/dinosaur.gif +0 -0
  544. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/gdk_close.png +0 -0
  545. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/grey_background.png +0 -0
  546. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/icon1.png +0 -0
  547. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/icon_size1.png +0 -0
  548. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/icon_size2.png +0 -0
  549. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/icon_size3.png +0 -0
  550. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/icon_size4.png +0 -0
  551. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/icon_size5.png +0 -0
  552. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/l.png +0 -0
  553. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/la.png +0 -0
  554. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/multitexture.png +0 -0
  555. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgb.png +0 -0
  556. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgb_16bpp.bmp +0 -0
  557. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgb_1bpp.bmp +0 -0
  558. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgb_24bpp.bmp +0 -0
  559. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgb_32bpp.bmp +0 -0
  560. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgb_4bpp.bmp +0 -0
  561. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgb_8bpp.bmp +0 -0
  562. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgb_8bpp.png +0 -0
  563. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgb_8bpp_trans.png +0 -0
  564. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgb_dxt1.dds +0 -0
  565. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgba.png +0 -0
  566. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgba_32bpp.bmp +0 -0
  567. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgba_dxt1.dds +0 -0
  568. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgba_dxt3.dds +0 -0
  569. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/rgba_dxt5.dds +0 -0
  570. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/images/tests.interactive.test_interactive_test_base._Test.test_1.001.png +0 -0
  571. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/README +0 -0
  572. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/alert.wav +0 -0
  573. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/login.wav +0 -0
  574. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/logout.wav +0 -0
  575. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/receive.wav +0 -0
  576. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/send.wav +0 -0
  577. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/synthesis_sawtooth_16_11025_1ch.wav +0 -0
  578. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/synthesis_sawtooth_16_44800_1ch.wav +0 -0
  579. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/synthesis_silence_16_11025_1ch.wav +0 -0
  580. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/synthesis_silence_16_44800_1ch.wav +0 -0
  581. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/synthesis_simplefm_16_11025_1ch.wav +0 -0
  582. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/synthesis_simplefm_16_44800_1ch.wav +0 -0
  583. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/synthesis_sine_16_11025_1ch.wav +0 -0
  584. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/synthesis_sine_16_44800_1ch.wav +0 -0
  585. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/synthesis_square_16_11025_1ch.wav +0 -0
  586. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/synthesis_square_16_44800_1ch.wav +0 -0
  587. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/synthesis_triangle_16_11025_1ch.wav +0 -0
  588. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/media/synthesis_triangle_16_44800_1ch.wav +0 -0
  589. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/models/logo3d.mtl +0 -0
  590. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/data/models/logo3d.obj +0 -0
  591. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/__init__.py +0 -0
  592. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/app/__init__.py +0 -0
  593. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/app/test_eventloop.py +0 -0
  594. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/conftest.py +0 -0
  595. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/font/test_fontconfig.py +0 -0
  596. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/font/test_freetype_face.py +0 -0
  597. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/graphics/__init__.py +0 -0
  598. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/graphics/test_allocation.py +0 -0
  599. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/graphics/test_batch_migration.py +0 -0
  600. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/graphics/test_shaders.py +0 -0
  601. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/image/__init__.py +0 -0
  602. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/image/test_gdkpixbuf2.py +0 -0
  603. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/image/test_imagegrid.py +0 -0
  604. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/image/test_texture3d.py +0 -0
  605. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/media/__init__.py +0 -0
  606. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/media/mock_player.py +0 -0
  607. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/media/test_directsound.py +0 -0
  608. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/media/test_driver.py +0 -0
  609. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/media/test_openal.py +0 -0
  610. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/media/test_player.py +0 -0
  611. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/media/test_pulse.py +0 -0
  612. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/model/__init__.py +0 -0
  613. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/platform/__init__.py +0 -0
  614. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/platform/test_win_context_managers.py +0 -0
  615. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/platform/test_win_multicore_clock.py +0 -0
  616. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/resource/__init__.py +0 -0
  617. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/resource/dir1/dir1/f3.txt +0 -0
  618. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/resource/dir1/f2.txt +0 -0
  619. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/resource/dir1/res.zip +0 -0
  620. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/resource/dir2/f6.txt +0 -0
  621. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/resource/f1.txt +0 -0
  622. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/resource/rgbm.png +0 -0
  623. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/resource/test_resource_image_loading.py +0 -0
  624. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/resource/test_resource_loading.py +0 -0
  625. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/test_integrations.py +0 -0
  626. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/text/__init__.py +0 -0
  627. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/text/test_label_creation.py +0 -0
  628. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/text/test_layout_creation.py +0 -0
  629. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/window/__init__.py +0 -0
  630. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/window/test_context_share.py +0 -0
  631. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/window/test_event_sequence.py +0 -0
  632. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/integration/window/test_window_caption.py +0 -0
  633. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/__init__.py +0 -0
  634. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/conftest.py +0 -0
  635. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/image/__init__.py +0 -0
  636. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/image/test_image.py +0 -0
  637. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/media/__init__.py +0 -0
  638. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/media/test_player.py +0 -0
  639. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/screenshots/committed/README +0 -0
  640. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/screenshots/session/README +0 -0
  641. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/shapes/test_shapes.py +0 -0
  642. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/test_interactive_test_base.py +0 -0
  643. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/text/__init__.py +0 -0
  644. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/text/test_caret_color.py +0 -0
  645. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/text/test_content_valign.py +0 -0
  646. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/text/test_html.py +0 -0
  647. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/text/test_inline_elements.py +0 -0
  648. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/text/test_inline_elements_style_change.py +0 -0
  649. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/text/test_multiline_wrap.py +0 -0
  650. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/text/test_plain.py +0 -0
  651. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/text/test_style.py +0 -0
  652. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/window/__init__.py +0 -0
  653. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/window/test_window_events.py +0 -0
  654. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/window/test_window_fullscreen.py +0 -0
  655. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/window/test_window_modes.py +0 -0
  656. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/window/test_window_multisample.py +0 -0
  657. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/window/test_window_open.py +0 -0
  658. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/window/test_window_settings.py +0 -0
  659. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/window/test_window_styles.py +0 -0
  660. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/window/window_util.py +0 -0
  661. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/interactive/windowed_test_base.py +0 -0
  662. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/requirements.txt +0 -0
  663. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/__init__.py +0 -0
  664. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/conftest.py +0 -0
  665. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/math/test_mat.py +0 -0
  666. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/math/test_quat.py +0 -0
  667. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/math/test_vec2.py +0 -0
  668. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/math/test_vec3.py +0 -0
  669. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/math/test_vec4.py +0 -0
  670. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/media/__init__.py +0 -0
  671. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/media/test_listener.py +0 -0
  672. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/media/test_player.py +0 -0
  673. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/media/test_sources.py +0 -0
  674. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/media/test_synthesis.py +0 -0
  675. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/platform/__init__.py +0 -0
  676. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/platform/test_mac_objc.py +0 -0
  677. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/shader/__init__.py +0 -0
  678. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/shader/conftest.py +0 -0
  679. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/shader/test_shader.py +0 -0
  680. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/shapes/__init__.py +0 -0
  681. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/shapes/conftest.py +0 -0
  682. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/shapes/test_bordered_rectangle.py +0 -0
  683. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/shapes/test_shapes.py +0 -0
  684. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/test_atlas.py +0 -0
  685. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/test_clock.py +0 -0
  686. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/test_clock_freq.py +0 -0
  687. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/test_events.py +0 -0
  688. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/test_font.py +0 -0
  689. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/test_input.py +0 -0
  690. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/test_resource_path.py +0 -0
  691. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/test_sprite.py +0 -0
  692. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/test_text.py +0 -0
  693. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/text/__init__.py +0 -0
  694. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/text/test_caret.py +0 -0
  695. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tests/unit/text/test_layout.py +0 -0
  696. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/al_info.py +0 -0
  697. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/bokeh_timeline.py +0 -0
  698. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/compare.py +0 -0
  699. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/configure.py +0 -0
  700. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/extractors.py +0 -0
  701. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/fs.py +0 -0
  702. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/mp.py +0 -0
  703. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/mpexceptions.py +0 -0
  704. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/playmany.py +0 -0
  705. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/readme_ffmpeg_debbuging_branch.txt +0 -0
  706. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/readme_run_tests.txt +0 -0
  707. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/report.py +0 -0
  708. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/reports.py +0 -0
  709. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/retry_crashed.py +0 -0
  710. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/run_test_suite.py +0 -0
  711. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/summarize.py +0 -0
  712. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/test_instrumentation.py +0 -0
  713. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/ffmpeg/timeline.py +0 -0
  714. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/gencontrollerdb.py +0 -0
  715. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/gengl.py +0 -0
  716. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/genwrappers.py +0 -0
  717. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/gl.template +0 -0
  718. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/gl.xml +0 -0
  719. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/gl_info.py +0 -0
  720. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/inspect_font.py +0 -0
  721. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/requirements.txt +0 -0
  722. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/wgl.h +0 -0
  723. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/wraptypes/__init__.py +0 -0
  724. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/wraptypes/cparser.py +0 -0
  725. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/wraptypes/ctypesparser.py +0 -0
  726. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/wraptypes/lex.py +0 -0
  727. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/wraptypes/preprocessor.py +0 -0
  728. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/wraptypes/wrap.py +0 -0
  729. {pyglet-2.1.dev7 → pyglet-2.1rc2}/tools/wraptypes/yacc.py +0 -0
  730. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/LICENSE.txt +0 -0
  731. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/README.rst +0 -0
  732. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/assets/favicon.ico +0 -0
  733. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/assets/static/css/example-custom-styles.css +0 -0
  734. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/assets/static/images/pyglet.png +0 -0
  735. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/content/404.html/contents.lr +0 -0
  736. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/content/404.html/ngc-5793.jpg +0 -0
  737. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/content/authors/benjamin/contents.lr +0 -0
  738. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/content/authors/benjamin/pyglet.png +0 -0
  739. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/content/authors/contents.lr +0 -0
  740. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/content/blog/contents.lr +0 -0
  741. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/content/blog/welcome-blog/contents.lr +0 -0
  742. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/content/contents.lr +0 -0
  743. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/content/eclipse.jpg +0 -0
  744. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/pyglet.lektorproject +0 -0
  745. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/AUTHORS.txt +0 -0
  746. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/CHANGELOG.md +0 -0
  747. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/CONTRIBUTING.md +0 -0
  748. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/LICENSE.txt +0 -0
  749. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/NOTICE.txt +0 -0
  750. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/README.md +0 -0
  751. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/css/bootstrap.css +0 -0
  752. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/css/icomoon.css +0 -0
  753. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/css/magnific-popup.css +0 -0
  754. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/css/style.css +0 -0
  755. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  756. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  757. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  758. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.ttf +0 -0
  759. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/fonts/icomoon/icomoon.woff +0 -0
  760. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/images/Preloader_2.gif +0 -0
  761. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/images/placeholder_person.png +0 -0
  762. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/js/jquery-3.3.1.min.js +0 -0
  763. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/js/jquery.easing.min.js +0 -0
  764. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/js/jquery.magnific-popup.min.js +0 -0
  765. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/js/jquery.stellar.js +0 -0
  766. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/js/jquery.stellar.min.js +0 -0
  767. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/js/jquery.waypoints.min.js +0 -0
  768. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/js/magnific-popup-options.js +0 -0
  769. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/js/main-singlelayout.js +0 -0
  770. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/assets/static/js/main.js +0 -0
  771. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/flowblocks/content.ini +0 -0
  772. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/flowblocks/gallery.ini +0 -0
  773. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/flowblocks/gallery_item.ini +0 -0
  774. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/flowblocks/member.ini +0 -0
  775. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/flowblocks/mission.ini +0 -0
  776. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/flowblocks/mission_tab.ini +0 -0
  777. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/flowblocks/service.ini +0 -0
  778. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/flowblocks/services.ini +0 -0
  779. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/flowblocks/team.ini +0 -0
  780. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/images/blog-index.png +0 -0
  781. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/images/full-blog.png +0 -0
  782. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/images/full-page.png +0 -0
  783. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/images/gallery-404.png +0 -0
  784. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/images/gallery-singlepage.png +0 -0
  785. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/images/mainpage-screenshots.png +0 -0
  786. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/images/responsive-layout.png +0 -0
  787. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/models/404.ini +0 -0
  788. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/models/author.ini +0 -0
  789. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/models/authors.ini +0 -0
  790. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/models/blog-post.ini +0 -0
  791. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/models/blog.ini +0 -0
  792. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/models/page.ini +0 -0
  793. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/models/single-layout.ini +0 -0
  794. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/404.html +0 -0
  795. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/author.html +0 -0
  796. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/authors.html +0 -0
  797. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/blocks/content.html +0 -0
  798. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/blocks/gallery.html +0 -0
  799. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/blocks/mission.html +0 -0
  800. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/blocks/services.html +0 -0
  801. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/blocks/team.html +0 -0
  802. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/blog-layout.html +0 -0
  803. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/blog-post.html +0 -0
  804. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/blog.html +0 -0
  805. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/layout.html +0 -0
  806. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/macros/blog.html +0 -0
  807. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/macros/pagination.html +0 -0
  808. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/none.html +0 -0
  809. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/page.html +0 -0
  810. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/templates/single-layout.html +0 -0
  811. {pyglet-2.1.dev7 → pyglet-2.1rc2}/website/themes/lektor-icon/theme.ini +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyglet
3
- Version: 2.1.dev7
3
+ Version: 2.1rc2
4
4
  Summary: pyglet is a cross-platform games and multimedia package.
5
5
  Author-email: Alex Holkner & contributors <Alex.Holkner@gmail.com>
6
6
  Requires-Python: >=3.8
@@ -1,3 +1,23 @@
1
+ pyglet 2.0.20
2
+
3
+ Changes and Improvements
4
+ ------------------------
5
+ - media: add support for FFmpeg 7.x
6
+
7
+
8
+ pyglet 2.0.19
9
+
10
+ Changes and Improvements
11
+ ------------------------
12
+ docs: update vertexbuffer.py module docstrings
13
+
14
+ Bugfixes
15
+ --------
16
+ - macos: stop F5 from autocompleting (#1229)
17
+ - input.base: Don't skip Axis Controls without names
18
+ - window.xlib: don't send on_mouse_release events for scrolling (#1235)
19
+
20
+
1
21
  pyglet 2.0.18
2
22
 
3
23
  Changes and Improvements
@@ -50,10 +50,11 @@ If you are migrating from an older version of pyglet, please read through
50
50
  programming_guide/keyboard
51
51
  programming_guide/mouse
52
52
  programming_guide/input
53
- programming_guide/shapes
54
53
  programming_guide/image
55
- programming_guide/media
56
54
  programming_guide/text
55
+ programming_guide/media
56
+ programming_guide/shapes
57
+ programming_guide/models
57
58
  programming_guide/resources
58
59
  programming_guide/rendering
59
60
  programming_guide/events
@@ -0,0 +1,6 @@
1
+ pyglet.model
2
+ ============
3
+
4
+ .. automodule:: pyglet.model
5
+ :members:
6
+ :undoc-members:
@@ -13,7 +13,7 @@ following are available:
13
13
  #. The built-in pyglet WAV file decoder (always available)
14
14
  #. Platform-specific APIs and libraries
15
15
  #. PyOgg
16
- #. :ref:`guide-supportedmedia-ffmpeg` version 4, 5, or 6
16
+ #. :ref:`guide-supportedmedia-ffmpeg` version 4, 5, 6, or 7.
17
17
 
18
18
  Video is played into OpenGL textures, allowing real-time manipulation
19
19
  by applications. Examples include use in 3D environments or shader-based
@@ -304,7 +304,7 @@ FFmpeg
304
304
  ^^^^^^
305
305
  .. _FFmpeg's license overview: https://www.ffmpeg.org/legal.html
306
306
 
307
- .. note:: The most recent pyglet release can use FFmpeg 4.X, 5.X, or 6.X
307
+ .. note:: The most recent pyglet release can use FFmpeg versions 4.X, 5.X, 6.X, and 7.X
308
308
 
309
309
  See :ref:`guide-media-ffmpeginstall` to learn more.
310
310
 
@@ -389,6 +389,7 @@ See the following to learn more:
389
389
  * `The FFmpeg 4.4 license breakdown <https://ffmpeg.org/doxygen/4.4/md_LICENSE.html>`_
390
390
  * `The FFmpeg 5.1 license breakdown <https://ffmpeg.org/doxygen/5.1/md_LICENSE.html>`_
391
391
  * `The FFmpeg 6.0 license breakdown <https://ffmpeg.org/doxygen/6.0/md_LICENSE.html>`_
392
+ * `The FFmpeg 7.0 license breakdown <https://ffmpeg.org/doxygen/7.0/md_LICENSE.html>`_
392
393
 
393
394
  .. _guide-media-ffmpeginstall:
394
395
 
@@ -400,8 +401,11 @@ in the `FFmpeg download <https://www.ffmpeg.org/download.html>`_ page. You must
400
401
  choose the shared build for the targeted OS with the architecture similar to
401
402
  the Python interpreter.
402
403
 
403
- All recent pyglet versions support FFmpeg 4.x and 5.x. To use FFmpeg 6.X,
404
- you must use pyglet 2.0.8 or later.
404
+ All recent pyglet versions support FFmpeg 4.x.
405
+
406
+ * Support for version 5.X requires at least: 1.5.28.
407
+ * Support for version 6.X requires at least: 2.0.8.
408
+ * Support for version 7.X requires at least: 2.0.20.
405
409
 
406
410
  Choose the correct architecture depending on the targeted
407
411
  **Python interpreter**. If you're shipping your project with a 32 bits
@@ -450,6 +454,8 @@ For Linux and Mac OS::
450
454
  * Exiting gracefully after the the user clicks OK on a dialog
451
455
  * Limiting the formats your project will attempt to load
452
456
 
457
+ If you still have issues with the FFmpeg not being recognized, try enabling the debug flags to see if any relevant
458
+ information is output: ``pyglet.options.debug_lib`` and/or ``pyglet.options.debug_media``.
453
459
 
454
460
  .. _guide-media-loading:
455
461
 
@@ -12,7 +12,10 @@ are having an issue that is not covered here, please open up an issue ticket on
12
12
 
13
13
  Window "HiDPI" support
14
14
  ----------------------
15
- TBD
15
+ The v2.1 release now provides a lot more control over how modern 'HiDPI' displays
16
+ are treated. This includes "retina" displays, or any display that has a non-0% zoom
17
+ or scale (such as 4K displays). This is exposed as new pyglet options. See
18
+ ``pyglet.options.dpi_scaling`` for more information.
16
19
 
17
20
  Labels & Text Layouts
18
21
  ---------------------
@@ -84,7 +87,7 @@ as booleans for a quick workaround when migrating, you can do something like thi
84
87
 
85
88
 
86
89
  Vectors can also be useful for analog sticks, because it gives an easy way to
87
- calculate dead-zones using `.length()`. For example::
90
+ calculate dead-zones using ``.length()``. For example::
88
91
 
89
92
  @controller.event
90
93
  def on_stick_motion(controller, name, vector):
@@ -102,8 +105,8 @@ that the maximum value stays within range. For example::
102
105
 
103
106
  vector = min(vector, vector.normalize())
104
107
 
105
- You can also of course directly access the individual `Vec2.x` & `Vec2.y`
106
- attributes. See :py:class:`~pyglet.math.Vec2` for more details on vector types.
108
+ You can also of course directly access the individual ``Vec2.x`` & ``Vec2.y`` attributes,
109
+ if you want to . See :py:class:`~pyglet.math.Vec2` for more details on vector types.
107
110
 
108
111
  Gui
109
112
  ---
@@ -116,8 +119,8 @@ The :py:class:`~pyglet.gui.widget.ToggleButton` and :py:class:`~pyglet.gui.widge
116
119
  widgets have a small change. Instead of the image arguments being named "pressed"
117
120
  and "depressed", they has been renamed to the correct "pressed" and "unpressed".
118
121
 
119
- Math module
120
- -----------
122
+ Math
123
+ ----
121
124
  In the :py:mod:`~pyglet.math` module, vector types (:py:class:`~pyglet.math.Vec2`,
122
125
  :py:class:`~pyglet.math.Vec3`, :py:class:`~pyglet.math.Vec4`) are now
123
126
  immutable; all operations will return a new object. In addition, all vector objects
@@ -139,12 +142,23 @@ way as vectors). For example:
139
142
  Matrix objects are generally created via their helper methods, so this change should
140
143
  hopefully not require any code updates for most users.
141
144
 
145
+ Models
146
+ ------
147
+ The :py:mod:`~pyglet.model` module has seen some changes. This is an undocumented
148
+ WIP module for pyglet 2.0, and it remains so pyglet 2.1. That said, it's in a more
149
+ usable state now. The first change is that :py:meth:`~pyglet.model.load` now returns
150
+ a ``Scene`` object instead of a ``Model`` object. The Scene is a new, "pure data"
151
+ intermediate representation of a 3D scene, that closely mimics the layout of the glTF
152
+ format. The :py:meth:`~pyglet.model.Scene.create_models` method can be used to create
153
+ ``Model`` instances from the Scene, but the Scene data can also be manually iterated
154
+ over for more advanced use cases.
155
+
142
156
  Canvas module
143
157
  -------------
144
- The `pyglet.canvas` module has been renamed to `pyglet.display`. The "canvas"
158
+ The ``pyglet.canvas`` module has been renamed to ``pyglet.display``. The "canvas"
145
159
  concept was a work-in-progress in legacy pyglet, and was never fully fleshed out.
146
160
  It appears to have been meant to allow arbitrary renderable areas, but this type
147
- of functionality can now be easily accomplished with Framebuffers. The name `display`
161
+ of functionality can now be easily accomplished with Framebuffers. The name ``display``
148
162
  is a more accurate representation of what the code in the module actually relates to.
149
163
  The usage is the same, with just the name change::
150
164
 
@@ -0,0 +1,10 @@
1
+ .. _guide_models:
2
+
3
+ 3D Models and Scenes
4
+ ====================
5
+
6
+ The :py:mod:`~pyglet.model` module is still a work in progress, and is
7
+ not yet documented.
8
+
9
+ TBD
10
+ ---
@@ -71,10 +71,25 @@ def on_resize(width, height):
71
71
  hello_label.position = (window.width // 2, window.height // 2, 0)
72
72
 
73
73
 
74
+ screens = pyglet.display.get_display().get_screens()
75
+ selected_screen = screens[0]
76
+
74
77
  @window.event
75
78
  def on_key_press(symbol, modifiers):
79
+ global selected_screen
80
+ if len(screens) > 1:
81
+ if symbol == pyglet.window.key._1:
82
+ selected_screen = screens[1]
83
+ elif symbol == pyglet.window.key._0:
84
+ selected_screen = screens[0]
85
+
76
86
  if symbol == pyglet.window.key.SPACE:
77
87
  window.set_size(500, 300)
88
+ elif symbol == pyglet.window.key.F:
89
+ window.set_fullscreen(False, screen=selected_screen)
90
+ elif symbol == pyglet.window.key.G:
91
+ window.set_fullscreen(True, screen=selected_screen)
92
+
78
93
 
79
94
 
80
95
  @window.event
@@ -10,17 +10,16 @@ to your needs for first person games.
10
10
  """
11
11
 
12
12
  from __future__ import annotations
13
+
13
14
  import weakref
14
- from pathlib import Path
15
+
15
16
  from math import radians, degrees
16
17
 
17
18
  import pyglet
18
- from pyglet.window import key as _key
19
19
 
20
20
  from pyglet.gl import glEnable, GL_DEPTH_TEST, GL_CULL_FACE
21
21
  from pyglet.math import Vec2, Vec3, Mat4, clamp
22
-
23
- MODULE_PATH = Path(__file__).parent
22
+ from pyglet.window import key as _key
24
23
 
25
24
 
26
25
  class FPSCamera:
@@ -346,8 +345,8 @@ if __name__ == "__main__":
346
345
  glEnable(GL_DEPTH_TEST)
347
346
  glEnable(GL_CULL_FACE)
348
347
 
349
- model_logo = pyglet.model.load(MODULE_PATH / "logo3d.obj", batch=batch)
350
- model_box = pyglet.model.load(MODULE_PATH / "box.obj", batch=batch)
348
+ model_logo = pyglet.resource.model("logo3d.obj", batch=batch)
349
+ model_box = pyglet.resource.model("box.obj", batch=batch)
351
350
 
352
351
  # Camera controls the global projection & view matrixes:
353
352
  camera = FPSCamera(window, position=Vec3(0.0, 0.0, 5.0))
@@ -44,8 +44,10 @@ if __name__ == "__main__":
44
44
  glEnable(GL_DEPTH_TEST)
45
45
  glEnable(GL_CULL_FACE)
46
46
 
47
- model_logo = pyglet.resource.model("logo3d.obj", batch=batch)
48
- model_box = pyglet.resource.model("box.obj", batch=batch)
47
+ logo_scene = pyglet.resource.scene('logo3d.obj')
48
+ box_scene = pyglet.resource.scene('box.obj')
49
+ model_logo = logo_scene.create_models(batch=batch)[0] # only one model in this scene
50
+ model_box = box_scene.create_models(batch=batch)[0] # only one model in this scene
49
51
 
50
52
  # Set the application wide view matrix (camera):
51
53
  window.view = Mat4.look_at(position=Vec3(0, 0, 5), target=Vec3(0, 0, 0), up=Vec3(0, 1, 0))
@@ -15,7 +15,7 @@ if TYPE_CHECKING:
15
15
  from typing import Any, Callable, ItemsView, Sized
16
16
 
17
17
  #: The release version
18
- version = '2.1.dev7'
18
+ version = '2.1.rc2'
19
19
  __version__ = version
20
20
 
21
21
  MIN_PYTHON_VERSION = 3, 8
@@ -247,7 +247,7 @@ class Options:
247
247
 
248
248
  .. versionadded:: 2.0.5"""
249
249
 
250
- dpi_scaling: Literal["real", "scaled", "stretch"] = "real"
250
+ dpi_scaling: Literal["real", "scaled", "stretch", "platform"] = "real"
251
251
  """For 'HiDPI' displays, Window behavior can differ between operating systems. Defaults to `'real'`.
252
252
 
253
253
  The current options are an attempt to create consistent behavior across all of the operating systems.
@@ -270,6 +270,13 @@ class Options:
270
270
  rescaling and repositioning of content will be necessary, but at the cost of blurry content depending on the extent
271
271
  of the stretch. For example, 800x600 at 150% DPI will be 800x600 for `window.get_size()` and 1200x900 for
272
272
  `window.get_framebuffer_size()`.
273
+
274
+ `'platform'`: A DPI aware window is created, however window sizing and framebuffer sizing is not interfered with
275
+ by Pyglet. Final sizes are dictated by the platform the window was created on. It is up to the user to make any
276
+ platform adjustments themselves such as sizing on a platform, mouse coordinate adjustments, or framebuffer size
277
+ handling. On Windows and X11, the framebuffer and the requested window size will always match in pixels 1:1. On
278
+ MacOS, depending on a Hi-DPI display, you may get a different sized framebuffer than the window size. This option
279
+ does allow `window.dpi` and `window.scale` to return their respective values.
273
280
  """
274
281
 
275
282
  shader_bind_management: bool = True
@@ -63,7 +63,6 @@ class Options:
63
63
  com_mta: bool
64
64
  osx_alt_loop: bool
65
65
  dpi_scaling: Literal["real", "scaled", "stretch"]
66
- scale_with_dpi: bool
67
66
  shader_bind_management: bool
68
67
 
69
68
  def get(self, item: str, default: Any = None) -> Any:
@@ -25,16 +25,17 @@ if TYPE_CHECKING:
25
25
 
26
26
  class _Worker(Thread):
27
27
  """A worker thread to pop and run jobs."""
28
- def __init__(self, workqueue: Queue, exitevent: Event, name: str) -> None:
29
- super().__init__(name=name, daemon=True)
30
- self.queue = workqueue
31
- self.exit = exitevent
28
+ def __init__(self, workqueue: Queue, exitevent: Event, index: int) -> None:
29
+ super().__init__(daemon=True)
30
+ self._queue = workqueue
31
+ self._exit = exitevent
32
+ self._index = index
32
33
  self.start()
33
34
 
34
35
  def run(self) -> None:
35
36
  """Parallel thread of execution."""
36
- _exit = self.exit
37
- _queue = self.queue
37
+ _exit = self._exit
38
+ _queue = self._queue
38
39
  while not _exit.is_set():
39
40
  func, args = _queue.get()
40
41
  func(*args)
@@ -51,8 +52,9 @@ class JobExecutor:
51
52
  `concurrent.futures` module, but does not share any code with those classes.
52
53
  Instead, it is a more light-weight implementation intended for execution of
53
54
  highly parallizable functions (jobs). A key difference is that JobExecutor
54
- does not return `Futures`, and instead depends on the submitted jobs to
55
- self-contained.
55
+ does not return `Futures`. Submitted jobs must be self-contained, or handle
56
+ returning values by other mechanisms. The :py:meth:`~sync` method can be
57
+ used to wait for all currently submitted jobs to complete.
56
58
  """
57
59
 
58
60
  def __init__(self, max_workers: int | None = None) -> None:
@@ -65,7 +67,7 @@ class JobExecutor:
65
67
  self._max_workers = max_workers or os.cpu_count() // 2
66
68
  self._exitevent = Event()
67
69
  self._queue = Queue()
68
- self._threads = [_Worker(self._queue, self._exitevent, f"Thread{i+1}") for i in range(self._max_workers)]
70
+ self._threads = [_Worker(self._queue, self._exitevent, i) for i in range(self._max_workers)]
69
71
 
70
72
  def submit(self, func: Callable, *args: Any) -> None:
71
73
  """Submit a job to be executed on .
@@ -82,7 +82,7 @@ def add_user_font(font: UserDefinedFontBase) -> None:
82
82
  font_hold = shared_object_space.pyglet_font_font_hold
83
83
 
84
84
  # Look for font name in font cache
85
- descriptor = (font.name, font.size, font.bold, font.italic, font.stretch, font.dpi)
85
+ descriptor = (font.name, font.size, font.weight, font.italic, font.stretch, font.dpi)
86
86
  if descriptor in font_cache:
87
87
  msg = f"A font with parameters {descriptor} has already been created."
88
88
  raise Exception(msg)
@@ -105,7 +105,7 @@ def have_font(name: str) -> bool:
105
105
  return name in _user_fonts or _system_font_class.have_font(name)
106
106
 
107
107
 
108
- def load(name: str | Iterable[str] | None = None, size: float | None = None, bold: bool | str = False,
108
+ def load(name: str | Iterable[str] | None = None, size: float | None = None, weight: str = "normal",
109
109
  italic: bool | str = False, stretch: bool | str = False, dpi: int | None = None) -> Font:
110
110
  """Load a font for rendering.
111
111
 
@@ -118,10 +118,9 @@ def load(name: str | Iterable[str] | None = None, size: float | None = None, bol
118
118
  size:
119
119
  Size of the font, in points. The returned font may be an exact
120
120
  match or the closest available.
121
- bold:
122
- If True, a bold variant is returned, if one exists for the given
123
- family and size. For some Font renderers, bold is the weight of the font, and a string
124
- can be provided specifying the weight. For example, "semibold" or "light".
121
+ weight:
122
+ If set, a specific weight variant is returned if one exists for the given font
123
+ family and size. The weight is provided as a string. For example: "bold" or "light".
125
124
  italic:
126
125
  If True, an italic variant is returned, if one exists for the given family and size. For some Font
127
126
  renderers, italics may have an "oblique" variation which can be specified as a string.
@@ -166,16 +165,17 @@ def load(name: str | Iterable[str] | None = None, size: float | None = None, bol
166
165
  name = found_name
167
166
 
168
167
  # Look for font name in font cache
169
- descriptor = (name, size, bold, italic, stretch, dpi)
168
+ descriptor = (name, size, weight, italic, stretch, dpi)
170
169
  if descriptor in font_cache:
171
170
  return font_cache[descriptor]
172
171
 
173
172
  # Not in cache, create from scratch
174
- font = _system_font_class(name, size, bold=bold, italic=italic, stretch=stretch, dpi=dpi)
173
+ font = _system_font_class(name, size, weight=weight, italic=italic, stretch=stretch, dpi=dpi)
174
+
175
175
  # Save parameters for new-style layout classes to recover
176
176
  # TODO: add properties to the base Font so completion is proper:
177
177
  font.size = size
178
- font.bold = bold
178
+ font.weight = weight
179
179
  font.italic = italic
180
180
  font.stretch = stretch
181
181
  font.dpi = dpi
@@ -95,6 +95,9 @@ DWRITE_FONT_WEIGHT_HEAVY = 900
95
95
  DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950
96
96
 
97
97
  name_to_weight = {
98
+ True: DWRITE_FONT_WEIGHT_BOLD, # Temporary alias for attributed text
99
+ False: DWRITE_FONT_WEIGHT_NORMAL, # Temporary alias for attributed text
100
+ None: DWRITE_FONT_WEIGHT_NORMAL, # Temporary alias for attributed text
98
101
  "thin": DWRITE_FONT_WEIGHT_THIN,
99
102
  "extralight": DWRITE_FONT_WEIGHT_EXTRA_LIGHT,
100
103
  "ultralight": DWRITE_FONT_WEIGHT_ULTRA_LIGHT,
@@ -1944,7 +1947,7 @@ class DirectWriteGlyphRenderer(base.GlyphRenderer):
1944
1947
  return glyph
1945
1948
 
1946
1949
  def render_using_layout(self, text: str) -> Glyph | None:
1947
- """This will render text given the built in DirectWrite layout.
1950
+ """This will render text given the built-in DirectWrite layout.
1948
1951
 
1949
1952
  This process allows us to take advantage of color glyphs and fallback handling that is built into DirectWrite.
1950
1953
  This can also handle shaping and many other features if you want to render directly to a texture.
@@ -2045,7 +2048,7 @@ class Win32DirectWriteFont(base.Font):
2045
2048
  glyph_renderer_class = DirectWriteGlyphRenderer
2046
2049
  texture_internalformat = pyglet.gl.GL_RGBA
2047
2050
 
2048
- def __init__(self, name: str, size: float, bold: bool | str = False, italic: bool | str = False,
2051
+ def __init__(self, name: str, size: float, weight: str = "normal", italic: bool | str = False,
2049
2052
  stretch: bool | str = False, dpi: int | None = None, locale: str | None = None) -> None:
2050
2053
  self._filename: str | None = None
2051
2054
  self._advance_cache = {} # Stores glyph's by the indice and advance.
@@ -2056,7 +2059,7 @@ class Win32DirectWriteFont(base.Font):
2056
2059
  name = self._default_name
2057
2060
 
2058
2061
  self._name = name
2059
- self.bold = bold
2062
+ self.weight = weight
2060
2063
  self.size = size
2061
2064
  self.italic = italic
2062
2065
  self.stretch = stretch
@@ -2074,13 +2077,7 @@ class Win32DirectWriteFont(base.Font):
2074
2077
  # From DPI to DIP (Device Independent Pixels) which is what the fonts rely on.
2075
2078
  self._real_size = (self.size * self.dpi) // 72
2076
2079
 
2077
- if self.bold:
2078
- if isinstance(self.bold, str):
2079
- self._weight = name_to_weight[self.bold]
2080
- else:
2081
- self._weight = DWRITE_FONT_WEIGHT_BOLD
2082
- else:
2083
- self._weight = DWRITE_FONT_WEIGHT_NORMAL
2080
+ self._weight = name_to_weight[self.weight]
2084
2081
 
2085
2082
  if self.italic:
2086
2083
  if isinstance(self.italic, str):
@@ -2549,26 +2546,26 @@ class Win32DirectWriteFont(base.Font):
2549
2546
  return None, None
2550
2547
 
2551
2548
  @classmethod
2552
- def find_font_face(cls, font_name: str, bold: bool | str, italic: bool | str, stretch: bool | str) -> tuple[
2549
+ def find_font_face(cls, font_name: str, weight: str, italic: bool | str, stretch: bool | str) -> tuple[
2553
2550
  IDWriteFont | None, IDWriteFontCollection | None]:
2554
- """This will search font collections for legacy RBIZ names. However, matching to bold, italic, stretch is
2551
+ """This will search font collections for legacy RBIZ names. However, matching to weight, italic, stretch is
2555
2552
  problematic in that there are many values. We parse the font name looking for matches to the name database,
2556
2553
  and attempt to pick the closest match.
2557
2554
  This will search all fonts on the system and custom loaded, and all of their font faces. Returns a collection
2558
2555
  and IDWriteFont if successful.
2559
2556
  """
2560
- p_bold, p_italic, p_stretch = cls.parse_name(font_name, bold, italic, stretch)
2557
+ p_weight, p_italic, p_stretch = cls.parse_name(font_name, weight, italic, stretch)
2561
2558
 
2562
2559
  _debug_print(f"directwrite: '{font_name}' not found. Attempting legacy name lookup in all collections.")
2563
2560
  if cls._custom_collection:
2564
- collection_idx = cls.find_legacy_font(cls._custom_collection, font_name, p_bold, p_italic, p_stretch)
2561
+ collection_idx = cls.find_legacy_font(cls._custom_collection, font_name, p_weight, p_italic, p_stretch)
2565
2562
  if collection_idx is not None:
2566
2563
  return collection_idx, cls._custom_collection
2567
2564
 
2568
2565
  sys_collection = IDWriteFontCollection()
2569
2566
  cls._write_factory.GetSystemFontCollection(byref(sys_collection), 1)
2570
2567
 
2571
- collection_idx = cls.find_legacy_font(sys_collection, font_name, p_bold, p_italic, p_stretch)
2568
+ collection_idx = cls.find_legacy_font(sys_collection, font_name, p_weight, p_italic, p_stretch)
2572
2569
  if collection_idx is not None:
2573
2570
  return collection_idx, sys_collection
2574
2571
 
@@ -2582,7 +2579,7 @@ class Win32DirectWriteFont(base.Font):
2582
2579
  return False
2583
2580
 
2584
2581
  @staticmethod
2585
- def parse_name(font_name: str, weight: int, style: int, stretch: int) -> tuple[int, int, int]:
2582
+ def parse_name(font_name: str, weight: str, style: int, stretch: int) -> tuple[str, int, int]:
2586
2583
  """Attempt at parsing any special names in a font for legacy checks. Takes the first found."""
2587
2584
  font_name = font_name.lower()
2588
2585
  split_name = font_name.split(" ")
@@ -2611,7 +2608,7 @@ class Win32DirectWriteFont(base.Font):
2611
2608
  return found_weight, found_style, found_stretch
2612
2609
 
2613
2610
  @staticmethod
2614
- def find_legacy_font(collection: IDWriteFontCollection, font_name: str, bold: bool | str, italic: bool | str, stretch: bool | str, full_debug: bool=False) -> IDWriteFont | None:
2611
+ def find_legacy_font(collection: IDWriteFontCollection, font_name: str, weight: str, italic: bool | str, stretch: bool | str, full_debug: bool=False) -> IDWriteFont | None:
2615
2612
  coll_count = collection.GetFontFamilyCount()
2616
2613
 
2617
2614
  assert _debug_print(f"directwrite: Found {coll_count} fonts in collection.")
@@ -2681,7 +2678,7 @@ class Win32DirectWriteFont(base.Font):
2681
2678
 
2682
2679
  # If we have matches, we've already parsed through the proper family. Now try to match.
2683
2680
  if matches:
2684
- write_font = Win32DirectWriteFont.match_closest_font(matches, bold, italic, stretch)
2681
+ write_font = Win32DirectWriteFont.match_closest_font(matches, weight, italic, stretch)
2685
2682
 
2686
2683
  # Cleanup other matches not used.
2687
2684
  for match in matches:
@@ -2693,7 +2690,7 @@ class Win32DirectWriteFont(base.Font):
2693
2690
  return None
2694
2691
 
2695
2692
  @staticmethod
2696
- def match_closest_font(font_list: list[tuple[int, int, int, IDWriteFont]], bold: int, italic: int, stretch: int) -> IDWriteFont | None:
2693
+ def match_closest_font(font_list: list[tuple[int, int, int, IDWriteFont]], weight: str, italic: int, stretch: int) -> IDWriteFont | None:
2697
2694
  """Match the closest font to the parameters specified.
2698
2695
 
2699
2696
  If a full match is not found, a secondary match will be found based on similar features. This can probably
@@ -2704,18 +2701,18 @@ class Win32DirectWriteFont(base.Font):
2704
2701
  (f_weight, f_style, f_stretch, writefont) = match
2705
2702
 
2706
2703
  # Found perfect match, no need for the rest.
2707
- if f_weight == bold and f_style == italic and f_stretch == stretch:
2704
+ if f_weight == weight and f_style == italic and f_stretch == stretch:
2708
2705
  _debug_print(
2709
- f"directwrite: full match found. (bold: {f_weight}, italic: {f_style}, stretch: {f_stretch})")
2706
+ f"directwrite: full match found. (weight: {f_weight}, italic: {f_style}, stretch: {f_stretch})")
2710
2707
  return writefont
2711
2708
 
2712
2709
  prop_match = 0
2713
2710
  similar_match = 0
2714
2711
  # Look for a full match, otherwise look for close enough.
2715
2712
  # For example, Arial Black only has Oblique, not Italic, but good enough if you want slanted text.
2716
- if f_weight == bold:
2713
+ if f_weight == weight:
2717
2714
  prop_match += 1
2718
- elif bold != DWRITE_FONT_WEIGHT_NORMAL and f_weight != DWRITE_FONT_WEIGHT_NORMAL:
2715
+ elif weight != DWRITE_FONT_WEIGHT_NORMAL and f_weight != DWRITE_FONT_WEIGHT_NORMAL:
2719
2716
  similar_match += 1
2720
2717
 
2721
2718
  if f_style == italic:
@@ -2737,7 +2734,7 @@ class Win32DirectWriteFont(base.Font):
2737
2734
  # Take the first match after sorting.
2738
2735
  closest_match = closest[0]
2739
2736
  _debug_print(f"directwrite: falling back to partial match. "
2740
- f"(bold: {closest_match[2]}, italic: {closest_match[3]}, stretch: {closest_match[4]})")
2737
+ f"(weight: {closest_match[2]}, italic: {closest_match[3]}, stretch: {closest_match[4]})")
2741
2738
  return closest_match[5]
2742
2739
 
2743
2740
  return None