Browse Source

Documentation changes

- Added API changes documentation
- Added 32 bit build information
Jorrit Rouwe 3 years ago
parent
commit
8626929c37
3 changed files with 53 additions and 10 deletions
  1. 16 9
      Build/README.md
  2. 36 0
      Docs/APIChanges.md
  3. 1 1
      README.md

+ 16 - 9
Build/README.md

@@ -25,14 +25,14 @@ There are a number of user configurable defines that turn on/off certain feature
 - JPH_DEBUG_RENDERER - Adds support to draw lines and triangles, used to be able to debug draw the state of the world.
 - JPH_DISABLE_TEMP_ALLOCATOR - Disables the temporary memory allocator, used mainly to allow ASAN to do its job.
 - JPH_FLOATING_POINT_EXCEPTIONS_ENABLED - Turns on division by zero and invalid floating point exception support in order to detect bugs (Windows only).
-- JPH_USE_SSE4_1 - Enable SSE4.1 CPU instructions (x64 only)
-- JPH_USE_SSE4_2 - Enable SSE4.2 CPU instructions (x64 only)
-- JPH_USE_F16C - Enable half float CPU instructions (x64 only)
-- JPH_USE_LZCNT - Enable the lzcnt CPU instruction (x64 only)
-- JPH_USE_TZCNT - Enable the tzcnt CPU instruction (x64 only)
-- JPH_USE_AVX - Enable AVX CPU instructions (x64 only)
-- JPH_USE_AVX2 - Enable AVX2 CPU instructions (x64 only)
-- JPH_USE_FMADD - Enable fused multiply add CPU instructions (x64 only)
+- JPH_USE_SSE4_1 - Enable SSE4.1 CPU instructions (x86/x64 only)
+- JPH_USE_SSE4_2 - Enable SSE4.2 CPU instructions (x86/x64 only)
+- JPH_USE_F16C - Enable half float CPU instructions (x86/x64 only)
+- JPH_USE_LZCNT - Enable the lzcnt CPU instruction (x86/x64 only)
+- JPH_USE_TZCNT - Enable the tzcnt CPU instruction (x86/x64 only)
+- JPH_USE_AVX - Enable AVX CPU instructions (x86/x64 only)
+- JPH_USE_AVX2 - Enable AVX2 CPU instructions (x86/x64 only)
+- JPH_USE_FMADD - Enable fused multiply add CPU instructions (x86/x64 only)
 
 ## Logging & Asserting
 
@@ -48,6 +48,14 @@ To override the default trace and assert mechanism install your own custom handl
 - Open the resulting project file VS2022_CL\JoltPhysics.sln
 - Compile and run either 'Samples' or 'UnitTests'
 
+### Windows 10+ (CL - 32 bit)
+
+- Download Visual Studio 2022 (Community or other edition)
+- Download CMake 3.15+ (https://cmake.org/download/)
+- Run cmake_vs2022_cl_32bit.bat
+- Open the resulting project file VS2022_CL_32BIT\JoltPhysics.sln
+- Compile and run either 'Samples' or 'UnitTests'
+
 ### Windows 10+ (Clang compiler)
 
 - Download Visual Studio 2022 (Community or other edition)
@@ -104,5 +112,4 @@ Note that you can also follow the steps in the 'Linux' section if you wish to bu
 Documentation can be generated through doxygen:
 
 - Install Doxygen (https://www.doxygen.nl/download.html)
-- Install Microsoft HTML Help Workshop (to generate a CHM file)
 - Run: run_doxygen.bat

+ 36 - 0
Docs/APIChanges.md

@@ -0,0 +1,36 @@
+# Breaking API Changes
+
+This document lists all breaking API changes by date and by release tag.
+
+## Changes between v1.1.0 and latest
+
+20220517 - When constructing a FixedConstraint you now need to call FixedConstraintSettings::SetPoint to configure the point where the bodies attach (4f7c925c31f39eda1d8d68e4e72456b5def93d9b)
+20220516 - Constraint::GetType was renamed to GetSubType, a new GetType function was introduced (3e2151a009e8f11ca724754b2bd25e14d2654fb6)
+20220516 - Binary serialization format changed, ensure that any content saved using SaveBinaryState is recreated (3e2151a009e8f11ca724754b2bd25e14d2654fb6)
+20220510 - Factory::sInstance must now be allocated by the application prior to calling RegisterTypes() and has changed to a pointer (3ca62973dae7cda7a9ceece698438a45b9ad1433)
+20220503 - Unused function SerializableObject::OnLoaded was removed (388d47254a236c053a472e54c10b264765badc09)
+20220502 - ContactConstraintManager::CombineFunction has additional parameters: the SubShapeIDs from both bodies (6b873563739dfd3d77263c2c50af2f3f418ec15b)
+20220415 - Removed Body::GetDebugName / SetDebugName, keep this info in a lookaside table if you need it (6db4d3beac6760e55f65102db00f93dfbc56ac26)
+20220406 - Renamed CollisionDispatch::sCastShapeVsShape to sCastShapeVsShapeLocalSpace (6ba21f50dcf17bd506080ec30759724a7f3097d8)
+20220327 - Changed the default include path, #include <xxx> must be replaced by #include <Jolt/xxx> (06e9d17d385814cd24d3b77d689c0a29d854e194)
+20220303 - When constructing a SliderConstraint you now need to call SliderConstraintSettings::SetPoint to configure the point where the bodies attach (5a327ec182d0436d435c62d0bccb4e76c6324659)
+20220228 - PointConstraint::mCommonPoint is now mPoint1 / mPoint2 (066dfb8940ba3e7dbf8ed47e9a1eeb194730e04b)
+20220226 - ObjectToBroadPhaseLayer and BroadPhaseLayerToString changed to BroadPhaseLayerInterface, this makes mapping a broadphase layer to an object layer more flexible (36dd3f8c8c31ef1aeb7585b2b615c23bc8b76f13)
+20220222 - Shape and body user data changed from uint32 to uint64 (14e062ac96abd571c6eff5e40b1df4d8b2333f55)
+
+## Changes between v1.0.0 and v1.1.0
+
+No breaking changes.
+
+## Changes between v0.0.0 and v1.0.0
+
+20220107 - PhysicsSettings::mBodyPairCacheCosMaxDeltaRotation was renamed to mBodyPairCacheCosMaxDeltaRotationDiv2
+20211219 - Now storing 3 components for a Vec3 instead of 4, this breaks content saved with SaveBinaryState (23c1b9d9029d74076c0549c8779b3b5ac2179ea3)
+20211212 - Removed StatCollector (92a117e0f05a08de154e86d3cd0b354783aa5593)
+20210711 - HeightFieldShapeSettings::mBlockSize is subdivided one more time at run-time, so this is effectively 2x the block size (2aa3b443bf71785616f3140c32e6a04c49516535)
+20211106 - Mutex class now has its own implementation on Platform Blue, users must implement the JPH_PLATFORM_BLUE_MUTEX_* functions (a61dc67503a87ef0e190f7fb31d495ac51aa43de)
+20211019 - ShapeCast::mShape no longer keeps a reference, the caller is responsible for keeping the reference now (e2bbdda9110b083b49ba323f8fd0d88c19847c2e)
+20211004 - Removed RTTI from Shape class, use Shape::GetType / GetSubType now (6d5cafd53501c2c1e313f1b1f29d5161db074fd5)
+20210930 - Changed RestoreMaterialState and RestoreSubShapeState to use pointers instead of vectors to allow loading shapes with fewer memory allocations (b8953791f35a91fcd12568c7dc4cc2f68f40fb3f)
+20210918 - PhysicsSystem::Init takes an extra parameter to specify the amount of mutexes to use (ef371411af878023f062b9930db09f17411f01ba)
+20210827 - BroadPhaseLayerPairFilter was changed to ObjectVsBroadPhaseLayerFilter to avoid testing too many layers during collision queries (33883574bbc6fe208a4b62054d00b582872da6f4)

+ 1 - 1
README.md

@@ -96,7 +96,7 @@ For more information see the [Architecture and API documentation](https://jrouwe
 * It doesn't make use of compiler generated RTTI or exceptions.
 * If you want to run on Platform Blue you'll need to provide your own build environment and PlatformBlue.h file due to NDA requirements (see Core.h for further info).
 
-For build instructions go to the [Build](Build/README.md) section.
+For build instructions go to the [Build](Build/README.md) section. When upgrading from an older version of the library go to the [API Changes](Build/APIChanges.md) section.
 
 ## Folder Structure