diff options
author | Geoffrey Pitsch <gpitsch@google.com> | 2016-07-06 16:16:20 -0400 |
---|---|---|
committer | Geoffrey Pitsch <gpitsch@google.com> | 2016-07-11 13:02:41 -0400 |
commit | 2fb30fb68e9acb121a3e0dae0cd2790b3a7cc17d (patch) | |
tree | d0084aac05f9b89c607b3f46ab2540e27b3212b1 /cmds/bootanimation/BootAnimation.cpp | |
parent | 3cc6935719323a3d8dc31fcfba59f5e3a8abfa32 (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.cpp | 8 |
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); } |