- Bug Fix: Occasional crash in renderFrameInterpolated()
- Bug Fix: Texture memory leak when switching orientations
I saw a bunch of comments about memory usage in the Silhouette listings, and after spending an afternoon with DDMS was about to call them crazy... then realized that after enough portrait/landscape switching it does indeed revert to the default desktop image. Looking at logCat, this was always accompanied with an "out of memory" message. Weird considering the allocation history didn't show anything unusual or wrong.
Well, as it turns out I had a code path that didn't call glDeleteTextures on all my texture IDs, and allocations by OpenGL don't show up as much of anything. I had thought that since the OpenGL context was invalidated when switching portrait/landscape (if you don't reload your textures they're all white) this all got thrown out anyway, but apparently (at least on the Droid) this isn't the case. This is made a bit annoying in that the standard onPause, onDestroy functions don't get handed a GL10 object to work with, so I actually ended up unloading textures in onSurfaceChanged, just before I proceed to precache them again. Slightly weird but it works -- I sat there switching landscape/portrait mode for a half hour and it stayed stable the whole time.
I'll have an update for Galactic Core tonight or tomorrow incorporating a few miscellaneous fixes plus better camera zoom in landscape mode and a "very high" spin speed pref.