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 +1 -1
- pyglet/app/__init__.py +3 -1
- pyglet/font/dwrite/__init__.py +1 -1
- pyglet/graphics/shader.py +29 -3
- pyglet/gui/widgets.py +1 -1
- pyglet/libs/darwin/cocoapy/runtime.py +28 -0
- pyglet/media/codecs/ffmpeg.py +1 -1
- pyglet/media/codecs/ffmpeg_lib/libavformat.py +8 -3
- pyglet/shapes.py +28 -15
- pyglet/window/win32/__init__.py +12 -4
- {pyglet-2.1.10.dist-info → pyglet-2.1.12.dist-info}/METADATA +3 -2
- {pyglet-2.1.10.dist-info → pyglet-2.1.12.dist-info}/RECORD +14 -14
- {pyglet-2.1.10.dist-info → pyglet-2.1.12.dist-info}/WHEEL +1 -1
- {pyglet-2.1.10.dist-info → pyglet-2.1.12.dist-info/licenses}/LICENSE +0 -0
pyglet/__init__.py
CHANGED
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
|
-
|
|
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
|
pyglet/font/dwrite/__init__.py
CHANGED
|
@@ -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[
|
|
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)
|
pyglet/media/codecs/ffmpeg.py
CHANGED
|
@@ -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
|
|
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
|
-
|
|
2517
|
-
|
|
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:
|
pyglet/window/win32/__init__.py
CHANGED
|
@@ -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
|
|
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.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: pyglet
|
|
3
|
-
Version: 2.1.
|
|
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
|
[](https://pypi.python.org/pypi/pyglet) [](https://pyglet.readthedocs.io) [](https://github.com/pyglet/pyglet/actions/workflows/unittests.yml)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
pyglet/__init__.py,sha256=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
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.
|
|
232
|
-
pyglet-2.1.
|
|
233
|
-
pyglet-2.1.
|
|
234
|
-
pyglet-2.1.
|
|
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,,
|
|
File without changes
|