Sunday, April 18, 2010

Silhouette v1.15

- 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.

2 comments:

  1. I just bought Silhouette Donation and find it a great wallpaper for my Nexus One.

    But clicking through the options, I thought of a few things which could be improved:

    Sky colors:
    - I'd like an option "random", where it slowly fades from one setting to another

    - Also nice would be an option "by daytime" where it fades according to my local time (e.g. at night: dark blue, morning: light blue, noon: blue/yellowish, evening: orange/red) and the sun location could wander, maybe even tie it to local sunrise/-set times

    - more colors! :) [Maybe add an option to create custom color-sets ... where the user can define 3 colors which are then used as a basis for the sky color]

    - for the very far future: Maybe fetch the local weather condition and adjust the sky to that, like the "Tree" theme in Google Mail


    Movement:
    - when sliding to another desktop screen, the clouds could slide in the opposite direction a bit; maybe even let the trees also slide - but then a bit slower (This effect can be seen in the "Earth Live Wallpaper".)


    That's all for now. ;-)

    ReplyDelete
  2. I can look at doing 'random' for an upcoming release (or maybe in a sunrise/day/sunset/night sequence as you suggest). That shouldn't be too bad to do.

    ReplyDelete