pyobjc-framework-MetalFX 12.2.2__tar.gz → 13.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/Lib/MetalFX/_metadata.py +218 -2
  2. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/Lib/pyobjc_framework_MetalFX.egg-info/PKG-INFO +5 -5
  3. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/Lib/pyobjc_framework_MetalFX.egg-info/SOURCES.txt +2 -2
  4. pyobjc_framework_metalfx-13.0/Lib/pyobjc_framework_MetalFX.egg-info/pyobjc-build-info.txt +3 -0
  5. pyobjc_framework_metalfx-13.0/Lib/pyobjc_framework_MetalFX.egg-info/requires.txt +2 -0
  6. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/Modules/_MetalFX.m +9 -2
  7. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/Modules/_MetalFX_protocols.m +7 -5
  8. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/Modules/pyobjc-api.h +18 -4
  9. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/Modules/pyobjc-compat.h +0 -18
  10. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/PKG-INFO +5 -5
  11. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/PyObjCTest/test_metalfx.py +1 -1
  12. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/PyObjCTest/test_mtl4fxframeinterpolator.py +1 -1
  13. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/PyObjCTest/test_mtl4fxspatialscaler.py +1 -1
  14. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/PyObjCTest/test_mtl4fxtemporaldenoisedscaler.py +1 -1
  15. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/PyObjCTest/test_mtl4fxtemporalscaler.py +1 -1
  16. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/PyObjCTest/test_mtlfxframeinterpolator.py +226 -3
  17. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/PyObjCTest/test_mtlfxspatialscaler.py +10 -3
  18. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/PyObjCTest/test_mtlfxtemporaldenoisedscaler.py +9 -2
  19. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/PyObjCTest/test_mtlfxtemporalscaler.py +177 -4
  20. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/metadata/MetalFX.fwinfo +0 -4
  21. pyobjc_framework_metalfx-12.2.2/metadata/raw/arm64-26.5.fwinfo → pyobjc_framework_metalfx-13.0/metadata/raw/arm64-27.fwinfo +1653 -357
  22. pyobjc_framework_metalfx-12.2.2/metadata/raw/x86_64-26.5.fwinfo → pyobjc_framework_metalfx-13.0/metadata/raw/x86_64-27.fwinfo +1653 -357
  23. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/pyobjc_setup.py +7 -7
  24. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/setup.py +1 -1
  25. pyobjc_framework_metalfx-12.2.2/Lib/pyobjc_framework_MetalFX.egg-info/pyobjc-build-info.txt +0 -3
  26. pyobjc_framework_metalfx-12.2.2/Lib/pyobjc_framework_MetalFX.egg-info/requires.txt +0 -2
  27. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/Lib/MetalFX/__init__.py +0 -0
  28. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/Lib/pyobjc_framework_MetalFX.egg-info/dependency_links.txt +0 -0
  29. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/Lib/pyobjc_framework_MetalFX.egg-info/not-zip-safe +0 -0
  30. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/Lib/pyobjc_framework_MetalFX.egg-info/top_level.txt +0 -0
  31. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/License.txt +0 -0
  32. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/MANIFEST.in +0 -0
  33. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/PyObjCTest/__init__.py +0 -0
  34. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/metadata/metadata.ini +0 -0
  35. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/pyproject.toml +0 -0
  36. {pyobjc_framework_metalfx-12.2.2 → pyobjc_framework_metalfx-13.0}/setup.cfg +0 -0
@@ -1,7 +1,5 @@
1
1
  # This file is generated by objective.metadata
2
2
  #
3
- # Last update: Sun May 24 11:52:55 2026
4
- #
5
3
  # flake8: noqa
6
4
 
7
5
  import objc, sys
@@ -44,6 +42,36 @@ misc.update({})
44
42
  r = objc.registerMetaDataForSelector
45
43
  objc._updatingMetadata(True)
46
44
  try:
45
+ r(
46
+ b"MTLFXFrameInterpolatorDescriptor",
47
+ b"isDistortionTextureEnabled",
48
+ {"retval": {"type": b"Z"}},
49
+ )
50
+ r(
51
+ b"MTLFXFrameInterpolatorDescriptor",
52
+ b"newFrameInterpolatorWithDevice:",
53
+ {"retval": {"already_retained": True}},
54
+ )
55
+ r(
56
+ b"MTLFXFrameInterpolatorDescriptor",
57
+ b"newFrameInterpolatorWithDevice:compiler:",
58
+ {"retval": {"already_retained": True}},
59
+ )
60
+ r(
61
+ b"MTLFXFrameInterpolatorDescriptor",
62
+ b"requiresPrevColorTexture",
63
+ {"retval": {"type": b"Z"}},
64
+ )
65
+ r(
66
+ b"MTLFXFrameInterpolatorDescriptor",
67
+ b"setDistortionTextureEnabled:",
68
+ {"arguments": {2: {"type": b"Z"}}},
69
+ )
70
+ r(
71
+ b"MTLFXFrameInterpolatorDescriptor",
72
+ b"setRequiresPrevColorTexture:",
73
+ {"arguments": {2: {"type": b"Z"}}},
74
+ )
47
75
  r(
48
76
  b"MTLFXFrameInterpolatorDescriptor",
49
77
  b"supportsDevice:",
@@ -54,6 +82,16 @@ try:
54
82
  b"supportsMetal4FX:",
55
83
  {"retval": {"type": b"Z"}},
56
84
  )
85
+ r(
86
+ b"MTLFXSpatialScalerDescriptor",
87
+ b"newSpatialScalerWithDevice:",
88
+ {"retval": {"already_retained": True}},
89
+ )
90
+ r(
91
+ b"MTLFXSpatialScalerDescriptor",
92
+ b"newSpatialScalerWithDevice:compiler:",
93
+ {"retval": {"already_retained": True}},
94
+ )
57
95
  r(b"MTLFXSpatialScalerDescriptor", b"supportsDevice:", {"retval": {"type": b"Z"}})
58
96
  r(b"MTLFXSpatialScalerDescriptor", b"supportsMetal4FX:", {"retval": {"type": b"Z"}})
59
97
  r(
@@ -81,6 +119,16 @@ try:
81
119
  b"isTransparencyOverlayTextureEnabled",
82
120
  {"retval": {"type": b"Z"}},
83
121
  )
122
+ r(
123
+ b"MTLFXTemporalDenoisedScalerDescriptor",
124
+ b"newTemporalDenoisedScalerWithDevice:",
125
+ {"retval": {"already_retained": True}},
126
+ )
127
+ r(
128
+ b"MTLFXTemporalDenoisedScalerDescriptor",
129
+ b"newTemporalDenoisedScalerWithDevice:compiler:",
130
+ {"retval": {"already_retained": True}},
131
+ )
84
132
  r(
85
133
  b"MTLFXTemporalDenoisedScalerDescriptor",
86
134
  b"requiresSynchronousInitialization",
@@ -136,11 +184,31 @@ try:
136
184
  b"isInputContentPropertiesEnabled",
137
185
  {"retval": {"type": b"Z"}},
138
186
  )
187
+ r(
188
+ b"MTLFXTemporalScalerDescriptor",
189
+ b"isJitteredMotionVectorsEnabled",
190
+ {"retval": {"type": b"Z"}},
191
+ )
192
+ r(
193
+ b"MTLFXTemporalScalerDescriptor",
194
+ b"isOutputResolutionMotionVectorsEnabled",
195
+ {"retval": {"type": b"Z"}},
196
+ )
139
197
  r(
140
198
  b"MTLFXTemporalScalerDescriptor",
141
199
  b"isReactiveMaskTextureEnabled",
142
200
  {"retval": {"type": b"Z"}},
143
201
  )
202
+ r(
203
+ b"MTLFXTemporalScalerDescriptor",
204
+ b"newTemporalScalerWithDevice:",
205
+ {"retval": {"already_retained": True}},
206
+ )
207
+ r(
208
+ b"MTLFXTemporalScalerDescriptor",
209
+ b"newTemporalScalerWithDevice:compiler:",
210
+ {"retval": {"already_retained": True}},
211
+ )
144
212
  r(
145
213
  b"MTLFXTemporalScalerDescriptor",
146
214
  b"requiresSynchronousInitialization",
@@ -156,6 +224,16 @@ try:
156
224
  b"setInputContentPropertiesEnabled:",
157
225
  {"arguments": {2: {"type": b"Z"}}},
158
226
  )
227
+ r(
228
+ b"MTLFXTemporalScalerDescriptor",
229
+ b"setJitteredMotionVectorsEnabled:",
230
+ {"arguments": {2: {"type": b"Z"}}},
231
+ )
232
+ r(
233
+ b"MTLFXTemporalScalerDescriptor",
234
+ b"setOutputResolutionMotionVectorsEnabled:",
235
+ {"arguments": {2: {"type": b"Z"}}},
236
+ )
159
237
  r(
160
238
  b"MTLFXTemporalScalerDescriptor",
161
239
  b"setReactiveMaskTextureEnabled:",
@@ -173,10 +251,14 @@ try:
173
251
  {"retval": {"type": b"Z"}},
174
252
  )
175
253
  r(b"NSObject", b"aspectRatio", {"required": True, "retval": {"type": b"f"}})
254
+ r(b"NSObject", b"colorContentOffsetX", {"required": True, "retval": {"type": b"Q"}})
255
+ r(b"NSObject", b"colorContentOffsetY", {"required": True, "retval": {"type": b"Q"}})
176
256
  r(b"NSObject", b"colorProcessingMode", {"required": True, "retval": {"type": b"q"}})
177
257
  r(b"NSObject", b"colorTexture", {"required": True, "retval": {"type": b"@"}})
178
258
  r(b"NSObject", b"colorTextureFormat", {"required": True, "retval": {"type": b"Q"}})
179
259
  r(b"NSObject", b"colorTextureUsage", {"required": True, "retval": {"type": b"Q"}})
260
+ r(b"NSObject", b"contentHeight", {"required": True, "retval": {"type": b"Q"}})
261
+ r(b"NSObject", b"contentWidth", {"required": True, "retval": {"type": b"Q"}})
180
262
  r(b"NSObject", b"deltaTime", {"required": True, "retval": {"type": b"f"}})
181
263
  r(
182
264
  b"NSObject",
@@ -193,6 +275,8 @@ try:
193
275
  b"denoiseStrengthMaskTextureUsage",
194
276
  {"required": True, "retval": {"type": b"Q"}},
195
277
  )
278
+ r(b"NSObject", b"depthContentOffsetX", {"required": True, "retval": {"type": b"Q"}})
279
+ r(b"NSObject", b"depthContentOffsetY", {"required": True, "retval": {"type": b"Q"}})
196
280
  r(b"NSObject", b"depthTexture", {"required": True, "retval": {"type": b"@"}})
197
281
  r(b"NSObject", b"depthTextureFormat", {"required": True, "retval": {"type": b"Q"}})
198
282
  r(b"NSObject", b"depthTextureUsage", {"required": True, "retval": {"type": b"Q"}})
@@ -211,6 +295,11 @@ try:
211
295
  b"diffuseAlbedoTextureUsage",
212
296
  {"required": True, "retval": {"type": b"Q"}},
213
297
  )
298
+ r(b"NSObject", b"distortionHeight", {"required": True, "retval": {"type": b"Q"}})
299
+ r(b"NSObject", b"distortionOffsetX", {"required": True, "retval": {"type": b"Q"}})
300
+ r(b"NSObject", b"distortionOffsetY", {"required": True, "retval": {"type": b"Q"}})
301
+ r(b"NSObject", b"distortionTexture", {"required": True, "retval": {"type": b"@"}})
302
+ r(b"NSObject", b"distortionWidth", {"required": True, "retval": {"type": b"Q"}})
214
303
  r(
215
304
  b"NSObject",
216
305
  b"encodeToCommandBuffer:",
@@ -242,6 +331,16 @@ try:
242
331
  )
243
332
  r(b"NSObject", b"jitterOffsetX", {"required": True, "retval": {"type": b"f"}})
244
333
  r(b"NSObject", b"jitterOffsetY", {"required": True, "retval": {"type": b"f"}})
334
+ r(
335
+ b"NSObject",
336
+ b"motionContentOffsetX",
337
+ {"required": True, "retval": {"type": b"Q"}},
338
+ )
339
+ r(
340
+ b"NSObject",
341
+ b"motionContentOffsetY",
342
+ {"required": True, "retval": {"type": b"Q"}},
343
+ )
245
344
  r(b"NSObject", b"motionTexture", {"required": True, "retval": {"type": b"@"}})
246
345
  r(b"NSObject", b"motionTextureFormat", {"required": True, "retval": {"type": b"Q"}})
247
346
  r(b"NSObject", b"motionTextureUsage", {"required": True, "retval": {"type": b"Q"}})
@@ -252,18 +351,35 @@ try:
252
351
  r(b"NSObject", b"normalTextureFormat", {"required": True, "retval": {"type": b"Q"}})
253
352
  r(b"NSObject", b"normalTextureUsage", {"required": True, "retval": {"type": b"Q"}})
254
353
  r(b"NSObject", b"outputHeight", {"required": True, "retval": {"type": b"Q"}})
354
+ r(b"NSObject", b"outputOffsetX", {"required": True, "retval": {"type": b"Q"}})
355
+ r(b"NSObject", b"outputOffsetY", {"required": True, "retval": {"type": b"Q"}})
255
356
  r(b"NSObject", b"outputTexture", {"required": True, "retval": {"type": b"@"}})
256
357
  r(b"NSObject", b"outputTextureFormat", {"required": True, "retval": {"type": b"Q"}})
257
358
  r(b"NSObject", b"outputTextureUsage", {"required": True, "retval": {"type": b"Q"}})
258
359
  r(b"NSObject", b"outputWidth", {"required": True, "retval": {"type": b"Q"}})
259
360
  r(b"NSObject", b"preExposure", {"required": True, "retval": {"type": b"f"}})
260
361
  r(b"NSObject", b"prevColorTexture", {"required": True, "retval": {"type": b"@"}})
362
+ r(
363
+ b"NSObject",
364
+ b"reactiveMaskContentOffsetX",
365
+ {"required": True, "retval": {"type": b"Q"}},
366
+ )
367
+ r(
368
+ b"NSObject",
369
+ b"reactiveMaskContentOffsetY",
370
+ {"required": True, "retval": {"type": b"Q"}},
371
+ )
261
372
  r(b"NSObject", b"reactiveMaskTexture", {"required": True, "retval": {"type": b"@"}})
262
373
  r(
263
374
  b"NSObject",
264
375
  b"reactiveMaskTextureFormat",
265
376
  {"required": True, "retval": {"type": b"Q"}},
266
377
  )
378
+ r(
379
+ b"NSObject",
380
+ b"reactiveMaskTextureUsage",
381
+ {"required": True, "retval": {"type": b"Q"}},
382
+ )
267
383
  r(
268
384
  b"NSObject",
269
385
  b"reactiveTextureUsage",
@@ -286,11 +402,31 @@ try:
286
402
  b"setAspectRatio:",
287
403
  {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"f"}}},
288
404
  )
405
+ r(
406
+ b"NSObject",
407
+ b"setColorContentOffsetX:",
408
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
409
+ )
410
+ r(
411
+ b"NSObject",
412
+ b"setColorContentOffsetY:",
413
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
414
+ )
289
415
  r(
290
416
  b"NSObject",
291
417
  b"setColorTexture:",
292
418
  {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"@"}}},
293
419
  )
420
+ r(
421
+ b"NSObject",
422
+ b"setContentHeight:",
423
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
424
+ )
425
+ r(
426
+ b"NSObject",
427
+ b"setContentWidth:",
428
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
429
+ )
294
430
  r(
295
431
  b"NSObject",
296
432
  b"setDeltaTime:",
@@ -301,6 +437,16 @@ try:
301
437
  b"setDenoiseStrengthMaskTexture:",
302
438
  {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"@"}}},
303
439
  )
440
+ r(
441
+ b"NSObject",
442
+ b"setDepthContentOffsetX:",
443
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
444
+ )
445
+ r(
446
+ b"NSObject",
447
+ b"setDepthContentOffsetY:",
448
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
449
+ )
304
450
  r(
305
451
  b"NSObject",
306
452
  b"setDepthReversed:",
@@ -316,6 +462,31 @@ try:
316
462
  b"setDiffuseAlbedoTexture:",
317
463
  {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"@"}}},
318
464
  )
465
+ r(
466
+ b"NSObject",
467
+ b"setDistortionHeight:",
468
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
469
+ )
470
+ r(
471
+ b"NSObject",
472
+ b"setDistortionOffsetX:",
473
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
474
+ )
475
+ r(
476
+ b"NSObject",
477
+ b"setDistortionOffsetY:",
478
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
479
+ )
480
+ r(
481
+ b"NSObject",
482
+ b"setDistortionTexture:",
483
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"@"}}},
484
+ )
485
+ r(
486
+ b"NSObject",
487
+ b"setDistortionWidth:",
488
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
489
+ )
319
490
  r(
320
491
  b"NSObject",
321
492
  b"setExposureTexture:",
@@ -361,6 +532,16 @@ try:
361
532
  b"setJitterOffsetY:",
362
533
  {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"f"}}},
363
534
  )
535
+ r(
536
+ b"NSObject",
537
+ b"setMotionContentOffsetX:",
538
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
539
+ )
540
+ r(
541
+ b"NSObject",
542
+ b"setMotionContentOffsetY:",
543
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
544
+ )
364
545
  r(
365
546
  b"NSObject",
366
547
  b"setMotionTexture:",
@@ -386,6 +567,16 @@ try:
386
567
  b"setNormalTexture:",
387
568
  {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"@"}}},
388
569
  )
570
+ r(
571
+ b"NSObject",
572
+ b"setOutputOffsetX:",
573
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
574
+ )
575
+ r(
576
+ b"NSObject",
577
+ b"setOutputOffsetY:",
578
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
579
+ )
389
580
  r(
390
581
  b"NSObject",
391
582
  b"setOutputTexture:",
@@ -401,6 +592,16 @@ try:
401
592
  b"setPrevColorTexture:",
402
593
  {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"@"}}},
403
594
  )
595
+ r(
596
+ b"NSObject",
597
+ b"setReactiveMaskContentOffsetX:",
598
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
599
+ )
600
+ r(
601
+ b"NSObject",
602
+ b"setReactiveMaskContentOffsetY:",
603
+ {"required": True, "retval": {"type": b"v"}, "arguments": {2: {"type": b"Q"}}},
604
+ )
404
605
  r(
405
606
  b"NSObject",
406
607
  b"setReactiveMaskTexture:",
@@ -531,5 +732,20 @@ try:
531
732
  finally:
532
733
  objc._updatingMetadata(False)
533
734
  expressions = {}
735
+ formal_protocols = {
736
+ "MTL4FXFrameInterpolator": "MTL4FXFrameInterpolator",
737
+ "MTL4FXSpatialScaler": "MTL4FXSpatialScaler",
738
+ "MTL4FXTemporalDenoisedScaler": "MTL4FXTemporalDenoisedScaler",
739
+ "MTL4FXTemporalScaler": "MTL4FXTemporalScaler",
740
+ "MTLFXFrameInterpolatableScaler": "MTLFXFrameInterpolatableScaler",
741
+ "MTLFXFrameInterpolator": "MTLFXFrameInterpolator",
742
+ "MTLFXFrameInterpolatorBase": "MTLFXFrameInterpolatorBase",
743
+ "MTLFXSpatialScaler": "MTLFXSpatialScaler",
744
+ "MTLFXSpatialScalerBase": "MTLFXSpatialScalerBase",
745
+ "MTLFXTemporalDenoisedScaler": "MTLFXTemporalDenoisedScaler",
746
+ "MTLFXTemporalDenoisedScalerBase": "MTLFXTemporalDenoisedScalerBase",
747
+ "MTLFXTemporalScaler": "MTLFXTemporalScaler",
748
+ "MTLFXTemporalScalerBase": "MTLFXTemporalScalerBase",
749
+ }
534
750
 
535
751
  # END OF FILE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-MetalFX
3
- Version: 12.2.2
3
+ Version: 13.0
4
4
  Summary: Wrappers for the framework MetalFX on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -17,21 +17,21 @@ Classifier: Operating System :: MacOS :: MacOS X
17
17
  Classifier: Programming Language :: Python
18
18
  Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
22
21
  Classifier: Programming Language :: Python :: 3.12
23
22
  Classifier: Programming Language :: Python :: 3.13
24
23
  Classifier: Programming Language :: Python :: 3.14
25
24
  Classifier: Programming Language :: Python :: 3.15
25
+ Classifier: Programming Language :: Python :: 3.16
26
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
27
27
  Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
28
28
  Classifier: Programming Language :: Objective C
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.10
31
+ Requires-Python: >=3.11
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=12.2.2
34
- Requires-Dist: pyobjc-framework-Metal>=12.2.2
33
+ Requires-Dist: pyobjc-core>=13.0
34
+ Requires-Dist: pyobjc-framework-Metal>=13.0
35
35
  Dynamic: author
36
36
  Dynamic: author-email
37
37
  Dynamic: classifier
@@ -28,5 +28,5 @@ PyObjCTest/test_mtlfxtemporaldenoisedscaler.py
28
28
  PyObjCTest/test_mtlfxtemporalscaler.py
29
29
  metadata/MetalFX.fwinfo
30
30
  metadata/metadata.ini
31
- metadata/raw/arm64-26.5.fwinfo
32
- metadata/raw/x86_64-26.5.fwinfo
31
+ metadata/raw/arm64-27.fwinfo
32
+ metadata/raw/x86_64-27.fwinfo
@@ -0,0 +1,3 @@
1
+ macOS 27.2 (26B123)
2
+ Apple clang version 21.0.0 (clang-2100.4.1.1)
3
+ SDK: macOS 27.2
@@ -0,0 +1,2 @@
1
+ pyobjc-core>=13.0
2
+ pyobjc-framework-Metal>=13.0
@@ -2,6 +2,10 @@
2
2
  #include "Python.h"
3
3
  #include "pyobjc-api.h"
4
4
 
5
+ #ifdef USE_STATIC_ANALYZER
6
+ #include "../../pyobjc-core/Modules/objc/python-api-used.h"
7
+ #endif
8
+
5
9
  #import <Foundation/Foundation.h>
6
10
  #import <MetalFX/MetalFX.h>
7
11
 
@@ -10,6 +14,8 @@
10
14
  */
11
15
  #include "_MetalFX_protocols.m"
12
16
 
17
+ NS_ASSUME_NONNULL_BEGIN
18
+
13
19
  static PyMethodDef mod_methods[] = {
14
20
  {0, 0, 0, 0} /* sentinel */
15
21
  };
@@ -55,10 +61,11 @@ static struct PyModuleDef mod_module = {
55
61
  .m_free = NULL,
56
62
  };
57
63
 
58
- PyObject* PyInit__MetalFX(void);
64
+ PyObject* _Nullable PyInit__MetalFX(void);
59
65
 
60
- PyObject* __attribute__((__visibility__("default")))
66
+ PyObject* _Nullable __attribute__((__visibility__("default")))
61
67
  PyInit__MetalFX(void)
62
68
  {
63
69
  return PyModuleDef_Init(&mod_module);
64
70
  }
71
+ NS_ASSUME_NONNULL_END
@@ -1,8 +1,7 @@
1
- /*
2
- * This file is generated by objective.metadata
3
- *
4
- * Last update: Sun Jun 26 10:58:31 2022
5
- */
1
+ // LCOV_EXCL_START
2
+ // This function is only present to ensure protocols are
3
+ // available at runtime.
4
+ NS_ASSUME_NONNULL_BEGIN
6
5
 
7
6
  static void __attribute__((__used__))
8
7
  use_protocols(void)
@@ -37,3 +36,6 @@ use_protocols(void)
37
36
  Py_XDECREF(p);
38
37
  #endif /* PyObjC_BUILD_RELEASE >= 2600 */
39
38
  }
39
+
40
+ NS_ASSUME_NONNULL_END
41
+ // LCOV_EXCL_STOP
@@ -60,6 +60,11 @@ typedef int(RegisterMethodMappingFunctionType)(
60
60
  PyObject* _Nonnull const* _Nonnull, size_t),
61
61
  IMP _Nullable (*_Nonnull)(PyObject* _Nonnull, PyObject* _Nonnull));
62
62
 
63
+ #ifndef PyObjC_FUNCTION_CALL_H
64
+ typedef PyObject* _Nullable (*PyObjC_FunctionCallFunc)(
65
+ PyObject* meth, PyObject* _Nonnull const* _Nonnull args, size_t nargs);
66
+ #endif
67
+
63
68
  struct pyobjc_api {
64
69
  int api_version; /* API version */
65
70
  size_t struct_len; /* Length of this struct */
@@ -117,6 +122,9 @@ struct pyobjc_api {
117
122
 
118
123
  PyObject* _Nullable (*_Nonnull createopaquepointertype)(const char*, const char*,
119
124
  const char*);
125
+ int (*_Nonnull register_functioncaller)(void*, PyObjC_FunctionCallFunc);
126
+ PyObject* _Nullable (*_Nonnull create_registered_struct)(
127
+ const char*, Py_ssize_t, const char* _Nonnull* _Nullable, Py_ssize_t*);
120
128
  };
121
129
 
122
130
  #ifndef PYOBJC_BUILD
@@ -159,6 +167,8 @@ static struct pyobjc_api* PyObjC_API;
159
167
  #define PyObjC_CheckArgCount (PyObjC_API->checkargcount)
160
168
  #define PyObjC_CheckNoKwnames (PyObjC_API->checknokwnames)
161
169
  #define PyObjCCreateOpaquePointerType (PyObjC_API->createopaquepointertype)
170
+ #define PyObjCRegister_FunctionCaller (PyObjC_API->register_functioncaller)
171
+ #define PyObjC_CreateRegisteredStruct (PyObjC_API->create_registered_struct)
162
172
 
163
173
  typedef void (*PyObjC_Function_Pointer)(void);
164
174
  typedef struct PyObjC_function_map {
@@ -178,21 +188,25 @@ static inline int
178
188
  PyObjC_ImportAPI(PyObject* calling_module)
179
189
  {
180
190
  PyObjC_API = (struct pyobjc_api*)PyCapsule_Import("objc." PYOBJC_API_NAME, 0);
181
- if (PyObjC_API == NULL) {
182
- return -1;
191
+ if (PyObjC_API == NULL) { // LCOV_BR_EXCL_LINE
192
+ return -1; // LCOV_EXCL_LINE
183
193
  }
184
- if (PyObjC_API->api_version != PYOBJC_API_VERSION) {
194
+ if (PyObjC_API->api_version != PYOBJC_API_VERSION) { // LCOV_BR_EXCL_LINE
195
+ // LCOV_EXCL_START
185
196
  PyErr_Format(PyExc_RuntimeError,
186
197
  "Wrong version of PyObjC C API (got %d, expected %d)",
187
198
  (int)PyObjC_API->api_version, (int)PYOBJC_API_VERSION);
188
199
  return -1;
200
+ // LCOV_EXCL_STOP
189
201
  }
190
202
 
191
- if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) {
203
+ if (PyObjC_API->struct_len < PyObjC_EXPECTED_STRUCT_SIZE) { // LCOV_EXCL_LINE
204
+ // LCOV_EXCL_START
192
205
  PyErr_Format(PyExc_RuntimeError,
193
206
  "Wrong struct-size of PyObjC C API (got %d, expected %d)",
194
207
  (int)PyObjC_API->struct_len, (int)sizeof(struct pyobjc_api));
195
208
  return -1;
209
+ // LCOV_EXCL_STOP
196
210
  }
197
211
 
198
212
  /* Current pyobjc implementation doesn't allow deregistering
@@ -167,24 +167,6 @@ _PyObjCTuple_GetItem(PyObject* tuple, Py_ssize_t idx)
167
167
  PyGILState_Release(_GILState); \
168
168
  } while (0)
169
169
 
170
- #if PY_VERSION_HEX < 0x030a0000
171
-
172
- static inline PyObject*
173
- Py_NewRef(PyObject* o)
174
- {
175
- Py_INCREF(o);
176
- return o;
177
- }
178
-
179
- static inline PyObject*
180
- Py_XNewRef(PyObject* o)
181
- {
182
- Py_XINCREF(o);
183
- return o;
184
- }
185
-
186
- #endif /* PY_VERSION_HEX < 0x030a0000 */
187
-
188
170
  #if PY_VERSION_HEX < 0x030d0000
189
171
  #define Py_BEGIN_CRITICAL_SECTION(value) \
190
172
  { \
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pyobjc-framework-MetalFX
3
- Version: 12.2.2
3
+ Version: 13.0
4
4
  Summary: Wrappers for the framework MetalFX on macOS
5
5
  Home-page: https://github.com/ronaldoussoren/pyobjc
6
6
  Author: Ronald Oussoren
@@ -17,21 +17,21 @@ Classifier: Operating System :: MacOS :: MacOS X
17
17
  Classifier: Programming Language :: Python
18
18
  Classifier: Programming Language :: Python :: 3
19
19
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Classifier: Programming Language :: Python :: 3.10
21
20
  Classifier: Programming Language :: Python :: 3.11
22
21
  Classifier: Programming Language :: Python :: 3.12
23
22
  Classifier: Programming Language :: Python :: 3.13
24
23
  Classifier: Programming Language :: Python :: 3.14
25
24
  Classifier: Programming Language :: Python :: 3.15
25
+ Classifier: Programming Language :: Python :: 3.16
26
26
  Classifier: Programming Language :: Python :: Implementation :: CPython
27
27
  Classifier: Programming Language :: Python :: Free Threading :: 3 - Stable
28
28
  Classifier: Programming Language :: Objective C
29
29
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
30
30
  Classifier: Topic :: Software Development :: User Interfaces
31
- Requires-Python: >=3.10
31
+ Requires-Python: >=3.11
32
32
  Description-Content-Type: text/x-rst; charset=UTF-8
33
- Requires-Dist: pyobjc-core>=12.2.2
34
- Requires-Dist: pyobjc-framework-Metal>=12.2.2
33
+ Requires-Dist: pyobjc-core>=13.0
34
+ Requires-Dist: pyobjc-framework-Metal>=13.0
35
35
  Dynamic: author
36
36
  Dynamic: author-email
37
37
  Dynamic: classifier
@@ -4,5 +4,5 @@ import MetalFX
4
4
 
5
5
 
6
6
  class TestMetalFX(TestCase):
7
- def test_metadata_sane(self):
7
+ def test_callable_metadata_is_sane(self):
8
8
  self.assertCallableMetadataIsSane(MetalFX)
@@ -5,4 +5,4 @@ import MetalFX # noqa: F401
5
5
 
6
6
  class TestMTL4FXFrameInterpolator(TestCase):
7
7
  def test_protocols(self):
8
- self.assertProtocolExists("MTL4FXFrameInterpolator")
8
+ self.assertProtocolExists("MTL4FXFrameInterpolator", MetalFX)
@@ -5,4 +5,4 @@ import MetalFX # noqa: F401
5
5
 
6
6
  class TestMTL4FXSpatialScaler(TestCase):
7
7
  def test_protocols(self):
8
- self.assertProtocolExists("MTL4FXSpatialScaler")
8
+ self.assertProtocolExists("MTL4FXSpatialScaler", MetalFX)
@@ -5,4 +5,4 @@ import MetalFX # noqa: F401
5
5
 
6
6
  class TestMTL4FXTemporalDenoisedScaler(TestCase):
7
7
  def test_protocols(self):
8
- self.assertProtocolExists("MTL4FXTemporalDenoisedScaler")
8
+ self.assertProtocolExists("MTL4FXTemporalDenoisedScaler", MetalFX)
@@ -5,4 +5,4 @@ import MetalFX # noqa: F401
5
5
 
6
6
  class TestMTL4FXTemporalScaler(TestCase):
7
7
  def test_protocols(self):
8
- self.assertProtocolExists("MTL4FXTemporalScaler")
8
+ self.assertProtocolExists("MTL4FXTemporalScaler", MetalFX)