Fix consistency of GradientTexture changes #81137
Merged
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.
Gradient texture queues an update when a property changes, EXCEPT in
set_gradient()
in GradientTexture2D, which calls the update immediately and emits the changed signal twice. Another weird thing is that gradient texture changes would queue the update and the changed signal would be emitted in the_update()
method. That's not how this signal works.This PR removes the inconsistency and
_queue_update()
is now called for every change, but the deferredemit_changed()
is removed. Instead the signal is emitted right in the setter. I also added a public (not exposed) methodupdate_now()
, which forces the pending texture update to be done right now. It's automatically called when you attempt to get the image.