Make Rendering Device ref counted #109218
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Alternative to: #109211
Can't be merged for 4.5.
This breaks compatibility even more than #109211 does, but this may be an important change for scripting users.
Right now there is no way for a user to free a local rendering device created with
create_local_rendering_device()
. All the user receives is a pointer and there is no corresponding method to free it.This PR makes RenderingDevice inherit from RefCounted so that it can be automatically freed once there are no more references to it. This has the benefit of fixing the memory leak in #109193 (although allocating the RD in the first place is still a bug IMO).
This PR could be combined with #109211 to both fix #109193 and ensure that users don't leak RenderingDevices in their own code.