March 23, 2025
SDK 43
New Engine features:
- Added support for game controllers (Xbox, DualSense, DualShock, Nintendo Pro Controller, and generic joysticks) across all platforms.
- Improved physics engine plugin integration.
- Introduced a debug visualization API for enhanced real-time debugging.
- Implemented an Internal Color dialog for a more streamlined UI experience.
- Major improvements to the Explorer.
- Explorer has two icon sets for best icons visualization over different monitor DPIs.
- Executor and Explorer update the Controller class for automatic controller support.
- Explorer now supports multiple control info callbacks (allowing body info to be displayed within node info).
- Basic physics visualization (shapes and joints) has been added to Explorer.
- Inertia tensor information is now available in Explorer.
- All runtime parameter editors have been refactored to support right-click editing, expanding the range of editable types.
- Explorer has been migrated to the Internal Color dialog.
- Scale parameter has been added to the MeshAnimation import Explorer extension.
- The MeshPrimitive extension now correctly handles internal shapes during object editing.
- ScriptFlow and MaterialFlow extensions now use the Internal Color dialog.
- Improved geometry combination performance in the Mesh tool.
- Added 12 Hello Controller manual sample.
- Added tests/system/desktop for the Desktop class.
- Added tests/system/controller for the Controller class.
- Added new physics samples for each physics plugin (Box2D, Bullet, Jolt, PhysX), including 6dof, friction, hinge, impulse, restitution, shapes, and slider.
- Added scripts/script_node_flow_controller, a sample demonstrating flow-based virtual controller animation based on real controller events.
- Added scripts/script_node_flow_keyboard, a sample showcasing flow-based node control using window keyboard events.
- Introduced a new interface/color plugin for controls-based color dialog support.
- Box2D now supports capsule and cylinder shapes.
- The Box2D plugin has been updated to the latest Box2D library.
- The Jolt plugin has been updated to the latest Jolt library.
- All physics plugins now support engine-driven parameter updates, including friction, forces, impulses, shapes, and joints.
- Physics plugins now provide real-time velocity values to the engine.
- The default number of ControlFlow types has been increased to 512.
- ControlCallback has been added to ControlFlow to support custom color dialogs.
- PolyHaven and Sketchfab plugins now reduce preview image brightness when a modal control is present.
- ScriptFlow now includes guards to prevent assertion failures caused by invalid parameters (e.g., getting a child by index).
- The ControlFlow node dialog now displays the current node parameter value.
- The number of Tellusim::Function<> template arguments has been increased to 9.
- ControlRoot now includes a mouse offset parameter, allowing callback handlers to evaluate control offset/scale values when embedded within a ControlArea.
- Added a ‘disabled modal state’ option to ControlRoot, allowing modal focus without dimming other controls.
- Introduced new Mesh|BrepNode|Node|ObjectNode|Material::findChild|getChild() methods that accept literal name arguments.
- Introduced a movable flag for ControlDialog to restrict movement.
- Added InsideCallback to ControlRect for non-rectangular control shapes.
- Added MatrixNxM::outer() product operator.
- Implemented math operations between MatrixNxM types, including addition, subtraction, and scalar multiplication.
- RenderDraw now supports debug primitives visualization, including lines, quadratics, cubics, arrows, rectangles, quads, circles, boxes, spheres, cylinders, and capsules.
- Added a bias parameter to RenderDraw, allowing controllable depth overlap during rendering.
- BodyRigid axes locks are now controlled by BodyRigid flags instead of dedicated methods.
- Added BodyRigid::FlagKeepAwake that prevents Body from sleeping.
- Added BodyRigid::addForce(), addTorque(), addLinearImpulse(), and addAngularImpulse().
- BodyRigid::updateMass() now recalculates body mass and inertia during the next update.
- Added control over maximum linear and angular velocities for BodyRigid.
- Each SceneGraph entity now includes is*Updated() flags for better interoperations.
- Game Controller support has been added for Windows, Linux, macOS, Android, and iOS. On Windows, the system uses GameInput if available, falling back to XInput by default.
- The quat_to_mat4x3() function has been added to SceneMath.shader
- The get_body_transform() function has been added to SceneBodies.shader
- The get_num_graph_nodes() and get_graph_base_node() functions have been added to SceneGraphs.shader
- Introduced the base_scene_body member to the RenderFrame structure for accessing all body parameters.
- Tangent-space generation performance dramatically increased for meshes with same normals (giant planes).
- PrefixScan and RadixSort now correctly detect the presence of FlagIndirect for dispatchIndirect() operations.
- Corrected joint body assignment during all scene clone operations (nodes, bodies, graphs, scenes).
- Joystick events have been added to the Android activity.
- Corrected window and DialogMenu icon creation on Windows.
- Improved retina-aware DialogMenu icon rendering on macOS.
- New macOS devices have been added to Info class.
