12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
- // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
- // SPDX-License-Identifier: MIT
- #pragma once
- // Base class for a test scene to test performance
- class PerformanceTestScene
- {
- public:
- // Virtual destructor
- virtual ~PerformanceTestScene() { }
- // Get name of test for debug purposes
- virtual const char * GetName() const = 0;
- // Get the number of MB that the temp allocator should preallocate
- virtual size_t GetTempAllocatorSizeMB() const { return 32; }
- // Get the max number of bodies to support in the physics system
- virtual uint GetMaxBodies() const { return 10240; }
- // Get the max number of body pairs to support in the physics system
- virtual uint GetMaxBodyPairs() const { return 65536; }
- // Get the max number of contact constraints to support in the physics system
- virtual uint GetMaxContactConstraints() const { return 20480; }
- // Load assets for the scene
- virtual bool Load([[maybe_unused]] const String &inAssetPath) { return true; }
- // Start a new test by adding objects to inPhysicsSystem
- virtual void StartTest(PhysicsSystem &inPhysicsSystem, EMotionQuality inMotionQuality) = 0;
- // Step the test
- virtual void UpdateTest([[maybe_unused]] PhysicsSystem &inPhysicsSystem, [[maybe_unused]] TempAllocator &ioTempAllocator, [[maybe_unused]] float inDeltaTime) { }
- // Update the hash with the state of the scene
- virtual void UpdateHash([[maybe_unused]] uint64 &ioHash) const { }
- // Stop a test and remove objects from inPhysicsSystem
- virtual void StopTest(PhysicsSystem &inPhysicsSystem) { }
- };
|