summaryrefslogtreecommitdiff
path: root/scene
diff options
context:
space:
mode:
authorSilc Renew <tokage.it.lab@gmail.com>2023-01-29 00:24:52 +0900
committerSilc Renew <tokage.it.lab@gmail.com>2023-01-29 08:00:42 +0900
commitfa198c482eb0fd64442c60afd7cdfdc9aca0ae8f (patch)
tree31c3289853c0a5c9048f8d398ba4300b1384a0df /scene
parent218bef90af2091afde3b1be816c87286c194a2a8 (diff)
Fix AnimatedSprite play() don't redraw immediately
Diffstat (limited to 'scene')
-rw-r--r--scene/2d/animated_sprite_2d.cpp3
-rw-r--r--scene/3d/sprite_3d.cpp3
-rw-r--r--scene/animation/animation_player.h2
-rw-r--r--scene/animation/animation_tree.h6
4 files changed, 9 insertions, 5 deletions
diff --git a/scene/2d/animated_sprite_2d.cpp b/scene/2d/animated_sprite_2d.cpp
index ccf9696d82..8f7006caca 100644
--- a/scene/2d/animated_sprite_2d.cpp
+++ b/scene/2d/animated_sprite_2d.cpp
@@ -475,8 +475,9 @@ void AnimatedSprite2D::play(const StringName &p_name, float p_custom_scale, bool
}
}
- notify_property_list_changed();
set_process_internal(true);
+ notify_property_list_changed();
+ queue_redraw();
}
void AnimatedSprite2D::play_backwards(const StringName &p_name) {
diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp
index 635c566ef8..9712df0936 100644
--- a/scene/3d/sprite_3d.cpp
+++ b/scene/3d/sprite_3d.cpp
@@ -1182,8 +1182,9 @@ void AnimatedSprite3D::play(const StringName &p_name, float p_custom_scale, bool
}
}
- notify_property_list_changed();
set_process_internal(true);
+ notify_property_list_changed();
+ _queue_redraw();
}
void AnimatedSprite3D::play_backwards(const StringName &p_name) {
diff --git a/scene/animation/animation_player.h b/scene/animation/animation_player.h
index 25de278f97..b0975fbead 100644
--- a/scene/animation/animation_player.h
+++ b/scene/animation/animation_player.h
@@ -149,7 +149,7 @@ private:
HashMap<StringName, BezierAnim> bezier_anim;
struct PlayingAudioStreamInfo {
- int64_t index = -1;
+ AudioStreamPlaybackPolyphonic::ID index = -1;
double start = 0.0;
double len = 0.0;
};
diff --git a/scene/animation/animation_tree.h b/scene/animation/animation_tree.h
index 394a3a2237..c54493828f 100644
--- a/scene/animation/animation_tree.h
+++ b/scene/animation/animation_tree.h
@@ -253,12 +253,14 @@ private:
}
};
+ // Audio stream information for each audio stream placed on the track.
struct PlayingAudioStreamInfo {
- int64_t index = -1;
+ AudioStreamPlaybackPolyphonic::ID index = -1; // ID retrieved from AudioStreamPlaybackPolyphonic.
double start = 0.0;
double len = 0.0;
};
+ // Audio track information for mixng and ending.
struct PlayingAudioTrackInfo {
HashMap<int, PlayingAudioStreamInfo> stream_info;
double length = 0.0;
@@ -272,7 +274,7 @@ private:
struct TrackCacheAudio : public TrackCache {
Ref<AudioStreamPolyphonic> audio_stream;
Ref<AudioStreamPlaybackPolyphonic> audio_stream_playback;
- HashMap<ObjectID, PlayingAudioTrackInfo> playing_streams; // Animation resource RID & AudioTrack key index: PlayingAudioStreamInfo.
+ HashMap<ObjectID, PlayingAudioTrackInfo> playing_streams; // Key is Animation resource ObjectID.
TrackCacheAudio() {
type = Animation::TYPE_AUDIO;