pyglet 2.1.5__py3-none-any.whl → 2.1.8__py3-none-any.whl

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 (71) hide show
  1. pyglet/__init__.py +27 -42
  2. pyglet/app/base.py +2 -2
  3. pyglet/clock.py +1 -1
  4. pyglet/display/base.py +31 -21
  5. pyglet/display/cocoa.py +25 -1
  6. pyglet/display/headless.py +1 -1
  7. pyglet/display/win32.py +134 -18
  8. pyglet/display/xlib.py +285 -70
  9. pyglet/event.py +17 -1
  10. pyglet/experimental/README.md +1 -1
  11. pyglet/experimental/jobs.py +1 -1
  12. pyglet/experimental/multitexture_sprite.py +2 -2
  13. pyglet/font/__init__.py +1 -1
  14. pyglet/font/base.py +8 -5
  15. pyglet/font/dwrite/__init__.py +13 -8
  16. pyglet/font/dwrite/dwrite_lib.py +1 -1
  17. pyglet/font/user.py +1 -1
  18. pyglet/gl/base.py +8 -4
  19. pyglet/gl/cocoa.py +4 -0
  20. pyglet/gl/gl.py +4 -3
  21. pyglet/gl/gl.pyi +2320 -0
  22. pyglet/gl/gl_compat.py +7 -18
  23. pyglet/gl/gl_compat.pyi +3097 -0
  24. pyglet/gl/xlib.py +24 -0
  25. pyglet/graphics/shader.py +34 -20
  26. pyglet/graphics/vertexbuffer.py +1 -1
  27. pyglet/gui/frame.py +2 -2
  28. pyglet/gui/widgets.py +1 -1
  29. pyglet/image/__init__.py +3 -3
  30. pyglet/image/buffer.py +3 -3
  31. pyglet/input/base.py +8 -8
  32. pyglet/input/linux/evdev.py +1 -1
  33. pyglet/libs/darwin/cocoapy/cocoalibs.py +3 -1
  34. pyglet/libs/win32/__init__.py +12 -0
  35. pyglet/libs/win32/constants.py +4 -0
  36. pyglet/libs/win32/types.py +97 -0
  37. pyglet/libs/x11/xrandr.py +166 -0
  38. pyglet/libs/x11/xrender.py +43 -0
  39. pyglet/libs/x11/xsync.py +43 -0
  40. pyglet/math.py +40 -49
  41. pyglet/media/buffered_logger.py +1 -1
  42. pyglet/media/codecs/ffmpeg.py +18 -34
  43. pyglet/media/codecs/gstreamer.py +3 -3
  44. pyglet/media/codecs/pyogg.py +1 -1
  45. pyglet/media/codecs/wave.py +6 -0
  46. pyglet/media/codecs/wmf.py +33 -7
  47. pyglet/media/devices/win32.py +1 -1
  48. pyglet/media/drivers/base.py +1 -1
  49. pyglet/media/drivers/directsound/interface.py +4 -0
  50. pyglet/media/drivers/listener.py +2 -2
  51. pyglet/media/drivers/xaudio2/interface.py +6 -2
  52. pyglet/media/drivers/xaudio2/lib_xaudio2.py +1 -1
  53. pyglet/media/instrumentation.py +2 -2
  54. pyglet/media/player.py +2 -2
  55. pyglet/media/player_worker_thread.py +1 -1
  56. pyglet/media/synthesis.py +1 -1
  57. pyglet/model/codecs/gltf.py +1 -1
  58. pyglet/shapes.py +25 -24
  59. pyglet/sprite.py +1 -1
  60. pyglet/text/caret.py +44 -5
  61. pyglet/text/layout/base.py +3 -3
  62. pyglet/util.py +1 -1
  63. pyglet/window/__init__.py +54 -14
  64. pyglet/window/cocoa/__init__.py +27 -0
  65. pyglet/window/mouse.py +11 -1
  66. pyglet/window/win32/__init__.py +40 -14
  67. pyglet/window/xlib/__init__.py +21 -7
  68. {pyglet-2.1.5.dist-info → pyglet-2.1.8.dist-info}/METADATA +1 -1
  69. {pyglet-2.1.5.dist-info → pyglet-2.1.8.dist-info}/RECORD +71 -67
  70. {pyglet-2.1.5.dist-info → pyglet-2.1.8.dist-info}/LICENSE +0 -0
  71. {pyglet-2.1.5.dist-info → pyglet-2.1.8.dist-info}/WHEEL +0 -0
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import sys
4
4
  import unicodedata
5
- from ctypes.wintypes import HICON, HWND, MSG, POINT, RECT, SIZE, UINT
5
+ from ctypes.wintypes import DWORD, HICON, HWND, MSG, POINT, RECT, SIZE, UINT
6
6
  from functools import lru_cache
7
7
  from typing import Callable, Sequence
8
8
 
@@ -10,6 +10,8 @@ from pyglet import compat_platform
10
10
  from pyglet.libs.win32 import constants
11
11
  from pyglet.libs.win32.types import (
12
12
  BITMAPINFOHEADER,
13
+ BYTE,
14
+ COLORREF,
13
15
  HCURSOR,
14
16
  HRAWINPUT,
15
17
  ICONINFO,
@@ -166,15 +168,17 @@ class Win32Window(BaseWindow):
166
168
  else:
167
169
  styles = {
168
170
  self.WINDOW_STYLE_DEFAULT: (constants.WS_OVERLAPPEDWINDOW, 0),
169
- self.WINDOW_STYLE_DIALOG: (constants.WS_OVERLAPPED | constants.WS_CAPTION | constants.WS_SYSMENU,
170
- constants.WS_EX_DLGMODALFRAME),
171
- self.WINDOW_STYLE_TOOL: (constants.WS_OVERLAPPED | constants.WS_CAPTION | constants.WS_SYSMENU,
172
- constants.WS_EX_TOOLWINDOW),
171
+ self.WINDOW_STYLE_DIALOG: (
172
+ constants.WS_OVERLAPPED | constants.WS_CAPTION | constants.WS_SYSMENU,
173
+ constants.WS_EX_DLGMODALFRAME,
174
+ ),
175
+ self.WINDOW_STYLE_TOOL: (
176
+ constants.WS_OVERLAPPED | constants.WS_CAPTION | constants.WS_SYSMENU,
177
+ constants.WS_EX_TOOLWINDOW,
178
+ ),
173
179
  self.WINDOW_STYLE_BORDERLESS: (constants.WS_POPUP, 0),
174
- self.WINDOW_STYLE_TRANSPARENT: (constants.WS_OVERLAPPEDWINDOW,
175
- constants.WS_EX_LAYERED),
176
- self.WINDOW_STYLE_OVERLAY: (constants.WS_POPUP,
177
- constants.WS_EX_LAYERED | constants.WS_EX_TRANSPARENT),
180
+ self.WINDOW_STYLE_TRANSPARENT: (constants.WS_OVERLAPPEDWINDOW, constants.WS_EX_LAYERED),
181
+ self.WINDOW_STYLE_OVERLAY: (constants.WS_POPUP, constants.WS_EX_LAYERED | constants.WS_EX_TRANSPARENT),
178
182
  }
179
183
  self._ws_style, self._ex_ws_style = styles[self._style]
180
184
 
@@ -299,7 +303,7 @@ class Win32Window(BaseWindow):
299
303
  _user32.SetWindowPos(self._hwnd, hwnd_after,
300
304
  self._screen.x, self._screen.y, width, height, constants.SWP_FRAMECHANGED)
301
305
  elif self.style == 'transparent' or self.style == 'overlay':
302
- _user32.SetLayeredWindowAttributes(self._hwnd, 0, 254, constants.LWA_ALPHA)
306
+ self._set_transparency()
303
307
  if self.style == 'overlay':
304
308
  _user32.SetWindowPos(self._hwnd, constants.HWND_TOPMOST, 0,
305
309
  0, width, height, constants.SWP_NOMOVE | constants.SWP_NOSIZE)
@@ -382,7 +386,7 @@ class Win32Window(BaseWindow):
382
386
  def switch_to(self) -> None:
383
387
  self.context.set_current()
384
388
 
385
- def update_transparency(self) -> None:
389
+ def _set_transparency(self) -> None:
386
390
  region = _gdi32.CreateRectRgn(0, 0, -1, -1)
387
391
  bb = DWM_BLURBEHIND()
388
392
  bb.dwFlags = constants.DWM_BB_ENABLE | constants.DWM_BB_BLURREGION
@@ -392,17 +396,39 @@ class Win32Window(BaseWindow):
392
396
  _dwmapi.DwmEnableBlurBehindWindow(self._hwnd, byref(bb))
393
397
  _gdi32.DeleteObject(region)
394
398
 
399
+ _user32.SetLayeredWindowAttributes(self._hwnd, 0, 255, constants.LWA_ALPHA)
400
+
395
401
  def flip(self) -> None:
396
402
  self.draw_mouse_cursor()
397
403
 
398
404
  if not self._fullscreen and (self._always_dwm or self._dwm_composition_enabled()) and self._interval:
399
405
  _dwmapi.DwmFlush()
400
406
 
401
- if self.style in ('overlay', 'transparent'):
402
- self.update_transparency()
403
-
404
407
  self.context.flip()
405
408
 
409
+ def set_mouse_passthrough(self, state: bool) -> None:
410
+ color_ref = COLORREF()
411
+ alpha = BYTE()
412
+ flags = DWORD()
413
+
414
+ if self._ex_ws_style & constants.WS_EX_LAYERED:
415
+ _user32.GetLayeredWindowAttributes(self._hwnd, byref(color_ref), byref(alpha), byref(flags))
416
+
417
+ if state:
418
+ self._ex_ws_style |= (constants.WS_EX_TRANSPARENT | constants.WS_EX_LAYERED)
419
+ else:
420
+ self._ex_ws_style &= ~constants.WS_EX_TRANSPARENT
421
+
422
+ if self._ex_ws_style & constants.WS_EX_LAYERED and not flags.value & constants.LWA_ALPHA:
423
+ self._ex_ws_style &= ~constants.WS_EX_LAYERED
424
+
425
+ _user32.SetWindowLongW(self._hwnd, constants.GWL_EXSTYLE, self._ex_ws_style)
426
+
427
+ if state:
428
+ _user32.SetLayeredWindowAttributes(self._hwnd, color_ref.value, alpha.value, flags.value)
429
+
430
+
431
+
406
432
  def set_location(self, x: int, y: int) -> None:
407
433
  x, y = self._client_to_window_pos(x, y)
408
434
  _user32.SetWindowPos(self._hwnd, 0, x, y, 0, 0,
@@ -28,7 +28,7 @@ from functools import lru_cache
28
28
  from typing import TYPE_CHECKING, Sequence
29
29
 
30
30
  import pyglet
31
- from pyglet.display.xlib import XlibCanvas
31
+ from pyglet.display.xlib import XlibCanvas, XlibScreenXinerama
32
32
  from pyglet.event import EventDispatcher
33
33
  from pyglet.libs.x11 import cursorfont, xlib
34
34
  from pyglet.util import asbytes
@@ -229,8 +229,6 @@ class XlibWindow(BaseWindow):
229
229
  root = xlib.XRootWindow(self._x_display, self._x_screen_id)
230
230
 
231
231
  visual_info = self.config.get_visual_info()
232
- if self.style in ('transparent', 'overlay'):
233
- xlib.XMatchVisualInfo(self._x_display, self._x_screen_id, 32, xlib.TrueColor, visual_info)
234
232
 
235
233
  visual = visual_info.visual
236
234
  visual_id = xlib.XVisualIDFromVisual(visual)
@@ -303,6 +301,11 @@ class XlibWindow(BaseWindow):
303
301
  protocols = (c_ulong * len(protocols))(*protocols)
304
302
  xlib.XSetWMProtocols(self._x_display, self._window, protocols, len(protocols))
305
303
 
304
+ # Overlay should allow mouse to pass through and stay on top.
305
+ if self._style == "overlay":
306
+ self.set_mouse_passthrough(True)
307
+ self._set_wm_state("_NET_WM_STATE_ABOVE")
308
+
306
309
  # Create window resize sync counter
307
310
  if self._enable_xsync:
308
311
  value = xsync.XSyncValue()
@@ -436,6 +439,16 @@ class XlibWindow(BaseWindow):
436
439
  self._applied_mouse_exclusive = None
437
440
  self._update_exclusivity()
438
441
 
442
+ def set_mouse_passthrough(self, state: bool) -> None:
443
+ """Sets the clickable area in the application to an empty region if enabled."""
444
+ if state:
445
+ region = xlib.XCreateRegion()
446
+ xsync.XShapeCombineRegion(self._x_display, self._window, xsync.ShapeInput, 0, 0, region, xsync.ShapeSet)
447
+ xlib.XDestroyRegion(region)
448
+ else:
449
+ # Reset input shape to default
450
+ xsync.XShapeCombineMask(self._x_display, self._window, xsync.ShapeInput, 0, 0, 0, xsync.ShapeSet)
451
+
439
452
  def _map(self) -> None:
440
453
  if self._mapped:
441
454
  return
@@ -730,7 +743,10 @@ class XlibWindow(BaseWindow):
730
743
  y = self._height // 2
731
744
  self._mouse_exclusive_client = x, y
732
745
  self.set_mouse_position(x, y)
733
- elif self._fullscreen and not self.screen._xinerama: # noqa: SLF001
746
+ elif self._fullscreen: # noqa: SLF001
747
+ if isinstance(self.screen, XlibScreenXinerama) and self.screen._xinerama:
748
+ return
749
+
734
750
  # Restrict to fullscreen area (prevent viewport scrolling)
735
751
  self.set_mouse_position(0, 0)
736
752
  r = xlib.XGrabPointer(self._x_display, self._view,
@@ -899,8 +915,6 @@ class XlibWindow(BaseWindow):
899
915
 
900
916
  text = text_bytes.decode('utf-8')
901
917
 
902
- self._clipboard_str = text
903
-
904
918
  xlib.XFree(data)
905
919
  return text
906
920
 
@@ -1519,7 +1533,7 @@ class XlibWindow(BaseWindow):
1519
1533
  """Translate mouse button values to match mouse constants.
1520
1534
 
1521
1535
  Given a Xevent.xbutton.button value, convert it to the mouse
1522
- contants defined in :py:module:`~pyglet.window.mouse`. This
1536
+ contents defined in :py:module:`~pyglet.window.mouse`. This
1523
1537
  means shifting the value, and also skipping over values of
1524
1538
  4~7, which are used for boolean scrolling.
1525
1539
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pyglet
3
- Version: 2.1.5
3
+ Version: 2.1.8
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,60 +1,62 @@
1
- pyglet/__init__.py,sha256=tFPLt689oCGHM87IvR3vss2bdDzFdPb9pA3LiCEVqsc,21486
1
+ pyglet/__init__.py,sha256=m8hplk9KpN4s57FbHy8FlYQy4HUNxJE-hSLg90ROnIA,21146
2
2
  pyglet/__init__.pyi,sha256=g-eSsTUa4WDTqTULiN7cRqagvW58NGCPLj9sabXRFjo,2005
3
- pyglet/clock.py,sha256=kGQIw6WDFOHVi5IQKCNyoOlOf65B2gVk342M200MaVo,21892
3
+ pyglet/clock.py,sha256=ZiYHckYRIUKuN1XmywQc3Dastd7O40Lw2XeMjC3iMtk,21892
4
4
  pyglet/customtypes.py,sha256=e9AB-8WPPhhZXqfDEf4r2Lv0vAQUBjwig5EBejBDz0k,608
5
- pyglet/event.py,sha256=GvtY8dsJjEYeIZTlZ4BOZY4kff8Nme-yMQBMtob0ke8,18533
5
+ pyglet/event.py,sha256=XF3NPI7ilwUgK72Zxe7TBOAWqEG1sEqbQAJ7uKn_v7Y,19209
6
6
  pyglet/info.py,sha256=pDfF59S5uuo_QouRG3I-0j5WVrwxpVYH8EzH2a0qx_8,5835
7
7
  pyglet/lib.py,sha256=Mj1W_KDmUQXMg1iPLrM0pIIHDyWPO38J6qvoU_hXKjc,12013
8
- pyglet/math.py,sha256=BCSmydmyvRMov1t6GUXZ8Em3F_8TjU82cyvTqMj-QfI,55528
8
+ pyglet/math.py,sha256=ROeohsBXu8jlgC5rF5HhuQvOxxvDhOOBQb32HDJFuBg,55413
9
9
  pyglet/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  pyglet/resource.py,sha256=EknGIAxDuc8prrGd5faOM4MNPT2q6NN4r3KQlrRg2dM,29374
11
- pyglet/shapes.py,sha256=olO03zKIg-opxoXk4hgRKRWI0PouXg3KDcN1GGhJhFs,97419
12
- pyglet/sprite.py,sha256=hZKXYxvG82rhpagVqCney6KSEF5IAFaqqJC5O-uynHk,28701
13
- pyglet/util.py,sha256=b6Ji84EwfJ3jh54FHLTmwvvvbabxJwHFiU6NaXCqMQw,8646
11
+ pyglet/shapes.py,sha256=KRJz1lLN_jJXBYuW3AWVazbAILvHkJpVnxuo0Dmq_Jc,97445
12
+ pyglet/sprite.py,sha256=DWMiCG1wO5ySEe_Wn7pPzgCOWiG1NceodtViD4nBbLg,28701
13
+ pyglet/util.py,sha256=OPu-Lw5Rxu1NMcsXBSM3Y-_3r2J09OjmdfUUAqSWvfg,8647
14
14
  pyglet/app/__init__.py,sha256=Cc21DTHddyf-YaTvwiZ5y6iKmrnEgyyVAdjVBAbiw5Y,2879
15
- pyglet/app/base.py,sha256=xksFpBE4-0E65DiKKPn4ZnS6jPBC2y48JEmdqDkOMUo,11594
15
+ pyglet/app/base.py,sha256=-rs9nvLoizNvbQfKQ0OGAnbDShpjnt6pAW0EFHLY9c4,11596
16
16
  pyglet/app/cocoa.py,sha256=BDwwbjXyqqU0uzMfRI8YqgtkELcSCobU0Wb3h3TagPs,10814
17
17
  pyglet/app/win32.py,sha256=252RfeIBB9TtytMf1bd6Zc1FDF0W3bukCJAlqfP4ioM,4340
18
18
  pyglet/app/xlib.py,sha256=7gBureT60LHaROH9ah1jC62FwqsOZqNESPu1HpilLAs,2524
19
19
  pyglet/display/__init__.py,sha256=qz5Zy1S8XfapRys08uapOZK4N8Iian68yPCla505dcg,3313
20
20
  pyglet/display/__init__.pyi,sha256=JRd3vFMahd1YC3r-uPgr99V9yAmiut1QZXKMFmstg5o,65
21
- pyglet/display/base.py,sha256=uxNmwkKG6u1aR0FKj6HPcPtixiWoQbsAqrYMlTXPuHk,9563
22
- pyglet/display/cocoa.py,sha256=DULyq1maTlaG36PH9vB23mTUlwlaeZIfkaY0jk-Q40E,5562
23
- pyglet/display/headless.py,sha256=TJRak_6wAOwvLJjb_fTzbqTLxfMdgeSlDfiS7mTbJac,2156
24
- pyglet/display/win32.py,sha256=e0PJ6nEItHS2_vCpKZUii3lHZOWm3P6TLUUwFg9USu8,5142
25
- pyglet/display/xlib.py,sha256=RIGQvxHTKVNNv0KRdU-jiL-7jdv8X4iZUZxtG9_Zs68,9378
21
+ pyglet/display/base.py,sha256=o8TYTl1J4zdy4pRJy9HEz4sOLqmdVMhNRFcrTJKP4U8,10142
22
+ pyglet/display/cocoa.py,sha256=mW3Npw4PjeH29xnAuww6pRToO3Zh4v_xWTEVKubqIAA,6391
23
+ pyglet/display/headless.py,sha256=htAzHNvKGQHMFYkiX70K-0ZHzg-edirP4Z2qnW79GdE,2156
24
+ pyglet/display/win32.py,sha256=BqlRbIcDrgavU7pKTCn2bAn3U5sHU0mUpoiCjxPLyBw,9449
25
+ pyglet/display/xlib.py,sha256=6_SjJuqgDesW_jqwrQj7fjX3Csm8bVItnfBUxXds6BY,17264
26
26
  pyglet/display/xlib_vidmoderestore.py,sha256=fkcVbCvwQ65UDvAxaIZb3JV_bAWONVgw7l-6UJhEXTs,5663
27
- pyglet/experimental/README.md,sha256=CdgjOAzL-9A92ueJ8YCgW2y4wNG7bkEbrZSl9PJYBFk,221
27
+ pyglet/experimental/README.md,sha256=bipJa3Y-kpEu9Uf_HNZJR00AAbfpUyGAKGEFdRY8YsI,222
28
28
  pyglet/experimental/geoshader_sprite.py,sha256=emDi61iMeGsQLKoXtvbKOSRDrJJX_TRkZQdMcUp0mNU,24652
29
29
  pyglet/experimental/hidraw.py,sha256=NDhvvgOqE4CuEL9T1EqtzMR9ljOSdRIepHkEnG_Tazo,4952
30
- pyglet/experimental/jobs.py,sha256=zI9MNb165FoNF9Ov3Sp47ejV_b0XDvZsv5kwURuQu38,4459
31
- pyglet/experimental/multitexture_sprite.py,sha256=ahXz583gvEZ7QZ5ans05FMiCjCeqTO218i3rUgcnEdM,20874
30
+ pyglet/experimental/jobs.py,sha256=dpc-HhuRgKJo48zvW0BPsjAeLSlGkwxx9nK8hgQKdYw,4459
31
+ pyglet/experimental/multitexture_sprite.py,sha256=rOmo8Kmuq_aUNcKosoQF6Tj5x33z4xnzfcmrNcanWvw,20871
32
32
  pyglet/experimental/net.py,sha256=wYRCuDb2YEKzkGKFhG25Fwe8PXU0aJp5IZ5JdaSyUjE,7680
33
33
  pyglet/experimental/particles.py,sha256=Rt0QxNvQ8uodpf2zwOHVZSBx2jlwjxwYGtLwuaI0m8A,14538
34
34
  pyglet/extlibs/__init__.py,sha256=rbqvpywhuc1ZNYmTQ_mHoL07CrYIlNbKhwyhH7KygUo,128
35
35
  pyglet/extlibs/earcut.py,sha256=uww7nwDtc0moYR-3wkeOpYNUJYCzov35h3vQQ0XnL-0,19281
36
36
  pyglet/extlibs/png.py,sha256=u8AAGIZPWdGxlrBaOQYVBwpjiay3CKJ1AMrKrwimDHE,81404
37
- pyglet/font/__init__.py,sha256=MpFO_qdbb3kikIX2-ErrG0v6Kv6XnfbVhcAYx9L05nk,9005
38
- pyglet/font/base.py,sha256=v3aJYwW3SYqaF-g66H9xxAZyal9RHnKxUf4vQOCmQFc,17950
37
+ pyglet/font/__init__.py,sha256=KSCDEOq5cKHBeTgKMeasAwxlcPqgqJmuepk938oRtcQ,8997
38
+ pyglet/font/base.py,sha256=a5x7ifiZ_qggZNAOvQPLHDbrmRSTT8dFr6uxseczgLo,18138
39
39
  pyglet/font/fontconfig.py,sha256=ZyqI-HJ2uKwo-wvOXz2Tgf9VDT8JplzRvlu4nww48DM,14422
40
40
  pyglet/font/freetype.py,sha256=zQd20rQTCFC1cCD2H4bCZWTLH8DMDeoYjhgW4DcCG7k,20162
41
41
  pyglet/font/freetype_lib.py,sha256=SiSsHv5J1zVtCNWYNqnXDT4iGPJsBzrxVXUASEhAuJY,21489
42
42
  pyglet/font/quartz.py,sha256=3MYuPH_PWaGY4I2Zp_rFZl2g5GwFxyisMTMdGF1oDPs,25849
43
43
  pyglet/font/ttf.py,sha256=xrTxY02uGcc3s9xG60iu4x4HzDfxuTwAyT8KFfJ8GS0,24225
44
- pyglet/font/user.py,sha256=F4e1tLVTdt8AnY0Sw5As7uk3Bf3DhSlzpMQNnOhGtE0,12429
44
+ pyglet/font/user.py,sha256=0Aizb4EFq--kgxVn9K-uznKxzDSBBgLC8Sj3hC4f-V0,12429
45
45
  pyglet/font/win32.py,sha256=lZpmzFgZJvit2PK15SwpFtP__M_qgrc-laEna7pQP48,16460
46
- pyglet/font/dwrite/__init__.py,sha256=XxkLn5SSUM4bVCrKg56gjwAJmbDVJMtVhb-rpMWs77A,53525
46
+ pyglet/font/dwrite/__init__.py,sha256=YhGwf8-2GCPL-euBYwf_ccWCMC0PRMrC_tiSaJTmlog,53796
47
47
  pyglet/font/dwrite/d2d1_lib.py,sha256=dqLJo33Xt5WiUWaXnrTPQKGQFclzcMV8ysRNtEHGrqY,19563
48
48
  pyglet/font/dwrite/d2d1_types_lib.py,sha256=-vzx6qyHfdFQ6n8Sf38LxYRNWFDnz_zJR_AvnxFPEDU,1201
49
- pyglet/font/dwrite/dwrite_lib.py,sha256=D9nd4UhXm0EXQVhfG3EvkdsntTvY0D2n54i2P7ck6io,51437
49
+ pyglet/font/dwrite/dwrite_lib.py,sha256=Rbq9020ERYO9ZpVWrCGK3prXev61lo_-6JQ5RM69da8,51437
50
50
  pyglet/font/harfbuzz/__init__.py,sha256=7n-PkTpCjwdJfXTyrroFNyBwt3axpMGXMVqX0ipUnHU,9742
51
51
  pyglet/font/harfbuzz/harfbuzz_lib.py,sha256=en7JiJRJ2EkuiVekSoKXi9YZ4p1ptQsVs2RWYMO02UA,6761
52
52
  pyglet/gl/__init__.py,sha256=nbbjbSbiVS7fwF67e4AspOp7HsplljZ02njQJ0V_yHc,6039
53
53
  pyglet/gl/agl.py,sha256=7xsnp56xtHM0Wb08Y4oin8zI9A-VMpdkqD0s7ozA990,26720
54
- pyglet/gl/base.py,sha256=qapIIy2MjZDQJzZwwSbwU1I5Froyy1at9gTiJ2SEVDw,18056
55
- pyglet/gl/cocoa.py,sha256=2HA5X8z9EIiBkSBbWvj9IrwKIn5btneOlnVE9wpx-EI,11137
56
- pyglet/gl/gl.py,sha256=nG82YDZ5zoigzqC0VkE2lXf-jzrKsXPALIayBrRf5L8,212731
57
- pyglet/gl/gl_compat.py,sha256=SmJCH0PrhON4sB_ZMWyWlK_Ro9dpIduHBn5xPqQxIJs,277427
54
+ pyglet/gl/base.py,sha256=i_Rl1OJ8Mb0Eim23QTZz9i_lMZYtK4DstbQDmySztug,18248
55
+ pyglet/gl/cocoa.py,sha256=fJ0jy7nh_ZsbeKyepKa8qfCKyILh1U2XhsY0lL3bjPM,11304
56
+ pyglet/gl/gl.py,sha256=FBBC1aOMEGLSwLYYbGeN7MoSq8QAjypFvbzgA1yiLU0,212739
57
+ pyglet/gl/gl.pyi,sha256=BzOwRCF-IUQ3JT1DZzmhNkFnPp3x0b3FowwdiTLw1w4,136690
58
+ pyglet/gl/gl_compat.py,sha256=RLGyahf73GV4hKz2H85pBUILy2XSyvB3A8WYMu2qqy4,277409
59
+ pyglet/gl/gl_compat.pyi,sha256=7jEPonR2plG8QSrPhCwOIw7tc59SX8sd7HUNTnTiE6k,174795
58
60
  pyglet/gl/gl_info.py,sha256=bTzMS5NVaibRAN1GbjfjcH3EYDrE3NWIgLuA8xVh_S8,6410
59
61
  pyglet/gl/glx.py,sha256=-Wzb75Jq3umLw6fOB8p8Pf3fUQFUfR8_o6_UK5ZgPIQ,29144
60
62
  pyglet/gl/glx_info.py,sha256=h7Dzo7qcRzujCKf_kmpNoSjfCCP7FiCnEelcUXu_3hw,4154
@@ -71,22 +73,22 @@ pyglet/gl/wgl_info.py,sha256=gFOL9Y10crsUgam-pJSCM3Hq3fHNpQHGdR6goj92thM,1082
71
73
  pyglet/gl/wglext_arb.py,sha256=j87We_bcA5qibuGZTYOed9AIi4_Np9cpEL6lXZRpqgU,71614
72
74
  pyglet/gl/wglext_nv.py,sha256=lfIS6b7y6pgvoOoc0ykdp8-UV7xwdViFihpdTVSo2z8,70974
73
75
  pyglet/gl/win32.py,sha256=8nfLL2JVXD8Tt1nHNmM-4nQ-4OQ029Etvt4c2xwz6AI,10464
74
- pyglet/gl/xlib.py,sha256=DTX3fJEaNChjF50XMCPFOnYR33ZUDh32m1oNa4jft6E,10155
76
+ pyglet/gl/xlib.py,sha256=q6BNLJ9lujt3P-0xh3CAvJHCFERAuLSUnXOgeS4jZhY,11357
75
77
  pyglet/graphics/__init__.py,sha256=O4O7fCQBI7qPReI8tUwLwArJHTWcoE1c_SotlHyUb2A,27940
76
78
  pyglet/graphics/allocation.py,sha256=0MTwkK7-00UDs2xl6Te7cf0ljC2mmsOQMbx0zKZCJOU,12430
77
79
  pyglet/graphics/instance.py,sha256=pzIaxO0EZCeoQDMR-qzjo4ahwfcbt3dDZm9UinYpZo0,2202
78
- pyglet/graphics/shader.py,sha256=XG6zMYt6PPSplVstYws43qQEFY5qJO-UZ2DV5O7lDCA,63555
80
+ pyglet/graphics/shader.py,sha256=OV2Fg_mgER5JD-n3pRvrsbQzGuw40J3fC97kDKI2nX0,63900
79
81
  pyglet/graphics/vertexarray.py,sha256=BWJFvP79JHpKwY91mrkjjhlbK3g87nIpMbCsc4FCcEg,1371
80
- pyglet/graphics/vertexbuffer.py,sha256=_z8Yq-U5tsfWj1VU-onfGNeJB10fgtLcTIMBMBXEZGs,15283
82
+ pyglet/graphics/vertexbuffer.py,sha256=SbtT2cNSXwPMlQRGf2DxTxZCEyj0AjEEDLLdho-ojG8,15284
81
83
  pyglet/graphics/vertexdomain.py,sha256=Y4tAi26ABf5kLBGJ0QDvTVeWEL2vSN4HuIeS5svZjsg,32764
82
84
  pyglet/gui/__init__.py,sha256=vW9yvUBoKz6nG-VpyIYwHMmq_y_2LWAZvFW9LYQALog,77
83
- pyglet/gui/frame.py,sha256=-_RHDalwIEiLIR1JkxzUAiypr2PqxgWW8psI2CAkFcE,8413
85
+ pyglet/gui/frame.py,sha256=R9QXswxNAC1tUqB7OA2tt6jATqjghgjRYeZ5WyHoN1A,8413
84
86
  pyglet/gui/ninepatch.py,sha256=f3iOQr6GOhoCUCIcwltsqrEILZz-BhKwnGr9rcsfohM,11376
85
- pyglet/gui/widgets.py,sha256=Ius_Nardt5Z3q747dTDPrkvpjg5wo3jWjC8ppcpNgxU,20697
86
- pyglet/image/__init__.py,sha256=lrFDtbFXjRw7SztxHaDck3fXJ_mBdBB2XgeJoj1_svw,83851
87
+ pyglet/gui/widgets.py,sha256=FBSsZRgOJrW-9kRGNtYrCdqed1zkGIFWmd-H0aZXK_4,20698
88
+ pyglet/image/__init__.py,sha256=1Axruxq_hul8RXY3Pxp5_JNhuVxbtJdivGfMKPdku0E,83852
87
89
  pyglet/image/animation.py,sha256=ThMlyHFlqQkCRh7WdlCRy-uhMN62rFiME_qSxBUaEB4,5564
88
90
  pyglet/image/atlas.py,sha256=svY5NWVVAjIhtGEeAJS_4PcLtg8QctPIBrpa_4C69KM,9913
89
- pyglet/image/buffer.py,sha256=YiYxohlR4-hA3o9S2RUqkj7wYX_ExgG2l4YqtPqDTHw,10824
91
+ pyglet/image/buffer.py,sha256=hA9QNr08euppJ5Kb6ibMLgpORhHORic6uwFTd26fR2U,10823
90
92
  pyglet/image/codecs/__init__.py,sha256=NXBFOb_v_txapXwZcp_x3vtf---ShInVtdobsfULGcE,6559
91
93
  pyglet/image/codecs/bmp.py,sha256=hYmxGiwgqcJrJpdFEHEt8NvLzRMbH-V8VFlXPlJoP88,10638
92
94
  pyglet/image/codecs/dds.py,sha256=SwqVrBp0-5Ku9cI-C-p3taJ3FcLWYH_RdLM06QSuBIc,5648
@@ -100,11 +102,11 @@ pyglet/image/codecs/s3tc.py,sha256=XsBcl8tOli61BVEoukb-9Ydw5aPSyydlJXWDC__W84Y,1
100
102
  pyglet/image/codecs/wic.py,sha256=tPZssIDdkoiJedvM99nHB0ON1KH_n2JF5Vx7pfRbEjs,11156
101
103
  pyglet/image/codecs/wincodec_lib.py,sha256=G2FSx9j9gMXpFOGUMt0a06C_DBv4LEaoAg103PW2Vx8,14602
102
104
  pyglet/input/__init__.py,sha256=AGo55xX3yMr8TmeNXNFFwAY7WXrsA1rV6GgDRV-0faU,6417
103
- pyglet/input/base.py,sha256=AyhPZMjEr63GVbWFscJqH7eIVAOiTJw0aeMfBcDpdaM,38905
105
+ pyglet/input/base.py,sha256=Raaxm8XD11L-UZ5-jRTde0Js3LOZDQMR5JB1nexo2-g,38949
104
106
  pyglet/input/controller.py,sha256=kkLXJHyVePSlwagV9D7MN2QPjX9qjSk_avPI6G5Zud0,5548
105
107
  pyglet/input/controller_db.py,sha256=KFgHVcwDKO6nC6qw_JDT-fE7BsgsYh76aKupc6fOKJY,196312
106
108
  pyglet/input/linux/__init__.py,sha256=fd8rAts7soFEND4l5rUtLmEwK4rRpfFZ7Ibj9EOcrrA,391
107
- pyglet/input/linux/evdev.py,sha256=u2dcCuBZ4C6_7e7aabTE4HzdTYtqRKVB0m5WMqikNRE,18200
109
+ pyglet/input/linux/evdev.py,sha256=8EmikH5473VQjaRlX-JfyGSDwSIFkUDkuPd-DV3L1uQ,18168
108
110
  pyglet/input/linux/evdev_constants.py,sha256=7nCbrg7Wh3hzlRnW3b0XjMNz_od5qCZ35ewMtIpWqkw,9789
109
111
  pyglet/input/linux/x11_xinput.py,sha256=eezRkEM_Xl8MJcvHpGXUjliz4E-DBVEUNNooWr-LT_k,10939
110
112
  pyglet/input/linux/x11_xinput_tablet.py,sha256=wnLrTQLwtAOrOPac3BJPXqBP_nygwRJtnHmdzJoCFjE,2959
@@ -120,7 +122,7 @@ pyglet/libs/darwin/__init__.py,sha256=Kx8qOx_xjgLZj9pf9qDj9-tZiWbzKfSmnmIeMaAiVn
120
122
  pyglet/libs/darwin/coreaudio.py,sha256=H0kpmJXPxSUHST56yxucV4iPhYd5SXduJjQ5dRQsNX0,8991
121
123
  pyglet/libs/darwin/quartzkey.py,sha256=FhwLyotAdlhJIvmGX1JNPkB0kxPhedRb-9NeRh_HTwg,6051
122
124
  pyglet/libs/darwin/cocoapy/__init__.py,sha256=LvkMAtOc0SGfyitALT9FdCTUvZ6dNzcFF7kDyrhu6GY,1798
123
- pyglet/libs/darwin/cocoapy/cocoalibs.py,sha256=n7RuMzF1lqsOI-Atcb-Sify6nLAwb9JpkRMPaaoYLd8,26001
125
+ pyglet/libs/darwin/cocoapy/cocoalibs.py,sha256=GLr7LRQTxQq3RCGeHlSplPmq3tGjUVsr-kS2fC9Ax00,26062
124
126
  pyglet/libs/darwin/cocoapy/cocoatypes.py,sha256=UNymqQdVNrq7T6jIupCgRgoxgm51hhQW-R42Y-tRP00,2629
125
127
  pyglet/libs/darwin/cocoapy/runtime.py,sha256=KaI64id6cESiJ40SxZHfP5YOVHw82CHMGCzNPzUSRiA,65492
126
128
  pyglet/libs/egl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -130,13 +132,13 @@ pyglet/libs/egl/lib.py,sha256=IdQfLfRPbTckgNBEIUumdmEQ6iSWiy1nhTnkTTzaZ6M,893
130
132
  pyglet/libs/wayland/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
133
  pyglet/libs/wayland/gbm.py,sha256=iv6IKaB_U9t3s8njo0zy29rksbFPKEYlmGjF7wHjYr0,13388
132
134
  pyglet/libs/wayland/xkbcommon.py,sha256=GCQ2mONKCi8MPwNfeL8t5JdszEoYhvEqrPUGDFE30xQ,20657
133
- pyglet/libs/win32/__init__.py,sha256=FXs97KHHet36nDG2eKJXpDDsHhbs42C7vR4AiDf_vnU,14334
135
+ pyglet/libs/win32/__init__.py,sha256=FKb-ylogLYxyYZUO48SxMKB3ASjbDsYQpi4t4Wj6dRY,15085
134
136
  pyglet/libs/win32/com.py,sha256=E4lzOzkmPRbV0F6Hj1MH_PQK46N_-USaOjPJbjgrXpM,17607
135
- pyglet/libs/win32/constants.py,sha256=ITFRmoOYt_buQkk7MiwSIDlhZuLkPpsuQyH81c3dE3Y,121339
137
+ pyglet/libs/win32/constants.py,sha256=gL787XYVx2d63ue5dVu1HXCONfZc64yUiRFihpD3P9M,121484
136
138
  pyglet/libs/win32/context_managers.py,sha256=pNCpws8Xc-HP19jC42gtWSdC9m1s6sP8H-0mFyiEz0A,1433
137
139
  pyglet/libs/win32/dinput.py,sha256=V6ZttG3OpTL4gbEJqq6RHiqRFxORzjoxzDjrOGNiZYk,10849
138
140
  pyglet/libs/win32/libwintab.py,sha256=Qw2UmNG2-rZov483o16qjFtywwMGBJbDbIuKl_NFLe8,10901
139
- pyglet/libs/win32/types.py,sha256=qMkX2f4JaHvT8UDCWRobS_mG103pPcTFOv1NuXmkd40,15703
141
+ pyglet/libs/win32/types.py,sha256=WFymMQjljgoPaLaDLj-wL_vFZ-clRRJ7XGf7Rgwj0gE,18485
140
142
  pyglet/libs/win32/winkey.py,sha256=0yKZTOyrGirM3oAIhJRUgiKwDgQ_XF0_k9KRXf3MJaQ,4667
141
143
  pyglet/libs/x11/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
142
144
  pyglet/libs/x11/cursorfont.py,sha256=31GFWHJWnNrmaiF6uvjUdLSM7gBL9DL0kjnfxjM8jAg,1451
@@ -144,22 +146,24 @@ pyglet/libs/x11/xf86vmode.py,sha256=YkdY2fG2K_TsF7nKuxD6RYALXNcsJD6dhw7Q-C51YX4,
144
146
  pyglet/libs/x11/xinerama.py,sha256=T015JX3e4pqV_zcShwTKOMic9G7A9rpCZacF0J6v-EQ,2182
145
147
  pyglet/libs/x11/xinput.py,sha256=RE0aMlSl4uJsWC2lfyljfiWX-LMrXHnIVjX2rbkWwsc,54556
146
148
  pyglet/libs/x11/xlib.py,sha256=JRcqjnIyA4K8nnC2U3_sD9Rrc9r-HS_MVkBLkfOqQxY,188808
147
- pyglet/libs/x11/xsync.py,sha256=Ui_k4As8aNj2H3nA64HLgCHt7kupweY-LXVST-E3EXk,15202
149
+ pyglet/libs/x11/xrandr.py,sha256=ogsIZ0EAHAS-u4qaegTJKeI9_AJed6qfIiW8S4GIL3I,5407
150
+ pyglet/libs/x11/xrender.py,sha256=-Ik-9qKu_V3ZiOG4kehvJbEVYOXsRhTHy1y0LrNL3cg,1172
151
+ pyglet/libs/x11/xsync.py,sha256=mUM27lMC-KhnoYT9RZkdCnZ7HWoqHdP9onvnfOxDElI,16381
148
152
  pyglet/media/__init__.py,sha256=i7u3ZMWLslxyrEEfFdz_MQB4P0qazD_RUHA5PSxZLPE,3515
149
- pyglet/media/buffered_logger.py,sha256=FtNqz-WcPLDE6lMOIWMgBwks1W5u1mLZX8f2CAHUXuU,1025
153
+ pyglet/media/buffered_logger.py,sha256=3B64IdPSWiQtHteT1ZbdBmd9NLB8_bDvNJ4AE6sZQ84,1025
150
154
  pyglet/media/exceptions.py,sha256=ftERqNPFB2F05Ml3jx3t-0_SXtgNWwZO9DavsGRN8Nw,152
151
- pyglet/media/instrumentation.py,sha256=Wc6pJ82fAEr339gOJgr8M8jIqPGiGihJGEjYIaVqK-4,10798
152
- pyglet/media/player.py,sha256=PyumAIiXmkxXggB00NUP8vSTVcjoHdlY_7p1JqQ8104,22533
153
- pyglet/media/player_worker_thread.py,sha256=xOj9UYnKbEfkZDjj3oBzMLSkWjXP9ctgrVRKxPOdhZM,4296
154
- pyglet/media/synthesis.py,sha256=SeCvPKhv5FzRQG2gonoE1H2gGWutGssCsIn_ZMeKhCU,13158
155
+ pyglet/media/instrumentation.py,sha256=omCYjxTzbnM5Z3U6viAgJOPICwbx1dEjDTVE37Y0z0w,10797
156
+ pyglet/media/player.py,sha256=TtAJvZ1dwqtHy-keSWk8rK3zjICrhdintT42s8uqSEE,22532
157
+ pyglet/media/player_worker_thread.py,sha256=88AL-pArZMCjSnjxU-nCSfUNi_GXg1u_WYdRhAyCbjk,4297
158
+ pyglet/media/synthesis.py,sha256=ToaL2Y9y8cIjHHjlGHxpiBZqpfpBcsYFFgtutw_N1cE,13158
155
159
  pyglet/media/codecs/__init__.py,sha256=K7zxWvfJog9DLhRJ25diBD3pxn6u7ZwKU0T2NKuq90Q,3428
156
160
  pyglet/media/codecs/base.py,sha256=66qizZ5_6qaSBJXI7s3JpZMKM2iQzpX8NzxpIT9hYIc,21324
157
161
  pyglet/media/codecs/coreaudio.py,sha256=pPhbUkzVNhKnhKaD2hiyuo8kkgTKA26L0WKGB742Rv8,6838
158
- pyglet/media/codecs/ffmpeg.py,sha256=XzLMfBceYRKYfY2OS7S-VVoLdwceX9J5JSzuMFAWxYU,44733
159
- pyglet/media/codecs/gstreamer.py,sha256=RdPn1qKJ1mX3WbWBDykIRact0eIoOx6I6ORnlb6vNik,9250
160
- pyglet/media/codecs/pyogg.py,sha256=dFHsM_twcNQCZIwIHz9ToUagbSxdlyWKPlTddnhKWvQ,17727
161
- pyglet/media/codecs/wave.py,sha256=LsZzQgkR2372N0xSctehtwYZNehJC1i92PedvcaY9E0,3566
162
- pyglet/media/codecs/wmf.py,sha256=_zNscIc3A3ZvLB4wDVlFBgL3fxDYgfoyeHplZ01ILYI,33757
162
+ pyglet/media/codecs/ffmpeg.py,sha256=aSxtzRBh1wL-VNUrZtYcW91Do9Re0QAhE9Q9iLoMk4A,43816
163
+ pyglet/media/codecs/gstreamer.py,sha256=kzg4k7aBJdIq0SubUuXc9p3dHP4gtGfP24dQcR28wOg,9250
164
+ pyglet/media/codecs/pyogg.py,sha256=eTUI5Kty1HpMyWsVWQeXchl03l7I0HSo3j2VJbhftE4,17728
165
+ pyglet/media/codecs/wave.py,sha256=zYA4z52BHE-q5Gl4YHL1ujdtC69lmkUsJ6o69OnStUY,3801
166
+ pyglet/media/codecs/wmf.py,sha256=CpBuhvb8U1N11sLrxAVEao_37VAHBS-yMk8ZIQaQzWQ,35263
163
167
  pyglet/media/codecs/ffmpeg_lib/__init__.py,sha256=MzdctEH9MnPm-ML5rJRvVmpe5EEKAD-9lBsqLNztx1g,201
164
168
  pyglet/media/codecs/ffmpeg_lib/compat.py,sha256=Ltol01bPPL0GEpwTI5A2TnZGwbRAAQR7UNDjHBVDuX0,3406
165
169
  pyglet/media/codecs/ffmpeg_lib/libavcodec.py,sha256=whqIumoRKqKczy522DGxs6qv6nrRIUtzHRF3kUvNa04,23543
@@ -169,14 +173,14 @@ pyglet/media/codecs/ffmpeg_lib/libswresample.py,sha256=PewYX9cs5XxgttBpQ95xyqs_T
169
173
  pyglet/media/codecs/ffmpeg_lib/libswscale.py,sha256=1LwIfnufNOBsCMVOzDz13vdUKv966rsrw8kDeblQSXE,1527
170
174
  pyglet/media/devices/__init__.py,sha256=X6cc8vMKg_HsVCmjqzamCgvNKqXiyLrjXpz-vnVxm-A,773
171
175
  pyglet/media/devices/base.py,sha256=n3RxJD0_yc50juY0nuZ2eGLH0xG0pyn5giMZ9_RSBO8,3218
172
- pyglet/media/devices/win32.py,sha256=mdt4NO7oC9Q4cCuYJkdPsxsoEEEpIW7uQ0Rw4qHkwGk,12482
176
+ pyglet/media/devices/win32.py,sha256=a1wxD90RAsOQIe1FAu9q3DHGTqElZSZk83JxFHY4M58,12481
173
177
  pyglet/media/drivers/__init__.py,sha256=0kCu8B8-YLkGBp2_Jwu6A1QFjbm5KgmuL7aMEgQ8OGM,2463
174
- pyglet/media/drivers/base.py,sha256=z1r51IYtG3qPDWQpsv-tzHXi9I2u7B8-Y0m1HqRCdYs,18474
175
- pyglet/media/drivers/listener.py,sha256=R6OReQzUX8xcLURgtxejhuXJhyv7nl85q41yDfvd5eU,2438
178
+ pyglet/media/drivers/base.py,sha256=QIywhiWE2DHbdoKIntzBXL7JyYKHtH8JHQnNZhXgvlc,18475
179
+ pyglet/media/drivers/listener.py,sha256=XYKlPPWMkJ5L_IPPNo4pL0k1wSZjkapBh7dAw822llk,2438
176
180
  pyglet/media/drivers/directsound/__init__.py,sha256=4pZuMWsqb6WFQXH8lV-5XFb03KPL9J5jY3dZ_91nJsg,251
177
181
  pyglet/media/drivers/directsound/adaptation.py,sha256=DFn1B-PKwTnTFfzmNjL7QsoUk_1oHJKsasX3wsHNnP8,12133
178
182
  pyglet/media/drivers/directsound/exceptions.py,sha256=DNslGA8HwhO1ees5Rd4dpH-wtSTax2UtLPEUKyev2oo,325
179
- pyglet/media/drivers/directsound/interface.py,sha256=4IsP1gldLZx4dvzs6ZkB3nv2VaZxysnADOYpf_kbv28,12655
183
+ pyglet/media/drivers/directsound/interface.py,sha256=4B9jEUSBr8aconkkn-q-0x7PeUsGDP8JqehyBSVfVWs,12858
180
184
  pyglet/media/drivers/directsound/lib_dsound.py,sha256=2jH2uV_Ps5fyjY_VRyVT6buIUEjS-6lu84H5sSoy_dc,12713
181
185
  pyglet/media/drivers/openal/__init__.py,sha256=yuks0X4x50nYQsAYAZftgxcI1iqNflxMetSskIipnf0,324
182
186
  pyglet/media/drivers/openal/adaptation.py,sha256=oa8KQd5YoTEipE9dxkJS6MqrpbLiNIpRy2I0RLyHxVE,9226
@@ -191,15 +195,15 @@ pyglet/media/drivers/silent/__init__.py,sha256=ll3SIdXcO5oBn7PolMNKJLPU3yQXQz6KO
191
195
  pyglet/media/drivers/silent/adaptation.py,sha256=HGf4h3RiFExmdMIqgHMHPIH8ffrkZeCREL1RvfOiHQo,4080
192
196
  pyglet/media/drivers/xaudio2/__init__.py,sha256=RipwpSVIsNEqgUYYFA0TbxHEBl41pre0XB4sFRQvBg8,128
193
197
  pyglet/media/drivers/xaudio2/adaptation.py,sha256=uV2U7Em2GGWJBtve7Pv9jUjpOYVglhIxjw53kKmMW38,12769
194
- pyglet/media/drivers/xaudio2/interface.py,sha256=oODofuHnTWqcfgGT94z7YrSIUYvEUAugRMkzBo9nvRk,25017
195
- pyglet/media/drivers/xaudio2/lib_xaudio2.py,sha256=-2qHTRXD7kt07X95JinNhCPcpbGASSXoWh1uKj4ompk,27869
198
+ pyglet/media/drivers/xaudio2/interface.py,sha256=TQw2K5YEymz62OYb79WkreuNNS9Ot1MDvpKrnWhTe_w,25222
199
+ pyglet/media/drivers/xaudio2/lib_xaudio2.py,sha256=OxFN0lDf1v-4eSRMDeU98ZyrunXGUBOCYwg34rvHGfA,27869
196
200
  pyglet/model/__init__.py,sha256=Sfq9xkgJo3EEtTHqG-6kfyPuXX6GZGzz76WzkH1tEhg,14584
197
201
  pyglet/model/codecs/__init__.py,sha256=7ezyORi1RBfH-KAmcrfHjNxe4LSTKJDpG4BXHJ-ghwU,1450
198
202
  pyglet/model/codecs/base.py,sha256=887X8f3ZeePihCI4GSbhjY4oqsaVP0qMtqCaMLSZd94,4380
199
- pyglet/model/codecs/gltf.py,sha256=VcTvYSaL3uRmuroaHBgV8lKvu4_TuERfrAJleQtb1Ns,14108
203
+ pyglet/model/codecs/gltf.py,sha256=aD6eo7VdFNwpvoquDhjBoN_JL4A2GyXoDl5mQeecwyg,14109
200
204
  pyglet/model/codecs/obj.py,sha256=3fdd-KOymJ21xzxNueDUGEmjuAJAXHyGIDdGIqCGnLE,7984
201
205
  pyglet/text/__init__.py,sha256=126ecTwSkbrVlkzPgP6MLPrROVF1aMSmZEdpKfXdayc,20463
202
- pyglet/text/caret.py,sha256=scIhfa5VXsHGmL3CMePSrb1DqV_enQkVBV-XSWt4H48,21425
206
+ pyglet/text/caret.py,sha256=BQ4QdMinhNKt7lFULJw__mbVIEyZ7FABTHlcOBSdKSY,23356
203
207
  pyglet/text/document.py,sha256=M5mpfWfg9OIdSGeE92DNjZi7I16i3Q8LH66SYTayV6o,26426
204
208
  pyglet/text/runlist.py,sha256=mgHXjKOenggrw930LuaQ0694grAq9VCDyWo7Jm_tnTk,13601
205
209
  pyglet/text/formats/__init__.py,sha256=hZVwM1nciPptXpawu9GplNI_XtUpWH3-AmCZLf2m_kI,24
@@ -208,23 +212,23 @@ pyglet/text/formats/html.py,sha256=9DE0-Q8clXzlbBxAEPLmwThaHrfBbFRHwNDeMGW86LQ,1
208
212
  pyglet/text/formats/plaintext.py,sha256=xsh6fMs9FQZelPUiLu_pPp-K07r4jUJw0pYRskHeZQM,515
209
213
  pyglet/text/formats/structured.py,sha256=Zkk8uxAr1pxLe7eAtQ-4tabKjp-Ygz9a1ECecOAAsFI,11400
210
214
  pyglet/text/layout/__init__.py,sha256=40UfnGLx-JczJqL46kLomLB1dPKXR3aqEo3aW9alJi8,6148
211
- pyglet/text/layout/base.py,sha256=a7_bSSA6DV6F5cHaSjeNxh0qauq6PY1rvPvRhgBT1vw,75909
215
+ pyglet/text/layout/base.py,sha256=52dl05tkpaekEshRZLTZ63_SM_R8_HQpTAPVn9jm87k,75910
212
216
  pyglet/text/layout/incremental.py,sha256=sdcQEbhFIOTEbDQQWgqsORjXvpu4Rt0e5rKoHICI-Po,36120
213
217
  pyglet/text/layout/scrolling.py,sha256=UcsEyQTnwENze0FP_nKa4sLY8XwdWV1UIRy5Pp9PU_g,9593
214
- pyglet/window/__init__.py,sha256=SjZVxTPNeQ8JXtOhhilLcn-N5h9wmsokB7wfw9WfIGo,69449
218
+ pyglet/window/__init__.py,sha256=BYAP_Tnu5Pbr4bhYrHFDjsjFhOLbMY2r5SBp-04V2-M,71039
215
219
  pyglet/window/event.py,sha256=Be4We1jfM_q5uMIqTXQjT9UFMMXE-QTo_KDV_M020ZI,4265
216
220
  pyglet/window/key.py,sha256=Q29wUkA3stzTGGD0lTNJ-pIRsi61wrlUPuAVhB9ZKZY,9560
217
- pyglet/window/mouse.py,sha256=nuaNSXhW7LwYUAJMYdtcV4HebcSx5CfI9bRPOWa70Kc,2935
218
- pyglet/window/cocoa/__init__.py,sha256=HwaLrp7xL_e4FditNxqhm2tsopHrISkj845BucCyMus,28073
221
+ pyglet/window/mouse.py,sha256=FjCOhnn30fI5CBcOkPXlJbyGEPBKTeEjrRSNHUBoWp8,3185
222
+ pyglet/window/cocoa/__init__.py,sha256=8ngZtlHpeq2Ww2y-QgpHJO657fazPUtoqQcrztWEjTY,29117
219
223
  pyglet/window/cocoa/pyglet_delegate.py,sha256=8pugvWAI6pZ2y6VGF3Pvrhhgq4Pv0bLJr2h2K51ZOqE,7776
220
224
  pyglet/window/cocoa/pyglet_textview.py,sha256=DbBZO2uaahx7NucGXY4YDIpvuDP6JOs3Z0l3ZZKCcLY,7983
221
225
  pyglet/window/cocoa/pyglet_view.py,sha256=ZiWmWhjI4KWt1Gm2vlD1G2HrN0hBE-hWmFV8o70M1Os,15775
222
226
  pyglet/window/cocoa/pyglet_window.py,sha256=ttcI6ox5ijDu-f1JJMAzdqK31kBv22iOQHbfBwu76nA,3627
223
227
  pyglet/window/cocoa/systemcursor.py,sha256=-rMhvPH3DWl4gsSTCUbkn-yUnbyKM7JdQLfb5RKb8xM,775
224
228
  pyglet/window/headless/__init__.py,sha256=BLmawFLSJqV_ZjwePGT8DxFSc2ZWuVMDbxATvu1qFX4,3251
225
- pyglet/window/win32/__init__.py,sha256=rOklaFryGJj5IdU4wjVE8Y0Pa4MY4sFVsJGXFcfUNeA,54794
226
- pyglet/window/xlib/__init__.py,sha256=kTeJUNpByqIBDk2L_5dbfsAFB2UNmH7WP_79ZwqOVM8,70060
227
- pyglet-2.1.5.dist-info/LICENSE,sha256=V-fuy2c8jUDPMZJjPEgH-6jIFoUymjfht2PhVW1d7TQ,1546
228
- pyglet-2.1.5.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
229
- pyglet-2.1.5.dist-info/METADATA,sha256=n1ZkGxGmaoZitogDLA48pGATjKxzf5XcG72qnl0CqCE,7650
230
- pyglet-2.1.5.dist-info/RECORD,,
229
+ pyglet/window/win32/__init__.py,sha256=2Kl5IM4e4nfZOTfSGTwjq9MVFBus0rFeLAKWeRR2W9Q,55563
230
+ pyglet/window/xlib/__init__.py,sha256=BsxLzjoWof46BLve8LfhAKZD6eYa1-z3vApXcqHeb_M,70722
231
+ pyglet-2.1.8.dist-info/LICENSE,sha256=V-fuy2c8jUDPMZJjPEgH-6jIFoUymjfht2PhVW1d7TQ,1546
232
+ pyglet-2.1.8.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
233
+ pyglet-2.1.8.dist-info/METADATA,sha256=MmHTxxSVDTYCwtRmfcCz9vwJbHGGI-mooVHInLkHp38,7650
234
+ pyglet-2.1.8.dist-info/RECORD,,
File without changes