pyglet 2.1.10__py3-none-any.whl → 2.1.12__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.
pyglet/__init__.py CHANGED
@@ -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.10'
18
+ version = '2.1.12'
19
19
  __version__ = version
20
20
 
21
21
  MIN_PYTHON_VERSION = 3, 8
pyglet/app/__init__.py CHANGED
@@ -47,8 +47,10 @@ if _is_pyglet_doc_run:
47
47
  else:
48
48
  if compat_platform == 'darwin':
49
49
  from pyglet.app.cocoa import CocoaPlatformEventLoop as PlatformEventLoop
50
+ from pyglet.libs.darwin.cocoapy.runtime import get_chip_model
50
51
 
51
- if platform.machine() == 'arm64' or pyglet.options["osx_alt_loop"]:
52
+ # Use alternate loop only if forced, or using an M1 chip.
53
+ if (platform.machine() == 'arm64' and "M1" in get_chip_model()) or pyglet.options.osx_alt_loop:
52
54
  from pyglet.app.cocoa import CocoaAlternateEventLoop as EventLoop
53
55
  elif compat_platform in ('win32', 'cygwin'):
54
56
  from pyglet.app.win32 import Win32EventLoop as PlatformEventLoop
@@ -646,7 +646,7 @@ def _get_font_file(font_face: IDWriteFontFace) -> IDWriteFontFile:
646
646
  font_files = (IDWriteFontFile * file_ct.value)()
647
647
  font_face.GetFiles(byref(file_ct), font_files)
648
648
 
649
- return font_files[font_face.GetIndex()]
649
+ return font_files[0]
650
650
 
651
651
  def _get_font_ref(font_file: IDWriteFontFile, release_file: bool=True) -> tuple[c_void_p, int]:
652
652
  """Get a unique font reference for the font face.
pyglet/graphics/shader.py CHANGED
@@ -120,6 +120,11 @@ _uniform_setters: dict[int, tuple[GLDataType, GLFunc, GLFunc, int]] = {
120
120
  gl.GL_INT_VEC3: (gl.GLint, gl.glUniform3iv, gl.glProgramUniform3iv, 3),
121
121
  gl.GL_INT_VEC4: (gl.GLint, gl.glUniform4iv, gl.glProgramUniform4iv, 4),
122
122
 
123
+ gl.GL_UNSIGNED_INT: (gl.GLuint, gl.glUniform1uiv, gl.glProgramUniform1uiv, 1),
124
+ gl.GL_UNSIGNED_INT_VEC2: (gl.GLuint, gl.glUniform2uiv, gl.glProgramUniform2uiv, 2),
125
+ gl.GL_UNSIGNED_INT_VEC3: (gl.GLuint, gl.glUniform3uiv, gl.glProgramUniform3uiv, 3),
126
+ gl.GL_UNSIGNED_INT_VEC4: (gl.GLuint, gl.glUniform4uiv, gl.glProgramUniform4uiv, 4),
127
+
123
128
  gl.GL_FLOAT: (gl.GLfloat, gl.glUniform1fv, gl.glProgramUniform1fv, 1),
124
129
  gl.GL_FLOAT_VEC2: (gl.GLfloat, gl.glUniform2fv, gl.glProgramUniform2fv, 2),
125
130
  gl.GL_FLOAT_VEC3: (gl.GLfloat, gl.glUniform3fv, gl.glProgramUniform3fv, 3),
@@ -174,16 +179,37 @@ _uniform_setters: dict[int, tuple[GLDataType, GLFunc, GLFunc, int]] = {
174
179
  gl.GL_IMAGE_2D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
175
180
  gl.GL_IMAGE_2D_RECT: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
176
181
  gl.GL_IMAGE_3D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
177
-
178
182
  gl.GL_IMAGE_1D_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
179
183
  gl.GL_IMAGE_2D_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
180
-
181
184
  gl.GL_IMAGE_2D_MULTISAMPLE: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
182
185
  gl.GL_IMAGE_2D_MULTISAMPLE_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
183
-
184
186
  gl.GL_IMAGE_BUFFER: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
185
187
  gl.GL_IMAGE_CUBE: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
186
188
  gl.GL_IMAGE_CUBE_MAP_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
189
+
190
+ gl.GL_INT_IMAGE_1D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
191
+ gl.GL_INT_IMAGE_2D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
192
+ gl.GL_INT_IMAGE_3D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
193
+ gl.GL_INT_IMAGE_2D_RECT: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
194
+ gl.GL_INT_IMAGE_CUBE: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
195
+ gl.GL_INT_IMAGE_BUFFER: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
196
+ gl.GL_INT_IMAGE_1D_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
197
+ gl.GL_INT_IMAGE_2D_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
198
+ gl.GL_INT_IMAGE_CUBE_MAP_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
199
+ gl.GL_INT_IMAGE_2D_MULTISAMPLE: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
200
+ gl.GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
201
+
202
+ gl.GL_UNSIGNED_INT_IMAGE_1D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
203
+ gl.GL_UNSIGNED_INT_IMAGE_2D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
204
+ gl.GL_UNSIGNED_INT_IMAGE_3D: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
205
+ gl.GL_UNSIGNED_INT_IMAGE_2D_RECT: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
206
+ gl.GL_UNSIGNED_INT_IMAGE_CUBE: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
207
+ gl.GL_UNSIGNED_INT_IMAGE_BUFFER: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
208
+ gl.GL_UNSIGNED_INT_IMAGE_1D_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
209
+ gl.GL_UNSIGNED_INT_IMAGE_2D_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
210
+ gl.GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
211
+ gl.GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
212
+ gl.GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY: (gl.GLint, gl.glUniform1iv, gl.glProgramUniform1iv, 1),
187
213
  }
188
214
 
189
215
  _attribute_types: dict[int, tuple[int, str]] = {
pyglet/gui/widgets.py CHANGED
@@ -265,7 +265,7 @@ class PushButton(WidgetBase):
265
265
  return
266
266
  self._sprite.image = self._unpressed_img
267
267
  self._pressed = False
268
- self.dispatch_event('on_release')
268
+ self.dispatch_event('on_release', self)
269
269
 
270
270
  def on_mouse_motion(self, x: int, y: int, dx: int, dy: int) -> None:
271
271
  if not self.enabled or self._pressed:
@@ -66,6 +66,34 @@ libc = cdll.LoadLibrary(util.find_library('c'))
66
66
  libc.free.restype = None
67
67
  libc.free.argtypes = [c_void_p]
68
68
 
69
+ libc.sysctlbyname.argtypes = [c_char_p, c_void_p, POINTER(c_size_t), c_void_p, c_size_t]
70
+ libc.sysctlbyname.restype = c_int
71
+
72
+ def _sysctl_get(name: str) -> str:
73
+ name_bytes = name.encode("utf-8")
74
+
75
+ size = c_size_t()
76
+ # Gets buffer size.
77
+ libc.sysctlbyname(name_bytes, None, byref(size), None, 0)
78
+
79
+ buf = create_string_buffer(size.value)
80
+ libc.sysctlbyname(name_bytes, buf, byref(size), None, 0)
81
+ return buf.value.decode("utf-8")
82
+
83
+ def get_chip_model() -> str:
84
+ """Return Apple chip model name.
85
+
86
+ For example: "Apple M2"
87
+ """
88
+ try:
89
+ # Newer field.
90
+ return _sysctl_get("machdep.cpu.brand_string")
91
+ except Exception:
92
+ try:
93
+ return _sysctl_get("hw.model")
94
+ except Exception:
95
+ return "Unknown"
96
+
69
97
  ######################################################################
70
98
 
71
99
  # BOOL class_addIvar(Class cls, const char *name, size_t size, uint8_t alignment, const char *types)
@@ -1037,7 +1037,7 @@ class FFmpegSource(StreamingSource):
1037
1037
  width = self.video_format.width
1038
1038
  height = self.video_format.height
1039
1039
  pitch = width * 4
1040
- buf_size = avutil.av_image_get_buffer_size(AV_PIX_FMT_RGBA, width, height, 1)
1040
+ buf_size = avutil.av_image_get_buffer_size(AV_PIX_FMT_RGBA, width, height, 1) + AV_INPUT_BUFFER_PADDING_SIZE
1041
1041
  buffer = (c_uint8 * buf_size)()
1042
1042
  try:
1043
1043
  result = self._ffmpeg_decode_video(video_packet.packet, buffer)
@@ -132,8 +132,8 @@ AVStream_Fields = [
132
132
  ('metadata', POINTER(AVDictionary)),
133
133
  ('avg_frame_rate', AVRational),
134
134
  ('attached_pic', AVPacket),
135
- ('side_data', POINTER(AVPacketSideData)),
136
- ('nb_side_data', c_int),
135
+ ('side_data', POINTER(AVPacketSideData)), # Deprecated in 60. Removed in 62.
136
+ ('nb_side_data', c_int), # Deprecated in 60. Removed in 62.
137
137
  ('event_flags', c_int),
138
138
  ('r_frame_rate', AVRational),
139
139
  ('recommended_encoder_configuration', c_char_p), # Deprecated. Removed in 59.
@@ -147,11 +147,16 @@ compat.add_version_changes('avformat', 58, AVStream, AVStream_Fields, removals=(
147
147
  compat.add_version_changes('avformat', 59, AVStream, AVStream_Fields,
148
148
  removals=('av_class', 'codec', 'recommended_encoder_configuration', 'info'))
149
149
 
150
- for compat_ver in (60, 61, 62):
150
+ for compat_ver in (60, 61):
151
151
  compat.add_version_changes('avformat', compat_ver, AVStream, AVStream_Fields,
152
152
  removals=('codec', 'recommended_encoder_configuration', 'info'),
153
153
  repositions=(compat.Reposition("codecpar", "id"),))
154
154
 
155
+ compat.add_version_changes('avformat', 62, AVStream, AVStream_Fields,
156
+ removals=('codec', 'recommended_encoder_configuration', 'info', 'side_data',
157
+ 'nb_side_data'),
158
+ repositions=(compat.Reposition("codecpar", "id"),))
159
+
155
160
 
156
161
  class AVProgram(Structure):
157
162
  pass
pyglet/shapes.py CHANGED
@@ -864,7 +864,8 @@ class Arc(ShapeBase):
864
864
  self._num_verts, self._draw_mode, self._batch, self._group,
865
865
  position=('f', self._get_vertices()),
866
866
  colors=('Bn', self._rgba * self._num_verts),
867
- translation=('f', (self._x, self._y) * self._num_verts))
867
+ translation=('f', (self._x, self._y) * self._num_verts),
868
+ rotation=('f', (self._rotation,) * self._num_verts))
868
869
 
869
870
  def _get_vertices(self) -> Sequence[float]:
870
871
  if not self._visible:
@@ -1034,7 +1035,8 @@ class BezierCurve(ShapeBase):
1034
1035
  self._num_verts, self._draw_mode, self._batch, self._group,
1035
1036
  position=('f', self._get_vertices()),
1036
1037
  colors=('Bn', self._rgba * self._num_verts),
1037
- translation=('f', (self._x, self._y) * self._num_verts))
1038
+ translation=('f', (self._x, self._y) * self._num_verts),
1039
+ rotation=('f', (self._rotation,) * self._num_verts))
1038
1040
 
1039
1041
  def _get_vertices(self) -> Sequence[float]:
1040
1042
  if not self._visible:
@@ -1171,7 +1173,8 @@ class Circle(ShapeBase):
1171
1173
  self._segments * 3, self._draw_mode, self._batch, self._group,
1172
1174
  position=('f', self._get_vertices()),
1173
1175
  colors=('Bn', self._rgba * self._num_verts),
1174
- translation=('f', (self._x, self._y) * self._num_verts))
1176
+ translation=('f', (self._x, self._y) * self._num_verts),
1177
+ rotation=('f', (self._rotation,) * self._num_verts))
1175
1178
 
1176
1179
  def _get_vertices(self) -> Sequence[float]:
1177
1180
  if not self._visible:
@@ -1289,7 +1292,8 @@ class Ellipse(ShapeBase):
1289
1292
  self._segments * 3, self._draw_mode, self._batch, self._group,
1290
1293
  position=('f', self._get_vertices()),
1291
1294
  colors=('Bn', self._rgba * self._num_verts),
1292
- translation=('f', (self._x, self._y) * self._num_verts))
1295
+ translation=('f', (self._x, self._y) * self._num_verts),
1296
+ rotation=('f', (self._rotation,) * self._num_verts))
1293
1297
 
1294
1298
  def _get_vertices(self) -> Sequence[float]:
1295
1299
  if not self._visible:
@@ -1422,7 +1426,8 @@ class Sector(ShapeBase):
1422
1426
  self._num_verts, self._draw_mode, self._batch, self._group,
1423
1427
  position=('f', self._get_vertices()),
1424
1428
  colors=('Bn', self._rgba * self._num_verts),
1425
- translation=('f', (self._x, self._y) * self._num_verts))
1429
+ translation=('f', (self._x, self._y) * self._num_verts),
1430
+ rotation=('f', (self._rotation,) * self._num_verts))
1426
1431
 
1427
1432
  def _get_vertices(self) -> Sequence[float]:
1428
1433
  if not self._visible:
@@ -1564,7 +1569,8 @@ class Line(ShapeBase):
1564
1569
  6, self._draw_mode, self._batch, self._group,
1565
1570
  position=('f', self._get_vertices()),
1566
1571
  colors=('Bn', self._rgba * self._num_verts),
1567
- translation=('f', (self._x, self._y) * self._num_verts))
1572
+ translation=('f', (self._x, self._y) * self._num_verts),
1573
+ rotation=('f', (self._rotation,) * self._num_verts))
1568
1574
 
1569
1575
  def _get_vertices(self) -> Sequence[float]:
1570
1576
  if not self._visible:
@@ -1690,7 +1696,8 @@ class Rectangle(ShapeBase):
1690
1696
  6, self._draw_mode, self._batch, self._group,
1691
1697
  position=('f', self._get_vertices()),
1692
1698
  colors=('Bn', self._rgba * self._num_verts),
1693
- translation=('f', (self._x, self._y) * self._num_verts))
1699
+ translation=('f', (self._x, self._y) * self._num_verts),
1700
+ rotation=('f', (self._rotation,) * self._num_verts))
1694
1701
 
1695
1702
  def _get_vertices(self) -> Sequence[float]:
1696
1703
  if not self._visible:
@@ -1833,7 +1840,8 @@ class BorderedRectangle(ShapeBase):
1833
1840
  8, self._draw_mode, indices, self._batch, self._group,
1834
1841
  position=('f', self._get_vertices()),
1835
1842
  colors=('Bn', self._rgba * 4 + self._border_rgba * 4),
1836
- translation=('f', (self._x, self._y) * self._num_verts))
1843
+ translation=('f', (self._x, self._y) * self._num_verts),
1844
+ rotation=('f', (self._rotation,) * self._num_verts))
1837
1845
 
1838
1846
  def _update_color(self) -> None:
1839
1847
  self._vertex_list.colors[:] = self._rgba * 4 + self._border_rgba * 4
@@ -2047,7 +2055,8 @@ class Box(ShapeBase):
2047
2055
  self._num_verts, self._draw_mode, indices, self._batch, self._group,
2048
2056
  position=('f', self._get_vertices()),
2049
2057
  colors=('Bn', self._rgba * self._num_verts),
2050
- translation=('f', (self._x, self._y) * self._num_verts))
2058
+ translation=('f', (self._x, self._y) * self._num_verts),
2059
+ rotation=('f', (self._rotation,) * self._num_verts))
2051
2060
 
2052
2061
  def _update_color(self):
2053
2062
  self._vertex_list.colors[:] = self._rgba * self._num_verts
@@ -2226,7 +2235,8 @@ class RoundedRectangle(pyglet.shapes.ShapeBase):
2226
2235
  self._num_verts, self._draw_mode, self._batch, self._group,
2227
2236
  position=('f', self._get_vertices()),
2228
2237
  colors=('Bn', self._rgba * self._num_verts),
2229
- translation=('f', (self._x, self._y) * self._num_verts))
2238
+ translation=('f', (self._x, self._y) * self._num_verts),
2239
+ rotation=('f', (self._rotation,) * self._num_verts))
2230
2240
 
2231
2241
  def _get_vertices(self) -> Sequence[float]:
2232
2242
  if not self._visible:
@@ -2377,7 +2387,8 @@ class Triangle(ShapeBase):
2377
2387
  3, self._draw_mode, self._batch, self._group,
2378
2388
  position=('f', self._get_vertices()),
2379
2389
  colors=('Bn', self._rgba * self._num_verts),
2380
- translation=('f', (self._x, self._y) * self._num_verts))
2390
+ translation=('f', (self._x, self._y) * self._num_verts),
2391
+ rotation=('f', (self._rotation,) * self._num_verts))
2381
2392
 
2382
2393
  def _get_vertices(self) -> Sequence[float]:
2383
2394
  if not self._visible:
@@ -2513,8 +2524,8 @@ class Star(ShapeBase):
2513
2524
  self._num_verts, self._draw_mode, self._batch, self._group,
2514
2525
  position=('f', self._get_vertices()),
2515
2526
  colors=('Bn', self._rgba * self._num_verts),
2516
- rotation=('f', (self._rotation,) * self._num_verts),
2517
- translation=('f', (self._x, self._y) * self._num_verts))
2527
+ translation=('f', (self._x, self._y) * self._num_verts),
2528
+ rotation=('f', (self._rotation,) * self._num_verts))
2518
2529
 
2519
2530
  def _get_vertices(self) -> Sequence[float]:
2520
2531
  if not self._visible:
@@ -2638,7 +2649,8 @@ class Polygon(ShapeBase):
2638
2649
  self._batch, self._group,
2639
2650
  position=('f', vertices),
2640
2651
  colors=('Bn', self._rgba * self._num_verts),
2641
- translation=('f', (self._x, self._y) * self._num_verts))
2652
+ translation=('f', (self._x, self._y) * self._num_verts),
2653
+ rotation=('f', (self._rotation,) * self._num_verts))
2642
2654
 
2643
2655
  def _get_vertices(self) -> Sequence[float]:
2644
2656
  if not self._visible:
@@ -2723,7 +2735,8 @@ class MultiLine(ShapeBase):
2723
2735
  self._num_verts, self._draw_mode, self._batch, self._group,
2724
2736
  position=('f', self._get_vertices()),
2725
2737
  colors=('Bn', self._rgba * self._num_verts),
2726
- translation=('f', (self._x, self._y) * self._num_verts))
2738
+ translation=('f', (self._x, self._y) * self._num_verts),
2739
+ rotation=('f', (self._rotation,) * self._num_verts))
2727
2740
 
2728
2741
  def _get_vertices(self) -> Sequence[float]:
2729
2742
  if not self._visible:
@@ -106,6 +106,16 @@ Win32EventHandler = _PlatformEventHandler
106
106
  ViewEventHandler = _ViewEventHandler
107
107
 
108
108
 
109
+ # Some events should not be queued, especially those with pointers or structures.
110
+ # Data is only guaranteed to be available for the duration of the initial function call.
111
+ _priority_events = [
112
+ constants.WM_GETMINMAXINFO,
113
+ constants.WM_GETDPISCALEDSIZE,
114
+ constants.WM_DPICHANGED,
115
+ constants.WM_INPUT,
116
+ ]
117
+
118
+
109
119
  class Win32Window(BaseWindow):
110
120
  _window_class = None
111
121
  _hwnd = None
@@ -401,7 +411,7 @@ class Win32Window(BaseWindow):
401
411
  def flip(self) -> None:
402
412
  self.draw_mouse_cursor()
403
413
 
404
- if not self._fullscreen and (self._always_dwm or self._dwm_composition_enabled()) and self._interval:
414
+ if not self._fullscreen and not self._always_dwm and self._dwm_composition_enabled() and self._interval:
405
415
  _dwmapi.DwmFlush()
406
416
 
407
417
  self.context.flip()
@@ -427,8 +437,6 @@ class Win32Window(BaseWindow):
427
437
  if state:
428
438
  _user32.SetLayeredWindowAttributes(self._hwnd, color_ref.value, alpha.value, flags.value)
429
439
 
430
-
431
-
432
440
  def set_location(self, x: int, y: int) -> None:
433
441
  x, y = self._client_to_window_pos(x, y)
434
442
  _user32.SetWindowPos(self._hwnd, 0, x, y, 0, 0,
@@ -859,7 +867,7 @@ class Win32Window(BaseWindow):
859
867
  event_handler = event_handlers.get(msg)
860
868
  result = None
861
869
  if event_handler:
862
- if self._allow_dispatch_event or not self._enable_event_queue:
870
+ if self._allow_dispatch_event or not self._enable_event_queue or msg in _priority_events:
863
871
  result = event_handler(msg, wParam, lParam)
864
872
  else:
865
873
  result = 0
@@ -1,10 +1,11 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: pyglet
3
- Version: 2.1.10
3
+ Version: 2.1.12
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
7
7
  Description-Content-Type: text/markdown
8
+ License-File: LICENSE
8
9
  Project-URL: Home, https://pyglet.org
9
10
 
10
11
  [![pypi](https://badge.fury.io/py/pyglet.svg)](https://pypi.python.org/pypi/pyglet) [![rtd](https://readthedocs.org/projects/pyglet/badge/?version=latest)](https://pyglet.readthedocs.io) [![PyTest](https://github.com/pyglet/pyglet/actions/workflows/unittests.yml/badge.svg)](https://github.com/pyglet/pyglet/actions/workflows/unittests.yml)
@@ -1,4 +1,4 @@
1
- pyglet/__init__.py,sha256=diabnDDVS9PjKHvzBoZjsyjUW_tAWAJ0h9T0Pb-yHbQ,21155
1
+ pyglet/__init__.py,sha256=uw8dgsrkqZdwCOpicH2nTQ2sFvUlqYMaxFOVDPfWzoU,21155
2
2
  pyglet/__init__.pyi,sha256=g-eSsTUa4WDTqTULiN7cRqagvW58NGCPLj9sabXRFjo,2005
3
3
  pyglet/clock.py,sha256=ZiYHckYRIUKuN1XmywQc3Dastd7O40Lw2XeMjC3iMtk,21892
4
4
  pyglet/customtypes.py,sha256=e9AB-8WPPhhZXqfDEf4r2Lv0vAQUBjwig5EBejBDz0k,608
@@ -8,10 +8,10 @@ pyglet/lib.py,sha256=Mj1W_KDmUQXMg1iPLrM0pIIHDyWPO38J6qvoU_hXKjc,12013
8
8
  pyglet/math.py,sha256=lMCspxzd_pOeLQev5HAA92v8nYFPfGjfK-mbO6iHK3E,56117
9
9
  pyglet/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  pyglet/resource.py,sha256=EknGIAxDuc8prrGd5faOM4MNPT2q6NN4r3KQlrRg2dM,29374
11
- pyglet/shapes.py,sha256=KRJz1lLN_jJXBYuW3AWVazbAILvHkJpVnxuo0Dmq_Jc,97445
11
+ pyglet/shapes.py,sha256=48f14qroZYc5hT_A1_o_MSJlNuY-Zg05gw9QcfBfavo,98290
12
12
  pyglet/sprite.py,sha256=DWMiCG1wO5ySEe_Wn7pPzgCOWiG1NceodtViD4nBbLg,28701
13
13
  pyglet/util.py,sha256=OPu-Lw5Rxu1NMcsXBSM3Y-_3r2J09OjmdfUUAqSWvfg,8647
14
- pyglet/app/__init__.py,sha256=Cc21DTHddyf-YaTvwiZ5y6iKmrnEgyyVAdjVBAbiw5Y,2879
14
+ pyglet/app/__init__.py,sha256=AzV-eZLCSGJgqx8GEuOrOrJUtcUBBLHbw5oyyyni7e0,3043
15
15
  pyglet/app/base.py,sha256=-rs9nvLoizNvbQfKQ0OGAnbDShpjnt6pAW0EFHLY9c4,11596
16
16
  pyglet/app/cocoa.py,sha256=NUy06NCLppmM9F0NX7kmKEL5sMMeq-Ia6f00lCAIxiE,10850
17
17
  pyglet/app/win32.py,sha256=252RfeIBB9TtytMf1bd6Zc1FDF0W3bukCJAlqfP4ioM,4340
@@ -43,7 +43,7 @@ pyglet/font/quartz.py,sha256=3MYuPH_PWaGY4I2Zp_rFZl2g5GwFxyisMTMdGF1oDPs,25849
43
43
  pyglet/font/ttf.py,sha256=xrTxY02uGcc3s9xG60iu4x4HzDfxuTwAyT8KFfJ8GS0,24225
44
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=YhGwf8-2GCPL-euBYwf_ccWCMC0PRMrC_tiSaJTmlog,53796
46
+ pyglet/font/dwrite/__init__.py,sha256=Qz371CtDjeWZ4h0M8gTBPKCpAF89nLdf6vgpNTWDQS8,53777
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
49
  pyglet/font/dwrite/dwrite_lib.py,sha256=Rbq9020ERYO9ZpVWrCGK3prXev61lo_-6JQ5RM69da8,51437
@@ -77,14 +77,14 @@ pyglet/gl/xlib.py,sha256=q6BNLJ9lujt3P-0xh3CAvJHCFERAuLSUnXOgeS4jZhY,11357
77
77
  pyglet/graphics/__init__.py,sha256=O4O7fCQBI7qPReI8tUwLwArJHTWcoE1c_SotlHyUb2A,27940
78
78
  pyglet/graphics/allocation.py,sha256=0MTwkK7-00UDs2xl6Te7cf0ljC2mmsOQMbx0zKZCJOU,12430
79
79
  pyglet/graphics/instance.py,sha256=pzIaxO0EZCeoQDMR-qzjo4ahwfcbt3dDZm9UinYpZo0,2202
80
- pyglet/graphics/shader.py,sha256=1URLOhWh9RerwoFwjTI1Oa4d6l5xif-TYe3P1s_Tw7I,64263
80
+ pyglet/graphics/shader.py,sha256=O7H_Nu6CgMNCqKK3UUS4MQs9hJAO-r65gH-qALE-ftI,66604
81
81
  pyglet/graphics/vertexarray.py,sha256=BWJFvP79JHpKwY91mrkjjhlbK3g87nIpMbCsc4FCcEg,1371
82
82
  pyglet/graphics/vertexbuffer.py,sha256=SbtT2cNSXwPMlQRGf2DxTxZCEyj0AjEEDLLdho-ojG8,15284
83
83
  pyglet/graphics/vertexdomain.py,sha256=Y4tAi26ABf5kLBGJ0QDvTVeWEL2vSN4HuIeS5svZjsg,32764
84
84
  pyglet/gui/__init__.py,sha256=vW9yvUBoKz6nG-VpyIYwHMmq_y_2LWAZvFW9LYQALog,77
85
85
  pyglet/gui/frame.py,sha256=R9QXswxNAC1tUqB7OA2tt6jATqjghgjRYeZ5WyHoN1A,8413
86
86
  pyglet/gui/ninepatch.py,sha256=f3iOQr6GOhoCUCIcwltsqrEILZz-BhKwnGr9rcsfohM,11376
87
- pyglet/gui/widgets.py,sha256=FBSsZRgOJrW-9kRGNtYrCdqed1zkGIFWmd-H0aZXK_4,20698
87
+ pyglet/gui/widgets.py,sha256=WegDh_TadylnchR9BgIS2ZzxfjpjwN1nWIzxrYw6a6o,20704
88
88
  pyglet/image/__init__.py,sha256=1Axruxq_hul8RXY3Pxp5_JNhuVxbtJdivGfMKPdku0E,83852
89
89
  pyglet/image/animation.py,sha256=ThMlyHFlqQkCRh7WdlCRy-uhMN62rFiME_qSxBUaEB4,5564
90
90
  pyglet/image/atlas.py,sha256=svY5NWVVAjIhtGEeAJS_4PcLtg8QctPIBrpa_4C69KM,9913
@@ -124,7 +124,7 @@ pyglet/libs/darwin/quartzkey.py,sha256=FhwLyotAdlhJIvmGX1JNPkB0kxPhedRb-9NeRh_HT
124
124
  pyglet/libs/darwin/cocoapy/__init__.py,sha256=LvkMAtOc0SGfyitALT9FdCTUvZ6dNzcFF7kDyrhu6GY,1798
125
125
  pyglet/libs/darwin/cocoapy/cocoalibs.py,sha256=GLr7LRQTxQq3RCGeHlSplPmq3tGjUVsr-kS2fC9Ax00,26062
126
126
  pyglet/libs/darwin/cocoapy/cocoatypes.py,sha256=UNymqQdVNrq7T6jIupCgRgoxgm51hhQW-R42Y-tRP00,2629
127
- pyglet/libs/darwin/cocoapy/runtime.py,sha256=KaI64id6cESiJ40SxZHfP5YOVHw82CHMGCzNPzUSRiA,65492
127
+ pyglet/libs/darwin/cocoapy/runtime.py,sha256=GgG2epgsCpEAA2hFjZKZ_aX-wxRFes8DguCZ3-waRzU,66265
128
128
  pyglet/libs/egl/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
129
  pyglet/libs/egl/egl.py,sha256=sfSx2puVsMJDIY_xH9EbadsG3cCpsNUN7V2UgebUzvk,29920
130
130
  pyglet/libs/egl/eglext.py,sha256=NPqhL-GQK1Y5cHLwXSNpyWEqWhSgqyxc3vgk374-D0s,859
@@ -159,7 +159,7 @@ pyglet/media/synthesis.py,sha256=ToaL2Y9y8cIjHHjlGHxpiBZqpfpBcsYFFgtutw_N1cE,131
159
159
  pyglet/media/codecs/__init__.py,sha256=K7zxWvfJog9DLhRJ25diBD3pxn6u7ZwKU0T2NKuq90Q,3428
160
160
  pyglet/media/codecs/base.py,sha256=31oNAFwU1mUcShqCBtoiQruQ1KOCt0_Ug2H8rOib5vU,20936
161
161
  pyglet/media/codecs/coreaudio.py,sha256=pPhbUkzVNhKnhKaD2hiyuo8kkgTKA26L0WKGB742Rv8,6838
162
- pyglet/media/codecs/ffmpeg.py,sha256=5usnqLZ0tv3tMn3HotawAfpqRjL5ZIsjO31wzy9ZySs,43652
162
+ pyglet/media/codecs/ffmpeg.py,sha256=sfWn_Dp0lZtQmoMqGi_6qRctsQ61xG2g-xWm7J1YLio,43683
163
163
  pyglet/media/codecs/gstreamer.py,sha256=kzg4k7aBJdIq0SubUuXc9p3dHP4gtGfP24dQcR28wOg,9250
164
164
  pyglet/media/codecs/pyogg.py,sha256=eTUI5Kty1HpMyWsVWQeXchl03l7I0HSo3j2VJbhftE4,17728
165
165
  pyglet/media/codecs/wave.py,sha256=zYA4z52BHE-q5Gl4YHL1ujdtC69lmkUsJ6o69OnStUY,3801
@@ -167,7 +167,7 @@ pyglet/media/codecs/wmf.py,sha256=CpBuhvb8U1N11sLrxAVEao_37VAHBS-yMk8ZIQaQzWQ,35
167
167
  pyglet/media/codecs/ffmpeg_lib/__init__.py,sha256=MzdctEH9MnPm-ML5rJRvVmpe5EEKAD-9lBsqLNztx1g,201
168
168
  pyglet/media/codecs/ffmpeg_lib/compat.py,sha256=FPbwoEBcA3EIssDc1sastvcw0yy1erLyK62wHQ0vDJo,3498
169
169
  pyglet/media/codecs/ffmpeg_lib/libavcodec.py,sha256=OfFCMK3KKFueje_dzav3BQw74ysalff12gHWh9Vpko0,23872
170
- pyglet/media/codecs/ffmpeg_lib/libavformat.py,sha256=yq2plOGu1CaooChnvABEqC-XD4UbjysTnWY8MbBpCUo,15763
170
+ pyglet/media/codecs/ffmpeg_lib/libavformat.py,sha256=kSPPG1z5kixCQV2Omkv1H3MEIecjjsmIgRKrGSNtOVk,16139
171
171
  pyglet/media/codecs/ffmpeg_lib/libavutil.py,sha256=zWKL__B-KNhMlUxtS9jNKj6m-j8G__EHYGwQGQUSMZM,10467
172
172
  pyglet/media/codecs/ffmpeg_lib/libswresample.py,sha256=Jaa6zG6yAab9uxg1r3BVUiDhc2FM0PhswwkUKJq5szw,2420
173
173
  pyglet/media/codecs/ffmpeg_lib/libswscale.py,sha256=qthAjgfjqTM8EDFGMJenTUC6_a5YxWBmEWg-0yjRUKE,1553
@@ -226,9 +226,9 @@ pyglet/window/cocoa/pyglet_view.py,sha256=ZiWmWhjI4KWt1Gm2vlD1G2HrN0hBE-hWmFV8o7
226
226
  pyglet/window/cocoa/pyglet_window.py,sha256=ttcI6ox5ijDu-f1JJMAzdqK31kBv22iOQHbfBwu76nA,3627
227
227
  pyglet/window/cocoa/systemcursor.py,sha256=-rMhvPH3DWl4gsSTCUbkn-yUnbyKM7JdQLfb5RKb8xM,775
228
228
  pyglet/window/headless/__init__.py,sha256=QT3vdaa8qIJVm9B8u17c9-agIG_wrbAIPExNdIFuNjI,3254
229
- pyglet/window/win32/__init__.py,sha256=auPbk-eX_ZcOIP2WoOEOvsEmKCGmCP4GZLGGPwa1yho,55566
229
+ pyglet/window/win32/__init__.py,sha256=rmxohCsReTiEbMmegLxjvzH8NnERbd2jbvdz_zbzCqA,55910
230
230
  pyglet/window/xlib/__init__.py,sha256=_SmSwQlhiYx37P-jMR3WVZDDQV9A3O6qFNvPrzSDfwE,70725
231
- pyglet-2.1.10.dist-info/LICENSE,sha256=V-fuy2c8jUDPMZJjPEgH-6jIFoUymjfht2PhVW1d7TQ,1546
232
- pyglet-2.1.10.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
233
- pyglet-2.1.10.dist-info/METADATA,sha256=6SjPaysiM2cuFK0VlE8_LQjelmrUHHW18QmwtVKX0lc,7651
234
- pyglet-2.1.10.dist-info/RECORD,,
231
+ pyglet-2.1.12.dist-info/licenses/LICENSE,sha256=V-fuy2c8jUDPMZJjPEgH-6jIFoUymjfht2PhVW1d7TQ,1546
232
+ pyglet-2.1.12.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
233
+ pyglet-2.1.12.dist-info/METADATA,sha256=fNXwliG-MUVPYejBSicQqryrAcC_Hi2QGtdtIU_FH5M,7673
234
+ pyglet-2.1.12.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: flit 3.10.1
2
+ Generator: flit 3.12.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any