pyobjc-framework-SceneKit 12.2.1__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.
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Lib/SceneKit/__init__.py +1 -1
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Lib/SceneKit/_metadata.py +27 -7
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Lib/pyobjc_framework_SceneKit.egg-info/PKG-INFO +6 -6
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Lib/pyobjc_framework_SceneKit.egg-info/SOURCES.txt +2 -2
- pyobjc_framework_scenekit-13.0/Lib/pyobjc_framework_SceneKit.egg-info/pyobjc-build-info.txt +3 -0
- pyobjc_framework_scenekit-13.0/Lib/pyobjc_framework_SceneKit.egg-info/requires.txt +3 -0
- pyobjc_framework_scenekit-13.0/Modules/_SceneKit.m +70 -0
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Modules/_SceneKit_inlines.m +13 -4
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Modules/_SceneKit_protocols.m +7 -5
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Modules/pyobjc-api.h +18 -4
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Modules/pyobjc-compat.h +0 -18
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PKG-INFO +6 -6
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scenekittypes.py +23 -24
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnaction.py +10 -9
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnanimation.py +5 -7
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnaudiosource.py +1 -1
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnboundingvolume.py +3 -3
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scncamera.py +7 -11
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scncameracontroller.py +4 -6
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnconstraint.py +5 -7
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scngeometry.py +12 -13
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnhittest.py +6 -7
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnjavascript.py +1 -1
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnlight.py +22 -24
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnmaterial.py +24 -27
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnmaterialproperty.py +2 -4
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnmorpher.py +2 -4
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnnode.py +14 -15
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnparametricgeometry.py +2 -4
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnparticlesystem.py +34 -35
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnphysicsbody.py +5 -7
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnphysicsfield.py +2 -4
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnphysicsshape.py +1 -1
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnphysicsworld.py +3 -3
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnreferencenode.py +2 -4
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnscene.py +6 -10
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnscenerenderer.py +34 -33
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnscenesource.py +18 -18
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnshadable.py +24 -26
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scntechnique.py +3 -3
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scntransaction.py +2 -3
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnview.py +24 -25
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/metadata/SceneKit.fwinfo +0 -337
- pyobjc_framework_scenekit-12.2.1/metadata/raw/arm64-26.5.fwinfo → pyobjc_framework_scenekit-13.0/metadata/raw/arm64-27.fwinfo +8 -9
- pyobjc_framework_scenekit-12.2.1/metadata/raw/x86_64-26.5.fwinfo → pyobjc_framework_scenekit-13.0/metadata/raw/x86_64-27.fwinfo +8 -9
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/pyobjc_setup.py +7 -7
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/setup.py +1 -1
- pyobjc_framework_scenekit-12.2.1/Lib/pyobjc_framework_SceneKit.egg-info/pyobjc-build-info.txt +0 -3
- pyobjc_framework_scenekit-12.2.1/Lib/pyobjc_framework_SceneKit.egg-info/requires.txt +0 -3
- pyobjc_framework_scenekit-12.2.1/Modules/_SceneKit.m +0 -168
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Lib/pyobjc_framework_SceneKit.egg-info/dependency_links.txt +0 -0
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Lib/pyobjc_framework_SceneKit.egg-info/not-zip-safe +0 -0
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Lib/pyobjc_framework_SceneKit.egg-info/top_level.txt +0 -0
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/License.txt +0 -0
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/MANIFEST.in +0 -0
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/__init__.py +0 -0
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scenekit.py +0 -0
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/metadata/metadata.ini +0 -0
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/pyproject.toml +0 -0
- {pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/setup.cfg +0 -0
{pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Lib/SceneKit/__init__.py
RENAMED
|
@@ -43,7 +43,7 @@ def _setup():
|
|
|
43
43
|
|
|
44
44
|
try:
|
|
45
45
|
mod.SCNMatrix4Identity
|
|
46
|
-
except AttributeError:
|
|
46
|
+
except AttributeError: # pragma: no cover
|
|
47
47
|
# Two "inline" functions that use a symbol that is available on 10.10 or later,
|
|
48
48
|
# avoid crashes by removing the inline function wrappers when that symbol
|
|
49
49
|
# is not available.
|
{pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Lib/SceneKit/_metadata.py
RENAMED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# This file is generated by objective.metadata
|
|
2
2
|
#
|
|
3
|
-
# Last update: Fri May 29 08:18:54 2026
|
|
4
|
-
#
|
|
5
3
|
# flake8: noqa
|
|
6
4
|
|
|
7
5
|
import objc, sys
|
|
@@ -114,17 +112,18 @@ functions = {
|
|
|
114
112
|
"SCNMatrix4EqualToMatrix4": (
|
|
115
113
|
b"B{CATransform3D=dddddddddddddddd}{CATransform3D=dddddddddddddddd}",
|
|
116
114
|
),
|
|
117
|
-
"
|
|
118
|
-
|
|
119
|
-
),
|
|
115
|
+
"SCNMatrix4MakeTranslation": (b"{CATransform3D=dddddddddddddddd}ddd",),
|
|
116
|
+
"SCNMatrix4FromMat4": (b"{CATransform3D=dddddddddddddddd}{simd_float4x4=[4<4f>]}",),
|
|
120
117
|
"SCNMatrix4Scale": (
|
|
121
118
|
b"{CATransform3D=dddddddddddddddd}{CATransform3D=dddddddddddddddd}ddd",
|
|
122
119
|
),
|
|
123
120
|
"SCNMatrix4MakeRotation": (b"{CATransform3D=dddddddddddddddd}dddd",),
|
|
121
|
+
"SCNVector4FromGLKVector4": (b"{SCNVector4=dddd}[4f]",),
|
|
124
122
|
"SCNExportJavaScriptModule": (b"v@",),
|
|
123
|
+
"SCNVector4ToFloat4": (b"<4f>{SCNVector4=dddd}",),
|
|
125
124
|
"SCNVector3EqualToVector3": (b"B{SCNVector3=ddd}{SCNVector3=ddd}",),
|
|
126
125
|
"SCNMatrix4ToGLKMatrix4": (b"[16f]{CATransform3D=dddddddddddddddd}",),
|
|
127
|
-
"
|
|
126
|
+
"SCNMatrix4ToMat4": (b"{simd_float4x4=[4<4f>]}{CATransform3D=dddddddddddddddd}",),
|
|
128
127
|
"SCNVector3ToGLKVector3": (b"[3f]{SCNVector3=ddd}",),
|
|
129
128
|
"SCNMatrix4MakeScale": (b"{CATransform3D=dddddddddddddddd}ddd",),
|
|
130
129
|
"SCNMatrix4FromGLKMatrix4": (b"{CATransform3D=dddddddddddddddd}[16f]",),
|
|
@@ -138,9 +137,12 @@ functions = {
|
|
|
138
137
|
),
|
|
139
138
|
"SCNVector4EqualToVector4": (b"B{SCNVector4=dddd}{SCNVector4=dddd}",),
|
|
140
139
|
"SCNVector3Make": (b"{SCNVector3=ddd}ddd",),
|
|
140
|
+
"SCNVector4FromFloat4": (b"{SCNVector4=dddd}<4f>",),
|
|
141
141
|
"SCNVector3FromGLKVector3": (b"{SCNVector3=ddd}[3f]",),
|
|
142
142
|
"SCNVector3FromFloat3": (b"{SCNVector3=ddd}<3f>",),
|
|
143
|
-
"
|
|
143
|
+
"SCNMatrix4Mult": (
|
|
144
|
+
b"{CATransform3D=dddddddddddddddd}{CATransform3D=dddddddddddddddd}{CATransform3D=dddddddddddddddd}",
|
|
145
|
+
),
|
|
144
146
|
"SCNMatrix4Translate": (
|
|
145
147
|
b"{CATransform3D=dddddddddddddddd}{CATransform3D=dddddddddddddddd}ddd",
|
|
146
148
|
),
|
|
@@ -2306,5 +2308,23 @@ objc.registerNewKeywords(
|
|
|
2306
2308
|
"tubeWithInnerRadius_outerRadius_height_",
|
|
2307
2309
|
)
|
|
2308
2310
|
expressions = {}
|
|
2311
|
+
formal_protocols = {
|
|
2312
|
+
"SCNActionable": "SCNActionable",
|
|
2313
|
+
"SCNAnimatable": "SCNAnimatable",
|
|
2314
|
+
"SCNAnimation": "SCNAnimation",
|
|
2315
|
+
"SCNAvoidOccluderConstraintDelegate": "SCNAvoidOccluderConstraintDelegate",
|
|
2316
|
+
"SCNBoundingVolume": "SCNBoundingVolume",
|
|
2317
|
+
"SCNBufferStream": "SCNBufferStream",
|
|
2318
|
+
"SCNCameraControlConfiguration": "SCNCameraControlConfiguration",
|
|
2319
|
+
"SCNCameraControllerDelegate": "SCNCameraControllerDelegate",
|
|
2320
|
+
"SCNNodeRendererDelegate": "SCNNodeRendererDelegate",
|
|
2321
|
+
"SCNPhysicsContactDelegate": "SCNPhysicsContactDelegate",
|
|
2322
|
+
"SCNProgramDelegate": "SCNProgramDelegate",
|
|
2323
|
+
"SCNSceneExportDelegate": "SCNSceneExportDelegate",
|
|
2324
|
+
"SCNSceneRenderer": "SCNSceneRenderer",
|
|
2325
|
+
"SCNSceneRendererDelegate": "SCNSceneRendererDelegate",
|
|
2326
|
+
"SCNShadable": "SCNShadable",
|
|
2327
|
+
"SCNTechniqueSupport": "SCNTechniqueSupport",
|
|
2328
|
+
}
|
|
2309
2329
|
|
|
2310
2330
|
# END OF FILE
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobjc-framework-SceneKit
|
|
3
|
-
Version:
|
|
3
|
+
Version: 13.0
|
|
4
4
|
Summary: Wrappers for the framework SceneKit on macOS
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren
|
|
@@ -17,22 +17,22 @@ 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.
|
|
31
|
+
Requires-Python: >=3.11
|
|
32
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
33
|
-
Requires-Dist: pyobjc-core>=
|
|
34
|
-
Requires-Dist: pyobjc-framework-Cocoa>=
|
|
35
|
-
Requires-Dist: pyobjc-framework-Quartz>=
|
|
33
|
+
Requires-Dist: pyobjc-core>=13.0
|
|
34
|
+
Requires-Dist: pyobjc-framework-Cocoa>=13.0
|
|
35
|
+
Requires-Dist: pyobjc-framework-Quartz>=13.0
|
|
36
36
|
Dynamic: author
|
|
37
37
|
Dynamic: author-email
|
|
38
38
|
Dynamic: classifier
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#define PY_SSIZE_T_CLEAN
|
|
2
|
+
#include "Python.h"
|
|
3
|
+
#include "pyobjc-api.h"
|
|
4
|
+
|
|
5
|
+
#ifdef USE_STATIC_ANALYZER
|
|
6
|
+
#include "../../pyobjc-core/Modules/objc/python-api-used.h"
|
|
7
|
+
#endif
|
|
8
|
+
|
|
9
|
+
#import <SceneKit/SceneKit.h>
|
|
10
|
+
|
|
11
|
+
/* We include the source code here instead of
|
|
12
|
+
* using the linker due to limitations in pyobjc-api.h
|
|
13
|
+
*/
|
|
14
|
+
#include "_SceneKit_protocols.m"
|
|
15
|
+
|
|
16
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
17
|
+
|
|
18
|
+
static PyMethodDef mod_methods[] = {
|
|
19
|
+
{0, 0, 0, 0} /* sentinel */
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
static int
|
|
23
|
+
mod_exec_module(PyObject* m)
|
|
24
|
+
{
|
|
25
|
+
return 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static struct PyModuleDef_Slot mod_slots[] = {
|
|
29
|
+
{.slot = Py_mod_exec, .value = (void*)mod_exec_module},
|
|
30
|
+
#if PY_VERSION_HEX >= 0x030c0000
|
|
31
|
+
{
|
|
32
|
+
/* This extension does not use the CPython API other than initializing
|
|
33
|
+
* the module, hence is safe with subinterpreters and per-interpreter
|
|
34
|
+
* GILs
|
|
35
|
+
*/
|
|
36
|
+
.slot = Py_mod_multiple_interpreters,
|
|
37
|
+
.value = Py_MOD_MULTIPLE_INTERPRETERS_NOT_SUPPORTED,
|
|
38
|
+
},
|
|
39
|
+
#endif
|
|
40
|
+
#if PY_VERSION_HEX >= 0x030d0000
|
|
41
|
+
{
|
|
42
|
+
/* The code in this extension should be safe to use without the GIL */
|
|
43
|
+
.slot = Py_mod_gil,
|
|
44
|
+
.value = Py_MOD_GIL_NOT_USED,
|
|
45
|
+
},
|
|
46
|
+
#endif
|
|
47
|
+
{/* Sentinel */
|
|
48
|
+
.slot = 0,
|
|
49
|
+
.value = 0}};
|
|
50
|
+
|
|
51
|
+
static struct PyModuleDef mod_module = {
|
|
52
|
+
.m_base = PyModuleDef_HEAD_INIT,
|
|
53
|
+
.m_name = "_SceneKit",
|
|
54
|
+
.m_doc = NULL,
|
|
55
|
+
.m_size = 0,
|
|
56
|
+
.m_methods = mod_methods,
|
|
57
|
+
.m_slots = mod_slots,
|
|
58
|
+
.m_traverse = NULL,
|
|
59
|
+
.m_clear = NULL,
|
|
60
|
+
.m_free = NULL,
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
PyObject* _Nullable PyInit__SceneKit(void);
|
|
64
|
+
|
|
65
|
+
PyObject* _Nullable __attribute__((__visibility__("default")))
|
|
66
|
+
PyInit__SceneKit(void)
|
|
67
|
+
{
|
|
68
|
+
return PyModuleDef_Init(&mod_module);
|
|
69
|
+
}
|
|
70
|
+
NS_ASSUME_NONNULL_END
|
{pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Modules/_SceneKit_inlines.m
RENAMED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
#define PY_SSIZE_T_CLEAN
|
|
2
2
|
#include "Python.h"
|
|
3
3
|
#include "pyobjc-api.h"
|
|
4
|
+
|
|
5
|
+
#ifdef USE_STATIC_ANALYZER
|
|
6
|
+
#include "../../pyobjc-core/Modules/objc/python-api-used.h"
|
|
7
|
+
#endif
|
|
8
|
+
|
|
4
9
|
#import <SceneKit/SceneKit.h>
|
|
5
10
|
|
|
11
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
12
|
+
|
|
6
13
|
/*
|
|
7
14
|
* The definitions below can cause warnings when using
|
|
8
15
|
* -Wunguarded-availability, but those warnings are harmless
|
|
@@ -43,8 +50,9 @@ static PyMethodDef mod_methods[] = {
|
|
|
43
50
|
static int
|
|
44
51
|
mod_exec_module(PyObject* m)
|
|
45
52
|
{
|
|
46
|
-
if (PyModule_AddObject(m, "_inline_list_", PyObjC_CreateInlineTab(function_map))
|
|
47
|
-
|
|
53
|
+
if (PyModule_AddObject(m, "_inline_list_", PyObjC_CreateInlineTab(function_map))
|
|
54
|
+
== -1) // LCOV_BR_EXCL_LINE
|
|
55
|
+
return -1; // LCOV_EXCL_LINE
|
|
48
56
|
|
|
49
57
|
return 0;
|
|
50
58
|
}
|
|
@@ -84,10 +92,11 @@ static struct PyModuleDef mod_module = {
|
|
|
84
92
|
.m_free = NULL,
|
|
85
93
|
};
|
|
86
94
|
|
|
87
|
-
PyObject* PyInit__inlines(void);
|
|
95
|
+
PyObject* _Nullable PyInit__inlines(void);
|
|
88
96
|
|
|
89
|
-
PyObject* __attribute__((__visibility__("default")))
|
|
97
|
+
PyObject* _Nullable __attribute__((__visibility__("default")))
|
|
90
98
|
PyInit__inlines(void)
|
|
91
99
|
{
|
|
92
100
|
return PyModuleDef_Init(&mod_module);
|
|
93
101
|
}
|
|
102
|
+
NS_ASSUME_NONNULL_END
|
{pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/Modules/_SceneKit_protocols.m
RENAMED
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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)
|
|
@@ -47,3 +46,6 @@ use_protocols(void)
|
|
|
47
46
|
Py_XDECREF(p);
|
|
48
47
|
#endif
|
|
49
48
|
}
|
|
49
|
+
|
|
50
|
+
NS_ASSUME_NONNULL_END
|
|
51
|
+
// 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-SceneKit
|
|
3
|
-
Version:
|
|
3
|
+
Version: 13.0
|
|
4
4
|
Summary: Wrappers for the framework SceneKit on macOS
|
|
5
5
|
Home-page: https://github.com/ronaldoussoren/pyobjc
|
|
6
6
|
Author: Ronald Oussoren
|
|
@@ -17,22 +17,22 @@ 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.
|
|
31
|
+
Requires-Python: >=3.11
|
|
32
32
|
Description-Content-Type: text/x-rst; charset=UTF-8
|
|
33
|
-
Requires-Dist: pyobjc-core>=
|
|
34
|
-
Requires-Dist: pyobjc-framework-Cocoa>=
|
|
35
|
-
Requires-Dist: pyobjc-framework-Quartz>=
|
|
33
|
+
Requires-Dist: pyobjc-core>=13.0
|
|
34
|
+
Requires-Dist: pyobjc-framework-Cocoa>=13.0
|
|
35
|
+
Requires-Dist: pyobjc-framework-Quartz>=13.0
|
|
36
36
|
Dynamic: author
|
|
37
37
|
Dynamic: author-email
|
|
38
38
|
Dynamic: classifier
|
{pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scenekittypes.py
RENAMED
|
@@ -12,11 +12,25 @@ import SceneKit
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class TestSceneKitTypes(TestCase):
|
|
15
|
-
def
|
|
15
|
+
def test_enums(self):
|
|
16
|
+
# Unnamed enum:
|
|
17
|
+
self.assertEqual(SceneKit.SCNProgramCompilationError, 1)
|
|
18
|
+
|
|
16
19
|
self.assertIsEnumType(SceneKit.SCNActionTimingMode)
|
|
20
|
+
self.assertEqual(SceneKit.SCNActionTimingModeLinear, 0)
|
|
21
|
+
self.assertEqual(SceneKit.SCNActionTimingModeEaseIn, 1)
|
|
22
|
+
self.assertEqual(SceneKit.SCNActionTimingModeEaseOut, 2)
|
|
23
|
+
self.assertEqual(SceneKit.SCNActionTimingModeEaseInEaseOut, 3)
|
|
24
|
+
|
|
17
25
|
self.assertIsEnumType(SceneKit.SCNColorMask)
|
|
26
|
+
self.assertEqual(SceneKit.SCNColorMaskNone, 0)
|
|
27
|
+
self.assertEqual(SceneKit.SCNColorMaskRed, 0x1 << 3)
|
|
28
|
+
self.assertEqual(SceneKit.SCNColorMaskGreen, 0x1 << 2)
|
|
29
|
+
self.assertEqual(SceneKit.SCNColorMaskBlue, 0x1 << 1)
|
|
30
|
+
self.assertEqual(SceneKit.SCNColorMaskAlpha, 0x1 << 0)
|
|
31
|
+
self.assertEqual(SceneKit.SCNColorMaskAll, 0xF)
|
|
18
32
|
|
|
19
|
-
def
|
|
33
|
+
def test_structs(self):
|
|
20
34
|
v = SceneKit.SCNVector3()
|
|
21
35
|
self.assertIsInstance(v.x, float)
|
|
22
36
|
self.assertIsInstance(v.y, float)
|
|
@@ -33,34 +47,19 @@ class TestSceneKitTypes(TestCase):
|
|
|
33
47
|
self.assertTrue(SceneKit.SCNQuaternion is SceneKit.SCNVector4)
|
|
34
48
|
self.assertTrue(SceneKit.SCNMatrix4 is SceneKit.CATransform3D)
|
|
35
49
|
|
|
36
|
-
def testConstants(self):
|
|
37
|
-
self.assertEqual(SceneKit.SCNProgramCompilationError, 1)
|
|
38
|
-
|
|
39
|
-
self.assertEqual(SceneKit.SCNActionTimingModeLinear, 0)
|
|
40
|
-
self.assertEqual(SceneKit.SCNActionTimingModeEaseIn, 1)
|
|
41
|
-
self.assertEqual(SceneKit.SCNActionTimingModeEaseOut, 2)
|
|
42
|
-
self.assertEqual(SceneKit.SCNActionTimingModeEaseInEaseOut, 3)
|
|
43
|
-
|
|
44
|
-
self.assertEqual(SceneKit.SCNColorMaskNone, 0)
|
|
45
|
-
self.assertEqual(SceneKit.SCNColorMaskRed, 0x1 << 3)
|
|
46
|
-
self.assertEqual(SceneKit.SCNColorMaskGreen, 0x1 << 2)
|
|
47
|
-
self.assertEqual(SceneKit.SCNColorMaskBlue, 0x1 << 1)
|
|
48
|
-
self.assertEqual(SceneKit.SCNColorMaskAlpha, 0x1 << 0)
|
|
49
|
-
self.assertEqual(SceneKit.SCNColorMaskAll, 0xF)
|
|
50
|
-
|
|
51
50
|
@expectedFailureIf(os_release().rsplit(".", 1)[0] == "10.10")
|
|
52
51
|
@min_os_level("10.10")
|
|
53
|
-
def
|
|
52
|
+
def test_constants_fail10_10(self):
|
|
54
53
|
self.assertIsInstance(SceneKit.SCNErrorDomain, str)
|
|
55
54
|
|
|
56
55
|
@min_os_level("10.10")
|
|
57
|
-
def
|
|
56
|
+
def test_constants10_10(self):
|
|
58
57
|
self.assertIsInstance(SceneKit.SCNMatrix4Identity, SceneKit.SCNMatrix4)
|
|
59
58
|
self.assertIsInstance(SceneKit.SCNVector3Zero, SceneKit.SCNVector3)
|
|
60
59
|
self.assertIsInstance(SceneKit.SCNVector4Zero, SceneKit.SCNVector4)
|
|
61
60
|
|
|
62
61
|
@min_os_level("10.10")
|
|
63
|
-
def
|
|
62
|
+
def test_functions(self):
|
|
64
63
|
self.assertResultHasType(SceneKit.SCNVector3EqualToVector3, objc._C_BOOL)
|
|
65
64
|
self.assertResultHasType(SceneKit.SCNVector4EqualToVector4, objc._C_BOOL)
|
|
66
65
|
|
|
@@ -92,14 +91,14 @@ class TestSceneKitTypes(TestCase):
|
|
|
92
91
|
w = SceneKit.SCNMatrix4Translate(v, 6, 7, 8)
|
|
93
92
|
self.assertIsInstance(w, SceneKit.SCNMatrix4)
|
|
94
93
|
|
|
95
|
-
def
|
|
94
|
+
def test_functions_unsupported(self):
|
|
96
95
|
# XXX
|
|
97
96
|
SceneKit.SCNVector3FromGLKVector3
|
|
98
97
|
SceneKit.SCNVector3ToGLKVector3
|
|
99
98
|
SceneKit.SCNVector4FromGLKVector4
|
|
100
99
|
SceneKit.SCNVector4ToGLKVector4
|
|
101
100
|
|
|
102
|
-
def
|
|
101
|
+
def test_inline_functions(self):
|
|
103
102
|
v = SceneKit.SCNVector3ToFloat3(SceneKit.SCNVector3())
|
|
104
103
|
self.assertIsInstance(v, simd.vector_float3)
|
|
105
104
|
|
|
@@ -119,7 +118,7 @@ class TestSceneKitTypes(TestCase):
|
|
|
119
118
|
self.assertIsInstance(v, SceneKit.SCNMatrix4)
|
|
120
119
|
|
|
121
120
|
@min_os_level("10.10")
|
|
122
|
-
def
|
|
121
|
+
def test_functions10_10(self):
|
|
123
122
|
v = SceneKit.SCNMatrix4MakeRotation(1, 2, 3, 4)
|
|
124
123
|
self.assertIsInstance(v, SceneKit.SCNMatrix4)
|
|
125
124
|
|
|
@@ -140,7 +139,7 @@ class TestSceneKitTypes(TestCase):
|
|
|
140
139
|
|
|
141
140
|
@min_os_level("10.10")
|
|
142
141
|
@expectedFailure
|
|
143
|
-
def
|
|
142
|
+
def test_functions10_10_unsup(self):
|
|
144
143
|
# vector types
|
|
145
144
|
SceneKit.SCNMatrix4ToGLKMatrix4
|
|
146
145
|
SceneKit.SCNMatrix4FromGLKMatrix4
|
{pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnaction.py
RENAMED
|
@@ -26,11 +26,7 @@ class TestSCNAction(TestCase):
|
|
|
26
26
|
self.assertEqual(SceneKit.SCNActionTimingModeEaseInEaseOut, 3)
|
|
27
27
|
|
|
28
28
|
@min_os_level("10.10")
|
|
29
|
-
def
|
|
30
|
-
self.assertProtocolExists("SCNActionable")
|
|
31
|
-
|
|
32
|
-
@min_os_level("10.10")
|
|
33
|
-
def testMethods(self):
|
|
29
|
+
def test_methods(self):
|
|
34
30
|
self.assertResultIsBlock(
|
|
35
31
|
SceneKit.SCNAction.timingFunction, SCNActionTimingFunction
|
|
36
32
|
)
|
|
@@ -48,12 +44,17 @@ class TestSCNAction(TestCase):
|
|
|
48
44
|
b"v@" + objc._C_CGFloat,
|
|
49
45
|
)
|
|
50
46
|
|
|
47
|
+
@min_os_level("10.11")
|
|
48
|
+
def test_methods10_11(self):
|
|
49
|
+
self.assertArgIsBOOL(SceneKit.SCNAction.playAudioSource_waitForCompletion_, 1)
|
|
50
|
+
|
|
51
|
+
@min_os_level("10.10")
|
|
52
|
+
def test_protocols(self):
|
|
53
|
+
self.assertProtocolExists("SCNActionable", SceneKit)
|
|
54
|
+
|
|
55
|
+
def test_protocol_methods(self):
|
|
51
56
|
self.assertArgIsBlock(TestSCNActionHelper.runAction_completionHandler_, 1, b"v")
|
|
52
57
|
self.assertArgIsBlock(
|
|
53
58
|
TestSCNActionHelper.runAction_forKey_completionHandler_, 2, b"v"
|
|
54
59
|
)
|
|
55
60
|
self.assertResultIsBOOL(TestSCNActionHelper.hasActions)
|
|
56
|
-
|
|
57
|
-
@min_os_level("10.11")
|
|
58
|
-
def testMethods10_11(self):
|
|
59
|
-
self.assertArgIsBOOL(SceneKit.SCNAction.playAudioSource_waitForCompletion_, 1)
|
{pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scnanimation.py
RENAMED
|
@@ -28,11 +28,11 @@ class TestSCNAnimationHelper(SceneKit.NSObject):
|
|
|
28
28
|
|
|
29
29
|
class TestSCNAnimation(TestCase):
|
|
30
30
|
@min_os_level("10.10")
|
|
31
|
-
def
|
|
32
|
-
self.assertProtocolExists("SCNAnimatable")
|
|
31
|
+
def test_protocols(self):
|
|
32
|
+
self.assertProtocolExists("SCNAnimatable", SceneKit)
|
|
33
33
|
|
|
34
34
|
@min_os_level("10.10")
|
|
35
|
-
def
|
|
35
|
+
def test_protocol_methods(self):
|
|
36
36
|
self.assertResultIsBOOL(TestSCNAnimationHelper.isAnimationForKeyPaused_)
|
|
37
37
|
self.assertArgHasType(
|
|
38
38
|
TestSCNAnimationHelper.removeAnimationForKey_fadeOutDuration_,
|
|
@@ -64,12 +64,10 @@ class TestSCNAnimation(TestCase):
|
|
|
64
64
|
objc._C_CGFloat,
|
|
65
65
|
)
|
|
66
66
|
|
|
67
|
-
def
|
|
67
|
+
def test_methods(self):
|
|
68
68
|
self.assertArgIsBOOL(SceneKit.CAAnimation.setUsesSceneTimeBase_, 0)
|
|
69
69
|
self.assertResultIsBOOL(SceneKit.CAAnimation.usesSceneTimeBase)
|
|
70
70
|
|
|
71
|
-
@min_os_level("10.9")
|
|
72
|
-
def testMethods10_9(self):
|
|
73
71
|
self.assertArgIsBlock(
|
|
74
72
|
SceneKit.SCNAnimationEvent.animationEventWithKeyTime_block_,
|
|
75
73
|
1,
|
|
@@ -77,7 +75,7 @@ class TestSCNAnimation(TestCase):
|
|
|
77
75
|
)
|
|
78
76
|
|
|
79
77
|
@min_os_level("10.13")
|
|
80
|
-
def
|
|
78
|
+
def test_methods10_13(self):
|
|
81
79
|
self.assertResultIsBOOL(SceneKit.SCNAnimation.isRemovedOnCompletion)
|
|
82
80
|
self.assertArgIsBOOL(SceneKit.SCNAnimation.setRemovedOnCompletion_, 0)
|
|
83
81
|
self.assertResultIsBOOL(SceneKit.SCNAnimation.isAppliedOnCompletion)
|
|
@@ -5,7 +5,7 @@ import SceneKit
|
|
|
5
5
|
|
|
6
6
|
class TestSCNAudioSource(TestCase):
|
|
7
7
|
@min_os_level("10.11")
|
|
8
|
-
def
|
|
8
|
+
def test_methods10_11(self):
|
|
9
9
|
self.assertResultIsBOOL(SceneKit.SCNAudioSource.isPositional)
|
|
10
10
|
self.assertArgIsBOOL(SceneKit.SCNAudioSource.setPositional_, 0)
|
|
11
11
|
|
|
@@ -17,10 +17,10 @@ class TestSCNBoundingVolumeHelper(SceneKit.NSObject):
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
class TestSCNBoundingVolume(TestCase):
|
|
20
|
-
def
|
|
21
|
-
self.assertProtocolExists("SCNBoundingVolume")
|
|
20
|
+
def test_protocols(self):
|
|
21
|
+
self.assertProtocolExists("SCNBoundingVolume", SceneKit)
|
|
22
22
|
|
|
23
|
-
def
|
|
23
|
+
def test_protocol_methods(self):
|
|
24
24
|
self.assertResultIsBOOL(TestSCNBoundingVolumeHelper.getBoundingBoxMin_max_)
|
|
25
25
|
self.assertArgHasType(
|
|
26
26
|
TestSCNBoundingVolumeHelper.getBoundingBoxMin_max_,
|
{pyobjc_framework_scenekit-12.2.1 → pyobjc_framework_scenekit-13.0}/PyObjCTest/test_scncamera.py
RENAMED
|
@@ -4,20 +4,20 @@ import SceneKit
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class TestSCNCamera(TestCase):
|
|
7
|
-
def
|
|
7
|
+
def test_enums(self):
|
|
8
8
|
self.assertIsEnumType(SceneKit.SCNCameraProjectionDirection)
|
|
9
|
+
self.assertEqual(SceneKit.SCNCameraProjectionDirectionVertical, 0)
|
|
10
|
+
self.assertEqual(SceneKit.SCNCameraProjectionDirectionHorizontal, 1)
|
|
9
11
|
|
|
10
|
-
def
|
|
12
|
+
def test_methods(self):
|
|
11
13
|
self.assertResultIsBOOL(SceneKit.SCNCamera.usesOrthographicProjection)
|
|
12
14
|
self.assertArgIsBOOL(SceneKit.SCNCamera.setUsesOrthographicProjection_, 0)
|
|
13
15
|
|
|
14
|
-
@min_os_level("10.9")
|
|
15
|
-
def testMethods10_9(self):
|
|
16
16
|
self.assertResultIsBOOL(SceneKit.SCNCamera.automaticallyAdjustsZRange)
|
|
17
17
|
self.assertArgIsBOOL(SceneKit.SCNCamera.setAutomaticallyAdjustsZRange_, 0)
|
|
18
18
|
|
|
19
19
|
@min_os_level("10.12")
|
|
20
|
-
def
|
|
20
|
+
def test_methods10_12(self):
|
|
21
21
|
self.assertResultIsBOOL(SceneKit.SCNCamera.wantsHDR)
|
|
22
22
|
self.assertArgIsBOOL(SceneKit.SCNCamera.setWantsHDR_, 0)
|
|
23
23
|
|
|
@@ -25,15 +25,11 @@ class TestSCNCamera(TestCase):
|
|
|
25
25
|
self.assertArgIsBOOL(SceneKit.SCNCamera.setWantsExposureAdaptation_, 0)
|
|
26
26
|
|
|
27
27
|
@min_os_level("10.13")
|
|
28
|
-
def
|
|
28
|
+
def test_methods10_13(self):
|
|
29
29
|
self.assertResultIsBOOL(SceneKit.SCNCamera.wantsDepthOfField)
|
|
30
30
|
self.assertArgIsBOOL(SceneKit.SCNCamera.setWantsDepthOfField_, 0)
|
|
31
31
|
|
|
32
32
|
@min_os_level("10.15")
|
|
33
|
-
def
|
|
33
|
+
def test_methods10_15(self):
|
|
34
34
|
self.assertResultIsBOOL(SceneKit.SCNCamera.grainIsColored)
|
|
35
35
|
self.assertArgIsBOOL(SceneKit.SCNCamera.setGrainIsColored_, 0)
|
|
36
|
-
|
|
37
|
-
def testConstants(self):
|
|
38
|
-
self.assertEqual(SceneKit.SCNCameraProjectionDirectionVertical, 0)
|
|
39
|
-
self.assertEqual(SceneKit.SCNCameraProjectionDirectionHorizontal, 1)
|
|
@@ -4,10 +4,8 @@ import SceneKit
|
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
class TestSCNCameraController(TestCase):
|
|
7
|
-
def
|
|
7
|
+
def test_enums(self):
|
|
8
8
|
self.assertIsEnumType(SceneKit.SCNInteractionMode)
|
|
9
|
-
|
|
10
|
-
def testConstants(self):
|
|
11
9
|
self.assertEqual(SceneKit.SCNInteractionModeFly, 0)
|
|
12
10
|
self.assertEqual(SceneKit.SCNInteractionModeOrbitTurntable, 1)
|
|
13
11
|
self.assertEqual(SceneKit.SCNInteractionModeOrbitAngleMapping, 2)
|
|
@@ -17,11 +15,11 @@ class TestSCNCameraController(TestCase):
|
|
|
17
15
|
self.assertEqual(SceneKit.SCNInteractionModeTruck, 6)
|
|
18
16
|
|
|
19
17
|
@min_sdk_level("10.13")
|
|
20
|
-
def
|
|
21
|
-
self.assertProtocolExists("SCNCameraControllerDelegate")
|
|
18
|
+
def test_protocols(self):
|
|
19
|
+
self.assertProtocolExists("SCNCameraControllerDelegate", SceneKit)
|
|
22
20
|
|
|
23
21
|
@min_os_level("10.13")
|
|
24
|
-
def
|
|
22
|
+
def test_methods(self):
|
|
25
23
|
self.assertResultIsBOOL(SceneKit.SCNCameraController.automaticTarget)
|
|
26
24
|
self.assertArgIsBOOL(SceneKit.SCNCameraController.setAutomaticTarget_, 0)
|
|
27
25
|
self.assertResultIsBOOL(SceneKit.SCNCameraController.inertiaEnabled)
|