pyglet 2.1.12__py3-none-any.whl → 3.0.dev1__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 (267) hide show
  1. pyglet/__init__.py +67 -61
  2. pyglet/__init__.pyi +15 -8
  3. pyglet/app/__init__.py +22 -13
  4. pyglet/app/async_app.py +212 -0
  5. pyglet/app/base.py +2 -1
  6. pyglet/app/{xlib.py → linux.py} +3 -3
  7. pyglet/config/__init__.py +101 -0
  8. pyglet/config/gl/__init__.py +30 -0
  9. pyglet/config/gl/egl.py +120 -0
  10. pyglet/config/gl/macos.py +262 -0
  11. pyglet/config/gl/windows.py +267 -0
  12. pyglet/config/gl/x11.py +142 -0
  13. pyglet/customtypes.py +43 -2
  14. pyglet/display/__init__.py +8 -6
  15. pyglet/display/base.py +3 -63
  16. pyglet/display/cocoa.py +12 -17
  17. pyglet/display/emscripten.py +39 -0
  18. pyglet/display/headless.py +23 -30
  19. pyglet/display/wayland.py +157 -0
  20. pyglet/display/win32.py +4 -17
  21. pyglet/display/xlib.py +19 -27
  22. pyglet/display/xlib_vidmoderestore.py +2 -2
  23. pyglet/enums.py +183 -0
  24. pyglet/event.py +0 -1
  25. pyglet/experimental/geoshader_sprite.py +15 -13
  26. pyglet/experimental/hidraw.py +6 -15
  27. pyglet/experimental/multitexture_sprite.py +31 -19
  28. pyglet/experimental/particles.py +13 -35
  29. pyglet/font/__init__.py +251 -85
  30. pyglet/font/base.py +116 -61
  31. pyglet/font/dwrite/__init__.py +349 -204
  32. pyglet/font/dwrite/dwrite_lib.py +27 -5
  33. pyglet/font/fontconfig.py +14 -6
  34. pyglet/font/freetype.py +138 -87
  35. pyglet/font/freetype_lib.py +19 -0
  36. pyglet/font/group.py +179 -0
  37. pyglet/font/harfbuzz/__init__.py +3 -3
  38. pyglet/font/pyodide_js.py +310 -0
  39. pyglet/font/quartz.py +319 -126
  40. pyglet/font/ttf.py +45 -3
  41. pyglet/font/user.py +14 -19
  42. pyglet/font/win32.py +45 -21
  43. pyglet/graphics/__init__.py +8 -787
  44. pyglet/graphics/allocation.py +115 -1
  45. pyglet/graphics/api/__init__.py +77 -0
  46. pyglet/graphics/api/base.py +299 -0
  47. pyglet/graphics/api/gl/__init__.py +58 -0
  48. pyglet/graphics/api/gl/base.py +24 -0
  49. pyglet/graphics/{vertexbuffer.py → api/gl/buffer.py} +104 -159
  50. pyglet/graphics/api/gl/cocoa/context.py +76 -0
  51. pyglet/graphics/api/gl/context.py +391 -0
  52. pyglet/graphics/api/gl/default_shaders.py +0 -0
  53. pyglet/graphics/api/gl/draw.py +627 -0
  54. pyglet/graphics/api/gl/egl/__init__.py +0 -0
  55. pyglet/graphics/api/gl/egl/context.py +92 -0
  56. pyglet/graphics/api/gl/enums.py +76 -0
  57. pyglet/graphics/api/gl/framebuffer.py +315 -0
  58. pyglet/graphics/api/gl/gl.py +5463 -0
  59. pyglet/graphics/api/gl/gl_info.py +188 -0
  60. pyglet/graphics/api/gl/global_opengl.py +226 -0
  61. pyglet/{gl → graphics/api/gl}/lib.py +34 -18
  62. pyglet/graphics/api/gl/shader.py +1476 -0
  63. pyglet/graphics/api/gl/shapes.py +55 -0
  64. pyglet/graphics/api/gl/sprite.py +102 -0
  65. pyglet/graphics/api/gl/state.py +219 -0
  66. pyglet/graphics/api/gl/text.py +190 -0
  67. pyglet/graphics/api/gl/texture.py +1526 -0
  68. pyglet/graphics/{vertexarray.py → api/gl/vertexarray.py} +11 -13
  69. pyglet/graphics/api/gl/vertexdomain.py +751 -0
  70. pyglet/graphics/api/gl/win32/__init__.py +0 -0
  71. pyglet/graphics/api/gl/win32/context.py +108 -0
  72. pyglet/graphics/api/gl/win32/wgl_info.py +24 -0
  73. pyglet/graphics/api/gl/xlib/__init__.py +0 -0
  74. pyglet/graphics/api/gl/xlib/context.py +174 -0
  75. pyglet/{gl → graphics/api/gl/xlib}/glx_info.py +26 -31
  76. pyglet/graphics/api/gl1/__init__.py +0 -0
  77. pyglet/{gl → graphics/api/gl1}/gl_compat.py +3 -2
  78. pyglet/graphics/api/gl2/__init__.py +0 -0
  79. pyglet/graphics/api/gl2/buffer.py +320 -0
  80. pyglet/graphics/api/gl2/draw.py +600 -0
  81. pyglet/graphics/api/gl2/global_opengl.py +122 -0
  82. pyglet/graphics/api/gl2/shader.py +200 -0
  83. pyglet/graphics/api/gl2/shapes.py +51 -0
  84. pyglet/graphics/api/gl2/sprite.py +79 -0
  85. pyglet/graphics/api/gl2/text.py +175 -0
  86. pyglet/graphics/api/gl2/vertexdomain.py +364 -0
  87. pyglet/graphics/api/webgl/__init__.py +233 -0
  88. pyglet/graphics/api/webgl/buffer.py +302 -0
  89. pyglet/graphics/api/webgl/context.py +234 -0
  90. pyglet/graphics/api/webgl/draw.py +590 -0
  91. pyglet/graphics/api/webgl/enums.py +76 -0
  92. pyglet/graphics/api/webgl/framebuffer.py +360 -0
  93. pyglet/graphics/api/webgl/gl.py +1537 -0
  94. pyglet/graphics/api/webgl/gl_info.py +130 -0
  95. pyglet/graphics/api/webgl/shader.py +1346 -0
  96. pyglet/graphics/api/webgl/shapes.py +92 -0
  97. pyglet/graphics/api/webgl/sprite.py +102 -0
  98. pyglet/graphics/api/webgl/state.py +227 -0
  99. pyglet/graphics/api/webgl/text.py +187 -0
  100. pyglet/graphics/api/webgl/texture.py +1227 -0
  101. pyglet/graphics/api/webgl/vertexarray.py +54 -0
  102. pyglet/graphics/api/webgl/vertexdomain.py +616 -0
  103. pyglet/graphics/api/webgl/webgl_js.pyi +307 -0
  104. pyglet/{image → graphics}/atlas.py +33 -32
  105. pyglet/graphics/base.py +10 -0
  106. pyglet/graphics/buffer.py +245 -0
  107. pyglet/graphics/draw.py +578 -0
  108. pyglet/graphics/framebuffer.py +26 -0
  109. pyglet/graphics/instance.py +178 -69
  110. pyglet/graphics/shader.py +267 -1553
  111. pyglet/graphics/state.py +83 -0
  112. pyglet/graphics/texture.py +703 -0
  113. pyglet/graphics/vertexdomain.py +695 -538
  114. pyglet/gui/ninepatch.py +10 -10
  115. pyglet/gui/widgets.py +120 -10
  116. pyglet/image/__init__.py +20 -1973
  117. pyglet/image/animation.py +12 -12
  118. pyglet/image/base.py +730 -0
  119. pyglet/image/codecs/__init__.py +9 -0
  120. pyglet/image/codecs/bmp.py +53 -30
  121. pyglet/image/codecs/dds.py +53 -31
  122. pyglet/image/codecs/gdiplus.py +38 -14
  123. pyglet/image/codecs/gdkpixbuf2.py +0 -2
  124. pyglet/image/codecs/js_image.py +99 -0
  125. pyglet/image/codecs/ktx2.py +161 -0
  126. pyglet/image/codecs/pil.py +1 -1
  127. pyglet/image/codecs/png.py +1 -1
  128. pyglet/image/codecs/wic.py +11 -2
  129. pyglet/info.py +26 -24
  130. pyglet/input/__init__.py +8 -0
  131. pyglet/input/base.py +163 -105
  132. pyglet/input/controller.py +13 -19
  133. pyglet/input/controller_db.py +39 -24
  134. pyglet/input/emscripten/__init__.py +18 -0
  135. pyglet/input/emscripten/gamepad_js.py +397 -0
  136. pyglet/input/linux/__init__.py +11 -5
  137. pyglet/input/linux/evdev.py +10 -11
  138. pyglet/input/linux/x11_xinput.py +2 -2
  139. pyglet/input/linux/x11_xinput_tablet.py +1 -1
  140. pyglet/input/macos/__init__.py +7 -2
  141. pyglet/input/macos/darwin_gc.py +559 -0
  142. pyglet/input/win32/__init__.py +1 -1
  143. pyglet/input/win32/directinput.py +34 -29
  144. pyglet/input/win32/xinput.py +11 -61
  145. pyglet/lib.py +3 -3
  146. pyglet/libs/__init__.py +1 -1
  147. pyglet/{gl → libs/darwin}/agl.py +1 -1
  148. pyglet/libs/darwin/cocoapy/__init__.py +2 -2
  149. pyglet/libs/darwin/cocoapy/cocoahelpers.py +181 -0
  150. pyglet/libs/darwin/cocoapy/cocoalibs.py +31 -0
  151. pyglet/libs/darwin/cocoapy/cocoatypes.py +27 -0
  152. pyglet/libs/darwin/cocoapy/runtime.py +81 -45
  153. pyglet/libs/darwin/coreaudio.py +4 -4
  154. pyglet/{gl → libs/darwin}/lib_agl.py +9 -8
  155. pyglet/libs/darwin/quartzkey.py +1 -3
  156. pyglet/libs/egl/__init__.py +2 -0
  157. pyglet/libs/egl/egl_lib.py +576 -0
  158. pyglet/libs/egl/eglext.py +51 -5
  159. pyglet/libs/linux/__init__.py +0 -0
  160. pyglet/libs/linux/egl/__init__.py +0 -0
  161. pyglet/libs/linux/egl/eglext.py +22 -0
  162. pyglet/libs/linux/glx/__init__.py +0 -0
  163. pyglet/{gl → libs/linux/glx}/glx.py +13 -14
  164. pyglet/{gl → libs/linux/glx}/glxext_arb.py +408 -192
  165. pyglet/{gl → libs/linux/glx}/glxext_mesa.py +1 -1
  166. pyglet/{gl → libs/linux/glx}/glxext_nv.py +345 -164
  167. pyglet/{gl → libs/linux/glx}/lib_glx.py +3 -2
  168. pyglet/libs/linux/wayland/__init__.py +0 -0
  169. pyglet/libs/linux/wayland/client.py +1068 -0
  170. pyglet/libs/linux/wayland/lib_wayland.py +207 -0
  171. pyglet/libs/linux/wayland/wayland_egl.py +38 -0
  172. pyglet/libs/{wayland → linux/wayland}/xkbcommon.py +26 -0
  173. pyglet/libs/{x11 → linux/x11}/xf86vmode.py +4 -4
  174. pyglet/libs/{x11 → linux/x11}/xinerama.py +2 -2
  175. pyglet/libs/{x11 → linux/x11}/xinput.py +10 -10
  176. pyglet/libs/linux/x11/xrandr.py +0 -0
  177. pyglet/libs/{x11 → linux/x11}/xrender.py +1 -1
  178. pyglet/libs/shared/__init__.py +0 -0
  179. pyglet/libs/shared/spirv/__init__.py +0 -0
  180. pyglet/libs/shared/spirv/lib_shaderc.py +85 -0
  181. pyglet/libs/shared/spirv/lib_spirv_cross.py +126 -0
  182. pyglet/libs/win32/__init__.py +27 -5
  183. pyglet/libs/win32/constants.py +59 -48
  184. pyglet/libs/win32/context_managers.py +20 -3
  185. pyglet/libs/win32/dinput.py +105 -88
  186. pyglet/{gl → libs/win32}/lib_wgl.py +52 -26
  187. pyglet/libs/win32/types.py +58 -23
  188. pyglet/{gl → libs/win32}/wgl.py +32 -25
  189. pyglet/{gl → libs/win32}/wglext_arb.py +364 -2
  190. pyglet/media/__init__.py +9 -10
  191. pyglet/media/codecs/__init__.py +12 -1
  192. pyglet/media/codecs/base.py +99 -96
  193. pyglet/media/codecs/ffmpeg.py +2 -2
  194. pyglet/media/codecs/ffmpeg_lib/libavformat.py +3 -8
  195. pyglet/media/codecs/webaudio_pyodide.py +111 -0
  196. pyglet/media/drivers/__init__.py +9 -4
  197. pyglet/media/drivers/base.py +4 -4
  198. pyglet/media/drivers/openal/__init__.py +1 -1
  199. pyglet/media/drivers/openal/adaptation.py +3 -3
  200. pyglet/media/drivers/pulse/__init__.py +1 -1
  201. pyglet/media/drivers/pulse/adaptation.py +3 -3
  202. pyglet/media/drivers/pyodide_js/__init__.py +8 -0
  203. pyglet/media/drivers/pyodide_js/adaptation.py +288 -0
  204. pyglet/media/drivers/xaudio2/adaptation.py +3 -3
  205. pyglet/media/player.py +276 -193
  206. pyglet/media/player_worker_thread.py +1 -1
  207. pyglet/model/__init__.py +39 -29
  208. pyglet/model/codecs/base.py +4 -4
  209. pyglet/model/codecs/gltf.py +3 -3
  210. pyglet/model/codecs/obj.py +71 -43
  211. pyglet/resource.py +129 -78
  212. pyglet/shapes.py +147 -177
  213. pyglet/sprite.py +47 -164
  214. pyglet/text/__init__.py +44 -54
  215. pyglet/text/caret.py +12 -7
  216. pyglet/text/document.py +19 -17
  217. pyglet/text/formats/html.py +2 -2
  218. pyglet/text/formats/structured.py +10 -40
  219. pyglet/text/layout/__init__.py +20 -13
  220. pyglet/text/layout/base.py +176 -287
  221. pyglet/text/layout/incremental.py +9 -10
  222. pyglet/text/layout/scrolling.py +7 -95
  223. pyglet/window/__init__.py +183 -172
  224. pyglet/window/cocoa/__init__.py +62 -51
  225. pyglet/window/cocoa/pyglet_delegate.py +2 -25
  226. pyglet/window/cocoa/pyglet_view.py +9 -8
  227. pyglet/window/dialog/__init__.py +184 -0
  228. pyglet/window/dialog/base.py +99 -0
  229. pyglet/window/dialog/darwin.py +121 -0
  230. pyglet/window/dialog/linux.py +72 -0
  231. pyglet/window/dialog/windows.py +194 -0
  232. pyglet/window/emscripten/__init__.py +779 -0
  233. pyglet/window/headless/__init__.py +44 -28
  234. pyglet/window/key.py +2 -0
  235. pyglet/window/mouse.py +2 -2
  236. pyglet/window/wayland/__init__.py +377 -0
  237. pyglet/window/win32/__init__.py +101 -46
  238. pyglet/window/xlib/__init__.py +104 -66
  239. {pyglet-2.1.12.dist-info → pyglet-3.0.dev1.dist-info}/METADATA +2 -3
  240. pyglet-3.0.dev1.dist-info/RECORD +322 -0
  241. {pyglet-2.1.12.dist-info → pyglet-3.0.dev1.dist-info}/WHEEL +1 -1
  242. pyglet/gl/__init__.py +0 -208
  243. pyglet/gl/base.py +0 -499
  244. pyglet/gl/cocoa.py +0 -309
  245. pyglet/gl/gl.py +0 -4625
  246. pyglet/gl/gl.pyi +0 -2320
  247. pyglet/gl/gl_compat.pyi +0 -3097
  248. pyglet/gl/gl_info.py +0 -190
  249. pyglet/gl/headless.py +0 -166
  250. pyglet/gl/wgl_info.py +0 -36
  251. pyglet/gl/wglext_nv.py +0 -1096
  252. pyglet/gl/win32.py +0 -268
  253. pyglet/gl/xlib.py +0 -295
  254. pyglet/image/buffer.py +0 -274
  255. pyglet/image/codecs/s3tc.py +0 -354
  256. pyglet/libs/x11/xrandr.py +0 -166
  257. pyglet-2.1.12.dist-info/RECORD +0 -234
  258. /pyglet/{libs/wayland → graphics/api/gl/cocoa}/__init__.py +0 -0
  259. /pyglet/libs/{egl → linux/egl}/egl.py +0 -0
  260. /pyglet/libs/{egl → linux/egl}/lib.py +0 -0
  261. /pyglet/libs/{ioctl.py → linux/ioctl.py} +0 -0
  262. /pyglet/libs/{wayland → linux/wayland}/gbm.py +0 -0
  263. /pyglet/libs/{x11 → linux/x11}/__init__.py +0 -0
  264. /pyglet/libs/{x11 → linux/x11}/cursorfont.py +0 -0
  265. /pyglet/libs/{x11 → linux/x11}/xlib.py +0 -0
  266. /pyglet/libs/{x11 → linux/x11}/xsync.py +0 -0
  267. {pyglet-2.1.12.dist-info/licenses → pyglet-3.0.dev1.dist-info}/LICENSE +0 -0
@@ -1,3 +1,4 @@
1
+ from __future__ import annotations
1
2
  import ctypes
2
3
  import sys
3
4
  from ctypes import (
@@ -47,6 +48,7 @@ from ctypes.wintypes import (
47
48
  LPARAM,
48
49
  LPCWSTR,
49
50
  LPOLESTR,
51
+ LPVOID,
50
52
  LPWSTR,
51
53
  MSG,
52
54
  POINT,
@@ -92,8 +94,7 @@ def POINTER_(obj):
92
94
  def from_param(cls, x):
93
95
  if x is None:
94
96
  return cls()
95
- else:
96
- return x
97
+ return x
97
98
 
98
99
  p.from_param = classmethod(from_param)
99
100
 
@@ -159,6 +160,8 @@ MONITOR_DEFAULTTONEAREST = 0
159
160
  MONITOR_DEFAULTTONULL = 1
160
161
  MONITOR_DEFAULTTOPRIMARY = 2
161
162
 
163
+ REGSAM = DWORD
164
+
162
165
  def MAKEINTRESOURCE(i):
163
166
  return cast(ctypes.c_void_p(i & 0xFFFF), c_wchar_p)
164
167
 
@@ -174,7 +177,7 @@ class WNDCLASS(Structure):
174
177
  ('hCursor', HCURSOR),
175
178
  ('hbrBackground', HBRUSH),
176
179
  ('lpszMenuName', c_char_p),
177
- ('lpszClassName', c_wchar_p)
180
+ ('lpszClassName', c_wchar_p),
178
181
  ]
179
182
 
180
183
 
@@ -182,7 +185,7 @@ class SECURITY_ATTRIBUTES(Structure):
182
185
  _fields_ = [
183
186
  ("nLength", DWORD),
184
187
  ("lpSecurityDescriptor", c_void_p),
185
- ("bInheritHandle", BOOL)
188
+ ("bInheritHandle", BOOL),
186
189
  ]
187
190
  __slots__ = [f[0] for f in _fields_]
188
191
 
@@ -214,7 +217,7 @@ class PIXELFORMATDESCRIPTOR(Structure):
214
217
  ('bReserved', BYTE),
215
218
  ('dwLayerMask', DWORD),
216
219
  ('dwVisibleMask', DWORD),
217
- ('dwDamageMask', DWORD)
220
+ ('dwDamageMask', DWORD),
218
221
  ]
219
222
 
220
223
 
@@ -294,7 +297,7 @@ class BITMAPV5HEADER(Structure):
294
297
  class BITMAPINFO(Structure):
295
298
  _fields_ = [
296
299
  ('bmiHeader', BITMAPINFOHEADER),
297
- ('bmiColors', RGBQUAD * 1)
300
+ ('bmiColors', RGBQUAD * 1),
298
301
  ]
299
302
  __slots__ = [f[0] for f in _fields_]
300
303
 
@@ -314,7 +317,7 @@ class LOGFONT(Structure):
314
317
  ('lfClipPrecision', BYTE),
315
318
  ('lfQuality', BYTE),
316
319
  ('lfPitchAndFamily', BYTE),
317
- ('lfFaceName', (c_char * LF_FACESIZE)) # Use ASCII
320
+ ('lfFaceName', (c_char * LF_FACESIZE)), # Use ASCII
318
321
  ]
319
322
 
320
323
 
@@ -334,7 +337,7 @@ class LOGFONTW(Structure):
334
337
  ('lfClipPrecision', BYTE),
335
338
  ('lfQuality', BYTE),
336
339
  ('lfPitchAndFamily', BYTE),
337
- ('lfFaceName', (WCHAR * LF_FACESIZE))
340
+ ('lfFaceName', (WCHAR * LF_FACESIZE)),
338
341
  ]
339
342
 
340
343
 
@@ -343,7 +346,7 @@ class TRACKMOUSEEVENT(Structure):
343
346
  ('cbSize', DWORD),
344
347
  ('dwFlags', DWORD),
345
348
  ('hwndTrack', HWND),
346
- ('dwHoverTime', DWORD)
349
+ ('dwHoverTime', DWORD),
347
350
  ]
348
351
  __slots__ = [f[0] for f in _fields_]
349
352
 
@@ -354,7 +357,7 @@ class MINMAXINFO(Structure):
354
357
  ('ptMaxSize', POINT),
355
358
  ('ptMaxPosition', POINT),
356
359
  ('ptMinTrackSize', POINT),
357
- ('ptMaxTrackSize', POINT)
360
+ ('ptMaxTrackSize', POINT),
358
361
  ]
359
362
  __slots__ = [f[0] for f in _fields_]
360
363
 
@@ -363,7 +366,7 @@ class ABC(Structure):
363
366
  _fields_ = [
364
367
  ('abcA', c_int),
365
368
  ('abcB', c_uint),
366
- ('abcC', c_int)
369
+ ('abcC', c_int),
367
370
  ]
368
371
  __slots__ = [f[0] for f in _fields_]
369
372
 
@@ -389,7 +392,7 @@ class TEXTMETRIC(Structure):
389
392
  ('tmUnderlined', c_byte),
390
393
  ('tmStruckOut', c_byte),
391
394
  ('tmPitchAndFamily', c_byte),
392
- ('tmCharSet', c_byte)
395
+ ('tmCharSet', c_byte),
393
396
  ]
394
397
  __slots__ = [f[0] for f in _fields_]
395
398
 
@@ -400,7 +403,7 @@ class MONITORINFOEX(Structure):
400
403
  ('rcMonitor', RECT),
401
404
  ('rcWork', RECT),
402
405
  ('dwFlags', DWORD),
403
- ('szDevice', WCHAR * CCHDEVICENAME)
406
+ ('szDevice', WCHAR * CCHDEVICENAME),
404
407
  ]
405
408
  __slots__ = [f[0] for f in _fields_]
406
409
 
@@ -422,7 +425,7 @@ class _DUMMYSTRUCTNAME2(Structure):
422
425
  _fields_ = [
423
426
  ('dmPosition', POINTL),
424
427
  ('dmDisplayOrientation', DWORD),
425
- ('dmDisplayFixedOutput', DWORD)
428
+ ('dmDisplayFixedOutput', DWORD),
426
429
  ]
427
430
 
428
431
 
@@ -475,7 +478,7 @@ class ICONINFO(Structure):
475
478
  ('xHotspot', DWORD),
476
479
  ('yHotspot', DWORD),
477
480
  ('hbmMask', HBITMAP),
478
- ('hbmColor', HBITMAP)
481
+ ('hbmColor', HBITMAP),
479
482
  ]
480
483
  __slots__ = [f[0] for f in _fields_]
481
484
 
@@ -485,7 +488,7 @@ class RAWINPUTDEVICE(Structure):
485
488
  ('usUsagePage', USHORT),
486
489
  ('usUsage', USHORT),
487
490
  ('dwFlags', DWORD),
488
- ('hwndTarget', HWND)
491
+ ('hwndTarget', HWND),
489
492
  ]
490
493
 
491
494
 
@@ -568,7 +571,7 @@ class _VarTable(Union):
568
571
  """Must be in an anonymous union or values will not work across various VT's."""
569
572
  _fields_ = [
570
573
  ('llVal', ctypes.c_longlong),
571
- ('pwszVal', LPWSTR)
574
+ ('pwszVal', LPWSTR),
572
575
  ]
573
576
 
574
577
 
@@ -580,14 +583,14 @@ class PROPVARIANT(Structure):
580
583
  ('wReserved1', ctypes.c_ubyte),
581
584
  ('wReserved2', ctypes.c_ubyte),
582
585
  ('wReserved3', ctypes.c_ulong),
583
- ('union', _VarTable)
586
+ ('union', _VarTable),
584
587
  ]
585
588
 
586
589
 
587
590
  class _VarTableVariant(Union):
588
591
  """Must be in an anonymous union or values will not work across various VT's."""
589
592
  _fields_ = [
590
- ('bstrVal', LPCWSTR)
593
+ ('bstrVal', LPCWSTR),
591
594
  ]
592
595
 
593
596
 
@@ -599,7 +602,7 @@ class VARIANT(Structure):
599
602
  ('wReserved1', WORD),
600
603
  ('wReserved2', WORD),
601
604
  ('wReserved3', WORD),
602
- ('union', _VarTableVariant)
605
+ ('union', _VarTableVariant),
603
606
  ]
604
607
 
605
608
 
@@ -674,7 +677,7 @@ class DEV_BROADCAST_DEVICEINTERFACE(Structure):
674
677
  ('dbcc_devicetype', DWORD),
675
678
  ('dbcc_reserved', DWORD),
676
679
  ('dbcc_classguid', com.GUID),
677
- ('dbcc_name', ctypes.c_wchar * 256)
680
+ ('dbcc_name', ctypes.c_wchar * 256),
678
681
  )
679
682
 
680
683
 
@@ -751,14 +754,14 @@ class DISPLAYCONFIG_DEVICE_INFO_HEADER(ctypes.Structure):
751
754
  _fields_ = [('type', UINT32),
752
755
  ('size', UINT32),
753
756
  ('adapterId', LUID),
754
- ('id', UINT32)
757
+ ('id', UINT32),
755
758
  ]
756
759
 
757
760
 
758
761
  class DISPLAYCONFIG_SOURCE_DEVICE_NAME(ctypes.Structure):
759
762
  _fields_ = [
760
763
  ('header', DISPLAYCONFIG_DEVICE_INFO_HEADER),
761
- ('viewGdiDeviceName', WCHAR * 32)
764
+ ('viewGdiDeviceName', WCHAR * 32),
762
765
  ]
763
766
 
764
767
 
@@ -773,3 +776,35 @@ class DISPLAYCONFIG_TARGET_DEVICE_NAME(ctypes.Structure):
773
776
  ('monitorFriendlyDeviceName', WCHAR * 64),
774
777
  ('monitorDevicePath', WCHAR * 128),
775
778
  ]
779
+
780
+
781
+ LPOFNHOOKPROC = ctypes.WINFUNCTYPE(UINT, HWND, UINT,WPARAM, LPARAM)
782
+
783
+ LPEDITMENU = ctypes.c_void_p
784
+
785
+ class OPENFILENAMEW(Structure):
786
+ _fields_ = [
787
+ ("lStructSize", DWORD),
788
+ ("hwndOwner", HWND),
789
+ ("hInstance", HINSTANCE),
790
+ ("lpstrFilter", LPCWSTR),
791
+ ("lpstrCustomFilter", LPWSTR),
792
+ ("nMaxCustFilter", DWORD),
793
+ ("nFilterIndex", DWORD),
794
+ ("lpstrFile", LPWSTR),
795
+ ("nMaxFile", DWORD),
796
+ ("lpstrFileTitle", LPWSTR),
797
+ ("nMaxFileTitle", DWORD),
798
+ ("lpstrInitialDir", LPCWSTR),
799
+ ("lpstrTitle", LPCWSTR),
800
+ ("Flags", DWORD),
801
+ ("nFileOffset", WORD),
802
+ ("nFileExtension", WORD),
803
+ ("lpstrDefExt", LPCWSTR),
804
+ ("lCustData", LPARAM),
805
+ ("lpfnHook", LPOFNHOOKPROC),
806
+ ("lpTemplateName", LPCWSTR),
807
+ ("pvReserved", LPVOID),
808
+ ("dwReserved", DWORD),
809
+ ("FlagsEx", DWORD),
810
+ ]
@@ -2,11 +2,13 @@
2
2
 
3
3
  Generated by tools/gengl.py.
4
4
  """
5
+ from __future__ import annotations
5
6
 
6
7
  from ctypes import CFUNCTYPE, POINTER, Structure, c_int
7
8
  from ctypes.wintypes import DWORD, BOOL, FLOAT, LONG, UINT, HDC, WORD, HANDLE, LPCSTR
8
9
 
9
- from pyglet.gl.lib import link_WGL as _link_function
10
+ from pyglet.graphics.api.gl.lib import link_WGL as _link_function
11
+ from pyglet.libs.win32.wglext_arb import WGLFunctionsARB
10
12
  from pyglet.libs.win32.types import BYTE
11
13
 
12
14
  if not _link_function:
@@ -33,7 +35,6 @@ wglMakeCurrent = _link_function('wglMakeCurrent', BOOL, [HDC, HGLRC], None)
33
35
  wglShareLists = _link_function('wglShareLists', BOOL, [HGLRC, HGLRC], None)
34
36
  wglUseFontBitmapsA = _link_function('wglUseFontBitmapsA', BOOL, [HDC, DWORD, DWORD, DWORD], None)
35
37
  wglUseFontBitmapsW = _link_function('wglUseFontBitmapsW', BOOL, [HDC, DWORD, DWORD, DWORD], None)
36
- SwapBuffers = _link_function('SwapBuffers', BOOL, [HDC], None)
37
38
 
38
39
 
39
40
  class struct__POINTFLOAT(Structure):
@@ -56,9 +57,9 @@ class struct__GLYPHMETRICSFLOAT(Structure):
56
57
  __slots__ = [
57
58
  'gmfBlackBoxX',
58
59
  'gmfBlackBoxY',
59
- 'gmfptGlyphOrigin',
60
60
  'gmfCellIncX',
61
61
  'gmfCellIncY',
62
+ 'gmfptGlyphOrigin',
62
63
  ]
63
64
 
64
65
 
@@ -80,32 +81,38 @@ wglUseFontOutlinesA = _link_function('wglUseFontOutlinesA', BOOL, [HDC, DWORD, D
80
81
  wglUseFontOutlinesW = _link_function('wglUseFontOutlinesW', BOOL, [HDC, DWORD, DWORD, DWORD, FLOAT, FLOAT, c_int, LPGLYPHMETRICSFLOAT], None)
81
82
 
82
83
 
84
+
85
+ class WGLFunctions(WGLFunctionsARB):
86
+ def __init__(self):
87
+ super().__init__()
88
+
89
+
83
90
  class struct_tagLAYERPLANEDESCRIPTOR(Structure):
84
91
  __slots__ = [
85
- 'nSize',
86
- 'nVersion',
87
- 'dwFlags',
88
- 'iPixelType',
89
- 'cColorBits',
90
- 'cRedBits',
91
- 'cRedShift',
92
- 'cGreenBits',
93
- 'cGreenShift',
94
- 'cBlueBits',
95
- 'cBlueShift',
96
- 'cAlphaBits',
97
- 'cAlphaShift',
92
+ 'bReserved',
93
+ 'cAccumAlphaBits',
98
94
  'cAccumBits',
99
- 'cAccumRedBits',
100
- 'cAccumGreenBits',
101
95
  'cAccumBlueBits',
102
- 'cAccumAlphaBits',
96
+ 'cAccumGreenBits',
97
+ 'cAccumRedBits',
98
+ 'cAlphaBits',
99
+ 'cAlphaShift',
100
+ 'cAuxBuffers',
101
+ 'cBlueBits',
102
+ 'cBlueShift',
103
+ 'cColorBits',
103
104
  'cDepthBits',
105
+ 'cGreenBits',
106
+ 'cGreenShift',
107
+ 'cRedBits',
108
+ 'cRedShift',
104
109
  'cStencilBits',
105
- 'cAuxBuffers',
106
- 'iLayerPlane',
107
- 'bReserved',
108
110
  'crTransparent',
111
+ 'dwFlags',
112
+ 'iLayerPlane',
113
+ 'iPixelType',
114
+ 'nSize',
115
+ 'nVersion',
109
116
  ]
110
117
 
111
118
 
@@ -212,10 +219,10 @@ wglSwapMultipleBuffers = _link_function('wglSwapMultipleBuffers', DWORD, [UINT,
212
219
 
213
220
  class struct_tagRECT(Structure):
214
221
  __slots__ = [
222
+ 'bottom',
215
223
  'left',
216
- 'top',
217
224
  'right',
218
- 'bottom',
225
+ 'top',
219
226
  ]
220
227
 
221
228
 
@@ -298,7 +305,7 @@ __all__ = [
298
305
  'WGL_SWAP_UNDERLAY13',
299
306
  'WGL_SWAP_UNDERLAY14',
300
307
  'WGL_SWAP_UNDERLAY15',
301
- 'SwapBuffers',
308
+ 'WGLFunctions',
302
309
  'wglCopyContext',
303
310
  'wglCreateContext',
304
311
  'wglCreateLayerContext',