summaryrefslogtreecommitdiff
path: root/cmds/bootanimation/BootAnimation.cpp
diff options
context:
space:
mode:
authorGeoffrey Pitsch <gpitsch@google.com>2016-07-06 16:16:20 -0400
committerGeoffrey Pitsch <gpitsch@google.com>2016-07-11 13:02:41 -0400
commit2fb30fb68e9acb121a3e0dae0cd2790b3a7cc17d (patch)
treed0084aac05f9b89c607b3f46ab2540e27b3212b1 /cmds/bootanimation/BootAnimation.cpp
parent3cc6935719323a3d8dc31fcfba59f5e3a8abfa32 (diff)
Wait until end of BootAnimation to free looping textures
glDeleteTextures causes a noticeable framerate hitch when switching to the outro. By the time looping is finished, the system has finished booting, so freeing the textures immediately is less beneficial. Bug: 29878551 Bug: 30040263 Change-Id: I5a404a6e18cd2cf64d6c94343f82fa5db8dfbab3
Diffstat (limited to 'cmds/bootanimation/BootAnimation.cpp')
-rw-r--r--cmds/bootanimation/BootAnimation.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/cmds/bootanimation/BootAnimation.cpp b/cmds/bootanimation/BootAnimation.cpp
index e849f4b8e9d3..abb8c04d8032 100644
--- a/cmds/bootanimation/BootAnimation.cpp
+++ b/cmds/bootanimation/BootAnimation.cpp
@@ -839,9 +839,13 @@ bool BootAnimation::playAnimation(const Animation& animation)
break;
}
- // free the textures for this part
+ }
+
+ // Free textures created for looping parts now that the animation is done.
+ for (const Animation::Part& part : animation.parts) {
if (part.count != 1) {
- for (size_t j=0 ; j<fcount ; j++) {
+ const size_t fcount = part.frames.size();
+ for (size_t j = 0; j < fcount; j++) {
const Animation::Frame& frame(part.frames[j]);
glDeleteTextures(1, &frame.tid);
}