I am also working on a 3D wallpaper, and would like to know the "correct" way to implement an OpenGL-powered live wallpaper. This is a problem I have wrestled with on and off for a few weeks now.
The Android.com article (http://developer.android.com/resources/ articles/live-wallpapers.html) seems to suggest that getting a GL10 reference for a Live Wallpaper would be no big deal, but to me it's non-obvious. So far I've tried a few approaches: I had followed the the Cube example (http://developer.android.com/ resources/samples/CubeLiveWallpaper/index.html) but the Canvas I get from that code is not backed by OpenGL. That is, calls to myCanvasInstance.getGL() return null. So to get that a GL10, I think something has to be changed along the way to initialize the Canvas using OpenGL. I am still unsure how to make this change, I probably need to read more. I started to study the Live Wallpapers from the Android Source (http:// android.git.kernel.org/?p=platform/packages/wallpapers/ Basic.git;a=tree;f=src/com/android/wallpaper;hb=HEAD) but they seem to use RenderScriptGL, which is a non-public API at this time. I should look further into it to figure out how these wallpapers work, but as of right now I don't understand how they get their GL10 object to draw with. I also looked into Robert Green's GLWallpaperService. Btw, thanks go to Robert for all his hard work. A few projects use this method, and it works for them. Still, there are some bugs to be worked out as Robert has mentioned. I'm not sure whether Robert is maintaining it or if he moved on to bigger and better things. In any case, it seems weird that using his code would be the *only* way to create an OpenGL Live wallpaper. So what is the recommended, safe way to get a GL10 object to perform the drawing for a Live Wallpaper? On Oct 13, 10:05 am, "mr.winky" <mr0wi...@gmail.com> wrote: > Thats fine, but you didnt answer the original question which was..... > What is the right way to do this? You say its supported on your > website but offer no clue as to how to do it the "correct" way. Is > what Robert Green posted the right way to go about it or is there > another method. If there is, could you please point me in that > direction Diane, and if its something google has overlooked, then just > tell me. > > On Oct 13, 3:16 am, Robert Green <rbgrn....@gmail.com> wrote: > > > > > > > > > It was originally a submission for android master is why it is in that > > namespace :) > > > Yes, if you use it (and be aware that it does NOT reset the gl context > > on orientation changes so do not reload vram content like normal or at > > least make sure to delete first) you will definitely want to put it in > > your own package/namespace. > > > FYI - it doesn't delete the context because for some unknown reason > > many phones like to hard freeze right in eglMakeDisplayCurrent with > > the SharedBuffer timed out problem. Leaving the context in tact > > worked around it for some phones but there are other issues on other > > phones as well. > > > On Oct 13, 1:43 am, Dianne Hackborn <hack...@android.com> wrote: > > > > Note that code is very broken -- it is putting a class in the android > > > namespace, which it is not allowed to do. PLEASE change this to a valid > > > namespace before using it. You are likely to break shortly if you don't. > > > Thanks. > > > > On Tue, Oct 12, 2010 at 10:56 PM, mr.winky <mr0wi...@gmail.com> wrote: > > > > I've been using the GLWallpaperService as posted by Robert Green > > > > (http://www.rbgrn.net/content/354-glsurfaceview-adapted-3d-live- > > > > wallpapers), which has worked so far for the live wallpapers but I'm > > > > hitting a wall when it comes to performance. The GL code is executing > > > > at the expected speed when swapping (about 14ms after the swap > > > > occurs), but there seems to be an extreme overhead with the wallpaper > > > > code of 33ms. > > > > > For example, if I was to implement a basic live wallpaper that only > > > > called gl.glClearColor and nothing else, the maximum framerate I can > > > > achieve is 30fps (33ms), which is far lower than it should be. Now the > > > > phone refresh rate is 16ms, from what I have read, so I could > > > > understand hitting a wall at 60 fps. > > > > > The question is if there is an alternative way out there? I tried > > > > naively using the GLSurfaceView with no luck and am looking for > > > > suggestions from those who may have encountered this issue or know of > > > > a solution. I have been googling but all posts send me back to the > > > > above site from Robert Green as the "only" way to do this, and I have > > > > had no luck finding a live wallpaper "sample" from the SDK that uses > > > > OpenGL while they state that you have access to OpenGL from here: > > > > >http://developer.android.com/resources/articles/live-wallpapers.html > > > > > I tried searching for the code for the bundled live wallpapers with no > > > > luck, if anyone could throw me a link to one of the wallpapers that > > > > uses OpenGL that would more than enough for me to figure it out (if a > > > > different method is used ;)). > > > > > -- > > > > You received this message because you are subscribed to the Google > > > > Groups "Android Developers" group. > > > > To post to this group, send email to android-developers@googlegroups.com > > > > To unsubscribe from this group, send email to > > > > android-developers+unsubscr...@googlegroups.com<android-developers%2Bunsubs > > > > cr...@googlegroups.com> > > > > For more options, visit this group at > > > >http://groups.google.com/group/android-developers?hl=en > > > > -- > > > Dianne Hackborn > > > Android framework engineer > > > hack...@android.com > > > > Note: please don't send private questions to me, as I don't have time to > > > provide private support, and so won't reply to such e-mails. All such > > > questions should be posted on public forums, where I and others can see > > > and > > > answer them.- Hide quoted text - > > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en