@bloomengine/engine 0.3.1
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.
- package/LICENSE +21 -0
- package/README.md +169 -0
- package/native/android/Cargo.lock +1848 -0
- package/native/android/Cargo.toml +20 -0
- package/native/android/src/lib.rs +1747 -0
- package/native/ios/Cargo.lock +1688 -0
- package/native/ios/Cargo.toml +19 -0
- package/native/ios/src/lib.rs +2258 -0
- package/native/linux/Cargo.lock +1719 -0
- package/native/linux/Cargo.toml +22 -0
- package/native/linux/src/lib.rs +2236 -0
- package/native/macos/Cargo.lock +3310 -0
- package/native/macos/Cargo.toml +29 -0
- package/native/macos/src/lib.rs +3444 -0
- package/native/shared/Cargo.lock +1898 -0
- package/native/shared/Cargo.toml +42 -0
- package/native/shared/assets/default_font.ttf +0 -0
- package/native/shared/build.rs +77 -0
- package/native/shared/shaders/common/fog.wgsl +16 -0
- package/native/shared/shaders/common/imposter.wgsl +112 -0
- package/native/shared/shaders/common/pbr.wgsl +186 -0
- package/native/shared/shaders/common/shadows.wgsl +77 -0
- package/native/shared/shaders/common/sky.wgsl +8 -0
- package/native/shared/shaders/common/tonemap.wgsl +25 -0
- package/native/shared/shaders/impulse_field.wgsl +53 -0
- package/native/shared/shaders/material_abi.wgsl +360 -0
- package/native/shared/shaders/materials/test_minimal.wgsl +42 -0
- package/native/shared/src/audio.rs +363 -0
- package/native/shared/src/custom_shaders.rs +104 -0
- package/native/shared/src/drs.rs +211 -0
- package/native/shared/src/engine.rs +186 -0
- package/native/shared/src/frame_callbacks.rs +88 -0
- package/native/shared/src/geometry.rs +236 -0
- package/native/shared/src/handles.rs +76 -0
- package/native/shared/src/input.rs +273 -0
- package/native/shared/src/jolt_sys.rs +822 -0
- package/native/shared/src/lib.rs +43 -0
- package/native/shared/src/models.rs +1941 -0
- package/native/shared/src/physics_jolt.rs +1528 -0
- package/native/shared/src/picking.rs +298 -0
- package/native/shared/src/postfx.rs +339 -0
- package/native/shared/src/profiler.rs +416 -0
- package/native/shared/src/renderer/atmosphere_lut.rs +573 -0
- package/native/shared/src/renderer/brdf_lut.rs +154 -0
- package/native/shared/src/renderer/formats.rs +778 -0
- package/native/shared/src/renderer/graph.rs +465 -0
- package/native/shared/src/renderer/hot_reload.rs +390 -0
- package/native/shared/src/renderer/impulse_field.rs +455 -0
- package/native/shared/src/renderer/material_pipeline.rs +604 -0
- package/native/shared/src/renderer/material_system.rs +2106 -0
- package/native/shared/src/renderer/mod.rs +13923 -0
- package/native/shared/src/renderer/planar_reflection.rs +458 -0
- package/native/shared/src/renderer/post_pass.rs +249 -0
- package/native/shared/src/renderer/shader_include.rs +205 -0
- package/native/shared/src/renderer/shader_library.rs +134 -0
- package/native/shared/src/renderer/shaders.rs +5855 -0
- package/native/shared/src/renderer/transient.rs +576 -0
- package/native/shared/src/renderer/types.rs +259 -0
- package/native/shared/src/renderer/util.rs +151 -0
- package/native/shared/src/scene.rs +1066 -0
- package/native/shared/src/sdf_cache.rs +274 -0
- package/native/shared/src/shadows.rs +551 -0
- package/native/shared/src/staging.rs +90 -0
- package/native/shared/src/string_header.rs +35 -0
- package/native/shared/src/text_renderer.rs +456 -0
- package/native/shared/src/textures.rs +154 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeBuilder.cpp +242 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeBuilder.h +121 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/AABBTreeToBuffer.h +296 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/NodeCodec/NodeCodecQuadTreeHalfFloat.h +323 -0
- package/native/third_party/JoltPhysics/Jolt/AABBTree/TriangleCodec/TriangleCodecIndexed8BitPackSOA4Flags.h +555 -0
- package/native/third_party/JoltPhysics/Jolt/ConfigurationString.h +112 -0
- package/native/third_party/JoltPhysics/Jolt/Core/ARMNeon.h +94 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Array.h +713 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Atomics.h +44 -0
- package/native/third_party/JoltPhysics/Jolt/Core/BinaryHeap.h +96 -0
- package/native/third_party/JoltPhysics/Jolt/Core/ByteBuffer.h +74 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Color.cpp +38 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Color.h +98 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Core.h +652 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FPControlWord.h +143 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FPException.h +96 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FPFlushDenormals.h +43 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Factory.cpp +92 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Factory.h +54 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FixedSizeFreeList.h +122 -0
- package/native/third_party/JoltPhysics/Jolt/Core/FixedSizeFreeList.inl +215 -0
- package/native/third_party/JoltPhysics/Jolt/Core/HashCombine.h +234 -0
- package/native/third_party/JoltPhysics/Jolt/Core/HashTable.h +876 -0
- package/native/third_party/JoltPhysics/Jolt/Core/InsertionSort.h +58 -0
- package/native/third_party/JoltPhysics/Jolt/Core/IssueReporting.cpp +27 -0
- package/native/third_party/JoltPhysics/Jolt/Core/IssueReporting.h +38 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystem.h +311 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystem.inl +56 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemSingleThreaded.cpp +65 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemSingleThreaded.h +62 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemThreadPool.cpp +364 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemThreadPool.h +101 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemWithBarrier.cpp +230 -0
- package/native/third_party/JoltPhysics/Jolt/Core/JobSystemWithBarrier.h +85 -0
- package/native/third_party/JoltPhysics/Jolt/Core/LinearCurve.cpp +51 -0
- package/native/third_party/JoltPhysics/Jolt/Core/LinearCurve.h +67 -0
- package/native/third_party/JoltPhysics/Jolt/Core/LockFreeHashMap.h +182 -0
- package/native/third_party/JoltPhysics/Jolt/Core/LockFreeHashMap.inl +351 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Memory.cpp +85 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Memory.h +85 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Mutex.h +223 -0
- package/native/third_party/JoltPhysics/Jolt/Core/MutexArray.h +98 -0
- package/native/third_party/JoltPhysics/Jolt/Core/NonCopyable.h +18 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Profiler.cpp +677 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Profiler.h +301 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Profiler.inl +90 -0
- package/native/third_party/JoltPhysics/Jolt/Core/QuickSort.h +137 -0
- package/native/third_party/JoltPhysics/Jolt/Core/RTTI.cpp +149 -0
- package/native/third_party/JoltPhysics/Jolt/Core/RTTI.h +436 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Reference.h +244 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Result.h +174 -0
- package/native/third_party/JoltPhysics/Jolt/Core/STLAlignedAllocator.h +72 -0
- package/native/third_party/JoltPhysics/Jolt/Core/STLAllocator.h +127 -0
- package/native/third_party/JoltPhysics/Jolt/Core/STLLocalAllocator.h +170 -0
- package/native/third_party/JoltPhysics/Jolt/Core/STLTempAllocator.h +80 -0
- package/native/third_party/JoltPhysics/Jolt/Core/ScopeExit.h +49 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Semaphore.cpp +135 -0
- package/native/third_party/JoltPhysics/Jolt/Core/Semaphore.h +68 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StaticArray.h +329 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StreamIn.h +120 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StreamOut.h +97 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StreamUtils.h +168 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StreamWrapper.h +53 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StridedPtr.h +63 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StringTools.cpp +101 -0
- package/native/third_party/JoltPhysics/Jolt/Core/StringTools.h +38 -0
- package/native/third_party/JoltPhysics/Jolt/Core/TempAllocator.h +209 -0
- package/native/third_party/JoltPhysics/Jolt/Core/TickCounter.cpp +37 -0
- package/native/third_party/JoltPhysics/Jolt/Core/TickCounter.h +58 -0
- package/native/third_party/JoltPhysics/Jolt/Core/UnorderedMap.h +80 -0
- package/native/third_party/JoltPhysics/Jolt/Core/UnorderedSet.h +32 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/AABox.h +313 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/AABox4.h +224 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ClipPoly.h +200 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ClosestPoint.h +498 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder.cpp +1467 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder.h +276 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder2D.cpp +335 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexHullBuilder2D.h +105 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/ConvexSupport.h +188 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/EPAConvexHullBuilder.h +845 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/EPAPenetrationDepth.h +557 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Ellipse.h +77 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/GJKClosestPoint.h +945 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/IndexedTriangle.h +130 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Indexify.cpp +222 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Indexify.h +19 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/MortonCode.h +40 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/OrientedBox.cpp +178 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/OrientedBox.h +39 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Plane.h +104 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayAABox.h +241 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayCapsule.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayCylinder.h +101 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RaySphere.h +96 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/RayTriangle.h +158 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Sphere.h +72 -0
- package/native/third_party/JoltPhysics/Jolt/Geometry/Triangle.h +34 -0
- package/native/third_party/JoltPhysics/Jolt/Jolt.cmake +703 -0
- package/native/third_party/JoltPhysics/Jolt/Jolt.h +16 -0
- package/native/third_party/JoltPhysics/Jolt/Jolt.natvis +116 -0
- package/native/third_party/JoltPhysics/Jolt/Math/BVec16.h +99 -0
- package/native/third_party/JoltPhysics/Jolt/Math/BVec16.inl +177 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DMat44.h +158 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DMat44.inl +310 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DVec3.h +291 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DVec3.inl +941 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Double3.h +48 -0
- package/native/third_party/JoltPhysics/Jolt/Math/DynMatrix.h +31 -0
- package/native/third_party/JoltPhysics/Jolt/Math/EigenValueSymmetric.h +177 -0
- package/native/third_party/JoltPhysics/Jolt/Math/FindRoot.h +42 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Float2.h +36 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Float3.h +50 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Float4.h +44 -0
- package/native/third_party/JoltPhysics/Jolt/Math/GaussianElimination.h +102 -0
- package/native/third_party/JoltPhysics/Jolt/Math/HalfFloat.h +208 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Mat44.h +243 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Mat44.inl +952 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Math.h +208 -0
- package/native/third_party/JoltPhysics/Jolt/Math/MathTypes.h +32 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Matrix.h +259 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Quat.h +268 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Quat.inl +406 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Real.h +44 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Swizzle.h +19 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Trigonometry.h +79 -0
- package/native/third_party/JoltPhysics/Jolt/Math/UVec4.h +232 -0
- package/native/third_party/JoltPhysics/Jolt/Math/UVec4.inl +636 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec3.cpp +71 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec3.h +308 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec3.inl +942 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec4.h +320 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vec4.inl +1152 -0
- package/native/third_party/JoltPhysics/Jolt/Math/Vector.h +211 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/GetPrimitiveTypeOfType.h +54 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStream.cpp +38 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStream.h +337 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryIn.cpp +252 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryIn.h +57 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryOut.cpp +165 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamBinaryOut.h +57 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamIn.cpp +635 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamIn.h +148 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamOut.cpp +166 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamOut.h +101 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextIn.cpp +418 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextIn.h +55 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextOut.cpp +255 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTextOut.h +62 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/ObjectStreamTypes.h +26 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttribute.h +111 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttributeEnum.h +67 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableAttributeTyped.h +60 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableObject.cpp +15 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/SerializableObject.h +170 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/TypeDeclarations.cpp +70 -0
- package/native/third_party/JoltPhysics/Jolt/ObjectStream/TypeDeclarations.h +45 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/AllowedDOFs.h +68 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.cpp +426 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.h +452 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/Body.inl +197 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyAccess.h +68 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyActivationListener.h +28 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyCreationSettings.cpp +234 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyCreationSettings.h +124 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyFilter.h +130 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyID.h +101 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyInterface.cpp +1099 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyInterface.h +324 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLock.h +111 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLockInterface.h +134 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyLockMulti.h +120 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyManager.cpp +1220 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyManager.h +403 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyPair.h +36 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/BodyType.h +19 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MassProperties.cpp +185 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MassProperties.h +58 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.cpp +92 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.h +308 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionProperties.inl +178 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionQuality.h +31 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Body/MotionType.h +17 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/Character.cpp +354 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/Character.h +159 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterBase.cpp +59 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterBase.h +157 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterID.h +98 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterVirtual.cpp +1933 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Character/CharacterVirtual.h +752 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/AABoxCast.h +20 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ActiveEdgeMode.h +17 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ActiveEdges.h +114 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BackFaceMode.h +16 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhase.cpp +16 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhase.h +109 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseBruteForce.cpp +313 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseBruteForce.h +38 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayer.h +148 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayerInterfaceMask.h +92 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseLayerInterfaceTable.h +64 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.cpp +629 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuadTree.h +108 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/BroadPhaseQuery.h +56 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/ObjectVsBroadPhaseLayerFilterMask.h +35 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/ObjectVsBroadPhaseLayerFilterTable.h +66 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/QuadTree.cpp +1768 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/BroadPhase/QuadTree.h +389 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastConvexVsTriangles.cpp +107 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastConvexVsTriangles.h +46 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastResult.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastSphereVsTriangles.cpp +223 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CastSphereVsTriangles.h +49 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollectFacesMode.h +16 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideConvexVsTriangles.cpp +155 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideConvexVsTriangles.h +56 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollidePointResult.h +25 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideShape.h +106 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideShapeVsShapePerLeaf.h +94 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSoftBodyVertexIterator.h +110 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSoftBodyVerticesVsTriangles.h +102 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSphereVsTriangles.cpp +121 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollideSphereVsTriangles.h +50 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionCollector.h +109 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionCollectorImpl.h +219 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionDispatch.cpp +107 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionDispatch.h +97 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionGroup.cpp +35 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/CollisionGroup.h +97 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ContactListener.h +143 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/EstimateCollisionResponse.cpp +213 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/EstimateCollisionResponse.h +48 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilter.cpp +32 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilter.h +46 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilterTable.cpp +38 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/GroupFilterTable.h +130 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/InternalEdgeRemovingCollector.h +279 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ManifoldBetweenTwoFaces.cpp +271 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ManifoldBetweenTwoFaces.h +44 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseQuery.cpp +448 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseQuery.h +77 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseStats.cpp +62 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/NarrowPhaseStats.h +110 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayer.h +111 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayerPairFilterMask.h +52 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ObjectLayerPairFilterTable.h +78 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterial.cpp +35 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterial.h +57 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterialSimple.cpp +38 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/PhysicsMaterialSimple.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/RayCast.h +87 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/BoxShape.cpp +318 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/BoxShape.h +115 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CapsuleShape.cpp +438 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CapsuleShape.h +129 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShape.cpp +433 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShape.h +354 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CompoundShapeVisitors.h +461 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexHullShape.cpp +1311 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexHullShape.h +202 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexShape.cpp +566 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ConvexShape.h +150 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CylinderShape.cpp +418 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/CylinderShape.h +126 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/DecoratedShape.cpp +87 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/DecoratedShape.h +80 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/EmptyShape.cpp +64 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/EmptyShape.h +75 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/GetTrianglesContext.h +248 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.cpp +2754 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/HeightFieldShape.h +380 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MeshShape.cpp +1305 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MeshShape.h +228 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MutableCompoundShape.cpp +596 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/MutableCompoundShape.h +176 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/OffsetCenterOfMassShape.cpp +217 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/OffsetCenterOfMassShape.h +140 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PlaneShape.cpp +541 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PlaneShape.h +147 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/PolyhedronSubmergedVolumeCalculator.h +319 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/RotatedTranslatedShape.cpp +333 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/RotatedTranslatedShape.h +161 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaleHelpers.h +83 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaledShape.cpp +238 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/ScaledShape.h +145 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.cpp +325 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/Shape.h +466 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SphereShape.cpp +347 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SphereShape.h +125 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/StaticCompoundShape.cpp +674 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/StaticCompoundShape.h +139 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SubShapeID.h +138 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/SubShapeIDPair.h +65 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.cpp +453 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.gliffy +1 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCapsuleShape.h +135 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCylinderShape.cpp +691 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TaperedCylinderShape.h +132 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TriangleShape.cpp +430 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/Shape/TriangleShape.h +143 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ShapeCast.h +173 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/ShapeFilter.h +73 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SimShapeFilter.h +40 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SimShapeFilterWrapper.h +58 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/SortReverseAndStore.h +48 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/TransformedShape.cpp +180 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Collision/TransformedShape.h +194 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/CalculateSolverSteps.h +70 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConeConstraint.cpp +246 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConeConstraint.h +133 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/Constraint.cpp +73 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/Constraint.h +243 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintManager.cpp +289 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintManager.h +100 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/AngleConstraintPart.h +257 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/AxisConstraintPart.h +682 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/DualAxisConstraintPart.h +276 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/GearConstraintPart.h +195 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/HingeRotationConstraintPart.h +222 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/IndependentAxisConstraintPart.h +246 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/PointConstraintPart.h +239 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RackAndPinionConstraintPart.h +196 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RotationEulerConstraintPart.h +283 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/RotationQuatConstraintPart.h +246 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/SpringPart.h +169 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ConstraintPart/SwingTwistConstraintPart.h +597 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ContactConstraintManager.cpp +1804 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/ContactConstraintManager.h +524 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/DistanceConstraint.cpp +266 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/DistanceConstraint.h +120 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/FixedConstraint.cpp +215 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/FixedConstraint.h +96 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/GearConstraint.cpp +188 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/GearConstraint.h +116 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/HingeConstraint.cpp +443 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/HingeConstraint.h +205 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/MotorSettings.cpp +43 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/MotorSettings.h +66 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraint.cpp +458 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraint.h +191 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPath.cpp +85 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPath.h +76 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.cpp +308 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PathConstraintPathHermite.h +54 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PointConstraint.cpp +157 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PointConstraint.h +94 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PulleyConstraint.cpp +253 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/PulleyConstraint.h +137 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/RackAndPinionConstraint.cpp +189 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/RackAndPinionConstraint.h +118 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SixDOFConstraint.cpp +900 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SixDOFConstraint.h +289 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SliderConstraint.cpp +501 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SliderConstraint.h +198 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SpringSettings.cpp +35 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SpringSettings.h +70 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SwingTwistConstraint.cpp +524 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/SwingTwistConstraint.h +197 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/TwoBodyConstraint.cpp +56 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Constraints/TwoBodyConstraint.h +65 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/DeterminismLog.cpp +17 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/DeterminismLog.h +159 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/EActivation.h +16 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/EPhysicsUpdateError.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/IslandBuilder.cpp +492 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/IslandBuilder.h +144 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/LargeIslandSplitter.cpp +582 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/LargeIslandSplitter.h +187 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsLock.h +169 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsScene.cpp +261 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsScene.h +104 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSettings.h +125 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsStepListener.h +37 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSystem.cpp +2915 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsSystem.h +391 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.cpp +25 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/PhysicsUpdateContext.h +176 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Ragdoll/Ragdoll.cpp +744 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Ragdoll/Ragdoll.h +245 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyContactListener.h +55 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyCreationSettings.cpp +128 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyCreationSettings.h +75 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyManifold.h +74 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyMotionProperties.cpp +1501 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyMotionProperties.h +333 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyShape.cpp +354 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyShape.h +73 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodySharedSettings.cpp +1487 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodySharedSettings.h +390 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyUpdateContext.h +63 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/SoftBody/SoftBodyVertex.h +36 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorder.h +136 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorderImpl.cpp +90 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/StateRecorderImpl.h +50 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/MotorcycleController.cpp +306 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/MotorcycleController.h +119 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/TrackedVehicleController.cpp +547 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/TrackedVehicleController.h +169 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.cpp +33 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleAntiRollBar.h +33 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.cpp +376 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleCollisionTester.h +146 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleConstraint.cpp +703 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleConstraint.h +252 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.cpp +17 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleController.h +87 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleDifferential.cpp +81 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleDifferential.h +39 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleEngine.cpp +122 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleEngine.h +93 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTrack.cpp +52 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTrack.h +56 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTransmission.cpp +159 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/VehicleTransmission.h +87 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/Wheel.cpp +93 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/Wheel.h +148 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/WheeledVehicleController.cpp +866 -0
- package/native/third_party/JoltPhysics/Jolt/Physics/Vehicle/WheeledVehicleController.h +205 -0
- package/native/third_party/JoltPhysics/Jolt/RegisterTypes.cpp +204 -0
- package/native/third_party/JoltPhysics/Jolt/RegisterTypes.h +29 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRenderer.cpp +1107 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRenderer.h +383 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererPlayback.cpp +168 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererPlayback.h +48 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererRecorder.cpp +158 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererRecorder.h +130 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererSimple.cpp +80 -0
- package/native/third_party/JoltPhysics/Jolt/Renderer/DebugRendererSimple.h +88 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletalAnimation.cpp +165 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletalAnimation.h +91 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/Skeleton.cpp +82 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/Skeleton.h +72 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonMapper.cpp +237 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonMapper.h +145 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonPose.cpp +87 -0
- package/native/third_party/JoltPhysics/Jolt/Skeleton/SkeletonPose.h +82 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitter.cpp +73 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitter.h +84 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.cpp +139 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterBinning.h +52 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterMean.cpp +43 -0
- package/native/third_party/JoltPhysics/Jolt/TriangleSplitter/TriangleSplitterMean.h +28 -0
- package/native/third_party/JoltPhysics/LICENSE +7 -0
- package/native/third_party/JoltPhysics/README.md +173 -0
- package/native/third_party/bloom_jolt/CMakeLists.txt +78 -0
- package/native/third_party/bloom_jolt/include/bloom_jolt.h +519 -0
- package/native/third_party/bloom_jolt/src/bloom_jolt.cpp +1780 -0
- package/native/tvos/Cargo.lock +1692 -0
- package/native/tvos/Cargo.toml +22 -0
- package/native/tvos/src/lib.rs +3179 -0
- package/native/watchos/Cargo.lock +16 -0
- package/native/watchos/Cargo.toml +19 -0
- package/native/watchos/shaders/bloom_postfx.metal +99 -0
- package/native/watchos/src/BloomWatchApp.swift +1236 -0
- package/native/watchos/src/BloomWatchAudio.swift +179 -0
- package/native/watchos/src/audio.rs +55 -0
- package/native/watchos/src/draw_list.rs +223 -0
- package/native/watchos/src/ffi_stubs.rs +454 -0
- package/native/watchos/src/lib.rs +1013 -0
- package/native/watchos/src/models.rs +746 -0
- package/native/watchos/src/postfx.rs +91 -0
- package/native/watchos/src/scene.rs +534 -0
- package/native/watchos/src/textures.rs +184 -0
- package/native/web/Cargo.lock +1656 -0
- package/native/web/Cargo.toml +38 -0
- package/native/web/bloom_glue.js +218 -0
- package/native/web/build.sh +101 -0
- package/native/web/index.html +390 -0
- package/native/web/jolt_bridge.js +1311 -0
- package/native/web/src/lib.rs +2739 -0
- package/native/windows/Cargo.lock +1813 -0
- package/native/windows/Cargo.toml +31 -0
- package/native/windows/src/lib.rs +1933 -0
- package/package.json +558 -0
- package/src/audio/index.ts +151 -0
- package/src/core/colors.ts +56 -0
- package/src/core/index.ts +903 -0
- package/src/core/keys.ts +63 -0
- package/src/core/types.ts +102 -0
- package/src/index.ts +158 -0
- package/src/math/index.ts +502 -0
- package/src/mobile/index.ts +294 -0
- package/src/models/index.ts +859 -0
- package/src/physics/index.ts +1072 -0
- package/src/scene/index.ts +570 -0
- package/src/shapes/index.ts +120 -0
- package/src/text/index.ts +48 -0
- package/src/textures/index.ts +173 -0
- package/src/world/index.ts +22 -0
- package/src/world/loader.ts +385 -0
- package/src/world/prefab.ts +205 -0
- package/src/world/saver.ts +61 -0
- package/src/world/terrain.ts +254 -0
- package/src/world/types.ts +136 -0
- package/src/world/validate.ts +202 -0
- package/src/world/version.ts +47 -0
|
@@ -0,0 +1,652 @@
|
|
|
1
|
+
// Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
|
|
2
|
+
// SPDX-FileCopyrightText: 2021 Jorrit Rouwe
|
|
3
|
+
// SPDX-License-Identifier: MIT
|
|
4
|
+
|
|
5
|
+
#pragma once
|
|
6
|
+
|
|
7
|
+
// Jolt library version
|
|
8
|
+
#define JPH_VERSION_MAJOR 5
|
|
9
|
+
#define JPH_VERSION_MINOR 5
|
|
10
|
+
#define JPH_VERSION_PATCH 0
|
|
11
|
+
|
|
12
|
+
// Determine which features the library was compiled with
|
|
13
|
+
#ifdef JPH_DOUBLE_PRECISION
|
|
14
|
+
#define JPH_VERSION_FEATURE_BIT_1 1
|
|
15
|
+
#else
|
|
16
|
+
#define JPH_VERSION_FEATURE_BIT_1 0
|
|
17
|
+
#endif
|
|
18
|
+
#ifdef JPH_CROSS_PLATFORM_DETERMINISTIC
|
|
19
|
+
#define JPH_VERSION_FEATURE_BIT_2 1
|
|
20
|
+
#else
|
|
21
|
+
#define JPH_VERSION_FEATURE_BIT_2 0
|
|
22
|
+
#endif
|
|
23
|
+
#ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
|
|
24
|
+
#define JPH_VERSION_FEATURE_BIT_3 1
|
|
25
|
+
#else
|
|
26
|
+
#define JPH_VERSION_FEATURE_BIT_3 0
|
|
27
|
+
#endif
|
|
28
|
+
#ifdef JPH_PROFILE_ENABLED
|
|
29
|
+
#define JPH_VERSION_FEATURE_BIT_4 1
|
|
30
|
+
#else
|
|
31
|
+
#define JPH_VERSION_FEATURE_BIT_4 0
|
|
32
|
+
#endif
|
|
33
|
+
#ifdef JPH_EXTERNAL_PROFILE
|
|
34
|
+
#define JPH_VERSION_FEATURE_BIT_5 1
|
|
35
|
+
#else
|
|
36
|
+
#define JPH_VERSION_FEATURE_BIT_5 0
|
|
37
|
+
#endif
|
|
38
|
+
#ifdef JPH_DEBUG_RENDERER
|
|
39
|
+
#define JPH_VERSION_FEATURE_BIT_6 1
|
|
40
|
+
#else
|
|
41
|
+
#define JPH_VERSION_FEATURE_BIT_6 0
|
|
42
|
+
#endif
|
|
43
|
+
#ifdef JPH_DISABLE_TEMP_ALLOCATOR
|
|
44
|
+
#define JPH_VERSION_FEATURE_BIT_7 1
|
|
45
|
+
#else
|
|
46
|
+
#define JPH_VERSION_FEATURE_BIT_7 0
|
|
47
|
+
#endif
|
|
48
|
+
#ifdef JPH_DISABLE_CUSTOM_ALLOCATOR
|
|
49
|
+
#define JPH_VERSION_FEATURE_BIT_8 1
|
|
50
|
+
#else
|
|
51
|
+
#define JPH_VERSION_FEATURE_BIT_8 0
|
|
52
|
+
#endif
|
|
53
|
+
#if defined(JPH_OBJECT_LAYER_BITS) && JPH_OBJECT_LAYER_BITS == 32
|
|
54
|
+
#define JPH_VERSION_FEATURE_BIT_9 1
|
|
55
|
+
#else
|
|
56
|
+
#define JPH_VERSION_FEATURE_BIT_9 0
|
|
57
|
+
#endif
|
|
58
|
+
#ifdef JPH_ENABLE_ASSERTS
|
|
59
|
+
#define JPH_VERSION_FEATURE_BIT_10 1
|
|
60
|
+
#else
|
|
61
|
+
#define JPH_VERSION_FEATURE_BIT_10 0
|
|
62
|
+
#endif
|
|
63
|
+
#ifdef JPH_OBJECT_STREAM
|
|
64
|
+
#define JPH_VERSION_FEATURE_BIT_11 1
|
|
65
|
+
#else
|
|
66
|
+
#define JPH_VERSION_FEATURE_BIT_11 0
|
|
67
|
+
#endif
|
|
68
|
+
#define JPH_VERSION_FEATURES (uint64(JPH_VERSION_FEATURE_BIT_1) | (JPH_VERSION_FEATURE_BIT_2 << 1) | (JPH_VERSION_FEATURE_BIT_3 << 2) | (JPH_VERSION_FEATURE_BIT_4 << 3) | (JPH_VERSION_FEATURE_BIT_5 << 4) | (JPH_VERSION_FEATURE_BIT_6 << 5) | (JPH_VERSION_FEATURE_BIT_7 << 6) | (JPH_VERSION_FEATURE_BIT_8 << 7) | (JPH_VERSION_FEATURE_BIT_9 << 8) | (JPH_VERSION_FEATURE_BIT_10 << 9) | (JPH_VERSION_FEATURE_BIT_11 << 10))
|
|
69
|
+
|
|
70
|
+
// Combine the version and features in a single ID
|
|
71
|
+
#define JPH_VERSION_ID ((JPH_VERSION_FEATURES << 24) | (JPH_VERSION_MAJOR << 16) | (JPH_VERSION_MINOR << 8) | JPH_VERSION_PATCH)
|
|
72
|
+
|
|
73
|
+
// Determine platform
|
|
74
|
+
#if defined(JPH_PLATFORM_BLUE)
|
|
75
|
+
// Correct define already defined, this overrides everything else
|
|
76
|
+
#elif defined(_WIN32) || defined(_WIN64)
|
|
77
|
+
#include <winapifamily.h>
|
|
78
|
+
#if WINAPI_FAMILY == WINAPI_FAMILY_APP
|
|
79
|
+
#define JPH_PLATFORM_WINDOWS_UWP // Building for Universal Windows Platform
|
|
80
|
+
#endif
|
|
81
|
+
#define JPH_PLATFORM_WINDOWS
|
|
82
|
+
#elif defined(__ANDROID__) // Android is linux too, so that's why we check it first
|
|
83
|
+
#define JPH_PLATFORM_ANDROID
|
|
84
|
+
#elif defined(__linux__)
|
|
85
|
+
#define JPH_PLATFORM_LINUX
|
|
86
|
+
#elif defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__)
|
|
87
|
+
#define JPH_PLATFORM_BSD
|
|
88
|
+
#elif defined(__APPLE__)
|
|
89
|
+
#include <TargetConditionals.h>
|
|
90
|
+
#if defined(TARGET_OS_IPHONE) && !TARGET_OS_IPHONE
|
|
91
|
+
#define JPH_PLATFORM_MACOS
|
|
92
|
+
#else
|
|
93
|
+
#define JPH_PLATFORM_IOS
|
|
94
|
+
#endif
|
|
95
|
+
#elif defined(__EMSCRIPTEN__)
|
|
96
|
+
#define JPH_PLATFORM_WASM
|
|
97
|
+
#endif
|
|
98
|
+
|
|
99
|
+
// Platform helper macros
|
|
100
|
+
#ifdef JPH_PLATFORM_ANDROID
|
|
101
|
+
#define JPH_IF_NOT_ANDROID(x)
|
|
102
|
+
#else
|
|
103
|
+
#define JPH_IF_NOT_ANDROID(x) x
|
|
104
|
+
#endif
|
|
105
|
+
|
|
106
|
+
// Determine compiler
|
|
107
|
+
#if defined(__clang__)
|
|
108
|
+
#define JPH_COMPILER_CLANG
|
|
109
|
+
#elif defined(__GNUC__)
|
|
110
|
+
#define JPH_COMPILER_GCC
|
|
111
|
+
#elif defined(_MSC_VER)
|
|
112
|
+
#define JPH_COMPILER_MSVC
|
|
113
|
+
#endif
|
|
114
|
+
|
|
115
|
+
#if defined(__MINGW64__) || defined (__MINGW32__)
|
|
116
|
+
#define JPH_COMPILER_MINGW
|
|
117
|
+
#endif
|
|
118
|
+
|
|
119
|
+
// Detect CPU architecture
|
|
120
|
+
#if defined(__x86_64__) || defined(_M_X64) || defined(__i386__) || defined(_M_IX86)
|
|
121
|
+
// X86 CPU architecture
|
|
122
|
+
#define JPH_CPU_X86
|
|
123
|
+
#if defined(__x86_64__) || defined(_M_X64)
|
|
124
|
+
#define JPH_CPU_ARCH_BITS 64
|
|
125
|
+
#else
|
|
126
|
+
#define JPH_CPU_ARCH_BITS 32
|
|
127
|
+
#endif
|
|
128
|
+
#define JPH_USE_SSE
|
|
129
|
+
#define JPH_VECTOR_ALIGNMENT 16
|
|
130
|
+
#define JPH_DVECTOR_ALIGNMENT 32
|
|
131
|
+
|
|
132
|
+
// Detect enabled instruction sets
|
|
133
|
+
#if defined(__AVX512F__) && defined(__AVX512VL__) && defined(__AVX512DQ__) && !defined(JPH_USE_AVX512)
|
|
134
|
+
#define JPH_USE_AVX512
|
|
135
|
+
#endif
|
|
136
|
+
#if (defined(__AVX2__) || defined(JPH_USE_AVX512)) && !defined(JPH_USE_AVX2)
|
|
137
|
+
#define JPH_USE_AVX2
|
|
138
|
+
#endif
|
|
139
|
+
#if (defined(__AVX__) || defined(JPH_USE_AVX2)) && !defined(JPH_USE_AVX)
|
|
140
|
+
#define JPH_USE_AVX
|
|
141
|
+
#endif
|
|
142
|
+
#if (defined(__SSE4_2__) || defined(JPH_USE_AVX)) && !defined(JPH_USE_SSE4_2)
|
|
143
|
+
#define JPH_USE_SSE4_2
|
|
144
|
+
#endif
|
|
145
|
+
#if (defined(__SSE4_1__) || defined(JPH_USE_SSE4_2)) && !defined(JPH_USE_SSE4_1)
|
|
146
|
+
#define JPH_USE_SSE4_1
|
|
147
|
+
#endif
|
|
148
|
+
#if (defined(__F16C__) || defined(JPH_USE_AVX2)) && !defined(JPH_USE_F16C)
|
|
149
|
+
#define JPH_USE_F16C
|
|
150
|
+
#endif
|
|
151
|
+
#if (defined(__LZCNT__) || defined(JPH_USE_AVX2)) && !defined(JPH_USE_LZCNT)
|
|
152
|
+
#define JPH_USE_LZCNT
|
|
153
|
+
#endif
|
|
154
|
+
#if (defined(__BMI__) || defined(JPH_USE_AVX2)) && !defined(JPH_USE_TZCNT)
|
|
155
|
+
#define JPH_USE_TZCNT
|
|
156
|
+
#endif
|
|
157
|
+
#ifndef JPH_CROSS_PLATFORM_DETERMINISTIC // FMA is not compatible with cross platform determinism
|
|
158
|
+
#if defined(JPH_COMPILER_CLANG) || defined(JPH_COMPILER_GCC)
|
|
159
|
+
#if defined(__FMA__) && !defined(JPH_USE_FMADD)
|
|
160
|
+
#define JPH_USE_FMADD
|
|
161
|
+
#endif
|
|
162
|
+
#elif defined(JPH_COMPILER_MSVC)
|
|
163
|
+
#if defined(__AVX2__) && !defined(JPH_USE_FMADD) // AVX2 also enables fused multiply add
|
|
164
|
+
#define JPH_USE_FMADD
|
|
165
|
+
#endif
|
|
166
|
+
#else
|
|
167
|
+
#error Undefined compiler
|
|
168
|
+
#endif
|
|
169
|
+
#endif
|
|
170
|
+
#elif defined(__aarch64__) || defined(_M_ARM64) || defined(__arm__) || defined(_M_ARM)
|
|
171
|
+
// ARM CPU architecture
|
|
172
|
+
#define JPH_CPU_ARM
|
|
173
|
+
#if defined(__aarch64__) || defined(_M_ARM64)
|
|
174
|
+
#define JPH_CPU_ARCH_BITS 64
|
|
175
|
+
#define JPH_USE_NEON
|
|
176
|
+
#define JPH_VECTOR_ALIGNMENT 16
|
|
177
|
+
#define JPH_DVECTOR_ALIGNMENT 32
|
|
178
|
+
#else
|
|
179
|
+
#define JPH_CPU_ARCH_BITS 32
|
|
180
|
+
#define JPH_VECTOR_ALIGNMENT 8 // 32-bit ARM does not support aligning on the stack on 16 byte boundaries
|
|
181
|
+
#define JPH_DVECTOR_ALIGNMENT 8
|
|
182
|
+
#endif
|
|
183
|
+
#elif defined(__riscv)
|
|
184
|
+
// RISC-V CPU architecture
|
|
185
|
+
#define JPH_CPU_RISCV
|
|
186
|
+
#if __riscv_xlen == 64
|
|
187
|
+
#define JPH_CPU_ARCH_BITS 64
|
|
188
|
+
#define JPH_VECTOR_ALIGNMENT 16
|
|
189
|
+
#define JPH_DVECTOR_ALIGNMENT 32
|
|
190
|
+
#else
|
|
191
|
+
#define JPH_CPU_ARCH_BITS 32
|
|
192
|
+
#define JPH_VECTOR_ALIGNMENT 16
|
|
193
|
+
#define JPH_DVECTOR_ALIGNMENT 8
|
|
194
|
+
#endif
|
|
195
|
+
#elif defined(JPH_PLATFORM_WASM)
|
|
196
|
+
// WebAssembly CPU architecture
|
|
197
|
+
#define JPH_CPU_WASM
|
|
198
|
+
#if defined(__wasm64__)
|
|
199
|
+
#define JPH_CPU_ARCH_BITS 64
|
|
200
|
+
#else
|
|
201
|
+
#define JPH_CPU_ARCH_BITS 32
|
|
202
|
+
#endif
|
|
203
|
+
#define JPH_VECTOR_ALIGNMENT 16
|
|
204
|
+
#define JPH_DVECTOR_ALIGNMENT 32
|
|
205
|
+
#ifdef __wasm_simd128__
|
|
206
|
+
#define JPH_USE_SSE
|
|
207
|
+
#define JPH_USE_SSE4_1
|
|
208
|
+
#define JPH_USE_SSE4_2
|
|
209
|
+
#endif
|
|
210
|
+
#elif defined(__powerpc__) || defined(__powerpc64__)
|
|
211
|
+
// PowerPC CPU architecture
|
|
212
|
+
#define JPH_CPU_PPC
|
|
213
|
+
#if defined(__powerpc64__)
|
|
214
|
+
#define JPH_CPU_ARCH_BITS 64
|
|
215
|
+
#else
|
|
216
|
+
#define JPH_CPU_ARCH_BITS 32
|
|
217
|
+
#endif
|
|
218
|
+
#ifdef _BIG_ENDIAN
|
|
219
|
+
#define JPH_CPU_BIG_ENDIAN
|
|
220
|
+
#endif
|
|
221
|
+
#define JPH_VECTOR_ALIGNMENT 16
|
|
222
|
+
#define JPH_DVECTOR_ALIGNMENT 8
|
|
223
|
+
#elif defined(__loongarch__)
|
|
224
|
+
// LoongArch CPU architecture
|
|
225
|
+
#define JPH_CPU_LOONGARCH
|
|
226
|
+
#if defined(__loongarch64)
|
|
227
|
+
#define JPH_CPU_ARCH_BITS 64
|
|
228
|
+
#else
|
|
229
|
+
#define JPH_CPU_ARCH_BITS 32
|
|
230
|
+
#endif
|
|
231
|
+
#define JPH_VECTOR_ALIGNMENT 16
|
|
232
|
+
#define JPH_DVECTOR_ALIGNMENT 8
|
|
233
|
+
#elif defined(__e2k__)
|
|
234
|
+
// E2K CPU architecture (MCST Elbrus 2000)
|
|
235
|
+
#define JPH_CPU_E2K
|
|
236
|
+
#define JPH_CPU_ARCH_BITS 64
|
|
237
|
+
#define JPH_VECTOR_ALIGNMENT 16
|
|
238
|
+
#define JPH_DVECTOR_ALIGNMENT 32
|
|
239
|
+
|
|
240
|
+
// Compiler flags on e2k arch determine CPU features
|
|
241
|
+
#if defined(__SSE__) && !defined(JPH_USE_SSE)
|
|
242
|
+
#define JPH_USE_SSE
|
|
243
|
+
#endif
|
|
244
|
+
#else
|
|
245
|
+
#error Unsupported CPU architecture
|
|
246
|
+
#endif
|
|
247
|
+
|
|
248
|
+
// If this define is set, Jolt is compiled as a shared library
|
|
249
|
+
#ifdef JPH_SHARED_LIBRARY
|
|
250
|
+
#ifdef JPH_BUILD_SHARED_LIBRARY
|
|
251
|
+
// While building the shared library, we must export these symbols
|
|
252
|
+
#if defined(JPH_PLATFORM_WINDOWS) && !defined(JPH_COMPILER_MINGW)
|
|
253
|
+
#define JPH_EXPORT __declspec(dllexport)
|
|
254
|
+
#else
|
|
255
|
+
#define JPH_EXPORT __attribute__ ((visibility ("default")))
|
|
256
|
+
#if defined(JPH_COMPILER_GCC)
|
|
257
|
+
// Prevents an issue with GCC attribute parsing (see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69585)
|
|
258
|
+
#define JPH_EXPORT_GCC_BUG_WORKAROUND [[gnu::visibility("default")]]
|
|
259
|
+
#endif
|
|
260
|
+
#endif
|
|
261
|
+
#else
|
|
262
|
+
// When linking against Jolt, we must import these symbols
|
|
263
|
+
#if defined(JPH_PLATFORM_WINDOWS) && !defined(JPH_COMPILER_MINGW)
|
|
264
|
+
#define JPH_EXPORT __declspec(dllimport)
|
|
265
|
+
#else
|
|
266
|
+
#define JPH_EXPORT __attribute__ ((visibility ("default")))
|
|
267
|
+
#if defined(JPH_COMPILER_GCC)
|
|
268
|
+
// Prevents an issue with GCC attribute parsing (see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69585)
|
|
269
|
+
#define JPH_EXPORT_GCC_BUG_WORKAROUND [[gnu::visibility("default")]]
|
|
270
|
+
#endif
|
|
271
|
+
#endif
|
|
272
|
+
#endif
|
|
273
|
+
#else
|
|
274
|
+
// If the define is not set, we use static linking and symbols don't need to be imported or exported
|
|
275
|
+
#define JPH_EXPORT
|
|
276
|
+
#endif
|
|
277
|
+
|
|
278
|
+
#ifndef JPH_EXPORT_GCC_BUG_WORKAROUND
|
|
279
|
+
#define JPH_EXPORT_GCC_BUG_WORKAROUND JPH_EXPORT
|
|
280
|
+
#endif
|
|
281
|
+
|
|
282
|
+
// Macro used by the RTTI macros to not export a function
|
|
283
|
+
#define JPH_NO_EXPORT
|
|
284
|
+
|
|
285
|
+
// Pragmas to store / restore the warning state and to disable individual warnings
|
|
286
|
+
#ifdef JPH_COMPILER_CLANG
|
|
287
|
+
#define JPH_PRAGMA(x) _Pragma(#x)
|
|
288
|
+
#define JPH_SUPPRESS_WARNING_PUSH JPH_PRAGMA(clang diagnostic push)
|
|
289
|
+
#define JPH_SUPPRESS_WARNING_POP JPH_PRAGMA(clang diagnostic pop)
|
|
290
|
+
#define JPH_CLANG_SUPPRESS_WARNING(w) JPH_PRAGMA(clang diagnostic ignored w)
|
|
291
|
+
#if __clang_major__ >= 13
|
|
292
|
+
#define JPH_CLANG_13_PLUS_SUPPRESS_WARNING(w) JPH_CLANG_SUPPRESS_WARNING(w)
|
|
293
|
+
#else
|
|
294
|
+
#define JPH_CLANG_13_PLUS_SUPPRESS_WARNING(w)
|
|
295
|
+
#endif
|
|
296
|
+
#if __clang_major__ >= 16
|
|
297
|
+
#define JPH_CLANG_16_PLUS_SUPPRESS_WARNING(w) JPH_CLANG_SUPPRESS_WARNING(w)
|
|
298
|
+
#else
|
|
299
|
+
#define JPH_CLANG_16_PLUS_SUPPRESS_WARNING(w)
|
|
300
|
+
#endif
|
|
301
|
+
#else
|
|
302
|
+
#define JPH_CLANG_SUPPRESS_WARNING(w)
|
|
303
|
+
#define JPH_CLANG_13_PLUS_SUPPRESS_WARNING(w)
|
|
304
|
+
#define JPH_CLANG_16_PLUS_SUPPRESS_WARNING(w)
|
|
305
|
+
#endif
|
|
306
|
+
#ifdef JPH_COMPILER_GCC
|
|
307
|
+
#define JPH_PRAGMA(x) _Pragma(#x)
|
|
308
|
+
#define JPH_SUPPRESS_WARNING_PUSH JPH_PRAGMA(GCC diagnostic push)
|
|
309
|
+
#define JPH_SUPPRESS_WARNING_POP JPH_PRAGMA(GCC diagnostic pop)
|
|
310
|
+
#define JPH_GCC_SUPPRESS_WARNING(w) JPH_PRAGMA(GCC diagnostic ignored w)
|
|
311
|
+
#else
|
|
312
|
+
#define JPH_GCC_SUPPRESS_WARNING(w)
|
|
313
|
+
#endif
|
|
314
|
+
#ifdef JPH_COMPILER_MSVC
|
|
315
|
+
#define JPH_PRAGMA(x) __pragma(x)
|
|
316
|
+
#define JPH_SUPPRESS_WARNING_PUSH JPH_PRAGMA(warning (push))
|
|
317
|
+
#define JPH_SUPPRESS_WARNING_POP JPH_PRAGMA(warning (pop))
|
|
318
|
+
#define JPH_MSVC_SUPPRESS_WARNING(w) JPH_PRAGMA(warning (disable : w))
|
|
319
|
+
#if _MSC_VER >= 1920 && _MSC_VER < 1930
|
|
320
|
+
#define JPH_MSVC2019_SUPPRESS_WARNING(w) JPH_MSVC_SUPPRESS_WARNING(w)
|
|
321
|
+
#else
|
|
322
|
+
#define JPH_MSVC2019_SUPPRESS_WARNING(w)
|
|
323
|
+
#endif
|
|
324
|
+
#if _MSC_VER >= 1950
|
|
325
|
+
#define JPH_MSVC2026_PLUS_SUPPRESS_WARNING(w) JPH_MSVC_SUPPRESS_WARNING(w)
|
|
326
|
+
#else
|
|
327
|
+
#define JPH_MSVC2026_PLUS_SUPPRESS_WARNING(w)
|
|
328
|
+
#endif
|
|
329
|
+
#else
|
|
330
|
+
#define JPH_MSVC_SUPPRESS_WARNING(w)
|
|
331
|
+
#define JPH_MSVC2019_SUPPRESS_WARNING(w)
|
|
332
|
+
#define JPH_MSVC2026_PLUS_SUPPRESS_WARNING(w)
|
|
333
|
+
#endif
|
|
334
|
+
|
|
335
|
+
// Disable common warnings triggered by Jolt when compiling with -Wall
|
|
336
|
+
#define JPH_SUPPRESS_WARNINGS \
|
|
337
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wc++98-compat") \
|
|
338
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wc++98-compat-pedantic") \
|
|
339
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wfloat-equal") \
|
|
340
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wsign-conversion") \
|
|
341
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wold-style-cast") \
|
|
342
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wgnu-anonymous-struct") \
|
|
343
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wnested-anon-types") \
|
|
344
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wglobal-constructors") \
|
|
345
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wexit-time-destructors") \
|
|
346
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wnonportable-system-include-path") \
|
|
347
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wlanguage-extension-token") \
|
|
348
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wunused-parameter") \
|
|
349
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wformat-nonliteral") \
|
|
350
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wcovered-switch-default") \
|
|
351
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wcast-align") \
|
|
352
|
+
JPH_CLANG_SUPPRESS_WARNING("-Winvalid-offsetof") \
|
|
353
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wgnu-zero-variadic-macro-arguments") \
|
|
354
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wdocumentation-unknown-command") \
|
|
355
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wctad-maybe-unsupported") \
|
|
356
|
+
JPH_CLANG_SUPPRESS_WARNING("-Wswitch-default") \
|
|
357
|
+
JPH_CLANG_13_PLUS_SUPPRESS_WARNING("-Wdeprecated-copy") \
|
|
358
|
+
JPH_CLANG_13_PLUS_SUPPRESS_WARNING("-Wdeprecated-copy-with-dtor") \
|
|
359
|
+
JPH_CLANG_16_PLUS_SUPPRESS_WARNING("-Wunsafe-buffer-usage") \
|
|
360
|
+
JPH_IF_NOT_ANDROID(JPH_CLANG_SUPPRESS_WARNING("-Wimplicit-int-float-conversion")) \
|
|
361
|
+
\
|
|
362
|
+
JPH_GCC_SUPPRESS_WARNING("-Wcomment") \
|
|
363
|
+
JPH_GCC_SUPPRESS_WARNING("-Winvalid-offsetof") \
|
|
364
|
+
JPH_GCC_SUPPRESS_WARNING("-Wclass-memaccess") \
|
|
365
|
+
JPH_GCC_SUPPRESS_WARNING("-Wpedantic") \
|
|
366
|
+
JPH_GCC_SUPPRESS_WARNING("-Wunused-parameter") \
|
|
367
|
+
JPH_GCC_SUPPRESS_WARNING("-Wmaybe-uninitialized") \
|
|
368
|
+
\
|
|
369
|
+
JPH_MSVC_SUPPRESS_WARNING(4619) /* #pragma warning: there is no warning number 'XXXX' */ \
|
|
370
|
+
JPH_MSVC_SUPPRESS_WARNING(4514) /* 'X' : unreferenced inline function has been removed */ \
|
|
371
|
+
JPH_MSVC_SUPPRESS_WARNING(4710) /* 'X' : function not inlined */ \
|
|
372
|
+
JPH_MSVC_SUPPRESS_WARNING(4711) /* function 'X' selected for automatic inline expansion */ \
|
|
373
|
+
JPH_MSVC_SUPPRESS_WARNING(4714) /* function 'X' marked as __forceinline not inlined */ \
|
|
374
|
+
JPH_MSVC_SUPPRESS_WARNING(4820) /* 'X': 'Y' bytes padding added after data member 'Z' */ \
|
|
375
|
+
JPH_MSVC_SUPPRESS_WARNING(4100) /* 'X' : unreferenced formal parameter */ \
|
|
376
|
+
JPH_MSVC_SUPPRESS_WARNING(4626) /* 'X' : assignment operator was implicitly defined as deleted because a base class assignment operator is inaccessible or deleted */ \
|
|
377
|
+
JPH_MSVC_SUPPRESS_WARNING(5027) /* 'X' : move assignment operator was implicitly defined as deleted because a base class move assignment operator is inaccessible or deleted */ \
|
|
378
|
+
JPH_MSVC_SUPPRESS_WARNING(4365) /* 'argument' : conversion from 'X' to 'Y', signed / unsigned mismatch */ \
|
|
379
|
+
JPH_MSVC_SUPPRESS_WARNING(4324) /* 'X' : structure was padded due to alignment specifier */ \
|
|
380
|
+
JPH_MSVC_SUPPRESS_WARNING(4625) /* 'X' : copy constructor was implicitly defined as deleted because a base class copy constructor is inaccessible or deleted */ \
|
|
381
|
+
JPH_MSVC_SUPPRESS_WARNING(5026) /* 'X': move constructor was implicitly defined as deleted because a base class move constructor is inaccessible or deleted */ \
|
|
382
|
+
JPH_MSVC_SUPPRESS_WARNING(4623) /* 'X' : default constructor was implicitly defined as deleted */ \
|
|
383
|
+
JPH_MSVC_SUPPRESS_WARNING(4201) /* nonstandard extension used: nameless struct/union */ \
|
|
384
|
+
JPH_MSVC_SUPPRESS_WARNING(4371) /* 'X': layout of class may have changed from a previous version of the compiler due to better packing of member 'Y' */ \
|
|
385
|
+
JPH_MSVC_SUPPRESS_WARNING(5045) /* Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified */ \
|
|
386
|
+
JPH_MSVC_SUPPRESS_WARNING(4583) /* 'X': destructor is not implicitly called */ \
|
|
387
|
+
JPH_MSVC_SUPPRESS_WARNING(4582) /* 'X': constructor is not implicitly called */ \
|
|
388
|
+
JPH_MSVC_SUPPRESS_WARNING(5219) /* implicit conversion from 'X' to 'Y', possible loss of data */ \
|
|
389
|
+
JPH_MSVC_SUPPRESS_WARNING(4826) /* Conversion from 'X *' to 'JPH::uint64' is sign-extended. This may cause unexpected runtime behavior. (32-bit) */ \
|
|
390
|
+
JPH_MSVC_SUPPRESS_WARNING(5264) /* 'X': 'const' variable is not used */ \
|
|
391
|
+
JPH_MSVC_SUPPRESS_WARNING(4251) /* class 'X' needs to have DLL-interface to be used by clients of class 'Y' */ \
|
|
392
|
+
JPH_MSVC_SUPPRESS_WARNING(4738) /* storing 32-bit float result in memory, possible loss of performance */ \
|
|
393
|
+
JPH_MSVC2019_SUPPRESS_WARNING(5246) /* the initialization of a subobject should be wrapped in braces */
|
|
394
|
+
|
|
395
|
+
// OS-specific includes
|
|
396
|
+
#if defined(JPH_PLATFORM_WINDOWS)
|
|
397
|
+
#define JPH_BREAKPOINT __debugbreak()
|
|
398
|
+
#elif defined(JPH_PLATFORM_BLUE)
|
|
399
|
+
// Configuration for a popular game console.
|
|
400
|
+
// This file is not distributed because it would violate an NDA.
|
|
401
|
+
// Creating one should only be a couple of minutes of work if you have the documentation for the platform
|
|
402
|
+
// (you only need to define JPH_BREAKPOINT, JPH_PLATFORM_BLUE_GET_TICKS, JPH_PLATFORM_BLUE_MUTEX*, JPH_PLATFORM_BLUE_RWLOCK*, JPH_PLATFORM_BLUE_SEMAPHORE* and include the right header).
|
|
403
|
+
#include <Jolt/Core/PlatformBlue.h>
|
|
404
|
+
#elif defined(JPH_PLATFORM_LINUX) || defined(JPH_PLATFORM_ANDROID) || defined(JPH_PLATFORM_MACOS) || defined(JPH_PLATFORM_IOS) || defined(JPH_PLATFORM_BSD)
|
|
405
|
+
#if defined(JPH_CPU_X86)
|
|
406
|
+
#define JPH_BREAKPOINT __asm volatile ("int $0x3")
|
|
407
|
+
#elif defined(JPH_CPU_ARM) || defined(JPH_CPU_RISCV) || defined(JPH_CPU_E2K) || defined(JPH_CPU_PPC) || defined(JPH_CPU_LOONGARCH)
|
|
408
|
+
#define JPH_BREAKPOINT __builtin_trap()
|
|
409
|
+
#else
|
|
410
|
+
#error Unknown CPU architecture
|
|
411
|
+
#endif
|
|
412
|
+
#elif defined(JPH_PLATFORM_WASM)
|
|
413
|
+
#define JPH_BREAKPOINT do { } while (false) // Not supported
|
|
414
|
+
#else
|
|
415
|
+
#error Unknown platform
|
|
416
|
+
#endif
|
|
417
|
+
|
|
418
|
+
// Begin the JPH namespace
|
|
419
|
+
#define JPH_NAMESPACE_BEGIN \
|
|
420
|
+
JPH_SUPPRESS_WARNING_PUSH \
|
|
421
|
+
JPH_SUPPRESS_WARNINGS \
|
|
422
|
+
namespace JPH {
|
|
423
|
+
|
|
424
|
+
// End the JPH namespace
|
|
425
|
+
#define JPH_NAMESPACE_END \
|
|
426
|
+
} \
|
|
427
|
+
JPH_SUPPRESS_WARNING_POP
|
|
428
|
+
|
|
429
|
+
// Suppress warnings generated by the standard template library
|
|
430
|
+
#define JPH_SUPPRESS_WARNINGS_STD_BEGIN \
|
|
431
|
+
JPH_SUPPRESS_WARNING_PUSH \
|
|
432
|
+
JPH_MSVC_SUPPRESS_WARNING(4365) \
|
|
433
|
+
JPH_MSVC_SUPPRESS_WARNING(4619) \
|
|
434
|
+
JPH_MSVC_SUPPRESS_WARNING(4710) \
|
|
435
|
+
JPH_MSVC_SUPPRESS_WARNING(4711) \
|
|
436
|
+
JPH_MSVC_SUPPRESS_WARNING(4820) \
|
|
437
|
+
JPH_MSVC_SUPPRESS_WARNING(4514) \
|
|
438
|
+
JPH_MSVC_SUPPRESS_WARNING(5262) \
|
|
439
|
+
JPH_MSVC_SUPPRESS_WARNING(5264) \
|
|
440
|
+
JPH_MSVC_SUPPRESS_WARNING(4738) \
|
|
441
|
+
JPH_MSVC_SUPPRESS_WARNING(5045)
|
|
442
|
+
|
|
443
|
+
#define JPH_SUPPRESS_WARNINGS_STD_END \
|
|
444
|
+
JPH_SUPPRESS_WARNING_POP
|
|
445
|
+
|
|
446
|
+
// MSVC STL requires _HAS_EXCEPTIONS=0 if exceptions are turned off
|
|
447
|
+
#if defined(JPH_COMPILER_MSVC) && (!defined(__cpp_exceptions) || !__cpp_exceptions) && !defined(_HAS_EXCEPTIONS)
|
|
448
|
+
#define _HAS_EXCEPTIONS 0
|
|
449
|
+
#endif
|
|
450
|
+
|
|
451
|
+
// Standard C++ includes
|
|
452
|
+
JPH_SUPPRESS_WARNINGS_STD_BEGIN
|
|
453
|
+
#include <float.h>
|
|
454
|
+
#include <limits.h>
|
|
455
|
+
#include <string.h>
|
|
456
|
+
#include <new>
|
|
457
|
+
#include <utility>
|
|
458
|
+
#include <cmath>
|
|
459
|
+
#include <sstream>
|
|
460
|
+
#include <functional>
|
|
461
|
+
#include <algorithm>
|
|
462
|
+
#include <cstdint>
|
|
463
|
+
#include <type_traits>
|
|
464
|
+
#if defined(JPH_COMPILER_MSVC) || (defined(JPH_COMPILER_CLANG) && defined(_MSC_VER)) // MSVC or clang-cl
|
|
465
|
+
#include <malloc.h> // for alloca
|
|
466
|
+
#endif
|
|
467
|
+
#if defined(JPH_USE_SSE)
|
|
468
|
+
#include <immintrin.h>
|
|
469
|
+
#elif defined(JPH_USE_NEON)
|
|
470
|
+
#ifdef JPH_COMPILER_MSVC
|
|
471
|
+
#include <intrin.h>
|
|
472
|
+
#include <arm64_neon.h>
|
|
473
|
+
#else
|
|
474
|
+
#include <arm_neon.h>
|
|
475
|
+
#endif
|
|
476
|
+
#endif
|
|
477
|
+
JPH_SUPPRESS_WARNINGS_STD_END
|
|
478
|
+
|
|
479
|
+
JPH_NAMESPACE_BEGIN
|
|
480
|
+
|
|
481
|
+
// Commonly used STL types
|
|
482
|
+
using std::min;
|
|
483
|
+
using std::max;
|
|
484
|
+
using std::abs;
|
|
485
|
+
using std::sqrt;
|
|
486
|
+
using std::ceil;
|
|
487
|
+
using std::floor;
|
|
488
|
+
using std::trunc;
|
|
489
|
+
using std::round;
|
|
490
|
+
using std::fmod;
|
|
491
|
+
using std::string_view;
|
|
492
|
+
using std::function;
|
|
493
|
+
using std::numeric_limits;
|
|
494
|
+
using std::isfinite;
|
|
495
|
+
using std::isnan;
|
|
496
|
+
using std::ostream;
|
|
497
|
+
using std::istream;
|
|
498
|
+
|
|
499
|
+
// Standard types
|
|
500
|
+
using uint = unsigned int;
|
|
501
|
+
using uint8 = std::uint8_t;
|
|
502
|
+
using uint16 = std::uint16_t;
|
|
503
|
+
using uint32 = std::uint32_t;
|
|
504
|
+
using uint64 = std::uint64_t;
|
|
505
|
+
|
|
506
|
+
// Assert sizes of types
|
|
507
|
+
static_assert(sizeof(uint) >= 4, "Invalid size of uint");
|
|
508
|
+
static_assert(sizeof(uint8) == 1, "Invalid size of uint8");
|
|
509
|
+
static_assert(sizeof(uint16) == 2, "Invalid size of uint16");
|
|
510
|
+
static_assert(sizeof(uint32) == 4, "Invalid size of uint32");
|
|
511
|
+
static_assert(sizeof(uint64) == 8, "Invalid size of uint64");
|
|
512
|
+
|
|
513
|
+
// Determine if we want extra debugging code to be active
|
|
514
|
+
#if !defined(NDEBUG) && !defined(JPH_NO_DEBUG)
|
|
515
|
+
#define JPH_DEBUG
|
|
516
|
+
#endif
|
|
517
|
+
|
|
518
|
+
// Define inline macro
|
|
519
|
+
#if defined(JPH_NO_FORCE_INLINE)
|
|
520
|
+
#define JPH_INLINE inline
|
|
521
|
+
#elif defined(JPH_COMPILER_CLANG)
|
|
522
|
+
#define JPH_INLINE __inline__ __attribute__((always_inline))
|
|
523
|
+
#elif defined(JPH_COMPILER_GCC)
|
|
524
|
+
// On gcc 14 using always_inline in debug mode causes error: "inlining failed in call to 'always_inline' 'XXX': function not considered for inlining"
|
|
525
|
+
// See: https://github.com/jrouwe/JoltPhysics/issues/1096
|
|
526
|
+
#if __GNUC__ >= 14 && defined(JPH_DEBUG)
|
|
527
|
+
#define JPH_INLINE inline
|
|
528
|
+
#else
|
|
529
|
+
#define JPH_INLINE __inline__ __attribute__((always_inline))
|
|
530
|
+
#endif
|
|
531
|
+
#elif defined(JPH_COMPILER_MSVC)
|
|
532
|
+
#define JPH_INLINE __forceinline
|
|
533
|
+
#else
|
|
534
|
+
#error Undefined
|
|
535
|
+
#endif
|
|
536
|
+
|
|
537
|
+
// Default memory allocation alignment.
|
|
538
|
+
// This define can be overridden in case the user provides an Allocate function that has a different alignment than the platform default.
|
|
539
|
+
#ifndef JPH_DEFAULT_ALLOCATE_ALIGNMENT
|
|
540
|
+
#define JPH_DEFAULT_ALLOCATE_ALIGNMENT __STDCPP_DEFAULT_NEW_ALIGNMENT__
|
|
541
|
+
#endif
|
|
542
|
+
|
|
543
|
+
// Cache line size (used for aligning to cache line)
|
|
544
|
+
#ifndef JPH_CACHE_LINE_SIZE
|
|
545
|
+
#define JPH_CACHE_LINE_SIZE 64
|
|
546
|
+
#endif
|
|
547
|
+
|
|
548
|
+
// Define macro to get current function name
|
|
549
|
+
#if defined(JPH_COMPILER_CLANG) || defined(JPH_COMPILER_GCC)
|
|
550
|
+
#define JPH_FUNCTION_NAME __PRETTY_FUNCTION__
|
|
551
|
+
#elif defined(JPH_COMPILER_MSVC)
|
|
552
|
+
#define JPH_FUNCTION_NAME __FUNCTION__
|
|
553
|
+
#else
|
|
554
|
+
#error Undefined
|
|
555
|
+
#endif
|
|
556
|
+
|
|
557
|
+
// Stack allocation
|
|
558
|
+
#define JPH_STACK_ALLOC(n) alloca(n)
|
|
559
|
+
|
|
560
|
+
// Shorthand for #ifdef JPH_DEBUG / #endif
|
|
561
|
+
#ifdef JPH_DEBUG
|
|
562
|
+
#define JPH_IF_DEBUG(...) __VA_ARGS__
|
|
563
|
+
#define JPH_IF_NOT_DEBUG(...)
|
|
564
|
+
#else
|
|
565
|
+
#define JPH_IF_DEBUG(...)
|
|
566
|
+
#define JPH_IF_NOT_DEBUG(...) __VA_ARGS__
|
|
567
|
+
#endif
|
|
568
|
+
|
|
569
|
+
// Shorthand for #ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED / #endif
|
|
570
|
+
#ifdef JPH_FLOATING_POINT_EXCEPTIONS_ENABLED
|
|
571
|
+
#define JPH_IF_FLOATING_POINT_EXCEPTIONS_ENABLED(...) __VA_ARGS__
|
|
572
|
+
#else
|
|
573
|
+
#define JPH_IF_FLOATING_POINT_EXCEPTIONS_ENABLED(...)
|
|
574
|
+
#endif
|
|
575
|
+
|
|
576
|
+
// Helper macros to detect if we're running in single or double precision mode
|
|
577
|
+
#ifdef JPH_DOUBLE_PRECISION
|
|
578
|
+
#define JPH_IF_SINGLE_PRECISION(...)
|
|
579
|
+
#define JPH_IF_SINGLE_PRECISION_ELSE(s, d) d
|
|
580
|
+
#define JPH_IF_DOUBLE_PRECISION(...) __VA_ARGS__
|
|
581
|
+
#else
|
|
582
|
+
#define JPH_IF_SINGLE_PRECISION(...) __VA_ARGS__
|
|
583
|
+
#define JPH_IF_SINGLE_PRECISION_ELSE(s, d) s
|
|
584
|
+
#define JPH_IF_DOUBLE_PRECISION(...)
|
|
585
|
+
#endif
|
|
586
|
+
|
|
587
|
+
// Helper macro to detect if the debug renderer is active
|
|
588
|
+
#ifdef JPH_DEBUG_RENDERER
|
|
589
|
+
#define JPH_IF_DEBUG_RENDERER(...) __VA_ARGS__
|
|
590
|
+
#define JPH_IF_NOT_DEBUG_RENDERER(...)
|
|
591
|
+
#else
|
|
592
|
+
#define JPH_IF_DEBUG_RENDERER(...)
|
|
593
|
+
#define JPH_IF_NOT_DEBUG_RENDERER(...) __VA_ARGS__
|
|
594
|
+
#endif
|
|
595
|
+
|
|
596
|
+
// Macro to indicate that a parameter / variable is unused
|
|
597
|
+
#define JPH_UNUSED(x) (void)x
|
|
598
|
+
|
|
599
|
+
// Macro to enable floating point precise mode and to disable fused multiply add instructions
|
|
600
|
+
#if defined(JPH_COMPILER_GCC) || defined(JPH_CROSS_PLATFORM_DETERMINISTIC)
|
|
601
|
+
// We compile without -ffast-math and -ffp-contract=fast, so we don't need to disable anything
|
|
602
|
+
#define JPH_PRECISE_MATH_ON
|
|
603
|
+
#define JPH_PRECISE_MATH_OFF
|
|
604
|
+
#elif defined(JPH_COMPILER_CLANG)
|
|
605
|
+
// We compile without -ffast-math because pragma float_control(precise, on) doesn't seem to actually negate all of the -ffast-math effects and causes the unit tests to fail (even if the pragma is added to all files)
|
|
606
|
+
// On clang 14 and later we can turn off float contraction through a pragma (before it was buggy), so if FMA is on we can disable it through this macro
|
|
607
|
+
#if (defined(JPH_CPU_ARM) && !defined(JPH_PLATFORM_ANDROID) && __clang_major__ >= 16) || (defined(JPH_CPU_X86) && __clang_major__ >= 14)
|
|
608
|
+
#define JPH_PRECISE_MATH_ON \
|
|
609
|
+
_Pragma("float_control(precise, on, push)") \
|
|
610
|
+
_Pragma("clang fp contract(off)")
|
|
611
|
+
#define JPH_PRECISE_MATH_OFF \
|
|
612
|
+
_Pragma("float_control(pop)")
|
|
613
|
+
#elif __clang_major__ >= 14 && (defined(JPH_USE_FMADD) || defined(FP_FAST_FMA))
|
|
614
|
+
#define JPH_PRECISE_MATH_ON \
|
|
615
|
+
_Pragma("clang fp contract(off)")
|
|
616
|
+
#define JPH_PRECISE_MATH_OFF \
|
|
617
|
+
_Pragma("clang fp contract(on)")
|
|
618
|
+
#else
|
|
619
|
+
#define JPH_PRECISE_MATH_ON
|
|
620
|
+
#define JPH_PRECISE_MATH_OFF
|
|
621
|
+
#endif
|
|
622
|
+
#elif defined(JPH_COMPILER_MSVC)
|
|
623
|
+
// Unfortunately there is no way to push the state of fp_contract, so we have to assume it was turned on before JPH_PRECISE_MATH_ON
|
|
624
|
+
#define JPH_PRECISE_MATH_ON \
|
|
625
|
+
__pragma(float_control(precise, on, push)) \
|
|
626
|
+
__pragma(fp_contract(off))
|
|
627
|
+
#define JPH_PRECISE_MATH_OFF \
|
|
628
|
+
__pragma(fp_contract(on)) \
|
|
629
|
+
__pragma(float_control(pop))
|
|
630
|
+
#else
|
|
631
|
+
#error Undefined
|
|
632
|
+
#endif
|
|
633
|
+
|
|
634
|
+
// Check if Thread Sanitizer is enabled
|
|
635
|
+
#ifdef __has_feature
|
|
636
|
+
#if __has_feature(thread_sanitizer)
|
|
637
|
+
#define JPH_TSAN_ENABLED
|
|
638
|
+
#endif
|
|
639
|
+
#else
|
|
640
|
+
#ifdef __SANITIZE_THREAD__
|
|
641
|
+
#define JPH_TSAN_ENABLED
|
|
642
|
+
#endif
|
|
643
|
+
#endif
|
|
644
|
+
|
|
645
|
+
// Attribute to disable Thread Sanitizer for a particular function
|
|
646
|
+
#ifdef JPH_TSAN_ENABLED
|
|
647
|
+
#define JPH_TSAN_NO_SANITIZE __attribute__((no_sanitize("thread")))
|
|
648
|
+
#else
|
|
649
|
+
#define JPH_TSAN_NO_SANITIZE
|
|
650
|
+
#endif
|
|
651
|
+
|
|
652
|
+
JPH_NAMESPACE_END
|