diff options
Diffstat (limited to 'scene/resources/animation.cpp')
-rw-r--r-- | scene/resources/animation.cpp | 44 |
1 files changed, 22 insertions, 22 deletions
diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp index b371266c83..50f3015814 100644 --- a/scene/resources/animation.cpp +++ b/scene/resources/animation.cpp @@ -4754,17 +4754,17 @@ void Animation::compress(uint32_t p_page_size, uint32_t p_fps, float p_split_tol // The frame has advanced, time to validate the previous frame uint32_t current_page_size = base_page_size; - for (uint32_t i = 0; i < data_tracks.size(); i++) { - uint32_t track_size = data_tracks[i].data.size(); // track size - track_size += data_tracks[i].get_temp_packet_size(); // Add the temporary data + for (const AnimationCompressionDataState &state : data_tracks) { + uint32_t track_size = state.data.size(); // track size + track_size += state.get_temp_packet_size(); // Add the temporary data if (track_size > Compression::MAX_DATA_TRACK_SIZE) { rollback = true; //track to large, time track can't point to keys any longer, because key offset is 12 bits break; } current_page_size += track_size; } - for (uint32_t i = 0; i < time_tracks.size(); i++) { - current_page_size += time_tracks[i].packets.size() * 4; // time packet is 32 bits + for (const AnimationCompressionTimeState &state : time_tracks) { + current_page_size += state.packets.size() * 4; // time packet is 32 bits } if (!rollback && current_page_size > p_page_size) { @@ -4776,22 +4776,22 @@ void Animation::compress(uint32_t p_page_size, uint32_t p_fps, float p_split_tol if (rollback) { // Not valid any longer, so rollback and commit page - for (uint32_t i = 0; i < data_tracks.size(); i++) { - data_tracks[i].temp_packets.resize(data_tracks[i].validated_packet_count); + for (AnimationCompressionDataState &state : data_tracks) { + state.temp_packets.resize(state.validated_packet_count); } - for (uint32_t i = 0; i < time_tracks.size(); i++) { - time_tracks[i].key_index = time_tracks[i].validated_key_index; //rollback key - time_tracks[i].packets.resize(time_tracks[i].validated_packet_count); + for (AnimationCompressionTimeState &state : time_tracks) { + state.key_index = state.validated_key_index; //rollback key + state.packets.resize(state.validated_packet_count); } } else { // All valid, so save rollback information - for (uint32_t i = 0; i < data_tracks.size(); i++) { - data_tracks[i].validated_packet_count = data_tracks[i].temp_packets.size(); + for (AnimationCompressionDataState &state : data_tracks) { + state.validated_packet_count = state.temp_packets.size(); } - for (uint32_t i = 0; i < time_tracks.size(); i++) { - time_tracks[i].validated_key_index = time_tracks[i].key_index; - time_tracks[i].validated_packet_count = time_tracks[i].packets.size(); + for (AnimationCompressionTimeState &state : time_tracks) { + state.validated_key_index = state.key_index; + state.validated_packet_count = state.packets.size(); } // Accept this frame as the frame being processed (as long as it exists) @@ -4976,8 +4976,8 @@ void Animation::compress(uint32_t p_page_size, uint32_t p_fps, float p_split_tol } uint32_t new_size = 0; - for (uint32_t i = 0; i < compression.pages.size(); i++) { - new_size += compression.pages[i].data.size(); + for (const Compression::Page &page : compression.pages) { + new_size += page.data.size(); } print_line("Original size: " + itos(orig_size) + " - Compressed size: " + itos(new_size) + " " + String::num(float(new_size) / float(orig_size) * 100, 2) + "% pages: " + itos(compression.pages.size())); @@ -5289,8 +5289,8 @@ int Animation::_get_compressed_key_count(uint32_t p_compressed_track) const { int key_count = 0; - for (uint32_t i = 0; i < compression.pages.size(); i++) { - const uint8_t *page_data = compression.pages[i].data.ptr(); + for (const Compression::Page &page : compression.pages) { + const uint8_t *page_data = page.data.ptr(); // Little endian assumed. No major big endian hardware exists any longer, but in case it does it will need to be supported. const uint32_t *indices = (const uint32_t *)page_data; const uint16_t *time_keys = (const uint16_t *)&page_data[indices[p_compressed_track * 3 + 0]]; @@ -5323,8 +5323,8 @@ bool Animation::_fetch_compressed_by_index(uint32_t p_compressed_track, int p_in ERR_FAIL_COND_V(!compression.enabled, false); ERR_FAIL_UNSIGNED_INDEX_V(p_compressed_track, compression.bounds.size(), false); - for (uint32_t i = 0; i < compression.pages.size(); i++) { - const uint8_t *page_data = compression.pages[i].data.ptr(); + for (const Compression::Page &page : compression.pages) { + const uint8_t *page_data = page.data.ptr(); // Little endian assumed. No major big endian hardware exists any longer, but in case it does it will need to be supported. const uint32_t *indices = (const uint32_t *)page_data; const uint16_t *time_keys = (const uint16_t *)&page_data[indices[p_compressed_track * 3 + 0]]; @@ -5374,7 +5374,7 @@ bool Animation::_fetch_compressed_by_index(uint32_t p_compressed_track, int p_in } } - r_time = compression.pages[i].time_offset + double(frame) / double(compression.fps); + r_time = page.time_offset + double(frame) / double(compression.fps); for (uint32_t l = 0; l < COMPONENTS; l++) { r_value[l] = decode[l]; } |