Skip to content

Inspector v2: Add useResource hook and use it to correctly manage some object lifetimes in stats #16917

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 23, 2025

Conversation

ryantrem
Copy link
Member

One challenge with React function components is managing lifetimes of disposable resources. I noticed that my previous implementation in stats was totally wrong and recreating a ton of SceneInstrumentation and EngineInstrumentation instances that were never disposed. I have more cases of this kind of resource management as well, so I'm introducing a useResource custom hook that makes it easy to correctly manage disposable resources in a React function component, and using this in stats.

Also, I included one other small fix that prevents registering for the animation callback for animation properties when the entity has no animations.

Don't register animation callback when there are no animations
@ryantrem ryantrem requested a review from georginahalpern July 23, 2025 18:00
@ryantrem ryantrem enabled auto-merge (squash) July 23, 2025 18:00
@bjsplat
Copy link
Collaborator

bjsplat commented Jul 23, 2025

Please make sure to label your PR with "bug", "new feature" or "breaking change" label(s).
To prevent this PR from going to the changelog marked it with the "skip changelog" label.

@bjsplat
Copy link
Collaborator

bjsplat commented Jul 23, 2025

@bjsplat
Copy link
Collaborator

bjsplat commented Jul 23, 2025

You have changed file(s) that made possible changes to the sandbox.
You can test the sandbox snapshot here:

https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/SANDBOX/refs/pull/16917/merge/

@bjsplat
Copy link
Collaborator

bjsplat commented Jul 23, 2025

You have made possible changes to the playground.
You can test the snapshot here:

https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/PLAYGROUND/refs/pull/16917/merge/

The snapshot playground with the CDN snapshot (only when available):

https://snapshots-cvgtc2eugrd3cgfd.z01.azurefd.net/PLAYGROUND/refs/pull/16917/merge/?snapshot=refs/pull/16917/merge

Note that neither Babylon scenes nor textures are uploaded to the snapshot directory, so some playgrounds won't work correctly.

@bjsplat
Copy link
Collaborator

bjsplat commented Jul 23, 2025

@bjsplat
Copy link
Collaborator

bjsplat commented Jul 23, 2025

@ryantrem ryantrem merged commit dd602a7 into BabylonJS:master Jul 23, 2025
20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants